에러 핸들링 및 트러블슈팅
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