Как получить доступ к внешним знаниям/данным в смарт-контракте

скажем, контракт хочет выполнить на основе знаний, содержащихся за пределами блокчейна (например, какова цена золота, какова средняя скорость ветра в Нью-Йорке, сколько людей переехало в Портленд за последнюю неделю) — как контракт может получить это вид информации?

Ответы (2)

Общий шаблон называется оракулом .

Контракты Ethereum не могут напрямую связываться с внешним миром, поэтому они должны полагаться на то, что внешний мир передает информацию в сеть.

У вас есть 2 варианта:

  1. Используйте оракул: такие сервисы, как Oraclize , являются формальными реализациями, где вы платите за то, чтобы использовать их сервисы для получения данных оракула, которые они предоставляют.

  2. Напишите оракул: если данные, которые вам нужны, еще не обработаны оракулом, но у вас достаточно сообразительности, чтобы сделать это, вы можете написать свой собственный внешний сервис, который периодически вставляет данные в ваш собственный контракт оракула. Затем ваш контракт приложения просто запрашивает его, когда ему это нужно.

Ты опередил меня с ответом! слава. Просто чтобы добавить немного ценности. Например, вы можете получить данные из wolfram alpha с помощью oraclize. пример : docs.oraclize.it/#datasources-wolframalpha
Также есть «Городской глашатай» eprint.iacr.org/2016/168.pdf.

Если вы хотите получить некоторые подробности за пределами блокчейна. поэтому вам нужно использовать службу оракула, например https://chain.link/data-feeds . или если вы хотите получить информацию внутри блокчейна, возможно, оракул этого блокчейна доступен. вы также можете написать свой собственный оракул. наиболее часто используемым оракулом является ценовой оракул.