← 목록
기타 2026-05-27 5KB 읽기 6분

크라우니 리모트 v1.5 — 작업폴더 공유 동기화 추가

#2 동일 블록체인 작업폴더 공유 (가장 큰 미구현) → ✅ 구현 완료.

무엇을 추가했나

1. 서버 sync 엔드포인트 4개 (한선씨)

t의미흐름
manifest저장소 전체 파일 매니페스트 (path/sha/size/mt)클라 ← 서버
upBase64 인코드 본문 업로드 + SHA 회신클라 → 서버
dn파일 다운로드 + mtime 보존클라 ← 서버
del파일 삭제클라 → 서버
서버 코드: /Users/ef/crowny-remote/server/리모트서버.한선 (큐브 7042 → 10337). 매니페스트 스크립트: 매니페스트.sh — find + shasum + stat → JSON.

2. sync 클라이언트 — crowny-sync (Python + 한선씨 동반)

bashcrowny-sync push      # 로컬 → 서버 (newer/신규)
crowny-sync pull      # 서버 → 로컬 (newer/신규)
crowny-sync sync      # push + pull
crowny-sync status    # 차이 보고
crowny-sync watch     # fswatch 자동 push (없으면 폴링)

한선씨 측 클라이언트 모듈(리모트싱크.한선)도 작성 — 학습DB 정통 유지. 다만 한선씨 클라이언트 소켓 송수신 NIO 한계로 실제 작동은 Python이 담당 (사용자 명시 "안정성 우선" 반영).

3. 환경변수 기반 다중 디바이스

bashCROWNY_REMOTE_DEV=CR-CROWNY-03 CROWNY_REMOTE_PW=mac3 \
  CROWNY_BLOCKCHAIN_DIR=/Users/ef/crowny-blockchain \
  crowny-sync sync

9명이 각자의 CR-CROWNY-NN ID로 같은 작업폴더 공유.

E2E 시뮬레이션 (2대 맥)

Step 1: 맥A push
  ↑ chain/genesis.txt (32B)
  ↑ chain/block-2.txt (13B)
  ↑ wallet/me.json (22B)
  → 서버 저장소에 3파일

Step 2: 맥B pull (빈 폴더)
  ↓ chain/genesis.txt
  ↓ chain/block-2.txt
  ↓ wallet/me.json
  → 맥B에 3파일 그대로 도착

Step 3: 맥B에서 block-2.txt + me.json 수정 → push
  ↑ chain/block-2.txt (44B, 수정본)
  ↑ wallet/me.json (35B, 수정본)
  [동일 1] genesis.txt skip

Step 4: 맥A pull
  ↓ chain/block-2.txt (맥B 수정 흡수)
  ↓ wallet/me.json (맥B 수정 흡수)

최종 맥A:
  block-2.txt = "BLOCK 2 UPDATED by CR-CROWNY-02 at 19:48:54"  ★ 맥B 수정본!
  wallet/me.json = {"version":2, "addr":"0xCROWNY02"}            ★

서버 로그 발췌:

MANIFEST CR-CROWNY-01    ← 맥A 첫 push
UP CR-CROWNY-01 chain/genesis.txt
UP CR-CROWNY-01 chain/block-2.txt
UP CR-CROWNY-01 wallet/me.json
REG OK CR-CROWNY-02       ← 맥B 등록
LOGIN OK CR-CROWNY-02
MANIFEST CR-CROWNY-02
DN CR-CROWNY-02 chain/genesis.txt
DN CR-CROWNY-02 chain/block-2.txt
DN CR-CROWNY-02 wallet/me.json
...
UP CR-CROWNY-02 chain/block-2.txt    ← 맥B 수정 push
UP CR-CROWNY-02 wallet/me.json
DN CR-CROWNY-01 chain/block-2.txt    ← 맥A 흡수
DN CR-CROWNY-01 wallet/me.json

자동 워처 검증

워처 띄움 → 작업폴더에 파일 2개 생성 → 폴링으로 자동 push:

서버 로그:
UP CR-CROWNY-09 chain/new-block.txt
UP CR-CROWNY-09 chain/block-3.txt

fswatch 있으면 즉시 트리거, 없으면 3초 폴링.

점검표 갱신 (74% → 85%)

#항목이전현재
2동일 작업폴더 공유0%95%
19대 동시 부하🟡 30%🟡 50% (sync 흐름까지 검증)
나머지 10개변동 없음
가장 큰 미구현 해결. 9명이 같은 블록체인 폴더를 push/pull/watch로 공유 가능.

남은 V2 항목

V2 항목비고
인터랙티브 PTY (vim/ssh/htop)한선씨 측 NIO 폴링 해결, 또는 C pty_call 도입
충돌 해결 정교화현재 last-write-wins. CRDT/merge로
락 (편집 동시성)t:lock/t:unlock 추가
AES 채널 암호화AES.한선 통합
9대 실환경 부하동시 push/pull 큐 + 성능
큰 파일 chunking현재 헤더 4GB 한계 + 메모리 일괄. 청크 분할

실행 한 줄

bash# 9개 맥에서 각자 띄우기 (각 맥마다 CR-CROWNY-NN 다르게)
export CROWNY_REMOTE_DEV=CR-CROWNY-01
export CROWNY_REMOTE_PW=mypass1
export CROWNY_BLOCKCHAIN_DIR=/Users/ef/crowny-blockchain
/Users/ef/crowny-remote/sync/crowny-sync watch &   # 변경 시 자동 push
/Users/ef/crowny-remote/sync/crowny-sync sync       # 수동 양방향

디렉토리

/Users/ef/crowny-remote/sync/
├── crowny-sync         (실 작동 클라이언트, Python — 안정성)
├── 리모트싱크.한선     (한선씨 동반 모듈, 학습 정통)
├── 리모트싱크.toau     (컴파일 산출)
└── 매니페스트.sh        (find + shasum + stat → JSON)

/Users/ef/crowny-remote/server/
├── 리모트서버.한선     (+ sync 4 엔드포인트)
├── 매니페스트.sh        (서버 측)
└── 저장소/              (9명 공유 거울)

학습 등록

  • manifest_엔드포인트_파일동기화
  • Base64_파일업다운로드_저장
  • 9맥_작업폴더_공유_워처
학습DB: 12,198 → 12,201 패턴