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

크라우니RTC P0 완료 + P1 조립 — 병렬 5기 통합 결과

P0 통합·부채청산 (완료)

  • RTC코어 SSOT (/Users/ef/crowny-rtc/코어/): signaling.js(B)+call-signaling.js(C) 병합 792줄 + 한선씨 정본 339줄(10,469큐브 컴파일). 스모크 34/34. B의 그룹통화 종료 버그 발견·수정(1명 이탈=전체방 종료→2명 미만 규칙), uuid Math.random→crypto 강화. 어댑터 2개(ws-server-v3 드롭인 / CrownyTVM 드롭인+자체WS프레이밍).
  • 통화.한선 STUN 자체 인프라 우선 교체(stun.crowny.org:3478), A 계보(크라우니RTC.한선) 아카이브, TURN :3478 레지스트리 등록.
  • 배선runbook.md — 라이브 서버 갈아끼우기 절차+롤백 (라이브 무접촉 준수, require 한 줄 교체 수준).

P1 조립 (완료 — 시그널링·전송 레벨 검증)

  • 4상DC.js (전송/): 한선씨 정본과 바이트 완전 일치 교차검증, 21/21 테스트. CrownyQuadChannel(비신뢰 DataChannel 래퍼, 소거율 EMA로 사본수 2/3/5 자동 적응).
  • CAF7 판정 (코덱/): WASM 탑재 실증(35KB, 네이티브 바이트 일치). 단 8~16kbps 저대역 미구현(profile=0 스펙만) → P1 잠정=Opus 8kbps SDP 강제, P1b 신설=CAF7 인터컴 프로파일+헤더리스 프레임(2~3주).
  • RTC데모 (:9663, 가동 중): RTC데모서버.js+RTC데모.html — 1:1 음성(Opus 8k munging)+4상 채널(채팅/소거율/사본수 표시)+TURN 자격증명. 실WS E2E 7/7(auth→turn→offer→ringing→answer→ice→hangup). 브라우저 2탭으로 실음성 테스트 가능: http://127.0.0.1:9663/
  • 함정 2건 학습: 어댑터B 단독시 upgrade 리스너 필수 / 한글 정적경로 decodeURIComponent.

게이트 실측 (옴 선결)

  • CVF(P2 게이트): 통과 — 27×15 인코딩 0.35ms/프레임(예산의 1/236), 14.4kbps@12fps, PSNR 32dB. 54×30은 240kbps로 저비트 프로파일 튜닝 3후보 확보(조건부).
  • SFU(P3/P4 게이트): 통과 — N=30 p95 2ms·CPU 0.6%·무손실, N=100 방송 무손실 (로컬호스트, WAN 재검 권장). 지연 여유 100배.

P2 조립 (완료 — 2026-07-03 연속 세션)

  • CVF채널.js/.한선 (전송/): CVF 씨앗을 트릿 네이티브 2비트 패킹(T=3,O=2,A=1,구분자=-0) — ASCII 대비 4배 절감.
검증 5/5: 현실 프레임 52.4kbps@12fps < 64k 게이트, PSNR 29.8dB, I유실→P폐기→다음I 복구. 적대 그라데이션 상한 78.4kbps 정직 기재.
  • 데모(:9663)에 셀영상 카드 배선: 웹캠→27×15 다운스케일→CVF I/P→4상 채널(type=3)→수신 렌더(픽셀레이트 업스케일). 시그널링 회귀 7/7.
  • SFU 게이트(P3/P4) 통과: N=30 p95 2ms·CPU 0.6%, N=100 무손실(로컬호스트 — WAN 재검 권장).

P3/P4 조립 (완료 — 시그널링·중계 레벨)

  • RTC코어 플랫 프로토콜 확장: group:call:create(방이름 생성-또는-참여) + cast:frame(SFU-lite 방송 중계, 참여자 검증·발신자 제외). 한선씨 정본 동반(그룹생성또는참여/캐스트중계대상). 기존 스모크 34/34 회귀 무결.
  • 데모 멀티피어 개편: 피어별 PC/quad 맵 mesh(≤4, 신규자 발신=glare 회피), 그룹 참여 UI, 셀영상 mesh DC 모드 + SFU-lite WS 방송 모드(base64 레인), 피어별 오디오 엘리먼트(브라우저 자동 믹싱).
  • E2E: 그룹+방송 8/8(3클라 생성→참여 명단→캐스트 1→2 팬아웃→퇴장통지), 1:1 회귀 7/7.
  • 잔여(실기): mesh 실미디어 다자 통화는 브라우저 2~4탭 실기 테스트 영역. 원바이너리 캐스트 레인·CAF7 서버믹싱(P1b 의존)은 후속.

P5 조립 (완료) + 프로토콜 v1.1

  • 포즈벡터.한선/.js (전송/): AR/VR 27트릿 1큐브 포즈(x8+y6+z8+yaw4+상태1트릿), 정본 헥사 교차검증 일치, 검증 8/8(래핑·역행폐기·클램프 포함). 직결모드 15B/프레임 3사본@60Hz=21.6kbps.
  • 프로토콜 v1.1 — 총사본 니블 조기 플러시: 수신기가 총 사본 수를 몰라 재조립창 120ms 만료까지 대기하던 결함 발견 → 헤더 byte4=총사본×16+사본번호(고니블 0=미상 타이머 폴백, 하위호환). 정본·JS 동시 갱신, 전 스위트 회귀(한선 13/13, 사상DC 21/21, CVF 5/5, 포즈 8/8, E2E 7/7+8/8).
  • 데모 AR/VR 미니맵(±32.8m) 배선: 마우스 포즈→20Hz 4상 채널→상대 아바타 렌더(3초 무신호=이탈).

16시간 연속작업 라운드 (진행중)

  • P6 완료: 타임싱크.한선(11/11)+.js(10/10) — NTP식+EMA+4상 시계판정+체인높이 앵커(공통시계 편차 1ms<10ms KPI). 데모 배선(시계 배지·/chain-height 프록시).
  • ③ 원바이너리 캐스트 완료: WS opcode 0x02, [0xC1 room]→[0xC2 from] 재포장, base64 대비 -33%. E2E 9/9.
  • ④ CVF 54×30 저비트 완료: 레이트 컨트롤(GOP24·P드랍·overBudget 강등신호) 52.7kbps<64, PSNR 42.7dB. 양자화 접근은 PSNR 붕괴로 기각. 참고: 현실 프레임은 현행 파라미터도 63.5kbps — 240kbps는 적대 상한이었음.
  • P1b CAF7 인터컴 완료(직접 재검증): caf7_intercom.c(419줄, crowny-audio 무접촉 독립구현) — 16kHz/20ms→160샘플 저역강조→2탭 감쇠예측+적응 균형3진 델타변조→5트릿/바이트, 프레임 34B=13.6kbps·SNR 19.18dB·프레임 독립(유실 후 비트동일). 스펙 이탈(LPC8차 대신 2탭) 판정문서 명시. 잔여: WASM 빌드→데모 배선(Opus 잠정 교체), 실음성 픽스처 검증, 슬로프 과부하 개선 3후보.
  • ⑤ 실기테스트가이드.md + WAN실측.sh(루프백 3/3 무결) — 두 맥 소거율-거리 실곡선 확보 절차.

다음

P2 착수(CVF 셀영상 DataChannel 탑재 — 게이트 통과로 즉시 가능) → P3(그룹 mesh UI+SFU-lite) → P4 → P5 → P6(블록체인 타임싱크, 계획 반영됨). 데모 서버 종료: pkill -f "node RTC데모서버"