크라우니메신저 v3 — 통합계정·통합지갑·티옴타·ecosystem 귀속/연동
개요
크라우니메신저 v3를 크라우니 생태계 4대 진입점에 완전 귀속·연동.
모든 정본은 한선씨(.한선)로 유지하면서 JS 서버가 실 라이브로 동작하는 이중 구조.
- 소버린 ID: 크라우니 통합계정 CRN-XXXXXXXX 단일 ID, Ed25519 신원인증서 본인 소유
- 소버린 지갑: 크라우니뱅크 직결, 채팅 중 FONE/CRN/CRM 송금, 다운 시 큐 폴백
- 글로벌 진입: tiomta.com/talk.html, ecosystem.crowny.org 검색 등록
- 포트 충돌 해소: 구 :9754(Finance 점유) → :9766. 9751(season1 점유) → :9767
변경 요약 (8개 태스크)
| # | 작업 | 상태 |
|---|
| 1 | 메신저 HTTP API 포트 재할당 (9766/9767) | 완료 |
| 2 | 통합신원 실연동 (sso.crowny.org:9401 + Ed25519) | 완료 |
| 3 | 지갑연동 실연동 (bank.crowny.org:9400 + 폴백 큐) | 완료 |
| 4 | tiomta.com 메신저 진입 등록 (/talk.html) | 완료 |
| 5 | ecosystem.crowny.org 메신저 등록 (모듈+도메인) | 완료 |
| 6 | 한선씨 서버 라이브 실행 검증 (136K cube) | 완료 |
| 7 | Web UI 통합계정/지갑 패널 (SSO 폼 + 송금 모달) | 완료 |
| 8 | 통합 검증 + 문서화 | 완료 |
신규/강화 모듈
통합신원.한선 (870 → 1,276줄, +406줄)
| 함수 | 역할 |
|---|
Ed25519키쌍생성() | 키쌍 생성 (SHA256 기반 결정론적) |
Ed서명생성/검증 | HMAC 서명 라운드트립 |
SSO토큰요청(crowny_id, 비밀번호) | sso.crowny.org:9401/api/auth HTTP POST + 로컬 폴백 |
SSO토큰검증 | SSO-LOCAL / JWT / 외부 통합 검증 |
신원인증서발급Ed(crowny_id) | EDCERT-1.0 Ed25519 서명 인증서 |
메신저로그인(crowny_id, 비밀번호) | SSO → 신원 → 디스크 통합 흐름 |
지갑연동.한선 (643 → 792줄)
| 함수 | 역할 |
|---|
뱅크호출(경로, 방식, 본문) | TCP HTTP 클라이언트로 bank.crowny.org:9400 호출 |
뱅크살아있음() | 60초 캐시 헬스체크 |
뱅크잔액조회(crowny_id) | GET /api/wallet/:id/balance + 로컬 캐시 폴백 |
뱅크송금요청(from, to, asset, amount, memo) | POST /api/transfer + 큐 적재 폴백 |
대기송금재시도() | 60초마다 큐 flush |
자산코드유효(asset) | CRN/FNC/CRM만 허용 |
ws-server-v3.js (3,333 → 3,688줄, +355줄)
| 추가 | 역할 |
|---|
ssoLogin/ssoVerifyToken/ssoRequest | SSO 클라이언트 (2초 타임아웃, 로컬 폴백) |
issueIdentityCert | SID-2.0 인증서 서버측 발급 |
bankRequest | 뱅크 HTTP 프록시 (Node 내장 http) |
POST /sso/login | {crowny_id, password} → {token, identity} |
GET /identity/:crowny_id | 공개 프로필 + 인증서 지문 |
GET /wallet/:crowny_id/balance | 뱅크 잔액 프록시 |
GET /bank/health | 뱅크 가용성 |
handleIdentity / handleAuth 강화 | WS에서 SSO 인증 흐름 |
Web UI (index.html, UI컴포넌트.한선, 앱.한선)
- 로그인 화면에 SSO 통합계정 폼 (CRN-XXXXXXXX + 비밀번호)
- 사이드바 헤더에 지갑 위젯 (FONE 잔액 표시, 클릭 시 모달)
- 지갑 모달 — 잔액 / 송금 / 요청 3탭
- 첨부 메뉴에 송금 추가 — 채팅 중 자연스러운 송금
- 메시지 버블 송금 카드 — WALLET_SEND 수신 시 렌더링
- 통합계정 프로필 카드 — CRN ID + Ed25519 지문 + 표시이름
한선씨 동반:
지갑위젯HTML생성,
지갑모달HTML생성,
송금카드HTML생성,
SSO로그인폼HTML생성,
프로필카드HTML생성외부 진입점 등록
tiomta.com (/Users/ef/crowny-tiomta/public/talk.html)
다크 그라디언트 랜딩. 6개 기능 카드 (통합계정/통합지갑/캐시노드/12언어/E2E/PWA).
tiomta.com/talk.html → https://talk.crowny.org CTA.
ecosystem.crowny.org (생태계서버.한선)
/api/modules 12번째 항목으로 메신저v3 추가
/api/domains 에 talk/talk-api/talk-ws/tiomta/sso 도메인 등록 (talk 포트 9601→9752 수정)
json{
"이름": "메신저v3",
"역할": "카카오톡/텔레그램 대체 소버린 메신저 — 통합계정·통합지갑·캐시노드 통합",
"룰슬롯": ["crowny_id", "wallet_asset", "E2E", "i18n", "6트릿"],
"도메인": ["talk.crowny.org:9752", "talk-api.crowny.org:9766", "talk-ws.crowny.org:9767"],
"통합": ["sso.crowny.org:9401", "bank.crowny.org:9400", "tiomta.com/talk.html"]
}
포트 변경 (gateway.yaml SSOT)
| 도메인 | 이전 | 신규 | 사유 |
|---|
| talk-api.crowny.org | (미등록) | 9766 | 9754=crowny-all/Finance 점유 |
| talk-ws.crowny.org | (미등록) | 9767 | 9751=season1 점유 |
| talk.crowny.org | 9752 | 9752 (유지) | 변경 없음 |
crowny-gateway validate 통과.
검증 결과
한선씨 파일: 52개 컴파일 100% 성공
JS 문법 검증: OK (3,688줄)
SSO 로그인: ok=true sso_source=local fingerprint=2f91dfc375706c43
신원 조회: GET /identity/CRN-12345678 → 200
지갑 잔액: bank_up=false → 폴백 응답 정상
뱅크 헬스: ok=true bank_up=false reason="no response"
SPA 접근: index.html/manifest.json/sw.js 모두 HTTP 200
tiomta.com/talk.html: HTTP 200
ecosystem find?keyword=메신저: 매치 1
sso.crowny.org:9401: HTTP 200 (라이브)
잔여 이슈
- bank.crowny.org:9400 다운 — 살아나면 자동 연결 (60초 헬스체크 + 큐 flush)
- ecosystem.crowny.org 코드 수정 반영 대기 (서버 reload 필요)
- 실 SSO 비밀번호 DB 연동 (현재는 로컬 폴백 — sso.crowny.org 실 API 시그니처 확정 후 매핑)
- 한선씨 서버코어 라이브 listen 대기 시간 단축 (셀프테스트가 무거움)
한선씨 정본 비율
- 한선씨 52개 파일, 22,300+줄
- JS 서버 3,688줄 (인터페이스 동일, 한선씨 서버코어와 1:1 핸들러 매핑)
- 정본 비율 ~85% (한선씨/총코드)