Машина Oracle технический анализ: на примере Chainlink
Машина Oracle является ключевой инфраструктурой в области блокчейна, ее основная функция заключается в предоставлении внешних данных для смарт-контрактов. Будучи мостом между смарт-контрактами и реальным миром, Машина Oracle играет незаменимую роль в экосистеме блокчейна.
Например, если мы развернем смарт-контракт на Ethereum, который требует получения объема торгов нефтью за определенную дату, поскольку сам контракт не может напрямую получить внешние данные, нам понадобится Машина Oracle. Конкретный процесс таков: смарт-контракт записывает необходимую информацию в журналы событий, а процесс вне цепи отслеживает и отвечает на этот запрос, затем передает необходимые данные смарт-контракту через транзакцию в цепи.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Среди многочисленных проектов Машина Oracle, Chainlink выделяется своими децентрализованными характеристиками и долей рынка. Chainlink создал экономический механизм стимулов через токен LINK, образовав благоприятную циклическую экосистему. Его основная функция основана на модели запроса/ответа на основе токена LINK.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Chainlink использует стандарт ERC677, который является расширением ERC20 и добавляет метод transferAndCall. Этот метод объединяет платежи и запросы на услуги, лучше удовлетворяя бизнес-требования Машины Oracle. Когда пользователь вызывает transferAndCall для перевода, помимо обычного перевода ERC20, также будет вызван метод onTokenTransfer контракта получателя.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
В контракте oracle Chainlink метод onTokenTransfer сначала выполняет ряд проверок безопасности, включая проверку передаваемого токена, длины данных и селектора функции и т.д. После проверки контракт генерирует уникальный requestId, устанавливает время истечения и инициирует событие OracleRequest. Это событие содержит подробную информацию о запросе, такую как формат данных, адрес обратного вызова и т.д.
После того как узел вне цепи обнаружит событие OracleRequest, он разберет информацию о запросе, получит необходимые данные через API, а затем вызовет метод fulfillOracleRequest контракта oracle, чтобы передать данные в цепь. Этот метод выполнит ряд проверок, а затем вызовет функцию обратного вызова контракта запросчика, завершив весь процесс услуги Машина Oracle.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Для разработчиков Chainlink также предоставляет более удобные услуги ценового Машина Oracle. Каждая торговая пара имеет соответствующий Price Feed (то есть AggregatorProxy), разработчики могут напрямую вызывать эти контракты для получения актуальных данных о ценах, не указывая URL-адрес источника данных самостоятельно. В большинстве случаев достаточно вызвать метод latestRoundData)(, чтобы получить актуальную цену.
Стоит отметить, что для торговых пар, ценообразование которых осуществляется в USD, точность цены обычно унифицирована на уровне 8 знаков, что упрощает процесс обработки цен различных токенов.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
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.
Анализ технологии Машина Oracle Chainlink: мост между смарт-контрактами и реальным миром
Машина Oracle технический анализ: на примере Chainlink
Машина Oracle является ключевой инфраструктурой в области блокчейна, ее основная функция заключается в предоставлении внешних данных для смарт-контрактов. Будучи мостом между смарт-контрактами и реальным миром, Машина Oracle играет незаменимую роль в экосистеме блокчейна.
Например, если мы развернем смарт-контракт на Ethereum, который требует получения объема торгов нефтью за определенную дату, поскольку сам контракт не может напрямую получить внешние данные, нам понадобится Машина Oracle. Конкретный процесс таков: смарт-контракт записывает необходимую информацию в журналы событий, а процесс вне цепи отслеживает и отвечает на этот запрос, затем передает необходимые данные смарт-контракту через транзакцию в цепи.
! Chainlink (Часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Среди многочисленных проектов Машина Oracle, Chainlink выделяется своими децентрализованными характеристиками и долей рынка. Chainlink создал экономический механизм стимулов через токен LINK, образовав благоприятную циклическую экосистему. Его основная функция основана на модели запроса/ответа на основе токена LINK.
! Chainlink (часть 1) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Chainlink использует стандарт ERC677, который является расширением ERC20 и добавляет метод transferAndCall. Этот метод объединяет платежи и запросы на услуги, лучше удовлетворяя бизнес-требования Машины Oracle. Когда пользователь вызывает transferAndCall для перевода, помимо обычного перевода ERC20, также будет вызван метод onTokenTransfer контракта получателя.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
В контракте oracle Chainlink метод onTokenTransfer сначала выполняет ряд проверок безопасности, включая проверку передаваемого токена, длины данных и селектора функции и т.д. После проверки контракт генерирует уникальный requestId, устанавливает время истечения и инициирует событие OracleRequest. Это событие содержит подробную информацию о запросе, такую как формат данных, адрес обратного вызова и т.д.
После того как узел вне цепи обнаружит событие OracleRequest, он разберет информацию о запросе, получит необходимые данные через API, а затем вызовет метод fulfillOracleRequest контракта oracle, чтобы передать данные в цепь. Этот метод выполнит ряд проверок, а затем вызовет функцию обратного вызова контракта запросчика, завершив весь процесс услуги Машина Oracle.
! Chainlink (Часть 1) из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Для разработчиков Chainlink также предоставляет более удобные услуги ценового Машина Oracle. Каждая торговая пара имеет соответствующий Price Feed (то есть AggregatorProxy), разработчики могут напрямую вызывать эти контракты для получения актуальных данных о ценах, не указывая URL-адрес источника данных самостоятельно. В большинстве случаев достаточно вызвать метод latestRoundData)(, чтобы получить актуальную цену.
Стоит отметить, что для торговых пар, ценообразование которых осуществляется в USD, точность цены обычно унифицирована на уровне 8 знаков, что упрощает процесс обработки цен различных токенов.
! Chainlink Часть 1 из серии Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(