에러 핸들링 및 트러블슈팅

ieum 프로토콜은 분산 환경에서의 데이터 불일치를 원천 차단하기 위해 'Fail-fast' 철학을 고수하며, 모든 에러는 시스템 가용성 유지와 데이터 정합성 보장에 초점을 맞춥니다.

에러 핸들링 원칙

• Idempotency Safety: 동일한 requestId 요청에 대해 상태 머신은 반드시 동일한 결과를 반환해야 하며, 중복 커밋을 차단합니다.

• State Integrity: 영수증 상태의 임의 점프(예: INIT에서 ANCHORED로의 직접 전이)는 코드 레벨에서 금지되며, 위반 시 IllegalStateTransition 예외를 발생시킵니다.

• Observability: 모든 에러 로그는 트래킹 ID와 함께 기록되어 장애 발생 시 즉각적인 디버깅이 가능하도록 설계되었습니다.

공통 에러 대응 가이드

에러 코드 / 유형

발생 원인

대응 가이드

RPC Timeout

Public RPC 서버 혼잡 또는 네트워크 지연

Developer RPC(내부망) 상태 확인 및 지연 시간 설정(Timeout) 조정

AuthorizationUsedOrCanceled

순차 Nonce 방식에서 중복 Nonce 사용 시 발생

백엔드 Nonce 관리 엔진의 동기화 상태 및 서명(Signature) 재사용 여부 확인

Insufficient Funds

가스비(AVAX) 잔액 부족

해당 계정의 가스비 잔액 충전 및 Gas Station 서비스 상태 점검

Dual Control Lock

신탁사 또는 은행 중 한 곳의 제어 플래그 활성

BankTrustRelation의 제어 플래그(mintControl) 상태 확인 및 승인 절차 재시행

장애 복구 프로세스 (Recovery Flow):

1. Identify: 발생한 에러 코드와 requestId를 기반으로 오프체인 SSOT의 영수증 상태를 대조합니다.

2. Verify: 아발란체 탐색기(Explorer)를 통해 해당 txHash의 실제 컨펌 여부를 확인합니다.

3. Recover: 멱등성 키를 유지한 상태로 요청을 재전송합니다. 시스템은 상태 머신 규칙에 따라 이미 완료된 단계는 건너뛰고 실패한 지점부터 자동으로 복구를 시작합니다.

Last updated