StableNet으로 전송된 트랜잭션은 블록에 포함될 때까지 트랜잭션 풀(mempool)에 머뭅니다. 풀을 이해하면 트랜잭션이 대기 중인 이유와 해결 방법을 알 수 있습니다.
두 가지 상태: pending과 queued
풀의 모든 트랜잭션은 두 가지 상태 중 하나에 있습니다:
같은 발신자의 이전 논스가 모두 확인되면 트랜잭션이 자동으로 queued에서 pending으로 이동합니다.
트랜잭션이 pending인 이유
가장 흔한 이유:- 논스 공백 — 논스 4가 아직 pending인데 논스 5를 전송한 경우. 논스 5는 논스 4가 포함될 때까지 queued 상태로 대기합니다.
- 가스 팁이 최솟값 미만 — 거버넌스 적용 최소
maxPriorityFeePerGas를 충족하지 못한 경우. 트랜잭션이 queued가 아닌 제출 단계에서 거부됩니다. - 잔액 부족 —
balance < value + gasLimit × maxFeePerGas. 트랜잭션이 유효성 검사에서 실패합니다. - 풀 가득 참 — 전역 pending 한도(기본값 5,120 슬롯)에 도달했고 내 트랜잭션의 우선순위가 기존 트랜잭션보다 낮은 경우.
가스 팁과 우선순위
StableNet에서 가스 팁 경쟁은 이더리움 메인넷과 다르게 작동합니다. 일반 계정의 경우 실효 가스 팁은 GovValidator 거버넌스 컨트랙트가 고정합니다. 모든 일반 계정 트랜잭션은 동일한 팁을 납부합니다 — 팁을 높여서 다른 사용자를 앞지를 수 없습니다. 인증 계정 (GovCouncil이 설정)의 경우 트랜잭션의GasTipCap이 그대로 사용되어 커스텀 우선순위가 가능합니다.
따라서 pending 시간은 팁 금액이 아닌 논스 순서와 풀 용량에 의해 거의 전적으로 결정됩니다.
막힌 트랜잭션 교체하기
pending 트랜잭션을 교체하려면 동일한 논스와 원래보다 최소 10% 높은 가스 가격으로 새 트랜잭션을 제출하세요:풀 상태 검사
txpool 네임스페이스로 풀 상태를 검사합니다:
풀 한도
풀이 가득 차면 우선순위가 가장 낮은 트랜잭션이 먼저 제거됩니다. RPC를 통해 로컬에서 제출된 트랜잭션은 보호되어 마지막으로 제거됩니다.
블록 포함 이후 처리
새 블록이 추가되면 풀이:- 블록에 포함된 트랜잭션을 제거합니다
- 논스 공백이 채워진 queued 트랜잭션을 pending으로 승격합니다
- 업데이트된 잔액에 대해 남은 트랜잭션을 재검증합니다
- GovValidator에서 최신 가스 팁을 조회하고 필터링을 업데이트합니다
개발자 이점
- 풀 상태를 조회 가능 —
txpool_contentFrom으로 내 트랜잭션을 모니터링 - 논스 공백이 막힌 트랜잭션의 주요 원인 — 동시 발신자에서 논스를 신중하게 관리
- 교체가 예측 가능 — 10% 가격 범프로 교체 보장
관련 문서
- 가스 및 수수료 — 거버넌스 팁 메커니즘
- 아키텍처 개요 — 풀을 포함한 전체 트랜잭션 생명주기
- RPC API 레퍼런스 —
txpool_content,txpool_status

