← 목록
기타 2026-07-29 7KB 읽기 6분

크라우니 DEX 2단계 — 에이전트 6,561·유통량 가드·배포 산출물

개요

/Users/ef/crowny-dex 1단계(토크노믹스 서버+웹) 위에 작업지시 §3(에이전트 6,561)·§2(배포)· 유통량 10% 가드를 구현. 전부 DEX서버.한선 단일 파일에 통합(별도 프로세스 대신 같은 프로세스 내 함수 재사용 — TCP클라이언트(TCP연결)가 실제 VM에는 미구현임을 사전 확인하고 방향 전환).

무엇을 했는지

  1. 에이전트 6,561DEX서버.한선에 섹션 추가(국가/업종/서비스 배열, 담당계산, 8자리 3진 성격,
에이전트스왑실행→재투자원장, 틱배치+p95측정, 전수검증 함수). - 담당: agentId 1~1530 → 국가(153×10, 주담당+연계9, 연계는 (idx+role)%153 순환 → 항상 idx+1 간선이 존재해 전 국가 강연결 보장), 1531~6561 → 업종(81) 짝수오프셋 / 서비스(20) 홀수오프셋 순환. 전수 검증 API(/api/agents/verify)로 6561명 처리·미배정 0명·국가별 정확히 10명·업종 81/81·서비스 20/20 실측. - 캐릭터: seed=agentId, 8자리 3진수. agentId 3721 → 12002211(작업지시 예시와 정확히 일치). - 거래차익 100% reinvest_ledger 귀속: 에이전트 스왑은 산출가치를 자기 잔고에 적립하지 않고 재투자기록()으로 담당명 태깅해 귀속. from 토큰만 차감, 부족분은 "agent_capital_topup"으로 감사 로그에 별도 기록(차익 아님, 순환 운영자본). 감사 결과 에이전트 잔고 누적 없음 확인. - 스케줄러: 단일 프로세스, /api/agents/tick {n} 배치 호출(우선순위 큐 대신 라운드로빈 커서 + 밀리초 타이밍으로 p95 측정). 300명 배치 반복 시 p95 1~11ms(목표 <50ms 충족).
  1. 유통량 10% 상한 가드/api/supply 신규(9인 보급계정 화이트리스트, value_note 필수, 토큰별
유통량 추적 후 상한 초과 시 422). 상한값은 VM 곱셈 버그 회피 위해 리터럴로 고정(아래 함정 참조).
  1. 배포 산출물deploy/deploy.sh(rsync+systemctl), deploy/crowny-dex.service,
