서비스와 운영
저장소에는 무허가 호출을 보내는 keeper와 게시를 준비하는 이벤트 릴레이라는 독립 프로세스가 있습니다. 로컬 설정은 서비스 연속 실행의 증거가 아닙니다.
Keeper
keeper는 네트워크·Hook/Lens 연결을 검사한 뒤 snapshot을 조회합니다. 문서 경로는 가능한 리밸런싱을 우선하고, 아니면 자금 배치, 나머지가 불가하면 분리 소각을 수행합니다.
전송 전 시뮬레이션하고 블록당 최대 한 작업만 합니다. 예상 자격 거절은 정상 결과이며 RPC 오류·예상 밖 시뮬레이션은 대응 가능한 오류로 알려야 합니다.
dry-run으로 시작
services/에서 설치와 README에 따른 로컬 설정 후:
DRY_RUN=true pnpm keeper:once
이 모드는 거래 제출 없이 네트워크, 배포, 확인 주소, 자격, 추정값을 검증합니다.
운영 지갑은 gas 전용이어야 하며 deployer·팀·guardian일 필요는 없습니다. 최대 gas·최소 보상 매개변수는 실행을 제한하지만 수익을 보장하지 않습니다.
거래 로그와 복구
keeper는 체인·hook·지갑·dry-run/live별로 상태를 분리하며 로컬 프로세스 잠금과 영속 intent·nonce·hash 로그를 사용합니다.
timeout·재시작 후 기존 거래 추적을 먼저 재개하고 새 작업을 준비합니다. hash 없는 intent는 모호하므로 로그 수정 전 지갑의 pending·채굴 nonce를 비교하세요.
이전 프로세스 종료를 확인한 뒤에만 .lock을 지우세요. 잠금은 로컬용이며 여러 기기를 조정하지 않습니다. 인스턴스마다 적절한 지갑·상태를 사용하세요.
모듈 변화
현재 Lens는 레지스트리에서 확인합니다. 전체 작업 동안 핵심 식별자와 개정 맥락을 유지하세요.
다중 매수벽은 ABI·미리보기·거절 사유·이벤트 갱신이 필요합니다. 해당 인수 검증 없이 단일 매수벽 keeper를 새 버전 검증 완료로 소개하면 안 됩니다.
이벤트 릴레이
services/floor-bot은 이벤트를 읽어 문구를 준비하고 cursor와 중복 제거 키 transactionHash:logIndex를 유지합니다.
dry-run과 게시 모드는 상태가 분리됩니다. cursor에는 체인·hook 맥락이 있고 지원 네트워크에서 finalized 블록을 씁니다. 재구성·불일치 checkpoint는 재개 전 조정해야 합니다.
릴레이는 게시 전 pendingPost를 저장합니다. 외부 서비스가 수락했지만 성공 기록 전 중단되면 재시도 전에 게시 존재를 확인하세요. 로컬 DB와 소셜 네트워크는 함께 commit할 수 없습니다.
GitBook은 게시하지 않습니다. 실제 릴레이 사용에는 별도 운영 설정과 승인이 필요합니다.
고정 매수벽 용어 조정
이전 릴레이는 FloorRaised를 알렸습니다. 시점별 정책에서는 이전보다 낮은 가격에 새 매수벽을 조성하면서 기존 가격대를 유지할 수 있습니다.
따라서 대상 매수벽, 가격대, 추가 자금을 명시하고 이벤트명만으로 전역 상승을 추론하면 안 됩니다. “floor는 항상 상승”은 이 정책 설명이 아닙니다.
유용한 운영 점검
RPC 오류, 설정 차이, 대기 영수증, 시뮬레이션 실패, keeper gas 잔액, 마지막 처리 블록 경과 시간을 추적하세요. 개인 서명 데이터 없이 복구 로그와 버전 식별자를 보존하세요.
프로세스 재시작 감독은 모호한 nonce나 레지스트리 변경 해결을 대체하지 않습니다.
출처: services/keeper/README.md, services/floor-bot/README.md, services/keeper/src/index.ts 및 services/shared.