Ethereum에서 Chainlink 오라클 생성

Nov 28 2022
이전 기사에서 Chainlink 노드 설치 가이드를 만들었습니다. Oracle 배포에 필요하므로 실행 중인 노드가 없는 경우 사용하십시오. 다음 단계는 오라클 계약을 배포하고 노드에 연결하는 것입니다.
Unsplash의 fabio 사진

이전 기사 에서 Chainlink 노드를 설치하기 위한 가이드를 만들었습니다. 실행 중인 노드가 없는 경우 Oracle 배포에 필요하므로 사용하십시오.

다음 단계는 오라클 계약을 배포하고 노드에 연결하는 것입니다.

오라클 계약은 오라클 서비스의 온체인 구성 요소입니다. 다른 계약의 데이터 요청을 수신하고, 데이터 쿼리를 오라클 노드에 전달하고, 반환된 데이터를 클라이언트 계약에 브로드캐스트합니다. 이 계약은 반환된 데이터 포인트에 대해 일부 계산을 수행하여 요청 계약에 보내는 집계 값을 생성할 수도 있습니다.

Oracle.sol 또는 Operator.sol 과 같은 계약 중 하나를 블록체인에 배포해야 합니다 .

Oracle.sol 은 "큰 응답"을 지원하지 않는 오래된 유형의 계약이므로 여러 단어로 된 응답을 지원하지 않습니다. Operator.sol 은 큰 응답을 지원하지만 더 많은 가스를 소비하는 새로운 유형입니다.

작업에 따라 계약 유형을 선택합니다. 단일 변수로 짧은 응답을 받아야 하는 경우 — Oracle.sol 을 선택 하고 계약에 여러 값을 반환해야 하는 경우 — Operator.sol을 선택합니다.

두 옵션을 구성하는 방법의 예를 보여 드리겠습니다. Oracle.sol 부터 시작 하겠습니다 .

계약을 배포하기 위해 Remix 를 사용합니다. 예, Hardhat 또는 Truffle 과 같은 도구를 사용할 수도 있지만 가이드에서는 Remix 의 예를 살펴보겠습니다 .

Oracle.sol 계약 을 배포하려면 다음 코드를 복사합니다.

// SPDX-License-Identifier: MIT
pragma solidity 0.6.6;
import "@chainlink/contracts/src/v0.6/Oracle.sol";

다음으로 배포 탭으로 이동하고 원하는 환경을 선택합니다(예: 주입된 공급자 — 메타마스크 ) . 배포에 사용할 계정에 연결하고 필요한 네트워크를 지정합니다.

배포하려면 Oracle 계약 을 선택하고 지정된 네트워크의 계약 LINK 주소( Chainlink 설명서에서 찾으십시오 ) 매개변수를 설정하고 거래 버튼을 클릭합니다.

Remix IDE에서 Oracle.sol 계약 배포

다음으로 오라클 기능의 결과를 기록할 수 있도록 노드의 지갑에 권한을 부여해야 합니다. 노드의 지갑 주소는 홈페이지 오른쪽 상단에 있는 Chainlink Operator GUI에 있습니다. 그것을 복사하고 setFulfillmentPermission Oracle 계약 함수를 호출하여 인수에 붙여넣고 값을 true 로 설정하십시오 .

결과를 기록할 수 있도록 노드에 권한 부여

그게 다입니다. 오라클을 배포한 이 단계에서 오라클과의 상호 작용을 다른 스마트 계약에 연결하기만 하면 됩니다.

그리고 Operator.sol 계약은 어떻습니까? 배포 방법은 무엇입니까?

좋습니다. 이렇게 하려면 다음 코드를 복사합니다.

// SPDX-License-Identifier: MIT
pragma solidity 0.7.6;
import "@chainlink/contracts/src/v0.7/Operator.sol";

Remix IDE에서 Operator.sol 계약 배포

계약을 배포한 후 이전 Oracle.sol 계약에서와 같이 노드 지갑 주소를 추가해야 합니다. 이렇게 하려면 setAuthorizedSenders 함수를 호출하고 ["address"] 인수에 다음 형식의 주소를 삽입합니다.

결과를 기록할 수 있도록 노드에 권한 부여

오라클 계약을 완벽하게 배포했습니다. 다음 기사에서는 스마트 계약이 오라클과 어떻게 상호 작용할 수 있는지에 대해 작성하겠습니다.