Чтобы избежать единой точки отказа, некоторые Машина Oracle услуги используют распределенный дизайн. Например, для услуги предоставления цены BTC в долларах США, одна известная платформа Машина Oracle собирает 31 источник цен для предоставления услуг пользователям.
Исходный код контракта этого агрегатора можно просмотреть на блокчейне Ethereum. При вызове метода transmitters в контракте можно увидеть все оффлайн Машина Oracle, включенные в этот агрегатор.
Каждая оффчейн Машина Oracle может предоставлять данные о ценах, вызывая метод transmit в ответ на запросы пользователей в агрегаторе. Эти оффчейн Машины Oracle представляют собой внешние учетные записи (EOA), которые не только предоставляют данные о ценах для агрегатора BTC/USD, но также могут предоставлять данные о ценах для других агрегаторов (, таких как ETH/USD).
Обработка цепочных контрактов примерно следующая:
Сначала считываем текущее состояние контракта и проводим ряд проверок.
После проверки выполните некоторые подготовительные работы.
Затем используйте ecrecover() для проверки каждого подписанного данных, чтобы удостовериться, что значение hash соответствует hash, сделанному для _report. Также проверьте, является ли роль подписавшегося Signer, и проверьте, есть ли дублирование подписей.
Наконец, проверьте, расположены ли наблюдения в порядке. Из отсортированных наблюдений выберите медиану median и убедитесь, что медиана не превышает верхний и нижний пороги. Если все в порядке, запишите ответ Машины Oracle в s_transmissions. Кроме того, необходимо провести проверку ответа.
Здесь после серии вызовов в конечном итоге будет вызван метод validate контракта Машина Oracle с определенной ценой, ключевой момент заключается в том, чтобы сравнить, находится ли отклонение цен, предоставленных обеими Машинами Oracle, в пределах приемлемого диапазона.
! Chainlink (часть 2) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-855e7db6fb0607a91a3fa63b51fcc2c9.webp)
Регистратор кормов
Чтобы повысить гибкость и снизить затраты на управление, некоторые платформы запустили Реестр Лент. Его можно рассматривать как агрегатор PriceFeeds, который уже агрегировал несколько priceFeed. С его помощью пользователю не нужно самостоятельно настраивать priceFeed, он может напрямую получать данные о ценах через Реестр Лент.
! Chainlink (Часть 2) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-28d519adb5b491a0596a00eed45731eb.webp)
Механизм ценообразования
Цена Машина Oracle обычно определяется путем агрегирования данных на нескольких уровнях, включая агрегацию источников данных, агрегацию операторов узлов и агрегацию сети Машина Oracle.
Самые первичные данные о ценах поступают в основном с различных централизованных и децентрализованных торговых платформ. Некоторые специализированные сервисы агрегации данных собирают первичные данные о ценах с этих платформ и обрабатывают их, выполняя взвешенные расчеты на основе объема торгов, ликвидности и временных различий. Это агрегация данных на первом уровне.
Второй уровень — это агрегирование операторов узлов. Каждый оператор узлов отвечает за запуск основного программного обеспечения, получение данных о ценах от нескольких независимых поставщиков услуг агрегирования данных и вычисление медианы, удаляя выбросы и время простоя API.
Последний уровень представляет собой агрегат всей сети Машина Oracle, часто используемый способ — это вычисление медианы данных, когда количество узлов-ответчиков достигает установленного значения.
Обновление цены обычно требует удовлетворения одному из двух триггерных параметров: порогу отклонения или порогу сердцебиения. Эти два параметра могут различаться для разных источников цен.
В целом, некоторые известные платформы Машина Oracle имеют удобный и безопасный доступ к прогнозам цен, однако из-за наличия порога отклонения в механизме обновления цен, обновления происходят медленно, что делает их подходящими для приложений, не чувствительных к обновлениям цен. Это и есть их ограничение, не позволяющее применять их во всех сценариях.
! Chainlink Часть 2 из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-cec5b2c5581a3e9abce8f2d60b1980b1.webp)
На этой странице может содержаться сторонний контент, который предоставляется исключительно в информационных целях (не в качестве заявлений/гарантий) и не должен рассматриваться как поддержка взглядов компании Gate или как финансовый или профессиональный совет. Подробности смотрите в разделе «Отказ от ответственности» .
21 Лайков
Награда
21
8
Репост
Поделиться
комментарий
0/400
CryptoFortuneTeller
· 08-05 03:20
Достаточно ли 31 источника? Я немного волнуюсь.
Посмотреть ОригиналОтветить0
CountdownToBroke
· 08-05 02:38
Эта штука действительно может избежать использования клиповых купонов?
Посмотреть ОригиналОтветить0
WealthCoffee
· 08-02 23:24
Распределённые интересны, наконец-то не нужно смотреть на лица людей.
Посмотреть ОригиналОтветить0
HashBrownies
· 08-02 07:13
31 источников данных, всё время кажется, что этого недостаточно~
Посмотреть ОригиналОтветить0
RektDetective
· 08-02 07:08
Целый день смотрю, как учреждения снимают штаны, в конце концов, хватит ли мне этого?
Посмотреть ОригиналОтветить0
GasFeeCrier
· 08-02 07:00
Хороший парень, голова кружится, Газ маленький принц
Посмотреть ОригиналОтветить0
NFTArchaeologis
· 08-02 06:57
в блокчейне код читается с изяществом, подобным запечатанным текстам.
Посмотреть ОригиналОтветить0
MEV_Whisperer
· 08-02 06:56
Собирать так много, какой в этом смысл? По-прежнему нет точности.
Распределенная система ценовых Машин Oracle: Многоуровневая агрегация и оптимизация реестра потоков
Система распределенной цены Машина Oracle
Чтобы избежать единой точки отказа, некоторые Машина Oracle услуги используют распределенный дизайн. Например, для услуги предоставления цены BTC в долларах США, одна известная платформа Машина Oracle собирает 31 источник цен для предоставления услуг пользователям.
Исходный код контракта этого агрегатора можно просмотреть на блокчейне Ethereum. При вызове метода transmitters в контракте можно увидеть все оффлайн Машина Oracle, включенные в этот агрегатор.
Каждая оффчейн Машина Oracle может предоставлять данные о ценах, вызывая метод transmit в ответ на запросы пользователей в агрегаторе. Эти оффчейн Машины Oracle представляют собой внешние учетные записи (EOA), которые не только предоставляют данные о ценах для агрегатора BTC/USD, но также могут предоставлять данные о ценах для других агрегаторов (, таких как ETH/USD).
Обработка цепочных контрактов примерно следующая:
Сначала считываем текущее состояние контракта и проводим ряд проверок.
После проверки выполните некоторые подготовительные работы.
Затем используйте ecrecover() для проверки каждого подписанного данных, чтобы удостовериться, что значение hash соответствует hash, сделанному для _report. Также проверьте, является ли роль подписавшегося Signer, и проверьте, есть ли дублирование подписей.
Наконец, проверьте, расположены ли наблюдения в порядке. Из отсортированных наблюдений выберите медиану median и убедитесь, что медиана не превышает верхний и нижний пороги. Если все в порядке, запишите ответ Машины Oracle в s_transmissions. Кроме того, необходимо провести проверку ответа.
Здесь после серии вызовов в конечном итоге будет вызван метод validate контракта Машина Oracle с определенной ценой, ключевой момент заключается в том, чтобы сравнить, находится ли отклонение цен, предоставленных обеими Машинами Oracle, в пределах приемлемого диапазона.
! Chainlink (часть 2) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-855e7db6fb0607a91a3fa63b51fcc2c9.webp)
Регистратор кормов
Чтобы повысить гибкость и снизить затраты на управление, некоторые платформы запустили Реестр Лент. Его можно рассматривать как агрегатор PriceFeeds, который уже агрегировал несколько priceFeed. С его помощью пользователю не нужно самостоятельно настраивать priceFeed, он может напрямую получать данные о ценах через Реестр Лент.
! Chainlink (Часть 2) из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-28d519adb5b491a0596a00eed45731eb.webp)
Механизм ценообразования
Цена Машина Oracle обычно определяется путем агрегирования данных на нескольких уровнях, включая агрегацию источников данных, агрегацию операторов узлов и агрегацию сети Машина Oracle.
Самые первичные данные о ценах поступают в основном с различных централизованных и децентрализованных торговых платформ. Некоторые специализированные сервисы агрегации данных собирают первичные данные о ценах с этих платформ и обрабатывают их, выполняя взвешенные расчеты на основе объема торгов, ликвидности и временных различий. Это агрегация данных на первом уровне.
Второй уровень — это агрегирование операторов узлов. Каждый оператор узлов отвечает за запуск основного программного обеспечения, получение данных о ценах от нескольких независимых поставщиков услуг агрегирования данных и вычисление медианы, удаляя выбросы и время простоя API.
Последний уровень представляет собой агрегат всей сети Машина Oracle, часто используемый способ — это вычисление медианы данных, когда количество узлов-ответчиков достигает установленного значения.
Обновление цены обычно требует удовлетворения одному из двух триггерных параметров: порогу отклонения или порогу сердцебиения. Эти два параметра могут различаться для разных источников цен.
В целом, некоторые известные платформы Машина Oracle имеют удобный и безопасный доступ к прогнозам цен, однако из-за наличия порога отклонения в механизме обновления цен, обновления происходят медленно, что делает их подходящими для приложений, не чувствительных к обновлениям цен. Это и есть их ограничение, не позволяющее применять их во всех сценариях.
! Chainlink Часть 2 из серии Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-cec5b2c5581a3e9abce8f2d60b1980b1.webp)