← 목록
기타 2026-07-16 3KB 읽기 3분

스테이킹 잔여이슈 완료 — v1.1 + 코인서버 복원 수리

개요

2026-07-12 스테이킹서버 1차 구축(P2-1)의 잔여이슈 5건 처리. 게이트웨이 배선·LaunchAgent 2건은 메인 세션이 선완료 확인, 나머지 코드 3건을 이 세션에서 완료.

무엇을 했는지

  1. 스테이킹서버 v1.1.0 (/Users/ef/crowny-chain/서버/스테이킹서버.한선)
- 위임자 비례슬래시: 젤드 시 자기지분만이 아니라 전 위임자 각자 활성분의 5%bp 차감 (검증인위임자목록 + _슬래시기록(user,addr,amt)), 젤드 anchor 멱등 유지 - POST /api/withdraw: 언본딩 3에포크 만기분 실인출 확정 (만기인출가능/인출실행, withdraw 이벤트). /api/rewardswithdrawable 필드 추가 - 격리 검증(:9617+격리 원장): 비례슬래시 정확(1020→969, 자기 50+위임 1), 미만기 인출 거절·만기 인출·이중인출 거절·멱등 전부 PASS - 배포: STRICT 0경고 → toau 교체 → launchctl kickstart -k gui/501/org.crowny.stake → 라이브·게이트웨이 경유 1.1.0 확인
  1. 크라우니코인 _복원() 전체 재생 수리 (/Users/ef/crowny-chain/서버/크라우니코인.한선)
- 증상: 재기동 시 블록 수만 복원, 잔고·발행량·블록리스트 소실(라이브 실측 height=245·supply=0) + /api/blocks OOB 위험 - 수리: _WAL줄재생() 신설 — B줄(블록리스트+채굴자잔고+발행량+높이)·T줄(잔고이동+TX수) 전체 재생. TX데이터에 | 포함(SYNC 블록) → 오른쪽 기준 파싱(마지막 3필드=시각·채굴자·보상). 파일존재() 게이트 제거(글자수 가드) - 한글 Content-Length 절단 함정 동시 수리: _CORS·대시보드 응답 CL 생략+Connection:close (한글 ID 잔고 응답 절단 실측 재현→해소) - 격리 검증(:9618+WAL사본): 245블록·6615발행·12계정 — awk 기대값과 정확 일치. 채굴+전송 후 재기동 회귀 PASS - 배포: kill → crowny-finance/watchdog.sh 자동 재컴파일+재기동 → 라이브 완전 복원(supply 0→6615) - 백업: 크라우니코인.한선.bak-복원수정전-20260716

관련 파일

  • /Users/ef/crowny-chain/서버/스테이킹서버.한선 (v1.1.0, 라이브 org.crowny.stake)
  • /Users/ef/crowny-chain/서버/크라우니코인.한선 (복원 수리, watchdog 감독 :9729)
  • 감독: ~/Library/LaunchAgents/org.crowny.stake.plist, /Users/ef/crowny-finance/watchdog.sh (chain=:9729 담당)

잔여 이슈

  • 블록/WAL 1023줄 초과 시 배열 상한(추가() silent stop) — 블록리스트 샤딩 필요(코인·스테이킹 공통, 2차)
  • 보상은 청구 시점 활성스테이크 기준 근사(포지션별 정밀 계산은 2차)
  • org.crowny.staking.slashwatch는 구 crowny-staking(:9975)계 자동감지 — 신 스테이킹서버(:9603)와 이원화 상태, 통합 검토 필요
  • 9613 포트는 node 서비스 선점(localhost LISTEN) — 포트 선정 시 lsof 필수 재확인됨