скажем, контракт хочет выполнить на основе знаний, содержащихся за пределами блокчейна (например, какова цена золота, какова средняя скорость ветра в Нью-Йорке, сколько людей переехало в Портленд за последнюю неделю) — как контракт может получить это вид информации?
Общий шаблон называется оракулом .
Контракты Ethereum не могут напрямую связываться с внешним миром, поэтому они должны полагаться на то, что внешний мир передает информацию в сеть.
У вас есть 2 варианта:
Используйте оракул: такие сервисы, как Oraclize , являются формальными реализациями, где вы платите за то, чтобы использовать их сервисы для получения данных оракула, которые они предоставляют.
Напишите оракул: если данные, которые вам нужны, еще не обработаны оракулом, но у вас достаточно сообразительности, чтобы сделать это, вы можете написать свой собственный внешний сервис, который периодически вставляет данные в ваш собственный контракт оракула. Затем ваш контракт приложения просто запрашивает его, когда ему это нужно.
Если вы хотите получить некоторые подробности за пределами блокчейна. поэтому вам нужно использовать службу оракула, например https://chain.link/data-feeds . или если вы хотите получить информацию внутри блокчейна, возможно, оракул этого блокчейна доступен. вы также можете написать свой собственный оракул. наиболее часто используемым оракулом является ценовой оракул.
эт