Solidity:chainlink
Solidity:chainlink

Введение

Chainlink — это децентрализованная сеть Oracle, которая позволяет смарт-контрактам безопасно и надежно взаимодействовать с данными вне цепочки. Цель Chainlink — стать мостом между блокчейном и реальным миром, позволяя смарт-контрактам получать доступ к реальным данным, платежным системам, API и т. д., тем самым расширяя сферу их применения.

Вот некоторые из ключевых особенностей Chainlink:

1.Децентрализация:Chainlinkсеть Состоит из нескольких независимо работающих узлов.,Эти узлы предоставляют данные или выполняют вычисления.,Результаты затем передаются в смарт-контракт. Такая конструкция децентрализации может повысить надежность сети и безопасность.,Потому что даже если у некоторых узлов возникнут проблемы или они будут атакованы,Остальные узлы по-прежнему работают нормально。2.Разнообразие источников данных:ChainlinkМожет быть подключен к различнымданныеисточник,Включая, помимо прочего, финансовые рынки.,прогноз погоды,Информация о доставке,социальные сетиданныеждать。Это делаетсмарт-контракт Может использоваться в более широком диапазоне сценариев.。3.Вычисления вне сети:Помимо предоставленияданные,Chainlink также может выполнять Вычисление вне сети. Это означает, что смарт-контракт может делегировать Chainlink некоторые сложные или трудоемкие задачи.,тем самым экономя ончейнизвычислительные ресурсыисточник。4.безопасность:ChainlinkИспользует ряд технологий шифрования и механизмов безопасности.,Например, Соглашение об уровне децентрализованного обслуживания (Соглашение об уровне децентрализованного обслуживания).,dSLA),защищатьданныебезопасность и конфиденциальность。5.Легко интегрировать:ChainlinkПредоставляет полный набор инструментов и документации для разработчиков.,Это позволяет разработчикам легко интегрировать Chainlink в собственный смарт-контракт.

Как использовать

Чтобы внедрить Chainlink в смарт-контракт Solidity и использовать его функционал, необходимо выполнить следующие шаги:

1.Установить звено цепи:первый,Вам нужно в вашем проекте Установить звено цепь. Вы можете использовать npm (Node Package Менеджер) для установки. Откройте терминал в каталоге вашего проекта и выполните следующую команду:

2.Представляем цепочку:в твоемсмарт-контрактсередина,Вам нужно представиться Библиотека цепочки. Вот пример:

В этом примере мы представили

ChainlinkClient

, клиентская библиотека для взаимодействия с сетью Chainlink.

3.Использование Chainlink:Сейчас,Вы можете реализовать функциональность Chainlink в своих контрактах. Например,Вы можете создать функцию для запроса внешних данных:

В этом примере,Создаем запрос Chainlink,Указывается источник данных («http://api.example.com/data») и количество токенов LINK, подлежащих оплате (1 LINK). Затем,Мы отправили этот запрос。4.Обработать возвращенные данные:наконец,Вам необходимо создать функцию для обработки данных, возвращаемых Chainlink:

В этом примере,Мы создалиfulfillфункция,Эта функция будет вызвана, когда Chainlink вернет данные. Вы можете добавить свою собственную логику в эту функцию для Обработки возвращенных данных.

Вышеизложенное представляет собой введение и использование в Solidityсмарт-контракт. Chainlinkосновные шаги。пожалуйста Уведомление,Это просто базовый пример,Фактическое использование может быть более сложным. Вам следует прочитать официальную документацию Chainlink.,Узнайте больше подробностей и расширенных функций.

Пример

Проверить текущую цену ETH в смарт-контракте вы можете Сервис оракулов Chainlink. Оракулы Chainlink предоставляют цены в реальном времени на различные криптовалюты, включая ETH. Ниже приводится использование Оракул Chainlink запрашивает цену ETH:

Язык кода:javascript
копировать
// SPDX-License-Identifier: MIT
pragma solidity ^0.6.7;

import "@chainlink/contracts/src/v0.6/interfaces/AggregatorV3Interface.sol";

contract PriceConsumerV3 {

    AggregatorV3Interface internal priceFeed;

    /**
     * Network: Kovan
     * Aggregator: ETH/USD
     * Address: 0x9326BFA02ADD2366b30bacB125260Af641031331
     */
    constructor() public {
        priceFeed = AggregatorV3Interface(0x9326BFA02ADD2366b30bacB125260Af641031331);
    }

    /**
     * Returns the latest price
     */
    function getLatestPrice() public view returns (int) {
        (
            uint80 roundID, 
            int price,
            uint startedAt,
            uint timeStamp,
            uint80 answeredInRound
        ) = priceFeed.latestRoundData();
        return price;
    }
}

В этом примере,наспервыйпредставилChainlinkизAggregatorV3Interface。Затем,мы строимфункциясередина ИнициализировалAggregatorV3InterfaceПример,Укажите адрес оракула ETH/USD в тестовой сети Kovan.

Затем,Мы создалиgetLatestPriceфункция,этотфункция Оракула звалиизlatestRoundDataметод,Возвращены последние данные о ценах. Эта функция возвращает последнюю цену ETH в долларах США.

Уведомление,В этом примере используется адрес оракула в тестовой сети Kovan. в основной сети,Вам нужно использовать другой адрес. Адреса различных оракулов можно найти в документации Chainlink.

также,Цена, возвращаемая этим примером, является целым числом.,Он представляет собой наименьшую единицу цены ETH (то есть «вэй»).

Отказ от ответственности: эта работа распространяется под лицензией Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)[1]. Пожалуйста, укажите источник при ее использовании. Автор: мэнбин[2] блог: мэнбин[3] Гитхаб: mengbin92[4] cnblogs: Непреднамеренно полюбила воду[5] Сообщество разработчиков облачных технологий Tencent: Мюнстер[6]


