← 목록
기타 2026-06-21 2KB 읽기 2분

셀 점유 원장 서버 + world.js 연동

개요

CrownyOS 3D 월드데스크톱의 셀 정착(점유)을 localStorage 데모에서 실제 서버 PSV로 영속화.

무엇을 했는지

  1. 셀원장서버.한선 신규 작성 — 순수 한선씨 TCP HTTP 서버 (포트 9935)
- 가져오기: 네트워크.한선, 날짜.한선, 셀원장.한선 - 라우트: GET /api/cells, GET /api/cell?addr=, GET /api/claim?addr=&owner=&type= - CORS preflight (OPTIONS) 지원 - TCP읽기(연결, 16384) — 버퍼 사이즈 필수 (미지정 시 즉시 0 반환하는 VM 동작)

  1. world.js 패치 — 정착 섹션 외과 수정
- loadClaims(): 서버 /api/cells → claims 캐시 갱신 (초기화 시 1회) - claimHere(): 서버 /api/claim → 성공 시 로컬 반영, 실패 시 alert - 서버 미응답 시 localStorage 폴백 유지

관련 파일

  • /Users/ef/CrownyOS/시작화면/셀원장서버.한선 — 서버 소스
  • /Users/ef/CrownyOS/시작화면/world.js — 연동 패치
  • /Users/ef/CrownyOS/시작화면/data/cells.psv — PSV 원장
  • /tmp/셀원장서버.toau — 컴파일 바이너리
  • /Users/ef/CrownyOS/crownyc/libs/셀원장.한선 — 원장 라이브러리

핵심 발견 (VM 함정)

  • TCP읽기 버퍼 필수: TCP읽기(연결) → 즉시 0 반환. TCP읽기(연결, 16384) → 정상 블로킹 수신.
뱅크 서버 등 기존 패턴 참조 (crownyc/libs 제외, 실제 사용 서버 소스에서 발견).

포트

  • cell-ledger: 9935 (crowny-ports 등록 완료)

잔여 이슈

  • 서버가 /dev/null stdin으로 데몬화 필요 (현재 백그라운드 수동 기동)
  • URL 인코딩 디코딩 미구현 (셀주소가 알파벳+# 이라 현재는 무관)
  • owner 이름 인증 없음 (데모 단계)