В экосистеме блокчейна Машина Oracle играет ключевую роль в соединении умных контрактов с внешним миром. В качестве инфраструктуры система Машины Oracle может предоставлять информации и данные из вне для смарт-контрактов на цепочке.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Например, предположим, что мы развернули смарт-контракт в сети Ethereum, который требует получения данных о торговых объемах нефти за определенный день. Поскольку сам смарт-контракт не может напрямую получить доступ к данным реального мира вне цепи, в этом случае необходимо воспользоваться Машиной Oracle для реализации этой функции. Конкретный процесс следующий: смарт-контракт записывает объем торговли нефтью за необходимую дату в журнал событий, после чего вне цепи запускается процесс мониторинга для подписки на это событие. Как только запрос будет обнаружен, этот процесс вызовет соответствующий метод контракта, отправив транзакцию в цепь, и передаст информацию о торговом объеме нефти за указанную дату смарт-контракту.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Среди множества проектов Машина Oracle, Chainlink занимает доминирующее положение на рынке. Как децентрализованное решение Машины Oracle, Chainlink стремится предоставить блокчейну данные из реального мира наиболее безопасным способом. Он построен на основных принципах Машины Oracle и создает экосистему с положительной обратной связью, основанную на экономических стимуляциях вокруг токена LINK. Для активации Машины Oracle Chainlink требуется перевод токенов LINK, который является контрактом ERC677 на сети Ethereum. Функции Машины Oracle, выполненные на основе токена LINK ERC677, относятся к модели запрос/ответ.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 добавляет метод transferAndCall на основе ERC20, что объединяет платежи и запросы на услуги, лучше удовлетворяя потребности сценариев использования Машина Oracle. Когда пользователь использует transferAndCall для перевода, помимо обычной операции перевода ERC20, также проверяется, является ли адрес получателя адресом контракта. Если это так, будет вызван метод onTokenTransfer этого адреса.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
В процессе запроса услуг Машины Oracle потребитель сначала должен подтвердить надежность Машины Oracle, поскольку перед оказанием услуг необходимо внести предоплату. Метод onTokenTransfer контракта Машины Oracle выполняет ряд проверок безопасности, включая проверку того, является ли перевод токенами LINK, проверку, превышает ли длина данных лимит, валидацию селектора функции и т.д. После проверки контракт генерирует уникальный requestId, устанавливает время истечения и инициирует событие OracleRequest, содержащее данные запроса.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Внешний узел, получив запрос, будет отвечать, вызывая метод fulfillOracleRequest. Этот метод проведет ряд проверок, включая проверку прав вызова, проверку действительности запроса и т. д. После успешной проверки узел вызовет функцию обратного вызова контракта запрашивающей стороны, чтобы вернуть данные запрашивающей стороне.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для разработчиков, если нужно использовать уже имеющиеся данные о ценах на валютные пары, можно напрямую вызывать предоставленный официальным образом интерфейс Price Feed. У каждой торговой пары есть независимый Price Feed ), а именно AggregatorProxy(, который предоставляет такие методы запроса, как decimals)(, description)(, version)(, getRoundData)( и latestRoundData)(. При этом метод latestRoundData)( возвращает параметр answer, который является последней ценой. Стоит отметить, что для торговых пар, оцениваемых в долларах США, точность обычно фиксируется на уровне 8 знаков после запятой.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Таким образом, разработчики могут легко получать и использовать данные о текущих ценах, предоставляемые цепочечной Машиной Oracle, не обременяя себя сложными вызовами API и процессами проверки данных.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
10 Лайков
Награда
10
5
Поделиться
комментарий
0/400
AlwaysAnon
· 11ч назад
Пить алкоголь, чтобы понять, о чем речь. Что такое LINK?
Глубина анализа: Как Машина Oracle соединяет смарт-контракты с внешним миром
Глубина анализа технологии Машина Oracle
В экосистеме блокчейна Машина Oracle играет ключевую роль в соединении умных контрактов с внешним миром. В качестве инфраструктуры система Машины Oracle может предоставлять информации и данные из вне для смарт-контрактов на цепочке.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Например, предположим, что мы развернули смарт-контракт в сети Ethereum, который требует получения данных о торговых объемах нефти за определенный день. Поскольку сам смарт-контракт не может напрямую получить доступ к данным реального мира вне цепи, в этом случае необходимо воспользоваться Машиной Oracle для реализации этой функции. Конкретный процесс следующий: смарт-контракт записывает объем торговли нефтью за необходимую дату в журнал событий, после чего вне цепи запускается процесс мониторинга для подписки на это событие. Как только запрос будет обнаружен, этот процесс вызовет соответствующий метод контракта, отправив транзакцию в цепь, и передаст информацию о торговом объеме нефти за указанную дату смарт-контракту.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Среди множества проектов Машина Oracle, Chainlink занимает доминирующее положение на рынке. Как децентрализованное решение Машины Oracle, Chainlink стремится предоставить блокчейну данные из реального мира наиболее безопасным способом. Он построен на основных принципах Машины Oracle и создает экосистему с положительной обратной связью, основанную на экономических стимуляциях вокруг токена LINK. Для активации Машины Oracle Chainlink требуется перевод токенов LINK, который является контрактом ERC677 на сети Ethereum. Функции Машины Oracle, выполненные на основе токена LINK ERC677, относятся к модели запрос/ответ.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 добавляет метод transferAndCall на основе ERC20, что объединяет платежи и запросы на услуги, лучше удовлетворяя потребности сценариев использования Машина Oracle. Когда пользователь использует transferAndCall для перевода, помимо обычной операции перевода ERC20, также проверяется, является ли адрес получателя адресом контракта. Если это так, будет вызван метод onTokenTransfer этого адреса.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
В процессе запроса услуг Машины Oracle потребитель сначала должен подтвердить надежность Машины Oracle, поскольку перед оказанием услуг необходимо внести предоплату. Метод onTokenTransfer контракта Машины Oracle выполняет ряд проверок безопасности, включая проверку того, является ли перевод токенами LINK, проверку, превышает ли длина данных лимит, валидацию селектора функции и т.д. После проверки контракт генерирует уникальный requestId, устанавливает время истечения и инициирует событие OracleRequest, содержащее данные запроса.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Внешний узел, получив запрос, будет отвечать, вызывая метод fulfillOracleRequest. Этот метод проведет ряд проверок, включая проверку прав вызова, проверку действительности запроса и т. д. После успешной проверки узел вызовет функцию обратного вызова контракта запрашивающей стороны, чтобы вернуть данные запрашивающей стороне.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для разработчиков, если нужно использовать уже имеющиеся данные о ценах на валютные пары, можно напрямую вызывать предоставленный официальным образом интерфейс Price Feed. У каждой торговой пары есть независимый Price Feed ), а именно AggregatorProxy(, который предоставляет такие методы запроса, как decimals)(, description)(, version)(, getRoundData)( и latestRoundData)(. При этом метод latestRoundData)( возвращает параметр answer, который является последней ценой. Стоит отметить, что для торговых пар, оцениваемых в долларах США, точность обычно фиксируется на уровне 8 знаков после запятой.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Таким образом, разработчики могут легко получать и использовать данные о текущих ценах, предоставляемые цепочечной Машиной Oracle, не обременяя себя сложными вызовами API и процессами проверки данных.