deploy/crowny-dex-agents.service+.timer(에이전트 틱 5분마다 300명 순환), deploy/nginx-dex.conf.example. VPS에는 배포하지 않음(작업지시 명시, 파일만).
  1. 딥링크web/index.html딥링크시도()(crowny://dex/탭 시도→800ms 후 해시 폴백)와
딥링크초기화()(쿼리 tab= → 해시 정규화) 추가. 한선씨 동반본 web/index.한선.

QA 결과표 (작업지시 §5 대조)

항목상태근거
value_note 없는 거래 0건 확정유지(1단계 검증됨)스왑/대출/보급 전부 422 재확인
아래로 스왑 7% 기부 적립유지1단계 QA 유지
CRD 대출 Tier 한도유지1단계 QA 유지
희년 시뮬레이션유지1단계 QA 유지
한선/선호 비노출유지1단계 QA 유지
유통량 10% 상한 가드부분 통과로직·화이트리스트·value_note 게이트는 확인. 단 극단(수십억) 단일 발행 시 정확도가 VM 정밀도 한계로 완전 신뢰 불가(아래 함정) — 실사용 스케일은 안전, 잔여 리스크 인계
에이전트 6,561 전원 활성 24h 무중단부분 통과담당·캐릭터·재투자 로직은 정상, tick p95<50ms 충족. 단 6561명을 한 번에 처리하면 VM 배열 상한(≈4095)에서 프로세스가 죽는 것을 실측 — 300~500 배치로 운영 설계(systemd 타이머)로 회피, 근본 수정은 미착수
담당 없는 에이전트 0명 · 153국 10명 충족 · 연계그래프 전원 도달통과/api/agents/verify 전수 실측: unmandated 0, country_min=max=10, 81/81, 20/20. 연계그래프는 (idx+role)%153으로 idx→idx+1 간선이 항상 존재해 수학적으로 강연결(153노드 순환)
거래차익 100% reinvest_ledger 귀속, 에이전트 잔고 축적 0통과코드상 to심볼 잔고 미적립 구조 + audit_log 실측(agent_capital_topup만 반복, 누적 없음)
LLM/외부 API 호출 0건통과grep(openai|anthropic|fetch\(|http.request|curl |gpt-|llm) 매치 없음(자기보고 필드 문자열 제외)
라이트/다크 토큰 스왑만유지(1단계)미변경
빈 포트 자동탐색→port.json→nginx 연동통과(파일)1단계 로직 유지 + nginx-dex.conf.example에 프록시 포트 명시. 실 VPS 연동은 미실행

새로 발견한 VM 함정 (신규 실측, DEX서버.한선 상단 주석 + 프로젝트 CLAUDE.md에 반영)

  1. % 연산자가 균형(centered) 나머지를 반환: 2%3 == -1, 11%3 == -1(표준 0..2 나머지가 아니라
|r|<=b/2). 내림()도 floor가 아니라 반올림(내림(2/3)==1). 표준 나머지/floor가 필요하면 내림나눗()/표준나머지() 보정 헬퍼로만 계산해야 한다.
  1. 함수 지역 배열 변수 2회째 호출 오염(기존 feedback 재확인): 8자리 3진수 추출 함수에서 실측,
배열을 함수 안에서 새로 만들어 반환하는 패턴을 반복 호출하면 2회째부터 조용히 틀린다. 회피: 배열 없이 스칼라만 반환하는 함수로 재설계.
  1. 큰 정수 × 소수 곱셈 심각 오염(신규): 23400000000.0 * 0.1015477066(기대 2340000000의 약
1/151). float32 정밀도 손실로 설명되지 않는 규모의 곱셈 자체 결함. 회피: 상한/비율 값을 런타임에 곱하지 않고 소스에 리터럴로 직접 명시.
  1. VM 배열 성장 상한(≈4095)에서 프로세스 크래시: 전역 배열이 계속 append되며 길이 4095~4096을
넘는 순간 "배열 범위 초과" 런타임 에러가 100회 누적 → VM 자체 종료(단일 프로세스라 서비스 전체 다운). 에이전트 6561명을 한 번에 틱 처리(n:6561)했을 때 실측. 완화: 배치 300~500 단위로 분할 + 외부 타이머(systemd)로 주기 실행.

관련 파일

  • /Users/ef/crowny-dex/DEX서버.한선 — 1단계+2단계 통합 서버(에이전트/유통량가드 섹션 추가)
  • /Users/ef/crowny-dex/data/countries.json, data/businesses.json — 담당 레퍼런스 데이터(SSOT는 서버 내 배열, 이 JSON은 배정 규칙 문서화용)
  • /Users/ef/crowny-dex/web/index.html, web/index.한선 — 딥링크
  • /Users/ef/crowny-dex/deploy/ — deploy.sh, systemd 유닛 3종, nginx 예시
  • /Users/ef/crowny-dex/CLAUDE.md — 2단계 QA·VM 함정 갱신

잔여 이슈 (다음 세션 인계)

  • 유통량 가드 극단값 정확도 — VM 곱셈/덧셈 정밀도 근본 원인 미해결(리터럴 캡으로 실사용 범위는 안전).
  • VM 배열 상한 근본 수정(로그 회전/압축) 미착수 — 24h+ 연속 운영 전 필수.
  • 오더북 매칭엔진 체결 로직 — 3단계로 이월.
  • systemd/nginx 파일 미검증 배포(파일만 작성, 작업지시 명시대로 VPS 미적용).