← 목록
기타 2026-07-28 5KB 읽기 5분

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단계에서 재구성 로직 필요