메인 콘텐츠로 건너뛰기

Concepts

ocr 모듈은 Chainlink의 OCR 정보를 검증된 멤버에 의해 온체인에 저장하기 위한 모듈입니다. Off-chain reporting은 외부 소스에서 데이터를 수집하는 N개의 노드(oracle)로 구성됩니다. Report는 승인 서명을 얻기 위해 oracle 간에 P2P 방식으로 교환됩니다. 노드의 하위 집합(transmitter)은 온체인 ocr 모듈에 의해 식별되며, 이들은 모듈에 report를 제출해야 합니다. 체인에 가장 먼저 도달한 transmitter가 가스 비용을 충당하기 위한 추가 보상을 받습니다. 다른 transmitter는 받지 않습니다. 라운드에 참여한 모든 oracle은 보상을 받습니다. ocr 모듈은 report의 중앙값을 저장합니다.

OCR 용어

프로토콜은 주기적으로 oracle report를 OCR 모듈에 전송합니다. Reporting 프로토콜은 pacemaker, report generation, transmission의 세 가지 구성 요소로 이루어져 있습니다. Pacemaker Pacemaker는 epoch로 구조화된 report generation 프로세스를 주도합니다. 각 epoch에는 지정된 리더가 있으며, pacemaker는 이 리더에게 report generation 프로토콜을 시작하도록 지시합니다. 리더가 제시간에 유효한 report를 생성하지 않으면, pacemaker는 현재 report generation을 중단하고 새 epoch를 시작합니다. Report Generation 주어진 epoch에서 report generation 프로토콜은 round에 진입하여 observation을 수집하고 (heartbeat 및 deviation과 같은 조건이 충족되면) 서명된 oracle report를 생성합니다. Round는 리더 노드에 의해 제어되며, 리더 노드는 round의 빈도를 제어하고 observation을 수집하며 report를 생성합니다. Transmission Transmission 프로토콜은 생성된 report를 OCR 모듈에 전송합니다.

Off-chain OCR 통합

  • sdk-go를 사용하여 Injective와 통신하는 수단 제공
  • 승인된 oracle 목록과 같은 모듈에서 데이터 읽기
  • Msg로 report 제출 (ContractTransmitter 구현)
  • OffchainConfigDigester 구현
  • 대상 체인 모듈에서 작동할 서명 생성을 위한 OnchainKeyring 구현
  • 체인 모듈 구성(거버넌스 승인)의 변경 사항을 추적하기 위한 ContractConfigTracker 구현
참고사항:
  • Report는 Epoch-Round 방식으로 타임스탬프가 지정됩니다
  • ocr 모듈은 report에 대한 oracle의 서명을 검증합니다
  • ocr 모듈은 지급을 위해 report에 기여한 oracle을 기록합니다
  • ocr 모듈은 observation의 중앙값을 저장합니다
  • ocr 모듈은 Msg의 첫 번째 제출자에게 추가 보상을 제공합니다

통합 개요

Chainlink는 다음을 포함한 여러 가격 데이터 피드를 보유하고 있습니다:
  • 80개의 Crypto/USD 쌍 (예: ETH/USD, BTC/USD)
  • 17개의 Stablecoin 쌍 (예: USDT/USD, USDC/USD)
  • 73개의 ETH 쌍 (예: LINK/ETH)
  • 17개의 Forex 쌍 (예: GBP/USD, CNY/USD)
Injective의 파생상품 시장은 다음과 같은 oracle 파라미터를 지정합니다:
  • oracleBase (예: BTC)
  • oracleQuote (예: USDT)
  • oracleType (예: Chainlink)
따라서 Injective의 BTC/USDT 파생상품 시장의 경우, oracleBase는 BTC/USD, oracleQuote는 USDT/USD, oracleType은 Chainlink가 됩니다. 그러면 시장 가격은 BTC/USD 가격을 USDT/USD 가격으로 나누어 BTC/USDT 가격을 얻습니다.