Skip to main content
For the complete documentation index, see llms.txt

Proof server errors

증명 서버는 트랜잭션에 대한 영지식 증명을 생성하는 독립형 HTTP 서비스입니다. midnight-ledger 저장소의 일부이며 일반적으로 6300 포트에서 실행됩니다.

midnight-ledger에서 오류 처리에 thiserror derive를 사용하는 유일한 크레이트입니다. 서버는 오류를 HTTP 상태 코드에 매핑하여 HTTP 응답으로 반환합니다.

Worker pool errors (WorkerPoolError)

증명 서버의 내부 작업 큐 및 워커 풀 관리에서 발생하는 오류입니다.

HTTP statusErrorDescriptionFix
400 Bad RequestJobNotPending(Uuid)대기 상태가 아닌 작업을 취소하려는 경우해당 작업은 이미 처리 중이거나, 완료됐거나, 취소된 상태입니다
428 Precondition RequiredJobMissing(Uuid)참조한 작업을 찾을 수 없는 경우작업 ID가 유효하지 않거나 만료된 경우입니다
429 Too Many RequestsJobQueueFull증명 생성 작업 큐가 가득 찬 경우잠시 기다렸다가 재시도하세요. 서버 부하가 높은 상태입니다
500 Internal Server ErrorChannelClosed내부 작업 채널이 닫힌 경우증명 서버를 재시작하세요

Work errors (WorkError)

실제 증명 생성 과정에서 발생하는 오류입니다.

HTTP StatusErrorDescriptionFix
400 Bad RequestBadInput(String)증명 요청 입력 데이터가 유효하지 않은 경우증명을 위해 전송한 트랜잭션 데이터를 확인하세요
500 Internal Server ErrorCancelledUnexpectedly명시적 요청 없이 시스템이 작업을 취소한 경우내부 오류입니다. 증명 요청을 재시도하세요
500 Internal Server ErrorInternalError(String)내부 증명 생성 오류증명 서버 로그를 확인하세요. 오류가 계속되면 증명 서버를 재시작하세요
500 Internal Server ErrorJoinError증명 생성 중 태스크 join 오류내부 스레딩 오류입니다. 재시도하거나 재시작하세요

Job status enum

증명 서버는 각 증명 작업을 다음 상태로 추적합니다.

StatusDescription
Pending작업이 큐에 등록되어 워커를 기다리는 상태
Processing증명 생성이 진행 중인 상태
Cancelled시스템이 이 작업을 취소한 상태
Error(WorkError)작업이 오류로 실패한 상태
Success(Vec<u8>)증명이 정상적으로 생성된 상태

Health endpoint

/ready 엔드포인트로 증명 서버가 새 요청을 받을 수 있는지 확인하세요.

EndpointHTTP statusDescription
GET /ready200 OK서버가 증명 요청을 받을 준비가 된 상태
GET /ready503 Service Unavailable서버가 사용 중인 상태 (모든 워커 점유)

Common issues

가장 자주 발생하는 문제와 그 원인을 다음 표에 정리했습니다.

SymptomLikely causeFix
429 응답너무 많은 증명 요청이 서버로 동시에 전송되는 경우병렬 증명 요청 수를 줄이고, 부하 상황에서 요청 간격을 두도록 지수 백오프 재시도 전략을 구현하세요
/ready의 503 응답모든 증명 워커가 사용 중인 경우진행 중인 증명이 완료될 때까지 기다리거나 설정에서 워커 수를 늘리세요
"BadInput"이 포함된 500 응답트랜잭션 데이터 형식이 잘못된 경우SDK로 트랜잭션을 올바르게 빌드했는지 확인하세요
6300 포트 연결 거부증명 서버가 실행 중이지 않은 경우증명 서버 컨테이너를 시작하고 Docker 상태를 확인하세요
느린 증명 생성회로가 크거나 리소스가 부족한 경우증명 서버 컨테이너에 CPU나 메모리를 더 할당하세요