Интересная библиотека SSTORE2
На основе ветки в Твиттере от chrisdior.eth.
В августе прошлого года в проекте Solady появилась новая библиотека SSTORE2, которая, по задумке, была призвана заменить использование дорогого по газу опкода SSTORE.
Например, когда мы хотим сохранить что-то в память, мы используем SSTORE, при этом затрачиваем минимум 20 000 газа за каждые 32 байта.
Библиотека SSTORE2 позволяет нам передавать данные в виде байткода контракта, используя опкод CREATE и затем читать данные через опкод EXTCODECOPY.
Вы также могли бы подумать, что в таблице опкодов стоимость CREATE составляет 32 000 газа, что в разы больше SSTORE. Но дело тут немного в другом.
С SSTORE2 вы передаете данные как байты, которые будут интерпретироваться как переменные, которые вы хотите объявить в новом контракте, а затем вы читаете этот байткод с помощью EXTCODECOPY, что стоит всего 2600 газа.
Таким образом, если вы хотите сохранить 8 переменных в памяти, с обычным опкодом SSTORE это будет стоить около 200 000 газа для записи плюс 20 000 для чтения. А с библиотекой SSTORE2 вы заплатите 88 000 газа для записи плюс 3200 для чтения. Существенная экономия, не так ли?
#opcode #sstore #sstore2 #library
Post #723
931
- 👍 4
- ❤ 3