Как именно работает Oraclize внутри? [дубликат]

Вот что говорится в документации Ethereum к Oraclize :

Во-первых, в наиболее распространенном случае транзакция, выполняющая функцию смарт-контракта, транслируется пользователем. Функция содержит специальную инструкцию, которая манифестирует Oraclize, который постоянно отслеживает блокчейн Ethereum на наличие такой инструкции, запроса данных.

Во-вторых, в соответствии с параметрами такого запроса Oraclize будет получать или вычислять результат, строить, подписывать и транслировать транзакцию с результатом. В конфигурации по умолчанию такая транзакция будет выполнять функцию __callback, которая должна быть помещена в смарт-контракт ее разработчиком: по этой причине эта транзакция упоминается в документации как транзакция обратного вызова Oraclize.

Какая инструкция выполняется? Какие сообщения передаются при вызове oraclize_queryфункции?

"Особая" инструкция и одно и oraclize_queryто же? Насколько я понимаю, oraclize_queryэто запрос данных, да?

Другие ответы не касаются того, что такое «специальная» инструкция и т. Д.

Ответы (1)

РЕДАКТИРОВАТЬ: я узнал в комментариях к вопросу, предложенному другими, чтобы быть оригинальным, где ответы таковы, что он действительно работает так, как я предложил (часть событий была тем, в чем я не был уверен)

Я не совсем уверен в этом, но это мое предположение о том, как все работает под капотом:

  • когда вызывается oraclize_query, он публикует событие с данными о том, какой запрос и т. д.

  • oraclize отслеживает блокчейн и фильтрует эти события

  • узнав ответ, они отправляют его контракту, который его запросил, используя функцию __callback (реализуется запрашивающей стороной)

По этой причине для доставки ответа требуется несколько блоков.

Я попытался подтвердить эти предположения, взглянув на код , но запутался в нем.

Событие — это просто данные в блокчейне, верно? Это не транзакция/сообщение?
в точку. это способ ведения журнала - solidity.readthedocs.io/en/develop/contracts.html#events
Почему они упоминают специальную (недействительную) инструкцию?
извините, я не понимаю: кто упоминает специальную или недействительную инструкцию?
Документация Oraclize для Ethereum API.
можно поточнее (дайте ссылку)? Я попытался найти в документах «неверную инструкцию» и ничего не нашел.
Я имел в виду "специальную инструкцию".