Flashblocks

Flashblocks는 블록 생성 전 상태를 빠르게 제공하는 기능으로, GIWA 네트워크에서 pre-confirmation 기반의 실시간 트랜잭션 피드백을 제공합니다.

What is Flashblocks?

Flashblocks는 블록이 최종 확정되기 전에 현재 생성 중인 블록 상태를 기반으로 트랜잭션 및 네트워크 상태를 더 빠르게 제공하는 기능입니다. 이를 통해 기존에는 블록이 완전히 생성될 때까지 기다려야 했던 정보를 보다 짧은 간격으로 확인할 수 있어, 지연 시간에 민감한 애플리케이션에 유용합니다.

이 기능은 블록 확정을 대체하지 않으며, 블록 확정 이전 단계(pre-confirmation)의 상태를 기반으로 빠른 피드백을 제공하는 데 목적이 있습니다. 이 과정에서 트랜잭션의 블록 포함 여부, 계정 잔액 및 nonce의 변화, 이벤트 로그와 호출 결과와 같은 최신 상태를 블록 확정 이전에 확인할 수 있습니다. 이러한 정보는 최종 확정된 상태는 아니지만, 사용자 경험 측면에서는 충분히 빠르고 의미 있는 정보로 활용될 수 있습니다.


지원되는 JSON-RPC 메서드

Flashblocks는 아래와 같은 표준 JSON-RPC 메서드에서 pending 태그를 사용해 활용할 수 있으며, 이를 통해 블록 확정 전 상태를 반영한 결과를 조회할 수 있습니다. pending 기준으로 조회되는 상태는 마지막으로 확정된 블록(latest 태그) 이후 현재 생성 중인 블록 상태를 반영합니다.


사용 예시

아래는 JSON-RPC를 통해 pending 기준 상태를 조회하는 간단한 예시입니다.

eth_call 예시

curl https://giwa-sepolia.nodit.io/{{API-KEY}} \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0",
    "method":"eth_call",
    "params":[
      { "to": "0x...", "data": "0x..." },
      "pending"
    ],
    "id":1
  }'

eth_getBlockByNumber 예시

curl https://giwa-sepolia.nodit.io/{{API-KEY}} \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{
    "jsonrpc":"2.0",
    "method":"eth_getBlockByNumber",
    "params":["pending", true],
    "id":1
  }'

📘

사용 시 참고사항

pending 기준 응답은 블록 확정 이전의 상태를 반영하며, 이후 블록 생성 및 확정 과정에서 변경될 수 있습니다. 해당 결과는 최종 확정된 결과가 아니므로, 정합성과 확정성이 중요한 로직에서는 확정된 블록 상태를 기준으로 처리해야 합니다.


공식 문서

GIWA의 Flashblocks에 대한 더 자세한 사항은 GIWA 공식 문서 를 참고하세요.