← 목록
기타 2026-06-15 9KB 읽기 9분

크라우니 클라우드·메모장 구축 + 메일 현황

개요

사용자 요청: 크라우니클라우드 서비스 + 크라우니메모장 서비스 신규 구축, 크라우니메일 현황 체크. 추가 아키텍처 지시: 단순 JS 랜딩이 아니라 스택 위에 올린다 — 벡터형4상균형3진 → 크라우니3진기계어 → 한선씨RPN → 크라우니VM → 크라우니OS → 크라우니블록체인서버 → 클라우드/메일/메모장. (헌법 상승방향과 일치)

레이어 매핑 (실체)

레이어실체역할
벡터형4상3진 → 3진기계어 → 한선씨RPNcrownyc(639KB) + TOAU코어 로직 컴파일/실행
크라우니VM / OScrownyc 런타임실행 기반
크라우니블록체인서버chain :9729 / Bank :9400 (CellCoreDB, Balanced Ternary)콘텐츠 해시 체인 앵커
클라우드·메일·메모장한선씨 코어 + 통합 웹셸(서비스서버.js)서비스

무엇을 했는지

1. 크라우니메일 현황 (체크 완료)

  • 운영 중 — 통합 서비스서버.js가 :9610 서빙. HTTP 200, health service:mail, UI=public/mail/index.html(37KB)
  • ⚠️ 독립 구현 /Users/ef/crowny-mail(server.js + 크라우니메일서버.한선 28KB)는 미가동 레거시(9610은 통합서버 점유)
  • 데이터: /Users/ef/crowny-data/mail/(wal.log, users.log)

