Оракул-машина технологічний аналіз: на прикладі Chainlink
У блокчейн-екосистемі оракул-машина відіграє надзвичайно важливу роль, вона є мостом між смарт-контрактами та зовнішнім світом. Основна функція оракул-машини полягає в наданні поза-ланцюгових даних для смарт-контрактів на блокчейні, що дозволяє контрактам отримувати та обробляти інформацію з реального світу.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних про обсяги торгівлі нафтою за певний день. Оскільки сам смарт-контракт не може безпосередньо отримувати дані з зовнішніх джерел, тут потрібен Оракул-машина для допомоги. Контракт запише необхідну інформацію в журнал подій, після чого процес поза ланцюгом буде слухати цей журнал. Коли буде виявлено запит, цей процес виконає виклик відповідних методів контракту, подавши транзакцію на ланцюг, і передасть дані про обсяги торгівлі нафтою за вказану дату в смарт-контракт.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Серед численних проектів оракулів, Chainlink займає найбільшу частку ринку. Chainlink — це децентралізована мережа оракулів, що має на меті забезпечити блокчейн даними з реального світу безпечно та надійно. Вона побудована навколо токена LINK на основі основних принципів оракулів, створюючи екосистему, що керується економічними стимулами. Активація оракулів Chainlink потребує передачі токенів LINK, які є спеціальними токенами ERC677 на мережі Ethereum.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 був запропонований Chainlink для задоволення сценаріїв служби оракулів. Він додає метод transferAndCall на основі стандарту ERC20, об'єднуючи платіж та запит на послугу в одне. Коли користувач викликає transferAndCall для переведення, окрім виконання функції переведення ERC20, якщо адреса отримувача є адресою контракту, також буде викликано метод onTokenTransfer цієї адреси.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
У дизайні Chainlink метод onTokenTransfer контракту оракула спочатку перевіряє, чи є переказ токеном LINK, а потім перевіряє дійсність запитуваних даних. Після ряду перевірок безпеки контракт генерує подію OracleRequest, яка містить детальні дані запиту.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Позашвидкісні вузли будуть слухати ці події OracleRequest. Коли буде виявлено новий запит, вузол проаналізує дані в події, викликавши API для отримання необхідної інформації, а потім, шляхом подання транзакції, викличе метод fulfillOracleRequest контракту оракулу, щоб передати дані в мережу. Цей метод, після проведення ряду перевірок, поверне результат через раніше записану адресу зворотного виклику та функцію до контракту запитувача.
![Оракул-машина детальний аналіз серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для розробників, якщо потрібно лише отримати дані про ціни існуючих торгових пар, можна безпосередньо використовувати інтерфейс Price Feed, наданий Chainlink. Кожна торговельна пара має окремий Price Feed (також відомий як Aggregator), насправді це контракт AggregatorProxy. Ці інтерфейси надають кілька ключових методів запиту, включаючи отримання точності ціни, опису торгової пари, інформації про версію, а також отримання історичних даних про ціни та останніх цін за ідентифікатором раунду.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
У більшості випадків контракти можуть тільки читати останню ціну. Використовуючи метод latestRoundData)(, можна отримати останні дані про ціну, де параметр answer – це остання ціна. Варто зазначити, що більшість торгових пар, ціна яких виражена в доларах США, має єдину точність до 8 знаків після коми, що спрощує обробку точності між різними токенами.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(
Таким чином, Chainlink надає потужне та гнучке рішення для оракулів у світі блокчейн, що дозволяє смарт-контрактам безпечно та надійно отримувати і використовувати дані з зовнішніх джерел.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-06e79466fe62a401c6140e09e5bd5401.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
9 лайків
Нагородити
9
6
Поділіться
Прокоментувати
0/400
Blockwatcher9000
· 07-29 21:58
Дивитися на link цілком нормально.
Переглянути оригіналвідповісти на0
SchroedingerMiner
· 07-29 21:58
Це ж і є платний міст.
Переглянути оригіналвідповісти на0
metaverse_hermit
· 07-29 21:55
link найкращий у світі!
Переглянути оригіналвідповісти на0
GateUser-9ad11037
· 07-29 21:53
екосистема link останнім часом досить потужна
Переглянути оригіналвідповісти на0
HypotheticalLiquidator
· 07-29 21:52
Оракул-машина також має ризики управління даними. Хто перший вибухне в цьому великому дампі?
Оракул-машина Chainlink: міст між смартконтрактами та реальним світом
Оракул-машина технологічний аналіз: на прикладі Chainlink
У блокчейн-екосистемі оракул-машина відіграє надзвичайно важливу роль, вона є мостом між смарт-контрактами та зовнішнім світом. Основна функція оракул-машини полягає в наданні поза-ланцюгових даних для смарт-контрактів на блокчейні, що дозволяє контрактам отримувати та обробляти інформацію з реального світу.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних про обсяги торгівлі нафтою за певний день. Оскільки сам смарт-контракт не може безпосередньо отримувати дані з зовнішніх джерел, тут потрібен Оракул-машина для допомоги. Контракт запише необхідну інформацію в журнал подій, після чого процес поза ланцюгом буде слухати цей журнал. Коли буде виявлено запит, цей процес виконає виклик відповідних методів контракту, подавши транзакцію на ланцюг, і передасть дані про обсяги торгівлі нафтою за вказану дату в смарт-контракт.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
Серед численних проектів оракулів, Chainlink займає найбільшу частку ринку. Chainlink — це децентралізована мережа оракулів, що має на меті забезпечити блокчейн даними з реального світу безпечно та надійно. Вона побудована навколо токена LINK на основі основних принципів оракулів, створюючи екосистему, що керується економічними стимулами. Активація оракулів Chainlink потребує передачі токенів LINK, які є спеціальними токенами ERC677 на мережі Ethereum.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт ERC677 був запропонований Chainlink для задоволення сценаріїв служби оракулів. Він додає метод transferAndCall на основі стандарту ERC20, об'єднуючи платіж та запит на послугу в одне. Коли користувач викликає transferAndCall для переведення, окрім виконання функції переведення ERC20, якщо адреса отримувача є адресою контракту, також буде викликано метод onTokenTransfer цієї адреси.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
У дизайні Chainlink метод onTokenTransfer контракту оракула спочатку перевіряє, чи є переказ токеном LINK, а потім перевіряє дійсність запитуваних даних. Після ряду перевірок безпеки контракт генерує подію OracleRequest, яка містить детальні дані запиту.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Позашвидкісні вузли будуть слухати ці події OracleRequest. Коли буде виявлено новий запит, вузол проаналізує дані в події, викликавши API для отримання необхідної інформації, а потім, шляхом подання транзакції, викличе метод fulfillOracleRequest контракту оракулу, щоб передати дані в мережу. Цей метод, після проведення ряду перевірок, поверне результат через раніше записану адресу зворотного виклику та функцію до контракту запитувача.
![Оракул-машина детальний аналіз серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Для розробників, якщо потрібно лише отримати дані про ціни існуючих торгових пар, можна безпосередньо використовувати інтерфейс Price Feed, наданий Chainlink. Кожна торговельна пара має окремий Price Feed (також відомий як Aggregator), насправді це контракт AggregatorProxy. Ці інтерфейси надають кілька ключових методів запиту, включаючи отримання точності ціни, опису торгової пари, інформації про версію, а також отримання історичних даних про ціни та останніх цін за ідентифікатором раунду.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
У більшості випадків контракти можуть тільки читати останню ціну. Використовуючи метод latestRoundData)(, можна отримати останні дані про ціну, де параметр answer – це остання ціна. Варто зазначити, що більшість торгових пар, ціна яких виражена в доларах США, має єдину точність до 8 знаків після коми, що спрощує обробку точності між різними токенами.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(
Таким чином, Chainlink надає потужне та гнучке рішення для оракулів у світі блокчейн, що дозволяє смарт-контрактам безпечно та надійно отримувати і використовувати дані з зовнішніх джерел.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-06e79466fe62a401c6140e09e5bd5401.webp(