온체인 · 상장
Zenith 프로그램에 마켓을 새로 만들 때. 기존 Manifest 마켓 주소는 안 따라온다.
Zenith 프로그램에 3페어 마켓 생성
create-zenith-markets.tsDOGEK/SOL · SOL/USDC · SPEPE/USDT 를 우리 Core 프로그램에 새로 만든다. 호가는 0부터.
이럴 때 · Zenith Core·Wrapper를 메인넷에 배포한 뒤, LISTED_MARKETS 주소를 바꿀 때
미리보기
npx tsx scripts/create-zenith-markets.ts --dry-run
RPC로 rent만 보고 전송하지 않음. 마켓 키는 매번 새로 뽑힘
체인을 안 바꿈. 출력 주소는 실제 배포와 다름
npx tsx scripts/create-zenith-markets.ts
createAccount+createMarket 전송. 새 마켓 주소를 출력
메인넷에 마켓이 생김. WALLET_SECRET_KEY·SOL 필요
- 출력 address를 packages/shared LISTED_MARKETS 에 넣는다
- 옛 Manifest 마켓·차트·체결은 이 주소와 무관
차트 · 체결 데이터
로컬 Mongo. 차트 볼륨이 비었거나, 테스트 페어 과거 데이터를 지울 때.
차트 볼륨 · 체결 채우기
backfill-fills.ts차트 하단 막대는 체결량이다. 이미 있는 fills로 봉을 다시 쌓거나, 체인에서 체결을 새로 가져온다.
이럴 때 · 볼륨이 비었을 때, 또는 체결을 지운 뒤 다시 넣을 때
추천 · 수 초
npx tsx scripts/backfill-fills.ts --market dogek-sol --candles-only
Mongo fills만 읽고 차트 OHLC·볼륨을 다시 쌓음. RPC 없음
체결은 안 건드림. 볼륨 채우기는 이 명령
느림 · 몇 시간
npx tsx scripts/backfill-fills.ts --market dogek-sol
체인 서명을 한 건씩 긁어 fills 넣은 뒤 캔들도 재구성
RPC+250ms/건. Ctrl+C 해도 커서 이어서 재개. --max-sigs N으로 상한
npx tsx scripts/backfill-fills.ts --market dogek-sol --no-candles
체인에서 체결만 넣음
차트(candle_bars)는 안 만짐
날짜 컷
npx tsx scripts/backfill-fills.ts --market spepe-usdt --since 2026-08-06
2026-08-06 0시(KST) 이후 체결을 체인에서 가져와 fills+차트 볼륨 구성
그 이전 서명은 안 긁음. 날짜 없으면 계정 처음부터. Ctrl+C 후 같은 --since로 재개
- --market sol-usdc | dogek-sol | spepe-usdt 로 마켓만 바꾸면 됨
- 느린 명령은 마지막 페이지까지가 끝. 커서는 .backfill-fills-<id>.cursor.json
차트 · 체결 삭제
delete-market-data.ts그 마켓 Mongo 체결·캔들을 지운다. 화면 상장(페어 목록)은 그대로.
이럴 때 · 테스트 페어 과거 데이터를 비울 때
미리보기
npx tsx scripts/delete-market-data.ts --market sol-usdc --dry-run
지울 건수만 출력
DB는 안 지움
실제 삭제
npx tsx scripts/delete-market-data.ts --market sol-usdc --yes
fills + candle_bars 삭제
--yes 없으면 거부. 차트만 남기고 체결만 지우는 옵션은 없음
- --market dogek-sol | sol-usdc | spepe-usdt 로 마켓만 바꾸면 됨
체결에 페어 이름 붙이기
label-fills.ts구 fills에 marketId/pair가 없을 때 라벨만 채움.
이럴 때 · Compass에서 주소만 보일 때
npx tsx scripts/label-fills.ts
상장 마켓 fills에 pair 라벨 $set
체인·삭제 없음. 필드만
부하테스트
실측은 Railway load-sse / load-test 기동. 로컬 숫자는 참고만.
접속 부하 (SSE)
load-sse.ts가상 탭 N개가 realtime에 붙는다. --full-tab이면 Trade 화면과 같은 SSE 세트.
이럴 때 · 동접·Online 숫자를 재볼 때
실측 추천
npx tsx scripts/load-sse.ts --count 500 --full-tab --ramp 100/2s
2초마다 100탭 × SSE 5, 500유저 후 1분 유지
동시 몰림 완화. Railway: railway up --service load-sse
npx tsx scripts/load-sse.ts --count 100 --hold 60
Online(presence)만 100연결
full-tab보다 가볍다
npx tsx scripts/load-sse.ts --count 10 --dry-run
URL만 출력
연결 없음
- count=가상 탭 수. full-tab ≈ 탭당 SSE 5
- dev만. presence마다 daily_visitors +1 → 끝나면 realtime 재시작
주문 부하
load-orders.ts서버 지갑으로 limit 주문을 count건 동시에 보낸다. HTTP 서버 없음.
이럴 때 · 주문 RPC·체결 한도를 재볼 때
npx tsx scripts/load-orders.ts --count 10 --market sol-usdc
소액 limit 10건 동시 전송
--market dogek-sol | spepe-usdt 가능. 실측은 railway up --service load-test
npx tsx scripts/load-orders.ts --count 10 --dry-run
파라미터만 출력
체인·지갑 안 씀
- WALLET_SECRET_KEY 필요(아래 변환 스크립트). UI 주문은 Phantom이라 trade-api에 키 불필요
지갑 키 → JSON
wallet-secret-to-json.tsbase58 개인키를 Railway WALLET_SECRET_KEY용 숫자 배열로 출력. 1회.
이럴 때 · load-orders / load-test 키를 넣을 때
npx tsx scripts/wallet-secret-to-json.ts "paste-base58-key-here"
stdout에 [1,2,…] 한 줄
PowerShell은 따옴표 필수(< > 금지). 출력·키 커밋 금지