References

[1] С указанием авторства-Некоммерческая-ShareAlike 4.0 интернациональность (CC BY-NC-SA 4.0): https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh [2] mengbin: mengbin1992@outlook.com [3] mengbin: https://mengbin.top [4] mengbin92: https://mengbin92.github.io/ [5] Влюбляюсь в воду нечаянно: https://www.cnblogs.com/lianshuiwuyi/ [6] Мюнстер: https://cloud.tencent.com/developer/user/6649301

boy illustration
Углубленный анализ переполнения памяти CUDA: OutOfMemoryError: CUDA не хватает памяти. Попыталась выделить 3,21 Ги Б (GPU 0; всего 8,00 Ги Б).
boy illustration
[Решено] ошибка установки conda. Среда решения: не удалось выполнить первоначальное зависание. Повторная попытка с помощью файла (графическое руководство).
boy illustration
Прочитайте нейросетевую модель Трансформера в одной статье
boy illustration
.ART Теплые зимние предложения уже открыты
boy illustration
Сравнительная таблица описания кодов ошибок Amap
boy illustration
Уведомление о последних правилах Points Mall в декабре 2022 года.
boy illustration
Даже новички могут быстро приступить к работе с легким сервером приложений.
boy illustration
Взгляд на RSAC 2024|Защита конфиденциальности в эпоху больших моделей
boy illustration
Вы используете ИИ каждый день и до сих пор не знаете, как ИИ дает обратную связь? Одна статья для понимания реализации в коде Python общих функций потерь генеративных моделей + анализ принципов расчета.
boy illustration
Используйте (внутренний) почтовый ящик для образовательных учреждений, чтобы использовать Microsoft Family Bucket (1T дискового пространства на одном диске и версию Office 365 для образовательных учреждений)
boy illustration
Руководство по началу работы с оперативным проектом (7) Практическое сочетание оперативного письма — оперативного письма на основе интеллектуальной системы вопросов и ответов службы поддержки клиентов
boy illustration
[docker] Версия сервера «Чтение 3» — создайте свою собственную программу чтения веб-текста
boy illustration
Обзор Cloud-init и этапы создания в рамках PVE
boy illustration
Корпоративные пользователи используют пакет регистрационных ресурсов для регистрации ICP для веб-сайта и активации оплаты WeChat H5 (с кодом платежного узла версии API V3)
boy illustration
Подробное объяснение таких показателей производительности с высоким уровнем параллелизма, как QPS, TPS, RT и пропускная способность.
boy illustration
Удачи в конкурсе Python Essay Challenge, станьте первым, кто испытает новую функцию сообщества [Запускать блоки кода онлайн] и выиграйте множество изысканных подарков!
boy illustration
[Техническая посадка травы] Кровавая рвота и отделка позволяют вам необычным образом ощипывать гусиные перья! Не распространяйте информацию! ! !
boy illustration
[Официальное ограниченное по времени мероприятие] Сейчас ноябрь, напишите и получите приз
boy illustration
Прочтите это в одной статье: Учебник для няни по созданию сервера Huanshou Parlu на базе CVM-сервера.
boy illustration
Cloud Native | Что такое CRD (настраиваемые определения ресурсов) в K8s?
boy illustration
Как использовать Cloudflare CDN для настройки узла (CF самостоятельно выбирает IP) Гонконг, Китай/Азия узел/сводка и рекомендации внутреннего высокоскоростного IP-сегмента
boy illustration
Дополнительные правила вознаграждения амбассадоров акции в марте 2023 г.
boy illustration
Можно ли открыть частный сервер Phantom Beast Palu одним щелчком мыши? Супер простой урок для начинающих! (Прилагается метод обновления сервера)
boy illustration
[Играйте с Phantom Beast Palu] Обновите игровой сервер Phantom Beast Pallu одним щелчком мыши
boy illustration
Maotouhu делится: последний доступный внутри страны адрес склада исходного образа Docker 2024 года (обновлено 1 декабря)
boy illustration
Кодирование Base64 в MultipartFile
boy illustration
5 точек расширения SpringBoot, супер практично!
boy illustration
Глубокое понимание сопоставления индексов Elasticsearch.
boy illustration
15 рекомендуемых платформ разработки с нулевым кодом корпоративного уровня. Всегда найдется та, которая вам понравится.
boy illustration
Аннотация EasyExcel позволяет экспортировать с сохранением двух десятичных знаков.