Flashblocks
Flashblocks는 트랜잭션 확정(confirmation) 정보를 블록이 생성될 때까지 기다리지 않고, 빠르게 받아볼 수 있는 기능이에요. 이를 통해 실시간성이 중요한 앱에서 활용할 수 있습니다.
Flashblocks란?
일반적으로 트랜잭션을 전송한 뒤에는 해당 트랜잭션이 블록에 포함될 때까지 기다려야해요. GIWA의 블록 생성주기에 따라 이 시간은 최대 1초가 될 수 있습니다. (단, 네트워크 혼잡 시 더 길어질 수 있어요.)
Flashblocks는 이 과정에서 블록이 완전히 생성될 때까지 기다리지 않고, preconfirmation 이라는 즉각적인 피드백 (최대 200ms)을 줌으로써 사용자가 트랜잭션을 보낸 직후 아주 짧은 시간 안에 결과를 확인할 수 있도록 도와줘요.
즉, 블록 자체를 더 빨리 만드는 기능이 아니라 블록 생성 전에 트랜잭션 상태를 더 빨리 알려주는 기능입니다.
이러한 특성 때문에 다음과 같은 앱에서 활용할 수 있어요.
트랜잭션 전송 및 반영을 즉각적으로 보여주고 싶은 지갑 및 웹서비스
빠른 결제 경험을 제공해주고 싶은 페이먼트 서비스
반응성이 중요한 게임 및 실시간 서비스
Flashblocks 사용하기
Flashblocks RPC는 일반적인 Ethereum JSON-RPC 인터페이스와 동일하게 동작해요. Flashblocks RPC를 사용하기 위해서는 해당 RPC 노드가 Flashblocks mode를 지원해야하며, 이를 Flashblocks-aware RPC 라고 합니다.
Flashblocks-aware RPC
GIWA에서는 개발 및 테스트 용도를 위해 무료로 제공하는 Flashblocks-aware RPC가 있어요.
GIWA Testnet (Sepolia)
GIWA Mainnet
🚧 GIWA Mainnet 은 현재 준비 중이에요.
위에서 제공하는 RPC는 개발 및 테스트 목적으로 제공되며 rate limit이 걸려있습니다. 실서비스용 앱에는 외부 노드 서비스 사용을 권장합니다. 또는 여러분이 직접 Flashblocks-aware RPC 노드를 운영할 수 있습니다.
지원하는 RPC Methods
eth_call
eth_callpending 태그를 통해, 최신 flashblock 상태를 기준으로 스마트 컨트랙트 호출을 실행해요.
Request
Response
eth_estimateGas
eth_estimateGaspending 태그를 통해, 최신 flashblock 상태를 기준으로 가스 사용량을 추정해요.
Request
Response
eth_getBalance
eth_getBalancepending 태그를 통해, 최신 flashblock 상태를 기준으로 잔고를 반환해요.
Request
Response
eth_getBlockByNumber
eth_getBlockByNumberpending 태그를 통해, 최신 flashblock 상태를 기준으로 블록 정보를 반환해요.
Request
Response
eth_getLogs
eth_getLogspending 태그를 통해, 최신 flashblock 상태를 기준으로 로그를 반환해요.
Request
Response
eth_getTransactionCount
eth_getTransactionCountpending 태그를 통해, 최신 flashblock 상태를 기준으로 해당 주소의 nonce를 반환해요.
Request
Response
eth_getTransactionByHash
eth_getTransactionByHashFlashblock에 포함된 특정 해시의 트랜잭션 정보를 반환해요.
Request
Response
eth_getTransactionReceipt
eth_getTransactionReceiptFlashblock에 포함된 트랜잭션 receipt 정보를 반환해요.
Request
Response
eth_simulateV1
eth_simulateV1최신 flashblock 상태를 기준으로 트랜잭션을 시뮬레이션해요.
Request
Response
더 알아보기
OP 스택 개발자 문서를 확인해보세요.
Last updated