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

크라우니클라우드 체인 모듈 — 보여주기→실구동 전환

개요

클라우드_체인.한선(9662 사이드카)의 잔액 표시가 하드코딩 시드 12.5 + 전역(소유자 무구분) 장부 합산이던 것을 owner별 분리 실장부로 전환하고, 실앵커(:9611 /api/anchor) 연동을 배선했다.

무엇을 했는지

  1. 체인장부.psv 스키마 확장: ts|kind|desc|amount|blockts|owner|kind|desc|amount|block. 기존 1행(jimin 백업보상)을 owner=jimin으로 마이그레이션(.bak 보존).
  2. 시드 제거: 체인잔액(owner) = 해당 owner 행 amount 합만(시드 0, 신규 계정 0).
  3. 체인기록(owner,kind,desc,amount)로 시그니처 변경, 클라우드_백업.한선 호출부 수정(백업보상 +0.4가 owner로 귀속).
  4. GET /api/chain: records=owner 소유 최근 12건만, permBlock=owner 마지막 기록 block(없으면 0).
  5. 실앵커 연동: 체인기록 시 로컬 append 후 체인앵커시도()가 curl로 :9611 /api/anchor POST(SHA256(원장줄) content) 호출, 성공 시 앵커기록.psv(ts|owner|seq|anchor)에 별도 기록. 실패해도 로컬 기록 유지.
  6. 프론트(public/cloud/index.html): 권한 원장 블록 permBlock=0이면 "—" 표시로 수정.
  7. hanseonc_high 전방참조 함정 회피: 체인JSON추출/체인JSON숫자필드를 호출부(체인기록/체인앵커시도)보다 앞으로 재배치.

검증 결과

  • 본체(클라우드관리.한선, 7모듈+본체 조립) STRICT 컴파일 0에러 → 클라우드관리.toau 재컴파일, 9662 kill 후 KeepAlive 자동재기동 확인.
  • 무토큰 GET /api/chain → 401 확인.
  • cloudtest 로그인 토큰으로 GET /api/chain → balance 0, records [] 확인(시드 제거 실측).
  • POST /api/backup(테스트 merge 데이터 임시 생성) → ok, 이어 GET /api/chain → balance 0.4, records 1건(backup_reward, cloudtest) 확인.
  • jimin 행 보존 확인(장부 grep).
  • data/cloudmgr/앵커기록.psv에 실제 seq=1 기록 확인(:9611 실앵커 호출 성공).
  • 테스트용 data/merge/cloudtest, backups/cloudtest 정리 완료(원장 행은 실기록이라 보존).

관련 파일

  • /Users/ef/crowny-services/클라우드_체인.한선
  • /Users/ef/crowny-services/클라우드_백업.한선
  • /Users/ef/crowny-services/클라우드관리.한선 (본체, 변경 없음 — 조립만 재확인)
  • /Users/ef/crowny-services/public/cloud/index.html
  • /Users/ef/crowny-services/data/cloudmgr/체인장부.psv (+ .bak-* 백업)
  • /Users/ef/crowny-services/data/cloudmgr/앵커기록.psv (신규)
  • /Users/ef/crowny-services/클라우드관리.toau (재컴파일)

잔여 이슈

  • 없음(설계 항목 1~7 전부 실측 검증 완료). 향후 owner별 permLevel 승급 로직은 별도 등급.psv 갱신 플로우가 필요하면 후속 작업.