TGViewer
bomb diggity bomb diggity @nodigitty · 1.59K subscribers
Post #264 411
Boom! Погружение в виртуальную машину Ethereum.

Документация Solidity описывает расположение переменных состояния в хранилище.

• В чем разница между string, bytes32, byte[], bytes?
• Какой из них использовать и когда?
• Что происходит, когда приводим строку к байтам?
• Можно ли привести к byte[]?
• Сколько это стоит?
• Как mappings хранится в EVM?
• Как скомпилированный контракт выглядит для EVM?

EVM — это механизм базы данных. Чтобы понять, как работают смарт-контракты на любом языке EVM, необходимо понимать, как данные организуются, хранятся и ими манипулируют.

В серии статей разобраны простые контракты Solidity, чтобы понять, как они работают в качестве байткода EVM.
• Основы байткода EVM.
• Введение в ассемблерный код EVM.
• Как представлены различные типы (mapping, arrays).
• Что происходит при создании нового контракта.
• Что происходит при вызове метода.
• Как ABI объединяет разные языки EVM.


Таблица набора инструкций EVM будет полезным справочником.

Конечная цель — полностью понять скомпилированный контракт Solidity. Начнем с чтения базового байткода EVM.

Погружение в виртуальную машину Ethereum. Часть 1

https://blog.qtum.org/diving-into-the-ethereum-vm-6e8d5d2f3c30

Погружение в виртуальную машину Ethereum. Часть 2

Начнем изучать, как Solidity использует фрагменты по 32 байта для представления более сложных типов данных, таких как структуры и массивы. Мы также увидим, как можно оптимизировать хранилище и почему оптимизация может потерпеть неудачу.

https://medium.com/@hayeah/diving-into-the-ethereum-vm-part-2-storage-layout-bc5349cb11b7

Погружение в виртуальную машину Ethereum. Часть 3

Рассмотрим, как Solidity поддерживает более сложные структуры данных. Массивы и сопоставления (mapping) на первый взгляд могут показаться знакомыми, но способ их реализации придает им радикально разные характеристики производительности.

https://medium.com/@hayeah/diving-into-the-ethereum-vm-the-hidden-costs-of-arrays-28e119f04a9b

Погружение в виртуальную машину Ethereum. Часть 4
Как расшифровать метод call смарт-контракта.

В этой статье увидим, как Solidity и EVM позволяют «внешним программам» использовать метод call контракта и вызывать изменение его состояния.

https://medium.com/@hayeah/how-to-decipher-a-smart-contract-method-call-8ee980311603

Погружение в виртуальную машину Ethereum. Часть 5
Процесс создания смарт-контракта.

Байт-код EVM, который мы видели до сих пор, прост: это просто инструкции, которые EVM выполняет сверху вниз, никакой магии в рукаве. Процесс создания контракта более увлекателен, поскольку он стирает барьер между кодом и данными.

https://medium.com/@hayeah/diving-into-the-ethereum-vm-part-5-the-smart-contract-creation-process-cb7b6133b855

Погружение в виртуальную машину Ethereum. Часть 6
Как реализуются Solidity Events.

Понимая, как события реализуются с помощью инструкций EVM более низкого уровня и сколько они стоят, мы получим лучшее представление об эффективном использовании событий.

https://blog.qtum.org/how-solidity-events-are-implemented-diving-into-the-ethereum-vm-part-6-30e07b3037b9
  • ❤‍🔥 4
More from @nodigitty
  1. Aug 9, 2025Доминация - дробь между двумя «мыльными пузырями» Доминация BTC это всего лишь отношение д…
  2. Feb 28, 2025BOOM! 15 часов назад произошло, крупнейшее событие в истории биткоина со времен Ordinals.…
  3. Dec 29, 2024Мы здесь ради технологий. ч2 Ранее писал о таком проекте как Bitnats, прошел почти год, ка…
  4. Dec 20, 2024Мы здесь ради технологий. Похоже, Чанпен Чжао не остановится. Он пойдет до конца, чтобы по…
  5. Nov 12, 2024Кризис стоимости Эфира. 1. Изменения в модели стоимости ETH Ожидалось, что механизм сжиган…
  6. Nov 11, 2024Обновление экосистемы Ethereum и L2 за 3 квартал 2024 г. 1. Снижение TVL, но динамика оста…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →