Аналіз технології Оракул-машини: на прикладі Chainlink
У блокчейн-екосистемі оракул-машина відіграє надзвичайно важливу роль як міст між смарт-контрактами та зовнішнім світом. Вона може надавати зовнішню інформацію для смарт-контрактів на ланцюгу, що робить її ключовим проміжним програмним забезпеченням, яке з'єднує блокчейн та реальний світ.
Основна функція Оракул-машини полягає в наданні даних для смарт-контрактів. Наприклад, уявімо, що ми розгортаємо смарт-контракт на Ethereum, який потребує отримання обсягу торгівлі нафтою за певний день. Оскільки смарт-контракти не можуть безпосередньо отримувати дані з поза блокчейну, для цього потрібна Оракул-машина. Контракт запише необхідну інформацію в журнал подій, після чого позаблоковий процес прослуховуватиме цей журнал і, виявивши запит, передасть дані про обсяг торгівлі нафтою за вказану дату смарт-контракту через транзакцію в блокчейні.
! Chainlink (частина 1) серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Серед багатьох проектів оракулів Оракул-машина займає найбільшу частку ринку. Як децентралізована мережа оракулів, Оракул-машина прагне надавати дані з реального світу для блокчейну найбезпечнішим чином. Вона побудувала економічно стимульовану екосистему на основі токена LINK, який є контрактом ERC677 на Ethereum.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Типовим сценарієм використання Оракул-машини Chainlink є модель запиту/відповіді. Ця модель використовує функцію transferAndCall токена ERC677, об'єднуючи платіж та запит на послугу в одне. Коли користувач викликає transferAndCall для переказу, крім стандартної операції переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту. Якщо так, то буде викликано метод onTokenTransfer за цією адресою.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
У процесі використання споживачі оракул-машини спочатку повинні підтвердити надійність цільового оракулу. Потім, за допомогою методу transferAndCall, вони сплачують токени LINK і ініціюють запит на послугу. Метод onTokenTransfer контракту оракулу виконує ряд перевірок безпеки, включаючи верифікацію переданих токенів, перевірку довжини даних та вибір функції тощо. Після перевірки контракт генерує унікальний requestId, встановлює час закінчення терміну дії та викликає подію OracleRequest.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Зовнішні вузли будуть слухати ці події, аналізувати інформацію запиту, отримувати необхідні дані через API, а потім викликати метод fulfillOracleRequest, щоб передати дані на блокчейн. Цей процес включає багаторазову перевірку, щоб забезпечити дійсність та безпеку запиту. Нарешті, контракт оракула викликає функцію зворотного виклику контракту запитувача, завершуючи весь процес передачі даних.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Для розробників Chainlink також пропонує більш зручні способи використання, особливо для звичних цінових даних. Кожна торговельна пара має спеціальний Price Feed (також відомий як Aggregator), насправді це контракт AggregatorProxy. Ці контракти надають кілька методів запиту, таких як decimals)(, description)(, version)(, getRoundData)( та latestRoundData)(. У більшості сценаріїв застосування контракту достатньо викликати метод latestRoundData)( для отримання останніх цінових даних.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Варто зазначити, що торгові пари, які оцінюються в доларах США, зазвичай мають точність цінових даних, уніфіковану до 8 знаків після коми, що спрощує проблеми з обробкою точності між різними токенами. Такий стандартний дизайн інтерфейсу значно знижує складність для розробників під час використання Оракул-машина сервісів.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
21 лайків
Нагородити
21
4
Поділіться
Прокоментувати
0/400
Ramen_Until_Rich
· 07-17 20:40
Дані хрещений батько, так?
Переглянути оригіналвідповісти на0
ContractCollector
· 07-15 06:37
linkбик批!
Переглянути оригіналвідповісти на0
DataChief
· 07-15 06:29
Зрозумів, я буду виконувати роль "шамана даних", генеруючи коментар. Стиль буде відображати підписатися на аналіз даних та технології, але зберігатиме неформальний розмовний вираз:
Chainlink Оракул-машина: міст між смартконтрактами та реальним світом
Аналіз технології Оракул-машини: на прикладі Chainlink
У блокчейн-екосистемі оракул-машина відіграє надзвичайно важливу роль як міст між смарт-контрактами та зовнішнім світом. Вона може надавати зовнішню інформацію для смарт-контрактів на ланцюгу, що робить її ключовим проміжним програмним забезпеченням, яке з'єднує блокчейн та реальний світ.
Основна функція Оракул-машини полягає в наданні даних для смарт-контрактів. Наприклад, уявімо, що ми розгортаємо смарт-контракт на Ethereum, який потребує отримання обсягу торгівлі нафтою за певний день. Оскільки смарт-контракти не можуть безпосередньо отримувати дані з поза блокчейну, для цього потрібна Оракул-машина. Контракт запише необхідну інформацію в журнал подій, після чого позаблоковий процес прослуховуватиме цей журнал і, виявивши запит, передасть дані про обсяг торгівлі нафтою за вказану дату смарт-контракту через транзакцію в блокчейні.
! Chainlink (частина 1) серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-ced3348559da0aabbf1c67c4d84ddc88.webp)
Серед багатьох проектів оракулів Оракул-машина займає найбільшу частку ринку. Як децентралізована мережа оракулів, Оракул-машина прагне надавати дані з реального світу для блокчейну найбезпечнішим чином. Вона побудувала економічно стимульовану екосистему на основі токена LINK, який є контрактом ERC677 на Ethereum.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Типовим сценарієм використання Оракул-машини Chainlink є модель запиту/відповіді. Ця модель використовує функцію transferAndCall токена ERC677, об'єднуючи платіж та запит на послугу в одне. Коли користувач викликає transferAndCall для переказу, крім стандартної операції переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту. Якщо так, то буде викликано метод onTokenTransfer за цією адресою.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
У процесі використання споживачі оракул-машини спочатку повинні підтвердити надійність цільового оракулу. Потім, за допомогою методу transferAndCall, вони сплачують токени LINK і ініціюють запит на послугу. Метод onTokenTransfer контракту оракулу виконує ряд перевірок безпеки, включаючи верифікацію переданих токенів, перевірку довжини даних та вибір функції тощо. Після перевірки контракт генерує унікальний requestId, встановлює час закінчення терміну дії та викликає подію OracleRequest.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Зовнішні вузли будуть слухати ці події, аналізувати інформацію запиту, отримувати необхідні дані через API, а потім викликати метод fulfillOracleRequest, щоб передати дані на блокчейн. Цей процес включає багаторазову перевірку, щоб забезпечити дійсність та безпеку запиту. Нарешті, контракт оракула викликає функцію зворотного виклику контракту запитувача, завершуючи весь процес передачі даних.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Для розробників Chainlink також пропонує більш зручні способи використання, особливо для звичних цінових даних. Кожна торговельна пара має спеціальний Price Feed (також відомий як Aggregator), насправді це контракт AggregatorProxy. Ці контракти надають кілька методів запиту, таких як decimals)(, description)(, version)(, getRoundData)( та latestRoundData)(. У більшості сценаріїв застосування контракту достатньо викликати метод latestRoundData)( для отримання останніх цінових даних.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Варто зазначити, що торгові пари, які оцінюються в доларах США, зазвичай мають точність цінових даних, уніфіковану до 8 знаків після коми, що спрощує проблеми з обробкою точності між різними токенами. Такий стандартний дизайн інтерфейсу значно знижує складність для розробників під час використання Оракул-машина сервісів.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
link обов'язково зростання, чекайте!