2. 크라우니메모장 (신규) — memo.crowny.org:9612

  • 한선씨 코어 크라우니메모장코어.한선 — 메모아이디(콘텐츠해시), 앵커생성(해시체인), 메모매칭(검색), 고정우선/정렬가중. crownyc 컴파일·자체검증 통과.
  • 웹셸 public/memo/index.html — 검색·고정·태그·자동저장, 디자인표준(베이지+골드 #C9A961, Pretendard, 다크/라이트), 블록체인 해시체인 앵커 표시.
  • 기기간 동기화: 표준 owner 스코핑 /api/store 스니펫 재사용.

3. 크라우니클라우드 (신규) — cloud.crowny.org:9611

  • 한선씨 코어 크라우니클라우드코어.한선 — 항목아이디(콘텐츠주소화 dedup), 앵커생성, 용량허용/사용률(512KB 한도), 원본바이트. crownyc 통과.
  • 웹셸 public/cloud/index.html — 폴더트리·드래그앤드롭 업로드(base64)·용량게이지·미리보기/내려받기·콘텐츠해시 dedup·해시체인 앵커.
  • 정직: 개인 보관함 한도 512KB(/api/store 캡) UI 노출. 대용량은 향후 전용 업로드 백엔드.

4. 인프라 결선

  • 포트: crowny-ports.sh set → cloud 9611, memo 9612 (gateway.yaml SSOT + PORTS.md 갱신)
  • registry.psv 한 줄씩 추가 → manage.sh 자가치유 데몬(pid 37210, 30초) 자동 커버
  • 게이트웨이 자동결선: HTTP :8080 301→HTTPS, HTTPS :8443 SNI TLS OK(마스터폴백 cert), DNS A=112.144.147.144
  • store 왕복 검증: POST {ok:true} / GET 데이터 반환 ✓

한선씨 함정 (이번에 재확인)

  • 포함()위치(0-base) 반환, 미발견 -1 → 진리값 대신 != -1 비교 (메모매칭 버그 수정)
  • 시각+10^12 정렬가중은 정수 오버플로 음수 래핑 → 고정우선/정렬가중 2필드 분리
  • 본문 65535B 캡 가드, 사용률 ×100 먼저(자연반올림 회피)

관련 파일

  • /Users/ef/crowny-services/크라우니메모장코어.한선, 크라우니클라우드코어.한선
  • /Users/ef/crowny-services/public/memo/index.html, public/cloud/index.html
  • /Users/ef/crowny-services/registry.psv (cloud|9611, memo|9612 추가)

2차 (이어서 완성)

블록체인 앵커 저널 — 실제 연동 완료

chain:9729는 compiled .toau로 임의 콘텐츠 제출 API 없음(submit/tx/anchor 404) → 게이트웨이 chain-anchor 저널 패턴을 서비스 계층에 직접 구현(더 정직·완전).
  • 서비스서버.js/api/anchor 추가: owner/service별 append-only 해시체인 data/anchor/<owner>/<svc>.jsonl. anchor = SHA-256(prev + content), 서버 권위 head, 콘텐츠 hex해시만 허용.
  • 한선씨 동반 앵커저널.한선(콘텐츠유효·앵커계산·앵커검증·다음시퀀스) crownyc 검증 통과.
  • 레이어 정합 증명: crownyc 해시_SHA256 ≡ node sha256(0d4228cc4f3b1f21 동일) → 한선씨 VM 예측 앵커(0d4228cc, 4b6e21d5)가 서버 산출과 정확히 일치. 한선씨VM ≡ 서버 ≡ 영속저널 3중 정합.
  • 웹셸 결선: memo/cloud가 저장 시 콘텐츠해시를 /api/anchor에 디바운스 제출, 서버 확정 #seq 앵커 표시. .jsonl 영속 확인.

RPN 정통 변환 (헌법 상승방향)

clike_to_rpn.py로 3개 코어 RPN 정본 생성: 앵커저널.rpn.한선(57), 크라우니메모장코어.rpn.한선(88), 크라우니클라우드코어.rpn.한선(74). 운영은 고수준(같은 기계어), RPN은 학습DB 정본 아카이브.

3차 — 클라우드 실파일 백엔드 (실사용 수준)

512KB localStorage 한계 제거 → 디스크 스트리밍 블롭 저장소.
  • 서비스서버.js /api/blob(POST 스트리밍 업로드·GET Range·DELETE) + /api/quota. data/blobs/<owner>/<sha256>, 콘텐츠 주소화(id=SHA-256(bytes)=dedup), owner당 256MB 쿼터·파일 64MB 상한, 메모리 버퍼링 없음(스트림+해시 동시), Range 206 미디어 시킹.
  • 프론트 전환: base64 localStorage → 실제 업로드(XHR 진행률), 메타(이름/폴더/blobId)만 동기화, 미리보기=이미지/비디오/오디오/PDF/텍스트 인라인, 내려받기=Content-Disposition, 삭제 시 참조 끊긴 블롭만 서버 회수.
  • 한선씨 동반 블롭저장소.한선(업로드허용·새블롭인가·쿼터증가·사용률·레인지끝/길이) crownyc 검증 통과 + RPN 정본.
  • E2E 입증: 2MB 스트리밍 업로드 → 다운로드 SHA == id(무결성), Range 206 정확, 쿼터 반영·DELETE 회수. 인라인 주석 함정([[feedback_hanseon_comment_bug]]) 1건 수정.

4차 — 다기능 고도화 (울트라 병렬 Workflow, 6에이전트)

울트라 병렬 Workflow(wf_90c35d38)로 비충돌 병렬(단일파일-단일작성자) 구현. 모델 분업: 백엔드=opus, 한선씨/프론트/검증=sonnet, 연구=fable(가용불가→opus 재실행).

백엔드 (서비스서버.js, +신규 3 엔드포인트, ADD-only)

  • 썸네일 GET /api/blob?thumb=1&mime=image/* — macOS sips로 320px JPEG 생성·<id>.thumb 캐시·비이미지 폴백.
  • ZIP POST /api/zip {entries:[{id,name}]} — 순수 node CRC32+store(무압축) local/central/EOCD 직접 작성, 스트리밍, 256MB·2000엔트리 가드.
  • 공유 POST /api/share(토큰 24-hex, data/share/<token>.json) · GET ?t=(공개·만료410·blob스트리밍/note text) · DELETE(owner일치).
  • 헬퍼: SHARE_DIR·CRC_TABLE/crc32·zipSafeName·execFileSync.

프론트

  • 클라우드(public/cloud): 썸네일 그리드·갤러리 라이트박스(lbOpen ←→)·폴더 ZIP·공유링크·휴지통(소프트삭제/복원/영구)·이름변경/이동·전체검색. 13 신규함수.
  • 메모장(public/memo): 마크다운 렌더(mdParse, XSS escape先)·내보내기(md/txt/json)·노트북 그룹·공유링크·검색 하이라이트.

한선씨 동반 (신규 3 + RPN)

  • 압축저장.한선(ZIP 오프셋/EOCD/CRC 데모)·공유토큰.한선(토큰·만료·권한)·썸네일.한선(이미지판정·리사이즈비율). 7개 코어 전부 crownyc 컴파일+실행 통과. RPN 정본 동반.

검증 (17/17 기능 PASS)

독립 스모크: 썸네일 ffd8(JPEG)·ZIP 504b(PK)+unzip목록·공유 token→200·회귀(store/anchor/quota/blob) 정상. 3서비스 헬스 200.

5차 — 딥리서치 반영 (2026-06-16, opus)

딥리서치(별도 문서 2026-06-16-크라우니클라우드-메모-딥리서치-아키텍처.md) 우선순위 3종 즉시 구현:
  • #1 데이터손실 근본수정 — 신규 /api/merge(항목 id별 ts LWW + 툼스톤). 공용 /api/store(30+서비스) 무수정, 클라/메모 전용 결선(save→scheduleMerge·삭제→addTomb·rename/move ts갱신·로드 mergeSync, fail-safe). 멀티기기 시뮬: B기기 동기화 후 A·B 노트 모두 보존 검증.
  • #2 공유링크 위생/api/shareReferrer-Policy: no-referrer+X-Robots-Tag: noindex, 토큰 96→128bit.
  • #5 무결성 검증GET /api/anchor?verify=1 체인 재계산 intact 판정.
  • 한선씨 동반 항목머지.한선+RPN. 8개 코어 전부 컴파일 통과, 3서비스 헬스 200.

잔여 이슈 (차기)

  • 노트 본문 시퀀스 CRDT(동시 텍스트 협업)·재개가능 업로드(64MB 초과 시)·머클 체크포인트+Ed25519 — 딥리서치 권고, 별도 세션
  • 크라우니브라우저 첫 검증(feedback_crownybrowser_first_test) → 크롬 cross-check (수동)
  • 레거시 /Users/ef/crowny-mail 통합 or 폐기 결정