У екосистемі блокчейну оракул-машина відіграє ключову роль у зв'язку смарт-контрактів з зовнішнім світом. Як інфраструктура, система оракул-машини може надавати інформацію та дані ззовні для смарт-контрактів на ланцюзі.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних про обсяги торгівлі нафтою за певний день. Оскільки смарт-контракт сам по собі не може безпосередньо отримувати дані з реального світу поза ланцюгом, для реалізації цієї функції потрібно вдатися до оракул-машини. Конкретний процес: смарт-контракт записує обсяги торгівлі нафтою за потрібну дату в журнал подій, після чого поза ланцюгом запускається процес моніторингу, який підписується на цю подію. Як тільки буде виявлено відповідний запит, цей процес через подання транзакції на ланцюзі викликає відповідний метод контракту, передаючи інформацію про обсяги торгівлі нафтою за вказану дату смарт-контракту.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Серед багатьох проектів оракулів, Chainlink займає домінуючу позицію на ринку. Як децентралізоване рішення оракулів, Chainlink прагне надавати дані з реального світу для блокчейнів найбезпечнішим способом. Він побудував екосистему навколо токена LINK, що базується на основних принципах оракулів та формує позитивний цикл через економічні стимули. Активація оракулів Chainlink потребує передачі токенів LINK, а LINK є контрактом ERC677 в мережі Ethereum. Функції оракулів, виконані на основі токенів LINK ERC677, належать до моделі запит/відповідь.
![Оракул-машина детальний аналіз серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 додає метод transferAndCall на базі ERC20, що поєднує платіж і запит на послугу, краще задовольняючи потреби бізнес-сценаріїв оракулів. Коли користувач використовує transferAndCall для переказу, окрім звичайних операцій переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту. Якщо так, то буде викликаний метод onTokenTransfer цієї адреси.
![Оракул-машина детальний огляд серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
У процесі запиту послуг оракулів споживач спочатку повинен підтвердити надійність оракулів, оскільки перед наданням послуг потрібно внести попередню оплату. Метод onTokenTransfer оракульного контракту виконує ряд заходів безпеки, включаючи перевірку того, чи є переказ токеном LINK, перевірку, чи не перевищує довжина даних допустимі межі, перевірку вибору функції тощо. Після перевірки контракт генерує унікальний requestId, встановлює термін придатності та видає подію OracleRequest, що містить запитувані дані.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Після отримання запиту поза ланцюгом, вузол відповідає, викликавши метод fulfillOracleRequest. Цей метод проходить через ряд перевірок, включаючи перевірку прав виклику, перевірку дійсності запиту тощо. Після успішної перевірки вузол викликає функцію зворотного виклику контракту запитувача, повертаючи дані запитувачу.
![Оракул-машина детальний опис серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для розробників, якщо потрібно лише використовувати існуючі дані про ціни валютних пар, можна безпосередньо використовувати офіційний API Price Feed. Кожна валютна пара має незалежний Price Feed ), тобто AggregatorProxy(, який надає запитувані методи, включаючи decimals)(, description)(, version)(, getRoundData)( та latestRoundData)(. Серед них метод latestRoundData)( повертає параметр answer, який є останньою ціною. Варто зазначити, що для валютних пар, які оцінюються в доларах США, їхня точність зазвичай становить 8 знаків після коми.
![Оракул-машина деталі серії про Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Таким чином, розробники можуть зручно отримувати та використовувати дані про ціни в реальному часі, які надає оракул-машина на ланцюгу, без необхідності самостійно обробляти складні виклики 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
· 10год тому
Пиття алкоголю допомагає зрозуміти речі, які важко осмислити. Що розуміє ланцук?
Глибокий аналіз: Оракул-машина як зв'язує смартконтракти з зовнішнім світом
Оракул-машина технічна Глибина аналізу
У екосистемі блокчейну оракул-машина відіграє ключову роль у зв'язку смарт-контрактів з зовнішнім світом. Як інфраструктура, система оракул-машини може надавати інформацію та дані ззовні для смарт-контрактів на ланцюзі.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних про обсяги торгівлі нафтою за певний день. Оскільки смарт-контракт сам по собі не може безпосередньо отримувати дані з реального світу поза ланцюгом, для реалізації цієї функції потрібно вдатися до оракул-машини. Конкретний процес: смарт-контракт записує обсяги торгівлі нафтою за потрібну дату в журнал подій, після чого поза ланцюгом запускається процес моніторингу, який підписується на цю подію. Як тільки буде виявлено відповідний запит, цей процес через подання транзакції на ланцюзі викликає відповідний метод контракту, передаючи інформацію про обсяги торгівлі нафтою за вказану дату смарт-контракту.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Серед багатьох проектів оракулів, Chainlink займає домінуючу позицію на ринку. Як децентралізоване рішення оракулів, Chainlink прагне надавати дані з реального світу для блокчейнів найбезпечнішим способом. Він побудував екосистему навколо токена LINK, що базується на основних принципах оракулів та формує позитивний цикл через економічні стимули. Активація оракулів Chainlink потребує передачі токенів LINK, а LINK є контрактом ERC677 в мережі Ethereum. Функції оракулів, виконані на основі токенів LINK ERC677, належать до моделі запит/відповідь.
![Оракул-машина детальний аналіз серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 додає метод transferAndCall на базі ERC20, що поєднує платіж і запит на послугу, краще задовольняючи потреби бізнес-сценаріїв оракулів. Коли користувач використовує transferAndCall для переказу, окрім звичайних операцій переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту. Якщо так, то буде викликаний метод onTokenTransfer цієї адреси.
![Оракул-машина детальний огляд серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
У процесі запиту послуг оракулів споживач спочатку повинен підтвердити надійність оракулів, оскільки перед наданням послуг потрібно внести попередню оплату. Метод onTokenTransfer оракульного контракту виконує ряд заходів безпеки, включаючи перевірку того, чи є переказ токеном LINK, перевірку, чи не перевищує довжина даних допустимі межі, перевірку вибору функції тощо. Після перевірки контракт генерує унікальний requestId, встановлює термін придатності та видає подію OracleRequest, що містить запитувані дані.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Після отримання запиту поза ланцюгом, вузол відповідає, викликавши метод fulfillOracleRequest. Цей метод проходить через ряд перевірок, включаючи перевірку прав виклику, перевірку дійсності запиту тощо. Після успішної перевірки вузол викликає функцію зворотного виклику контракту запитувача, повертаючи дані запитувачу.
![Оракул-машина детальний опис серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для розробників, якщо потрібно лише використовувати існуючі дані про ціни валютних пар, можна безпосередньо використовувати офіційний API Price Feed. Кожна валютна пара має незалежний Price Feed ), тобто AggregatorProxy(, який надає запитувані методи, включаючи decimals)(, description)(, version)(, getRoundData)( та latestRoundData)(. Серед них метод latestRoundData)( повертає параметр answer, який є останньою ціною. Варто зазначити, що для валютних пар, які оцінюються в доларах США, їхня точність зазвичай становить 8 знаків після коми.
![Оракул-машина деталі серії про Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Таким чином, розробники можуть зручно отримувати та використовувати дані про ціни в реальному часі, які надає оракул-машина на ланцюгу, без необхідності самостійно обробляти складні виклики API та процеси перевірки даних.