Matic 네트워크에서 Chainlink 오라클을 사용하는 방법 설명
올해 초 Mat가 출시된 이후온라인그 이후로 네트워크는 안전하고 확장 가능한 인프라와 즉각적인 트랜잭션으로 인해 이더리움 개발자들에게 빠르게 인기 있는 2계층 솔루션이 되었습니다. Matic의 고성능 저비용 인프라는 DeFi 애플리케이션을 위한 실행 가능한 플랫폼을 제공하여 대규모 채택을 용이하게 합니다. 또한 블록체인 오라클 분야에서 체인링크는 DeFi 프로토콜에 선호되는 오라클 솔루션이 되었습니다.Chainlink Price Feeds수십억 달러의 가치가 이미 확보되었습니다. 이 기술 기사에서는 Matic DeFi 애플리케이션에서 Chainlink 오라클을 사용하는 방법과 Chainlink 가격 피드를 사용하여 애플리케이션에 취약하지 않은 고품질 변조 방지 데이터에 대한 액세스 권한을 부여하는 방법을 보여줍니다.Oracle 취약점 및 Flash Loan 공격첫 번째 레벨 제목
확장 가능하고 안전한 DeFi 프로토콜의 필요성
DeFi 프로토콜은 올해 1월 6억 8천만 달러에서 현재까지 DeFi의 총 잠긴 볼륨(TVL)이 급증하면서 폭발적인 성장을 보였습니다.140억 달러 이상. 그러나 이러한 성장으로 인해 온체인 트랜잭션 수준이 높아지고 자신의 이익을 위해 이러한 프로토콜을 악용하려는 파괴자로부터 원치 않는 관심을 받게 됩니다.
Ethereum은 DeFi의 성장으로 인해 확장성이 제한되고 처리량이 낮으며 온체인 트랜잭션 수가 증가했습니다.방해하다블록체인의 성능. 이로 인해 DeFi 프로토콜이 열악한 사용자 경험, 높은 수수료 및 느린 트랜잭션 시간으로 인해 어려움을 겪는 트래픽 효과가 발생합니다.
느린 트랜잭션 속도와 높은 트랜잭션 수수료는 DeFi가 주류에 진입하는 것을 방해하는 두 가지 제한 요소입니다. 향상된 확장성, 높은 처리량 및 저렴한 트랜잭션을 갖춘 Matic과 같은 레이어 2 네트워크는 DeFi 개발의 다음 단계를 열 수 있습니다. Matic 사이드체인도 구성 가능하고 EVM과 완벽하게 호환됩니다. DeFi의 핵심 가치 중 하나는허가 없이 구성 가능, 따라서 Matic은 확장성, 저비용 트랜잭션 제공, 무허가 결합성 보장, 원활한 사용자 경험 제공 등 다양한 유용한 DeFi 애플리케이션을 구축하고자 하는 개발자에게 강력한 옵션을 제공합니다.
그러나 이러한 DeFi 애플리케이션에는 여전히고품질의 신뢰할 수 있는 외부 데이터에 대한 액세스. 올해 여러 번 보았듯이 DeFi 프로토콜은 다음과 같은 다양한 형태로 공격을 받을 수 있습니다.가격 오라클 공격즉, 가해자는 저품질 오라클 머신과 플래시론을 결합하여 시장을 조작하고 자신의 이익을 추구하며 다른 사용자의 이익을 해칩니다.
Chainlink Price FeedsDeFi 애플리케이션은 Chainlink 네트워크의 탈중앙화 오라클을 통해 온체인에 공급되는 다양한 고품질 데이터 제공업체의 집계 데이터를 제공함으로써 이러한 공격에 취약한 부분을 완화합니다. Chainlink의 분산형 아키텍처와 광범위한 고품질 데이터 소스는 최종 가격이 가장 광범위한 시장을 포괄할 수 있도록 보장합니다. 즉, 본질적으로 작은 하위 집합이 아닌 전체 시장의 다양한 가격을 집계한 후 가격이 결정됩니다.
첫 번째 레벨 제목
매틱 네트워크에서 체인링크 가격 피드 사용하기
Chainlink Price Feeds여러 고품질 데이터 입력을 사용하고 이를 Chainlink 오라클 네트워크와 결합하면 가격 데이터가 참조 계약에 입력되고 결과가 집계됩니다. DeFi 프로토콜은 데이터 품질과 무결성을 매우 중요하게 생각합니다.Chainlink Price Feeds는 데이터 품질 문제로 인해 다양한 DeFi 취약점의 영향을 받고 싶지 않은 이러한 프로토콜을 위한 최상의 실용적인 생산 환경 솔루션을 제공합니다.
다음 두 자습서는 다음에서도 사용할 수 있습니다.Remix완전한 스마트 계약으로 사용됩니다.
매틱 네트워크에서 체인링크 가격 피드 및 오라클을 사용하는 첫 번째 단계는 메타마스크 지갑을 다음과 같이 설정하는 것입니다.Matic Mumbai Testnet에 연결이미지 설명
테스트넷 MATIC 받기
MATIC은 Matic 네트워크의 기본 토큰입니다. 이것은 Ethereum의 ether와 유사합니다. Matic 네트워크와 상호 작용하려면 MATIC 토큰에 가스 요금이 필요합니다. 뭄바이 테스트넷 MATIC을 받으려면MATIC Faucet이미지 설명
스마트 계약 생성
스마트 계약 생성
Matic에서 Chainlink 가격 피드를 사용하여 스마트 계약 구축을 시작하는 가장 쉬운 방법은 표준Price Consumer계약이 시작됩니다. 이것은 Chainlink 가격 피드에 대한 요청을 시작하기 위한 기본적인 표준화된 계약입니다. Remix에서 이 계약서를 열고 필요에 따라 수정하십시오. 이 예에서는 ETH/USD 가격 데이터를 사용합니다. 첫 번째 단계는 [Matic 가격 피드 참조 계약。
다음으로 위의 생성자에서 인스턴스화된 Price Feed Aggregator 계약에서 최신 가격을 가져와야 합니다. 이제 Aggregator 컨트랙트에서 호출이 왔습니다.lastRoundData스마트 계약 배포 및 테스트

스마트 계약 배포 및 테스트
이제 계약을 배포하고 테스트할 준비가 되었습니다. 리믹스에서 계약을 컴파일한 다음 배포 탭에서 환경을 다음으로 변경합니다."Injected Web3", 아래 지갑 주소가 MATIC 토큰이 포함된 MetaMask 지갑의 주소인지 확인하고 배포 버튼을 누른 다음 단계를 따릅니다. 최종 결과는 귀하의 스마트 계약이 Matic Mumbai 테스트넷에 배포되었다는 것입니다. 배포된 계약 주소는 리믹스 콘솔의 트랜잭션 출력을 통해 얻을 수 있습니다.
배포 후에는 실행만 하면 됩니다."getLatestPrice "이미지 설명
첫 번째 레벨 제목
매틱 네트워크에서 체인링크 오라클 사용하기
보조 제목
테스트넷 링크 받기
Chainlink oracles에 요청을 보내려면 Testnet LINK를 가져와야 합니다. Mumbai Testnet LINK를 받으려면 가입하십시오.Matic Discord스마트 계약 생성
스마트 계약 생성
Chainlink 오라클을 사용하는 Matic에서 스마트 계약 구축을 시작하는 가장 쉬운 방법은 표준으로 시작하는 것입니다.Chainlink API소비자 계약시작. 이것은 Chainlink 오라클을 통해 외부 데이터에 대한 요청을 시작하기 위한 기본적인 표준화된 계약입니다. 따라서 Remix에서 이 계약을 열고 필요에 따라 수정할 것입니다.
먼저, 우리는"volume "매개변수 이름이"ethPrice",묶음"requestVolumeData "함수 이름이"requestEthereumPrice". 완료되면 다음과 같이 생성자를 수정해야 합니다.
뭄바이 테스트넷의 LINK 토큰 주소는 `0x70d1F773A9f81C852087B77F6Ae6d3032B02D2AB`이므로 이를 전달합니다."setChainlinkToken "기능에서
~에 따르면매틱 문서뭄바이 테스트넷의 규정에 따르면 `0x1cf7D49BE7e0c6AC30dEd720623490B64F572E17`에서 실행되는 오라클 계약이 있으므로 오라클 변수를 이 값으로 설정합니다.
API는 HTTP GET 요청을 통해 획득하며 반환 값은 부호 없는 정수입니다. 뭄바이 테스트넷에서 실행되는 오라클에 사용할 수 있는 다양한 작업 사양이 있습니다. ~에 따르면매틱 문서이러한 요구 사항에 따라 의 작업 목록은 `d8fcf41ee8984d3b8b0eae7b74eca7dd`입니다. HTTP GET 요청을 실행하고 싶기 때문에 반환된 데이터는 부호 없는 정수이므로"jobId "변수가 이 값으로 설정됩니다.
할 것이다"fee"변수는 1LINK로 수정됩니다. 이것은 외부 데이터 요청과 함께 오라클로 전송되는 지불입니다.

그리고"requestEthereumPrice"그리고"fulfill"기능.
Chainlink 오라클 사용 요청체인링크 요청 및 응답디자인 패턴이 작동하고, 온체인 기능이 요청을 생성 및 생성하고, 오라클이 요청을 감지하고, 응답을 동일한 계약의 다른 기능으로 다시 보냅니다. 우리의 경우,"requestEthereumPrice "생성 및 요청하는 기능,"fulfill "`this.fulfill.selector`로 정의되는 응답을 처리하는 함수입니다.
선택한 API는 crypto.com의ETH/EUR가격에 대한 공개 API. 브라우저에서 이 링크를 열면 JSON 형식으로 반환된 데이터를 볼 수 있습니다.
존재하다"requestEthereumPrice "함수에서 다음과 같이 수정합니다.
URL을 [ETH/EUR](ETH/EUR) API의 끝점으로 설정합니다.
요청합니다"path "변수가"EUR". 브라우저에 보이는 API 엔드포인트의 출력을 기반으로 이더리움의 현재 가격을 포함하는 JSON 응답을 찾아 반환하는 경로입니다.
결과에 100을 곱합니다. Solidity는 소수점 이하 자릿수를 처리할 수 없기 때문입니다.
Chainlink 오라클에 요청 보내기

존재하다"fulfill "함수에서 오라클이 응답을 `_price` 매개변수로 다시 보낸 다음 컨트랙트의 `ethereumPrice` 변수에 저장하는 것을 볼 수 있습니다.

스마트 계약 배포 및 테스트
스마트 계약 배포 및 테스트
리믹스로 컨트랙트를 컴파일한 다음 가격 증정 컨트랙트에서 했던 것처럼 뭄바이 테스트넷에 컨트랙트를 배포합니다.
이미지 설명
LINK를 계약으로 전송
계약이 배포되고 LINK가 있으면"requestEthereumPrice "이미지 설명
배포된 계약 테스트
요청이 시작된 후 Chainlink 오라클이 실행된 다음 계약의 fullfil 기능이 Chainlink 노드 오라클 계약에 의해 호출됩니다. 완료하는 데 몇 초가 걸리며 그런 다음 다음을 실행할 수 있습니다."ethereumPrice "이미지 설명
요약하다
요약하다
디파이 애플리케이션디파이 애플리케이션, 탈중앙화 거래소(DEX), 유동성 풀, 대출 프로토콜, 탈중앙화 보험, 자동 시장 조성자(AMM) 등.







