Анализ технологий Машина Oracle: на примере Chainlink
В экосистеме блокчейн Машина Oracle играет жизненно важную инфраструктурную роль, выступая в качестве моста между смарт-контрактами и внешним миром. Его основная функция заключается в предоставлении внешних данных для смарт-контрактов на блокчейне.
Например, если мы развернем смарт-контракт в сети Ethereum, который требует получения данных о объемах торгов нефтью за определенный день, так как сам контракт не может напрямую получить информацию о реальном мире вне сети, в этом случае требуется вмешательство Машина Oracle. В этой ситуации смарт-контракт запишет необходимую дату в журнал событий. Затем вне сети запустится процесс мониторинга для подписки на это событие. Когда будет обнаружен соответствующий запрос, этот процесс через подачу транзакции в сети вызовет определенный метод контракта и передаст данные о объемах торгов нефтью за указанный день в смарт-контракт.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Среди множества решений Машина Oracle, Chainlink выделяется своими децентрализованными характеристиками и долей на рынке. Он создает экономически стимулирующую экосистему через токен LINK, обеспечивая предоставление данных из реального мира в блокчейн наиболее безопасным и надежным способом. Механизм срабатывания Машины Oracle Chainlink реализуется через переводы токенов LINK, при этом LINK является контрактом стандарта ERC677 на основе сети Ethereum.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Стандарт ERC677 добавляет метод transferAndCall на основе ERC20, что удовлетворяет особым требованиям бизнес-сценариев Машины Oracle и реализует интеграцию платежей и запросов на услуги. Когда пользователь вызывает transferAndCall для перевода, кроме обычной операции перевода ERC20, также проверяется, является ли адрес получателя адресом контракта, и если это так, вызывается метод onTokenTransfer этого адреса.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
В дизайне Chainlink метод onTokenTransfer контракта oracle выполняет ряд проверок безопасности, включая проверку того, является ли перевод токенами LINK, проверку соответствия длины данных, валидацию селектора функции и т.д. После этих проверок контракт генерирует уникальный requestId, устанавливает время истечения запроса и инициирует событие OracleRequest. Это событие содержит подробные данные запроса, закодированные в формате CBOR (Concise Binary Object Representation).
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
После получения события OracleRequest узел вне цепи анализирует информацию о запросе, получает необходимые данные через вызов API, а затем отправляет данные на цепь, вызывая метод fulfillOracleRequest контракта oracle. Этот процесс включает в себя ряд шагов проверки, чтобы гарантировать действительность и безопасность данных. В конечном итоге контракт oracle вызывает функцию обратного вызова контракта запрашивающего, завершая весь процесс запроса и ответа данных.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Для разработчиков Chainlink также предлагает более удобные услуги по предоставлению ценовых Машина Oracle. Каждая торговая пара имеет отдельный Price Feed (также известный как Aggregator), который на самом деле является экземпляром контракта AggregatorProxy. Эти контракты предоставляют такие методы, как decimals)(, description)(, version)(, getRoundData)( и latestRoundData)(, которые позволяют разработчикам легко получать необходимые данные о ценах.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
В большинстве сценариев применения контракты в основном нуждаются в получении актуальной цены, что можно реализовать с помощью вызова метода latestRoundData)(. Стоит отметить, что для торговых пар, котируемых в USD, точность цены обычно унифицирована на уровне 8 знаков, что упрощает обработку точности между различными токенами.
С помощью этого дизайна Chainlink не только предоставляет гибкие услуги Машины Oracle, но и предлагает разработчикам удобный способ доступа к ценовым данным, значительно упрощая процесс взаимодействия приложений на блокчейне с данными внешнего мира.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
21 Лайков
Награда
21
4
Репост
Поделиться
комментарий
0/400
ChainMelonWatcher
· 08-08 16:49
Мара, не понимаю, нужно использовать
Посмотреть ОригиналОтветить0
MysteriousZhang
· 08-07 06:45
Машина Oracle еще хуже, чем просто спросить у Галактики AE
Анализ технологии Машины Oracle Chainlink: мост между смарт-контрактами и реальным миром
Анализ технологий Машина Oracle: на примере Chainlink
В экосистеме блокчейн Машина Oracle играет жизненно важную инфраструктурную роль, выступая в качестве моста между смарт-контрактами и внешним миром. Его основная функция заключается в предоставлении внешних данных для смарт-контрактов на блокчейне.
Например, если мы развернем смарт-контракт в сети Ethereum, который требует получения данных о объемах торгов нефтью за определенный день, так как сам контракт не может напрямую получить информацию о реальном мире вне сети, в этом случае требуется вмешательство Машина Oracle. В этой ситуации смарт-контракт запишет необходимую дату в журнал событий. Затем вне сети запустится процесс мониторинга для подписки на это событие. Когда будет обнаружен соответствующий запрос, этот процесс через подачу транзакции в сети вызовет определенный метод контракта и передаст данные о объемах торгов нефтью за указанный день в смарт-контракт.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Среди множества решений Машина Oracle, Chainlink выделяется своими децентрализованными характеристиками и долей на рынке. Он создает экономически стимулирующую экосистему через токен LINK, обеспечивая предоставление данных из реального мира в блокчейн наиболее безопасным и надежным способом. Механизм срабатывания Машины Oracle Chainlink реализуется через переводы токенов LINK, при этом LINK является контрактом стандарта ERC677 на основе сети Ethereum.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Стандарт ERC677 добавляет метод transferAndCall на основе ERC20, что удовлетворяет особым требованиям бизнес-сценариев Машины Oracle и реализует интеграцию платежей и запросов на услуги. Когда пользователь вызывает transferAndCall для перевода, кроме обычной операции перевода ERC20, также проверяется, является ли адрес получателя адресом контракта, и если это так, вызывается метод onTokenTransfer этого адреса.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
В дизайне Chainlink метод onTokenTransfer контракта oracle выполняет ряд проверок безопасности, включая проверку того, является ли перевод токенами LINK, проверку соответствия длины данных, валидацию селектора функции и т.д. После этих проверок контракт генерирует уникальный requestId, устанавливает время истечения запроса и инициирует событие OracleRequest. Это событие содержит подробные данные запроса, закодированные в формате CBOR (Concise Binary Object Representation).
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
После получения события OracleRequest узел вне цепи анализирует информацию о запросе, получает необходимые данные через вызов API, а затем отправляет данные на цепь, вызывая метод fulfillOracleRequest контракта oracle. Этот процесс включает в себя ряд шагов проверки, чтобы гарантировать действительность и безопасность данных. В конечном итоге контракт oracle вызывает функцию обратного вызова контракта запрашивающего, завершая весь процесс запроса и ответа данных.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Для разработчиков Chainlink также предлагает более удобные услуги по предоставлению ценовых Машина Oracle. Каждая торговая пара имеет отдельный Price Feed (также известный как Aggregator), который на самом деле является экземпляром контракта AggregatorProxy. Эти контракты предоставляют такие методы, как decimals)(, description)(, version)(, getRoundData)( и latestRoundData)(, которые позволяют разработчикам легко получать необходимые данные о ценах.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
В большинстве сценариев применения контракты в основном нуждаются в получении актуальной цены, что можно реализовать с помощью вызова метода latestRoundData)(. Стоит отметить, что для торговых пар, котируемых в USD, точность цены обычно унифицирована на уровне 8 знаков, что упрощает обработку точности между различными токенами.
С помощью этого дизайна Chainlink не только предоставляет гибкие услуги Машины Oracle, но и предлагает разработчикам удобный способ доступа к ценовым данным, значительно упрощая процесс взаимодействия приложений на блокчейне с данными внешнего мира.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(