Английское название машины-оракула — Oracle.,То же имя, что и у известного поставщика услуг библиотеки данных Oracle (Oracle).,Но кроме одного и того же имени, они не имеют ничего общего друг с другом. Что означает слово Оракул?,Вот что я делаюvocabulary.comНайдено наOracleзначение:
Back in ancient times, an oracle was someone who offered advice or a prophecy thought to have come directly from a divine source. In modern usage, any good source of information can be called an oracle.
Примерное значение китайского языка: в древние времена.,Оракул – это человек, который дает советы или пророчества.,Считалось, что его советы или пророчества исходили непосредственно от Бога. в современном использовании,Любой хороший источник информации можно назвать оракулом.。
Термин «оракул» в компьютерной области впервые предложил Тьюринг. (Да, это тот самый Тьюринг, чей блог называется «Тьюринг возрождается, меня зовут Су Зе», отец компьютеров)
так называемый пророк,даСущность, которая может ответить на определенный набор вопросов. То есть он может вводить информацию в систему машины Тьюринга и помогать машине Тьюринга выполнять операции.
Смарт-контракт Эфириума является «Полным Тьюринга» и в некотором смысле может рассматриваться как машина Тьюринга. Поэтому разработчики Эфириума использовали эту концепцию и превратили ее в диаграмму «Полного Смарт-контракта Тьюринга». информацию еще называют оракулом.
Другими словами, как только вы введете ему информацию, он ответит на соответствующие вопросы.
прежде чем узнать его мы должны сначала узнать друг друга Гибридный смарт-контракт смарт-контракт Я сказалhttp://t.csdnimg.cn/cbhUm Что Гибридный Что происходит со смарт-контрактом?
смарт-контракт может быть привязан к реальным рыночным ценам активов,для создания мощных приложений. Безопасное подключение смарт-контракта к данным и сервисам вне сети,сделай ихсмешиваниесмарт-контракт。этотда使用Оракул完成из。
Другими словами, в Chainlink есть все машины-оракулы, и они лучше упакованы для того, чтобы мы могли их использовать.
В книге «Matering Ethereum» предложены три шаблона проектирования оракул-машин, а именно:
Функция оракула, дополненная токеном И ПО ССЫЛКЕ ERC677,Принадлежит к этомуЗапрос/Ответмодель。этотда一种较для复杂измодель,На рисунке выше показан простой процесс запроса/ответа без процесса агрегации.
Прежде чем узнать, как его использовать, мы должны сначала знать, как его развернуть.
развертыватьсмарт-контракт это процесс отправки кода в блокчейн ,На данный момент он находится по адресу в цепочке. После развертывания,Код не может быть изменен,и называетсянеизменный。
Просто знай адрес,Доступ к его функциям можно получить через интерфейс、существоватьEtherscanна или черезweb3js、web3py、ethersЖдите звонка из библиотеки。договор Это также можно записать каки Блокчейннадругойдоговорвзаимодействие。
RemixдаодинсетьIDE(интегрированная среда разработки) То есть Вы вбиваете код (там где написан договор)
Используется для создания, запуска и отладки смарт-контрактов в браузере. Он разработан и поддерживается Ethereum Foundation. Remix позволяет разработчикам Solidity писать смарт-контракты без машины для разработки, поскольку все необходимое включено в веб-интерфейс. Он упрощает взаимодействие с развернутыми контрактами и не требует интерфейса командной строки. Remix также поддерживает образцы контрактов. Это означает, что Remix может загружать код с Github.
FISCO BCOS — это платформа с открытым исходным кодом, основанная на технологии блокчейна, которую можно использовать для создания блокчейн-приложений корпоративного уровня.
FISCO BCOS и Remix — это два инструмента, связанных с разработкой смарт-контрактов. Их выбор и использование описаны ниже.
FISCO BCOS — это сетевая платформа консорциума.,Он поддерживает Solidity как язык разработки смарт-контрактов. Solidity — язык программирования, разработанный для платформы Блокчейн.,Имеет широкий охват и поддержку сообщества。если тебе нужноСоздайте проект корпоративного уровня напрямую или у вас уже есть несколько проектов. Вам необходимо интегрировать блокчейн,Что Как выбрать вариант использованияFISCO BCOS — хороший выбор в качестве блокчейн-платформы.
Remix — это онлайн-интегрированная среда разработки (IDE) Solidity.,Он обеспечивает функции написания, компиляции, развертывания и отладки смарт-контракта. от Ремикса,ты можешьПишите и тестируйте смарт-контракты прямо в браузере без установки какой-либо среды разработки.。если ты хочешьНачинайте быстроSolidityи продолжайтесмарт-контрактразвитие итест,Ремикс – отличный вариант.
Контракты можно писать и тестировать на Remix или FISCO BICOS, но как заставить контракт взаимодействовать с проектом?
Пример использования Solidity для внедрения Chainlink и использования его API для запроса реальной информации, такой как запрос погоды (конечно, реальная задача, вероятно, заключается в запросе рыночной стоимости определенной валюты, и это не так уж и скучно, вот только простой пример):
MyChainlinkWeather
。truffle init
команда для инициализацииTruffleпроект。npm install @chainlink/contracts --save
команда для установкиChainlinkБиблиотека разработки。существоватьпроектизcontracts
Оглавлениесередина创建один新изSolidityконтрактные документы,НапримерWeatherContract.sol
。
Импортируйте библиотеки и контракты, связанные с Chainlink, в файл контракта.
pragma solidity ^0.8.0;
import "@chainlink/contracts/src/v0.8/ChainlinkClient.sol";
import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol";
Создать контракт,Унаследовано отChainlinkClient
договор,И установите конструктор:
contract WeatherContract is ChainlinkClient {
address private oracle;
bytes32 private jobId;
uint256 private fee;
string public weather;
constructor() {
setPublicChainlinkToken();
oracle = 0x0000000000000000000000000000000000000000; // Настройте Chainlink по вашему выбору адрес Oracle
jobId = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // Настройте работу по вашему выбору ID
fee = 0.1 * 10 ** 18; // Установите комиссию за LINK, которую вы готовы заплатить.
}
}
function requestWeather() public {
Chainlink.Request memory request = buildChainlinkRequest(jobId, address(this), this.fulfill.selector);
request.add("url", "https://api.weatherapi.com/v1/current.json?key=YOUR_API_KEY&q=YOUR_LOCATION");
request.add("path", "current.condition.text");
sendChainlinkRequestTo(oracle, request, fee);
}
function fulfill(bytes32 _requestId, bytes32 _weather) public recordChainlinkFulfillment(_requestId) {
weather = bytes32ToString(_weather);
}
function bytes32ToString(bytes32 _bytes32) private pure returns (string memory) {
bytes memory bytesArray = new bytes(32);
for (uint256 i; i < 32; i++) {
bytesArray[i] = _bytes32[i];
}
return string(bytesArray);
}
truffle migrate --network ropsten
Команда будетдоговорразвертыватьприезжатьRopstenтестсеть。requestWeather
функция инициированияChainlinkЗапросить и получить информацию о погоде。Кроме того, если вы хотите объединить данные в цепочке с вашим проектом, вам может потребоваться использовать FISCO BICOS и использовать его SDK.