crowny-dex 재구축 (1단계: 서버+웹, 새 토크노믹스)
개요
dex.crowny.org 옛 오더북형 DEX를 폐기(백업:
/Users/ef/crowny-dex-backup-*/crowny-dex/)하고,
/Users/ef/Downloads/crowny-dex-handoff/ 작업지시·시안에 따라 새 토크노믹스로 서버(한선씨)+웹(정적)을 완전 재구축했다.
에이전트 6,561 러너와 systemd/nginx 배포는 이번 범위 밖(2단계).
무엇을 했는지
토크노믹스 엔진
- CRN(234억,25.5CRD) FNC(777억,2.55CRD) CRM(777억,0.0255CRD) CRD(내부페그 1CRD=1000원,대출전용발행) 한선/선호(각777억,숨김)
- 스왑: 위로(CRM→FNC→CRN) 0% / 아래로 7% →
donation_ledger
- CRD 무이자 RWA담보대출: 한도 Tier0~4=7/14/21/28/35%, 대출액=CRN 100% 매칭잠금(
rwa_locks)
- 희년 2038-09-30(UNIX 2169385200): 미상환 대출 삭제(
jubilee_cleared)+락 해제. DEX_NOW env 또는 런타임 /api/_settime으로 시뮬레이션 가능
- 한선/선호: CRN가치 7배초과 AND 희년이후에만 노출, 그 외 API/화면 완전 비노출
- value_note 없는 쓰기 API는 422로 거부 (스왑/대출/상환/P2P/주문)
- 쿨다운: 유저당 확정거래 후 600초
서버
/Users/ef/crowny-dex/DEX서버.한선 단일 한선씨 파일. hanseonc_high 컴파일 성공(21,308~21,576 큐브), TCP서버로 실제 기동·API 응답 확인.
- API:
/api/markets /api/swap /api/loan /api/repay /api/p2p /api/orders(GET/POST) /api/wallet/:id /api/paper /api/audit /api/agents(스텁) /api/stats(스텁). QA전용 /api/_seed /api/_settime 추가(배포 전 가드/제거 필요).
- 포트:
PORT env 우선, 없으면 9820~9829 후보 스캔 → data/port.json 기록.
- 정적 프런트(
web/) TCP서버 내에서 직접 서빙.
웹
/Users/ef/crowny-dex/web/index.html — 단일 정적 SPA. 크라우니캔버스 디자인 규칙 토큰(--바탕/--종이/--골드/--잉크 등) 그대로 사용, 해시 라우팅(#스왑 등), 탭 8종(홈/스왑/트레이딩/풀/스테이킹/지갑/백서/모바일).
- 스왑/주문 화면은 실제 API 호출(가치 노트 모달 포함), 풀/스테이킹은 2단계 연동 예정 안내만.
실측 검증 (curl, 실제 프로세스 기동)
- value_note 누락 → 스왑/대출 422 확인
- 하향 스왑 CRN→FNC 100 → 산출: amount_out=930, donation=178.5(=100×25.5×0.07),
donation_ledger.tsv에 즉시 적립 확인
- 대출 Tier0(담보1000, 한도70) 요청100 → 422(한도초과) / 요청70 → 성공, locked_crn=2.7451(=70/25.5) 확인
/api/_settime으로 2038-09-30 이후로 이동 → 활성 대출이 jubilee_cleared로 전환 + audit_log에 jubilee_clear 기록 확인
- 한선/선호가
/api/markets /api/wallet /api/paper 응답 어디에도 없음을 grep으로 확인
- 정적 프런트
/, /index.html HTTP 200 확인
VM 함정 (이번 작업 중 실측·수리)
- 함수명이 숫자로 시작하면(
함수 404응답()) 컴파일 에러 — 응답404()로 우회
시도 등 예약어를 bare 변수명으로 쓰면 파싱 에러
정수변환() 내장함수 없음 — 숫자변환()만 존재
- 한글 포함 JSON 응답에
Content-Length: 글자수() 사용 시 UTF-8바이트>문자수라 본문이 끝에서 잘림(curl까지 영향 실측) → Content-Length 생략 + Connection: close로 우회(가드레일 문서에 이미 기재된 함정, 이번에 실제 발생·수리)
관련 파일
/Users/ef/crowny-dex/DEX서버.한선 — 서버 본체
/Users/ef/crowny-dex/web/index.html — 웹 프런트
/Users/ef/crowny-dex/CLAUDE.md — 아키텍처/API/실행법 갱신
/Users/ef/crowny-dex/data/ — audit_log.tsv, donation_ledger.tsv, loans.tsv, port.json
- 백업(옛 버전):
/Users/ef/crowny-dex-backup-*/crowny-dex/
- 참고 자료:
/Users/ef/Downloads/crowny-dex-handoff/ (작업지시·시안·백서·토큰CSS)
- 디자인 SSOT:
/Users/ef/crowny-canvas/시안/크라우니캔버스 디자인 규칙.css (vision 사본과 동일, diff 0)
잔여 이슈 (2단계)
- 에이전트 6,561 규칙기반 러너(담당 시스템·캐릭터·재투자원장) 미착수
- systemd/nginx/deploy.sh, VPS 배포 미착수
- 유통량 총량 10% 상한 가드·9인 보급 시드 스크립트 미착수(상수만 정의)
- 오더북 체결 매칭엔진 없음(등록만 됨)
/api/_seed, /api/_settime은 QA 전용 — 실배포 전 인증가드 또는 제거 필요
- 데이터 영속화는 append 로그(TSV)만 있고 프로세스 재시작 시 인메모리 상태(잔액 등) 미복원 — 2단계에서 재구성 로직 필요