О проекте

Превращаем чёрный ящик в белый.

Исполнительный слой Ethereum — один из самых значимых программных продуктов в мире, и почти никто за пределами нескольких команд клиентов не может сказать, что по-настоящему его понимает. Не потому что инженеры не способны — а потому что материал ставит перед плохим выбором. С одной стороны: Yellow Paper и сырой исходный код клиентов, точно, но беспощадно. С другой: курсы прикладного уровня, которые останавливаются на solidity и не доходят до протокола. Мост между интуицией и спецификацией попросту… отсутствует.

Whitebox — это и есть тот мост. Единица здесь — не вики-страница, а разбор: один механизм в паре с живым виджетом, который можно разобрать на части, со слоями, чтобы вы сами выбирали глубину. Интуиция, когда нужна форма явления. Механизм, когда хочется увидеть, как оно движется. Настоящая спецификация и код клиента, когда нужна основа. И указатели дальше, когда вы готовы идти глубже, чем я могу провести на одной странице.

Я пишу от первого лица намеренно. Именно так я, как инженер исполнительного слоя, на самом деле держу эти системы в голове — аналогии, к которым тянусь, детали, которые оказались важны, места, где спецификация меня удивила. Это точка зрения, а не безличный справочник.

Как это сделано

Виджеты — не иллюстрации, прикрученные к тексту: они запускают настоящее. Trie в главном разборе — это настоящее Merkle-Patricia дерево: настоящий RLP, настоящее hex-prefix кодирование, настоящий keccak256, дающий тот же stateRoot, что и живой клиент, проверенный байт в байт против эталонной реализации. Если виджет показывает вам хеш — этому хешу можно доверять.

Два слоя

Есть вечнозелёная основа — Исполнительный слой: объяснение — написанная один раз и надолго. И тонкий, редкий слой заметок: короткие тексты простым языком о том, что изменилось в протоколе, когда выходит хардфорк. Если хотите узнавать, когда что-то из этого пополняется, оставьте почту ниже. Только для этого я её и использую.