Kaia에서 Pyth Pull-Oracle 시작하기 — “필요할 때만 업데이트”하는 가격 피드 모델

TL;DR

Pyth Pull-Oracle은 가격을 “정해진 주기로 푸시(push)”하는 방식이 아니라, 트랜잭션이 필요로 하는 순간에 업데이트를 가져와서(tx에 포함) 읽는 모델입니다.
원문 글: Kaia에서 실시간 가격 피드 구축하기


이 글이 필요한 분

  • 가격이 중요한 기능(렌딩/청산/파생/결제 등)을 만들고 있는데 실행 시점 신선도가 고민인 팀
  • “오라클 값이 언제/어떻게 최신이 되는지”를 앱 관점에서 통제하고 싶은 빌더
  • 고정 주기 업데이트보다 필요한 만큼만 업데이트하는 모델을 검토 중인 팀

핵심 내용 요약

  • Push vs Pull 차이: “체인에 항상 최신 값이 있다” 전제가 깨졌을 때 설계가 어떻게 달라지는지
  • 실행 시점 신선도: 업데이트를 가져와 tx에 포함한 뒤 컨트랙트가 값을 읽는 흐름(개념 위주)
  • 통합 흐름(하이레벨): 앱에서 어떤 지점에 업데이트/리드를 배치해야 하는지

Pull-Oracle 붙이려면 (권장 접근)

  1. 먼저 글을 읽고 update → read 흐름을 본인 서비스 플로우에 대입해보세요.
  2. 언제 신선도가 필요한지”를 액션별로 정의하세요(청산/정산/스왑 등).
  3. 그 다음에 실패 처리/재시도 같은 운영 케이스를 붙이는 게 디버깅이 쉽습니다.

막히는 지점이 있으면 이 스레드에 질문 남겨주세요. 아래 정도만 적어주셔도 답변이 빨라집니다:

  • 유스케이스(렌딩/파생/결제 등)
  • 어디가 애매한지(업데이트 타이밍, 실패 처리, 통합 전제 등)
  • Kairos / 메인넷 중 어디에서 보고 있는지

공통으로 많이 나오는 엣지케이스/통합 pain point는 모아서 다음 글로 정리해볼게요.

2개의 좋아요

상황 예시: 렌딩/파생/청산 같은 기능을 만들 때, 컨트랙트가 읽는 가격이 실행 시점에 최신이길 원하지만, “고정 주기 업데이트 비용”은 가능한 줄이고 싶은 경우요.

체크 포인트:

  • Pull 모델에서는 update → read 흐름을 앱에서 “명시적으로” 설계해야 합니다(체인에 항상 최신 값이 있다는 전제 X).
  • 업데이트를 제때 못 가져오거나 제출이 실패했을 때의 처리(재시도/대체 경로/안전 실패)를 먼저 정해두면 디버깅이 훨씬 쉬워요.
  • 어떤 액션에서 신선도가 진짜 중요한지(청산/정산/리스크 체크 등) 기준을 먼저 세우고, 그 기준에 맞춰 플로우를 단순화하세요.

질문은 이 스레드에 댓글로 남겨주시면 됩니다(유스케이스 + 어디가 애매한지 정도만 적어주셔도 충분해요).

1개의 좋아요