Что такое событие ?
Они используются только в Solidity?
Как определяются события?
Как инициируются события?
Существует ли стандартный термин для вызова события (вы говорите, что событие «произошло», «было вызвано», «было вызвано», «запущено»)?
Где в заголовке блока заканчивается событие?
Актуальны:
Как реализовать события в Solidity
Где в архитектуре Ethereum хранятся журналы событий контрактов?
Блокчейн — это список блоков, которые по сути являются списками транзакций. Каждая транзакция имеет прикрепленную квитанцию, содержащую ноль или более записей журнала. Записи в журнале представляют собой результат событий, инициированных смарт-контрактом.
В исходном коде Solidity, чтобы определить событие, вы помечаете его таким образом, вводя перед ним event
ключевое слово (аналогично использованию function
ключевого слова). Затем вы вызываете или запускаете событие в теле любой функции, которую вы хотите вызвать для генерации события. (Я сомневаюсь, что для этого есть стандартная формулировка). Вы можете запускать события из любой функции, используя emit
ключевое слово.
Вероятно, кто-то может добавить информацию о том, как «прослушивать» события в вашем DAPP. Он использует функции фильтрации Web 3.0 .
Ознакомьтесь с Онтологией Ethereum , недавно опубликованной Йоханнесом Пфеффером, где содержится очень подробное объяснение многих концепций Ethereum.
console.log
. Вот и все, ни больше, ни меньше. В Solidity у него нет другой цели, кроме регистрации события в блокчейне. Однако вы можете прослушивать события в режиме реального времени из внешнего кода, чтобы использовать события в качестве своего рода push-уведомлений.События отправляются сигналами, которые смарт-контракты могут запускать. DApps или все, что связано с Ethereum JSON-RPC API, может прослушивать эти события и действовать соответствующим образом. Событие можно проиндексировать, чтобы позже можно было искать историю событий.
Пример события из контракта кошелька:
event Deposit(address from, uint value);
Приложение (децентрализованное приложение, веб-приложение и т. д.), заинтересованное в пополнениях контракта кошелька, будет прослушивать это событие. Приложение будет подключаться к узлу Ethereum через JSON-RPC и либо наблюдать (ждать), пока не произойдет событие, либо читать все прошлые события, чтобы синхронизировать внутреннее состояние приложения с блокчейном Ethereum.
revert()
его, он будет откатывать события, как Transfer()
правильно?Раздел 6.1 Подсостояние желтой бумаги (версия 7e819ec - 2019-10-20) включает описание:
индексируемые «контрольные точки» в выполнении кода VM, которые позволяют легко отслеживать вызовы контрактов внешними по отношению к миру Ethereum наблюдателями (такими как интерфейсы децентрализованных приложений).
Желтая книга предшествовала терминологии событий, но событие — это способ, с помощью которого DApps могут получать информацию в определенный момент во время выполнения кода смарт-контракта (EVM). Всякий раз, когда EVM встречает код операции LOG, узлы Ethereum генерируют событие, о котором DApps и внешние процессы могут быть уведомлены и доступны.
В Solidity коды emit
операций event
компилируются в LOG.
Ли
Ли
Ли