История событий: https://github.com/ethereum/wiki/wiki/Solidity-Features
События позволяют удобно использовать средства регистрации EVM. События являются наследуемыми членами контрактов. При их вызове аргументы сохраняются в журнале транзакций. До трех параметров могут получить индексированный атрибут, что приведет к тому, что соответствующие аргументы будут рассматриваться как разделы журнала, а не как данные. Хэш подписи события всегда является одной из тем. Все неиндексированные аргументы будут храниться в части данных журнала.
Если не внутри контейнера смарт-контракта, где находятся данные журнала?
Журналы являются частью квитанций транзакций. Они генерируются клиентами при выполнении транзакций и сохраняются вместе с блокчейном, чтобы их можно было получить.
Логи сами по себе не являются частью блокчейна, поскольку они не требуются для консенсуса (это просто исторические данные), однако они проверяются блокчейном, поскольку хеши квитанций транзакций хранятся внутри блоков.
Чтобы помочь с ответом @Peter, это помогает понять, что такое события и журналы. События, журналы и журналы событий обычно являются взаимозаменяемыми терминами Ethereum (в некоторых контекстах предпочтение отдается определенному термину, например, событиям в Solidity и web3.js, а также журналам, как в EVM и Yellow Paper).
События/журналы являются результатом выполнения кодов операций LOG в EVM. Они являются частью «внутренних транзакций» , которые создаются путем выполнения транзакционных данных через EVM.
Таким образом, пока у вас есть блокчейн, у вас есть все события/журналы. Для эффективности они хранятся, как описывает @Peter, но концептуально их не нужно хранить, поскольку они могут быть пересчитаны из блокчейна (который по определению состоит из всех блоков и данных транзакций).
Наконец, сокращение не влияет на события/журналы, потому что сокращение выполняется для дерева состояний, и никакие блоки не теряются.
Из официальной документации: https://solidity.readthedocs.io/en/v0.4.24/contracts.html#events
События являются наследуемыми членами контрактов. При их вызове аргументы сохраняются в журнале транзакций — специальной структуре данных в блокчейне. Эти журналы связаны с адресом контракта и будут включены в блокчейн и оставаться там до тех пор, пока доступен блок (навсегда, как в Frontier и Homestead, но это может измениться с Serenity). Данные журнала и событий недоступны из контрактов (даже из контракта, который их создал).
Сатоши Наканиши
Питер Силаджи
Сатоши Наканиши
Питер Силаджи
Телепортирующаяся коза