Машина Oracle:смарт-контракты и мост в реальный мир
В экосистеме блокчейн Машина Oracle играет жизненно важную роль. Она выступает в качестве промежуточной системы, способной предоставлять внешнюю информацию для смарт-контрактов на блокчейне, тем самым связывая мир блокчейна с реальным миром. Основная функция Машины Oracle заключается в предоставлении смарт-контрактам необходимых внешних данных.
Например, предположим, что мы создаем смарт-контракты в сети Ethereum, которые требуют получения данных о торговом объеме нефти за определенный день. Поскольку смарт-контракты сами по себе не могут напрямую получать такие данные из реального мира вне сети, необходимо использовать Машина Oracle для реализации этой задачи. В таком случае смарт-контракт запишет требуемый объем торговли нефтью за нужную дату в журнал событий. Затем вне сети запустится процесс, который будет отслеживать и подписываться на этот журнал событий. Когда будет зафиксирован запрос в транзакции, этот процесс подаст транзакцию в сеть, вызовет соответствующий метод контракта и загрузит информацию о объеме торговли нефтью за указанную дату в смарт-контракт.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Chainlink: Основное решение Машина Oracle
В текущем рынке блокчейнов Chainlink является проектом оракулов с наибольшей долей рынка. В качестве децентрализованной системы оракулов Chainlink стремится предоставлять данные из реального мира в блокчейн самым безопасным образом. На основе основных принципов оракулов Chainlink построил экономическую экосистему, основанную на токене LINK.
Срабатывание оракула Chainlink требует выполнения перевода токенов LINK. LINK является контрактом ERC677 в сети Ethereum, а функции оракула, основанные на токенах LINK ERC677, относятся к модели запрос/ответ.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
) Механизм transferAndCall токена ERC677
При разработке рамок для Машины Oracle Chainlink в первую очередь учитывает, как пользователи будут оплачивать услуги Машины Oracle. Поскольку стандартные токены ERC20 не могут удовлетворить потребность в "предоставлении услуг после оплаты", Chainlink предложил стандарт ERC677, подходящий для сценариев обслуживания Машины Oracle.
ERC677 добавляет метод transferAndCall на основе стандартного ERC20. Этот метод объединяет платеж и запрос услуги, удовлетворяя потребности бизнес-сценариев Машины Oracle. Когда пользователь выполняет перевод с помощью transferAndCall, помимо перевода ERC20, также проверяется, является ли адрес получателя адресом контракта; если да, то вызывается метод onTokenTransfer этого адреса.
Стоит отметить, что перед запросом услуги Машина Oracle пользователям необходимо сначала определить, является ли данный Машина Oracle надежным, поскольку перед предоставлением услуги Машина Oracle требует предварительную оплату.
! Chainlink Часть 1 из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
) Процесс запроса оракула на блокчейне
Когда потребители Машины Oracle используют метод transferAndCall для оплаты и запроса услуг, метод onTokenTransfer в смарт-контракте Машины Oracle выполняет ряд проверок безопасности. Это включает в себя проверку, является ли перевод токеном LINK, проверку превышения ограничения длины данных, проверку правильности выбора функции в данных и т.д.
После проверки смарт-контракт Oracle сгенерирует уникальный requestId и сохранит связанную с запросом информацию в отображении commitments. В конце концов, контракт отправит событие OracleRequest, которое содержит детальные данные запроса.
! Chainlink (Часть 1) из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
) Механизм отклика узлов вне цепи
После того как узел вне цепочки зафиксирует событие OracleRequest, он проанализирует конкретную информацию о запросе и получит необходимые данные через вызов API. Затем узел, отправляя транзакцию, вызовет метод fulfillOracleRequest в смарт-контрактах Oracle и отправит данные в цепочку.
Этот метод проведет ряд проверок, включая проверку того, является ли вызывающий стороной авторизованным узлом, проверку действительности идентификатора запроса и т. д. После успешной проверки смарт-контракт запишет количество токенов, которые могут быть извлечены, и удалит идентификатор запроса из отображения commitments.
В конце концов, контракт вызовет функцию обратного вызова контракта запрашивающего, чтобы вернуть данные контракту потребителя. Для ценового оракула это обычно связано с обновлением актуальных данных о ценах.
! Chainlink Часть 1 из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Упрощенное использование Машины Oracle по ценам
Для разработчиков, если вам нужно только использовать существующие данные о ценах на криптовалюту и нет необходимости указывать URL API, вы можете напрямую использовать Price Feed, предоставляемый Chainlink. У каждой торговой пары есть независимый Price Feed), также известный как Aggregator(, который на самом деле является смарт-контрактом AggregatorProxy.
Эти контракты обычно предоставляют следующие основные методы запроса:
decimals)(: возвращает количество знаков после запятой цены данных
описание)(: возврат названия торговой пары
version)(: идентификатор типа Aggregator, на который указывает Proxy
getRoundData)_roundId(: Получить исторические данные о ценах по ID раунда
latestRoundData)(:Получить последние данные о цене
В большинстве сценариев применения контракт может просто читать последнюю цену, то есть вызывать метод latestRoundData)(. Параметр answer, возвращаемый этим методом, и является последней ценой.
Стоит отметить, что большинство приложений для считывания цен токенов используют USD в качестве расчетной единицы. В этом случае точность ценовых данных обычно унифицирована до 8 знаков после запятой, что упрощает проблему обработки точности между различными токенами.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
13 Лайков
Награда
13
8
Поделиться
комментарий
0/400
Anon32942
· 07-15 12:05
Машина Oracle этот я понимаю! Накопил немного link
Посмотреть ОригиналОтветить0
CrossChainBreather
· 07-15 11:26
Машина Oracle спасла мой маленький Кошелек
Посмотреть ОригиналОтветить0
rugdoc.eth
· 07-12 12:36
Машина Oracle тоже не поняла.
Посмотреть ОригиналОтветить0
HackerWhoCares
· 07-12 12:32
link — это будущее, ха
Посмотреть ОригиналОтветить0
MetaverseHermit
· 07-12 12:23
linkбык哇бык哇
Посмотреть ОригиналОтветить0
SchrodingerWallet
· 07-12 12:17
Машина Oracle真香...Токен稳了
Посмотреть ОригиналОтветить0
GasWaster
· 07-12 12:14
Мама, сегодня вечером Машина Oracle действительно вкусная.
Глубокий анализ Chainlink: как Машина Oracle соединяет Блокчейн и реальный мир
Машина Oracle:смарт-контракты и мост в реальный мир
В экосистеме блокчейн Машина Oracle играет жизненно важную роль. Она выступает в качестве промежуточной системы, способной предоставлять внешнюю информацию для смарт-контрактов на блокчейне, тем самым связывая мир блокчейна с реальным миром. Основная функция Машины Oracle заключается в предоставлении смарт-контрактам необходимых внешних данных.
Например, предположим, что мы создаем смарт-контракты в сети Ethereum, которые требуют получения данных о торговом объеме нефти за определенный день. Поскольку смарт-контракты сами по себе не могут напрямую получать такие данные из реального мира вне сети, необходимо использовать Машина Oracle для реализации этой задачи. В таком случае смарт-контракт запишет требуемый объем торговли нефтью за нужную дату в журнал событий. Затем вне сети запустится процесс, который будет отслеживать и подписываться на этот журнал событий. Когда будет зафиксирован запрос в транзакции, этот процесс подаст транзакцию в сеть, вызовет соответствующий метод контракта и загрузит информацию о объеме торговли нефтью за указанную дату в смарт-контракт.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Chainlink: Основное решение Машина Oracle
В текущем рынке блокчейнов Chainlink является проектом оракулов с наибольшей долей рынка. В качестве децентрализованной системы оракулов Chainlink стремится предоставлять данные из реального мира в блокчейн самым безопасным образом. На основе основных принципов оракулов Chainlink построил экономическую экосистему, основанную на токене LINK.
Срабатывание оракула Chainlink требует выполнения перевода токенов LINK. LINK является контрактом ERC677 в сети Ethereum, а функции оракула, основанные на токенах LINK ERC677, относятся к модели запрос/ответ.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
) Механизм transferAndCall токена ERC677
При разработке рамок для Машины Oracle Chainlink в первую очередь учитывает, как пользователи будут оплачивать услуги Машины Oracle. Поскольку стандартные токены ERC20 не могут удовлетворить потребность в "предоставлении услуг после оплаты", Chainlink предложил стандарт ERC677, подходящий для сценариев обслуживания Машины Oracle.
ERC677 добавляет метод transferAndCall на основе стандартного ERC20. Этот метод объединяет платеж и запрос услуги, удовлетворяя потребности бизнес-сценариев Машины Oracle. Когда пользователь выполняет перевод с помощью transferAndCall, помимо перевода ERC20, также проверяется, является ли адрес получателя адресом контракта; если да, то вызывается метод onTokenTransfer этого адреса.
Стоит отметить, что перед запросом услуги Машина Oracle пользователям необходимо сначала определить, является ли данный Машина Oracle надежным, поскольку перед предоставлением услуги Машина Oracle требует предварительную оплату.
! Chainlink Часть 1 из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
) Процесс запроса оракула на блокчейне
Когда потребители Машины Oracle используют метод transferAndCall для оплаты и запроса услуг, метод onTokenTransfer в смарт-контракте Машины Oracle выполняет ряд проверок безопасности. Это включает в себя проверку, является ли перевод токеном LINK, проверку превышения ограничения длины данных, проверку правильности выбора функции в данных и т.д.
После проверки смарт-контракт Oracle сгенерирует уникальный requestId и сохранит связанную с запросом информацию в отображении commitments. В конце концов, контракт отправит событие OracleRequest, которое содержит детальные данные запроса.
! Chainlink (Часть 1) из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
) Механизм отклика узлов вне цепи
После того как узел вне цепочки зафиксирует событие OracleRequest, он проанализирует конкретную информацию о запросе и получит необходимые данные через вызов API. Затем узел, отправляя транзакцию, вызовет метод fulfillOracleRequest в смарт-контрактах Oracle и отправит данные в цепочку.
Этот метод проведет ряд проверок, включая проверку того, является ли вызывающий стороной авторизованным узлом, проверку действительности идентификатора запроса и т. д. После успешной проверки смарт-контракт запишет количество токенов, которые могут быть извлечены, и удалит идентификатор запроса из отображения commitments.
В конце концов, контракт вызовет функцию обратного вызова контракта запрашивающего, чтобы вернуть данные контракту потребителя. Для ценового оракула это обычно связано с обновлением актуальных данных о ценах.
! Chainlink Часть 1 из серии Oracle Explainer]###https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Упрощенное использование Машины Oracle по ценам
Для разработчиков, если вам нужно только использовать существующие данные о ценах на криптовалюту и нет необходимости указывать URL API, вы можете напрямую использовать Price Feed, предоставляемый Chainlink. У каждой торговой пары есть независимый Price Feed), также известный как Aggregator(, который на самом деле является смарт-контрактом AggregatorProxy.
Эти контракты обычно предоставляют следующие основные методы запроса:
В большинстве сценариев применения контракт может просто читать последнюю цену, то есть вызывать метод latestRoundData)(. Параметр answer, возвращаемый этим методом, и является последней ценой.
Стоит отметить, что большинство приложений для считывания цен токенов используют USD в качестве расчетной единицы. В этом случае точность ценовых данных обычно унифицирована до 8 знаков после запятой, что упрощает проблему обработки точности между различными токенами.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(