지금 네트워크의 데이터는 얼마나 최신입니까?

전송과 거래 · 인덱서의 헤드, 블록 단위 지연, 가장 최근 전송의 경과 시간 — 네트워크별로, 5초마다

  • API 가이드
  • 5분
  • 입문
  • 개발자
  • GET /v1/sync/status

ACHIVX Academy 원문 (영어) ↗

GET /v1/sync/status?chain=은 last_indexed_block, head_block, safe_block, finalized_block, lag_blocks, freshness_seconds로 응답합니다. freshness_seconds는 해당 네트워크에서 가장 최근에 인덱싱된 전송의 경과 시간이며, 어디서나 같은 의미를 갖는 유일한 최신성 척도입니다. 2026-10-24에 이더리움(Ethereum)은 16블록, 209초 뒤처져 있었고 베이스(Base)는 30블록, 63초였습니다. 전송이 일어나지 않았다고 판단하기 전에 이것을 읽고, 모든 주소 응답 옆에 있는 같은 freshness_seconds를 읽으십시오. /health와 /ready는 인덱싱에 대해 아무것도 말하지 않습니다.

요청

curl -s 'https://stablescan.achivx.com/v1/sync/status?chain=1'
{
  "chain_id": 1,
  "last_indexed_block": 26261977,
  "head_block": 26261993,
  "safe_block": 26261951,
  "finalized_block": 26261919,
  "lag_blocks": 16,
  "freshness_seconds": 209,
  "as_of": "2026-10-24T10:45:52Z"
}

첫 번째 요청의 헬퍼 세 개로 한 같은 호출:

Python

sync = scan("/v1/sync/status", chain=1)
fresh = sync["freshness_seconds"]
if fresh is None:
    print("freshness not read this time; ask again")      # the answer is no-store
elif fresh > 600:
    print("indexer is", fresh // 60, "minutes behind; a negative is not final")

Go

var sync struct {
	LastIndexedBlock int64 `json:"last_indexed_block"`
	HeadBlock        int64 `json:"head_block"`
	FinalizedBlock   int64 `json:"finalized_block"`
	LagBlocks        int64 `json:"lag_blocks"`
	FreshnessSeconds *int  `json:"freshness_seconds"` // nil: not read this time
}
if err := get("/v1/sync/status", url.Values{"chain": {"1"}}, &sync); err != nil {
	return err
}

TypeScript

type Sync = { chain_id: number; last_indexed_block: number; head_block: number; safe_block: number; finalized_block: number; lag_blocks: number; freshness_seconds: number | null; as_of: string };
const sync = await scan<Sync>("/v1/sync/status", { chain: 1 });
const stale = sync.freshness_seconds === null || sync.freshness_seconds > 600;

필드별 설명

  • last_indexed_block — 인덱싱 커서입니다. EVM 네트워크와 트론(Tron)에서는 인덱싱된 가장 최근 블록, 솔라나(Solana)에서는 계정 스캔이 도달한 가장 최근 슬롯입니다.
  • head_block — 인덱서가 마지막으로 기록한 체인 헤드입니다(없으면 0). 솔라나에서는 각 주기 시작 시 폴링한 확정 슬롯과 스캔이 처리한 가장 최근 슬롯 중 큰 값이며, 실시간 체인 헤드가 아닙니다.
  • safe_block, finalized_block — EVM 네트워크와 트론에서는 safe 헤드와 finalized 헤드, 솔라나에서는 둘 다 확정 슬롯입니다. 피드 행은 그 블록이 finalized_block보다 뒤에 놓일 때까지 pending입니다. 그날 아침 이더리움의 확정 헤드는 헤드보다 74블록(약 15분) 뒤처져 있었습니다.
  • lag_blocks — head_block - last_indexed_block. EVM 네트워크와 트론에서 음수 값은 노드의 헤드가 되돌아갔다는 뜻입니다. 솔라나에서는 구조상 0에 가깝고 결코 음수가 아니므로, 그곳에서는 최신성 신호가 아닙니다. freshness_seconds를 읽으십시오(솔라나는 lag_blocks: 0, freshness_seconds: 124로 응답했습니다).
  • freshness_seconds — 가장 최근에 인덱싱된 전송의 경과 시간입니다. 이번 응답에서 읽을 수 없었거나 체인에 아직 인덱싱된 전송이 없으면 null입니다. 추정으로 0을 넣는 일은 없습니다. 모든 주소 응답이 반복하는 필드이며, 네트워크 간 비교에 쓸 필드입니다.

chain이 없으면 응답은 베이스의 것이며, 그렇다고 알려 주는 chain_source도 없습니다 — 체인 범위 응답 중 기본값을 표시하지 않는 유일한 응답입니다. chain을 넘기십시오.

이것이 아닌 것

/health({"status": "ok"})와 /ready({"status": "ready"}, 데이터베이스가 응답하지 않으면 503 not_ready)는 프로세스 가동 상태입니다. 둘 다 200으로 응답하는 동안에도 네트워크는 몇 시간 뒤처져 있을 수 있습니다. /v1/stats/slo는 서비스 자체의 지연 시간 예산과 배치 작업(OFAC 목록, 주간 그래프 배치)의 최신성이지, 네트워크의 인덱싱 지연이 아닙니다 — 서비스 상태에서 다룹니다. 스냅샷의 최신성은 그 자체의 built_at입니다. /v1/stats/home의 freshness[] 행에는 지연을 읽은 시점인 as_of가 있으며, 빌드 사이에는 바뀌지 않습니다.

캐시

Cache-Control: public, max-age=5. 전송이 인덱싱되기를 기다릴 때는 5초 간격으로 폴링하십시오. 더 빠르면 같은 as_of가 돌아옵니다.

Stablecoin scanner ACHIVX에서

출처

더 알아보기

전송과 거래 · GET /v1/sync/status · 2026-10-24 작성, openapi.json, agents.md 및 당일 실제 호출 기반. 구조는 인용한 것이며, 수치는 날짜 기준이고 인덱스에 따라 바뀝니다.

이 페이지는 ACHIVX Academy 영어 원문을 한국어로 옮긴 것입니다. 번역과 원문이 다르면 영어 원문이 기준입니다.