Оракул-машина технологія детально: на прикладі Chainlink
Оракул-машина є ключовою інфраструктурою в області блокчейн, що з'єднує смарт-контракти з зовнішнім світом. Вона виступає як система посередник, здатна надавати зовнішню інформацію даних для смарт-контрактів на ланцюзі. Основна функція оракул-машини полягає в постачанні даних для смарт-контрактів на блокчейні.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних обсягу торгівлі нафтою за певну дату. Оскільки смарт-контракт сам по собі не може безпосередньо отримувати дані з реального світу, що знаходяться поза ланцюгом, для цього потрібно використовувати Оракул-машина. Конкретний процес виглядає так: спочатку смарт-контракт записує в журнал подій запит на дані обсягу торгівлі нафтою за потрібну дату, потім поза ланцюгом запускається процес, який моніторить та підписується на цей журнал подій. Коли цей процес виявляє запит у транзакції, він викликає відповідні методи контракту, подаючи транзакцію в ланцюг, щоб завантажити інформацію про обсяг торгівлі нафтою за зазначену дату в смарт-контракт.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
На ринку оракулів Оракул-машина Chainlink займає найбільшу частку ринку. Як децентралізований проект оракулів, Chainlink має на меті забезпечити блокчейн даними, які генеруються у реальному світі, найбезпечнішим способом. На основі основних принципів оракулів, Chainlink навколо токена LINK створив екосистему з позитивним циклом через економічні стимули. Оракул-машина Chainlink потребує здійснення переказу токенів LINK для активації. LINK є контрактом ERC677 в мережі Ethereum, а функції оракулів, виконані на основі токена LINK, належать до моделі запит/відповідь.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт токенів ERC677 додає метод transferAndCall на основі ERC20. Цей метод об'єднує платіж і запит на послугу в один, задовольняючи потреби бізнес-сценаріїв оракул-машини. Коли користувач здійснює переказ через transferAndCall, крім переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту; якщо так, то викликається метод onTokenTransfer цієї адреси.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Перед запитом послуг оракул-машини, користувачеві потрібно спочатку підтвердити надійність цього оракул, оскільки оракул надає послуги споживачам лише після оплати. Коли споживач оракул-машини використовує метод transferAndCall для сплати збору та запиту послуги, метод onTokenTransfer контракту оракул-машини виконує ряд перевірок безпеки, включаючи перевірку, чи є переказ токеном LINK, перевірку, чи не перевищує довжина даних ліміт, перевірку селектора функції тощо. Лише після успішного проходження перевірок буде виконано виклик методу oracleRequest контракту оракул-машини через deleGatecall.
![Оракул-машина детальний розгляд серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Метод oracleRequest генерує унікальний requestId, встановлює час закінчення і викликає подію OracleRequest. Ця подія містить дані запиту, закодовані у форматі CBOR. Офлайн-вузли слухатимуть цю подію, розшифровуватимуть інформацію про запит, а потім через API отримуватимуть необхідні дані, а в кінці через подачу транзакції викликатимуть метод fulfillOracleRequest для передачі даних на ланцюг.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Метод fulfillOracleRequest виконує ряд перевірок, включаючи перевірку прав виклику, перевірку дійсності запиту тощо. Після успішної перевірки буде зафіксовано кількість токенів, які можна вилучити, і буде викликано функцію зворотного виклику контракту запитувача для повернення даних.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Для розробників, якщо вони хочуть використовувати вже наявні дані про ціни валютних пар, вони можуть безпосередньо викликати інтерфейс Price Feed, наданий офіційно. Кожна валютна пара має окремий Price Feed), тобто Aggregator(, насправді це контракт AggregatorProxy. Розробники можуть отримати останні дані про ціни, викликавши метод latestRoundData)(, де параметр answer є останньою ціною. Більшість валютних пар, які оцінюються в USD, мають однакову точність у 8 знаків, що спрощує обробку точності між різними токенами.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
17 лайків
Нагородити
17
5
Поділіться
Прокоментувати
0/400
PebbleHander
· 11год тому
Так воно і є.
Переглянути оригіналвідповісти на0
BankruptWorker
· 11год тому
Так важко, що я відмовляюся боротися.
Переглянути оригіналвідповісти на0
CryptoGoldmine
· 11год тому
Минулого року я заробив 200 разів на ринку LINK, повністю спираючись на технічний аналіз.
Переглянути оригіналвідповісти на0
TestnetScholar
· 12год тому
link знову списав домашнє завдання
Переглянути оригіналвідповісти на0
Web3Educator
· 12год тому
фундаментально захоплюючі речі, дозвольте мені розкласти це для моїх студентів web3...
Chainlink Оракул-машина: міст міст між Блокчейн та реальним світом
Оракул-машина технологія детально: на прикладі Chainlink
Оракул-машина є ключовою інфраструктурою в області блокчейн, що з'єднує смарт-контракти з зовнішнім світом. Вона виступає як система посередник, здатна надавати зовнішню інформацію даних для смарт-контрактів на ланцюзі. Основна функція оракул-машини полягає в постачанні даних для смарт-контрактів на блокчейні.
Наприклад, припустимо, що ми розгорнули смарт-контракт в мережі Ethereum, який потребує отримання даних обсягу торгівлі нафтою за певну дату. Оскільки смарт-контракт сам по собі не може безпосередньо отримувати дані з реального світу, що знаходяться поза ланцюгом, для цього потрібно використовувати Оракул-машина. Конкретний процес виглядає так: спочатку смарт-контракт записує в журнал подій запит на дані обсягу торгівлі нафтою за потрібну дату, потім поза ланцюгом запускається процес, який моніторить та підписується на цей журнал подій. Коли цей процес виявляє запит у транзакції, він викликає відповідні методи контракту, подаючи транзакцію в ланцюг, щоб завантажити інформацію про обсяг торгівлі нафтою за зазначену дату в смарт-контракт.
! Chainlink (частина 1) із серії Oracle Explainer](https://img-cdn.gateio.im/webp-social/moments-30dffd84ae22b9fa8f93929cd523ef99.webp0192837465674839201
На ринку оракулів Оракул-машина Chainlink займає найбільшу частку ринку. Як децентралізований проект оракулів, Chainlink має на меті забезпечити блокчейн даними, які генеруються у реальному світі, найбезпечнішим способом. На основі основних принципів оракулів, Chainlink навколо токена LINK створив екосистему з позитивним циклом через економічні стимули. Оракул-машина Chainlink потребує здійснення переказу токенів LINK для активації. LINK є контрактом ERC677 в мережі Ethereum, а функції оракулів, виконані на основі токена LINK, належать до моделі запит/відповідь.
! Chainlink Частина 1 серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-36eedcde4ebee55bf1c0e6c5f02934df.webp(
Стандарт токенів ERC677 додає метод transferAndCall на основі ERC20. Цей метод об'єднує платіж і запит на послугу в один, задовольняючи потреби бізнес-сценаріїв оракул-машини. Коли користувач здійснює переказ через transferAndCall, крім переказу ERC20, також перевіряється, чи є адреса отримувача адресою контракту; якщо так, то викликається метод onTokenTransfer цієї адреси.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-d05f88f78a86510920ca9cb9cb97fcd6.webp(
Перед запитом послуг оракул-машини, користувачеві потрібно спочатку підтвердити надійність цього оракул, оскільки оракул надає послуги споживачам лише після оплати. Коли споживач оракул-машини використовує метод transferAndCall для сплати збору та запиту послуги, метод onTokenTransfer контракту оракул-машини виконує ряд перевірок безпеки, включаючи перевірку, чи є переказ токеном LINK, перевірку, чи не перевищує довжина даних ліміт, перевірку селектора функції тощо. Лише після успішного проходження перевірок буде виконано виклик методу oracleRequest контракту оракул-машини через deleGatecall.
![Оракул-машина детальний розгляд серії Chainlink (частина 1)])https://img-cdn.gateio.im/webp-social/moments-dae23b36c6a83626aa95ba58fa8dbee5.webp(
Метод oracleRequest генерує унікальний requestId, встановлює час закінчення і викликає подію OracleRequest. Ця подія містить дані запиту, закодовані у форматі CBOR. Офлайн-вузли слухатимуть цю подію, розшифровуватимуть інформацію про запит, а потім через API отримуватимуть необхідні дані, а в кінці через подачу транзакції викликатимуть метод fulfillOracleRequest для передачі даних на ланцюг.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-1994fff156354700fda0609f9e317726.webp(
Метод fulfillOracleRequest виконує ряд перевірок, включаючи перевірку прав виклику, перевірку дійсності запиту тощо. Після успішної перевірки буде зафіксовано кількість токенів, які можна вилучити, і буде викликано функцію зворотного виклику контракту запитувача для повернення даних.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-bb84d77f358852f47e9adf3e74ba5bf9.webp(
Для розробників, якщо вони хочуть використовувати вже наявні дані про ціни валютних пар, вони можуть безпосередньо викликати інтерфейс Price Feed, наданий офіційно. Кожна валютна пара має окремий Price Feed), тобто Aggregator(, насправді це контракт AggregatorProxy. Розробники можуть отримати останні дані про ціни, викликавши метод latestRoundData)(, де параметр answer є останньою ціною. Більшість валютних пар, які оцінюються в USD, мають однакову точність у 8 знаків, що спрощує обробку точності між різними токенами.
! Chainlink (частина 1) із серії Oracle Explainer])https://img-cdn.gateio.im/webp-social/moments-527bd8714534f5f06ccdd9afe40b253a.webp(