From b1ce1927022d374198441afafeb27199fc8a052a Mon Sep 17 00:00:00 2001 From: eunhhu Date: Thu, 24 Sep 2026 17:14:54 +0100 Subject: Establish native micro runtime checkpoint --- docs/research/056-server-only-document-package.md | 54 +++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 docs/research/056-server-only-document-package.md (limited to 'docs/research/056-server-only-document-package.md') diff --git a/docs/research/056-server-only-document-package.md b/docs/research/056-server-only-document-package.md new file mode 100644 index 0000000..51ed32f --- /dev/null +++ b/docs/research/056-server-only-document-package.md @@ -0,0 +1,54 @@ +# 056 — 서버 전용 문서 피어를 실제 이동 묶음으로 검증 + +[055](055-authenticated-peer-transport-cost.md)의 서버 전용 실행물은 빌드와 +로컬 테스트까지만 확인했다. 이번에는 `package_native.py --with-peer-server`로 +CLI·`editor.pure`·인증 TLS 서버를 하나의 Linux AArch64 아카이브에 넣고, +다른 디렉터리에 풀어 실제 인증 문서 작업을 실행했다. 서버만의 배포 +구성에서도 외부 통신을 유지한다. `--with-peer`는 기존의 C 클라이언트 +겸용 구성을 그대로 선택한다. 두 옵션은 동시에 사용할 수 없다. + +```sh +python3 prototypes/connections/package_native.py --with-peer-server \ + --output dist/pure-document-server-only-linux-aarch64.tar.gz +python3 prototypes/connections/check_package.py \ + dist/pure-document-server-only-linux-aarch64.tar.gz +``` + +| 같은 CLI·정의와 TLS 피어 하나를 포함한 구성 | 서버 전용 | 클라이언트 겸용 | +|---|---:|---:| +| 압축 아카이브 전체 | [47,686B](../../prototypes/connections/results/2026-09-24-server-only-package/pure-document-server-only-linux-aarch64.tar.gz) | [49,382B](../../prototypes/connections/results/2026-09-24-server-only-package/pure-document-combined-peer-linux-aarch64.tar.gz) | +| 선택 피어의 링크된 `text` | 43,462B | 46,934B | +| 검토한 아카이브 상한 | 51,200B | 53,248B | + +동일한 선택 범위에서 서버 전용 묶음은 **1,696B 작다**. 이 차이는 압축 +파일 비용이며 프로세스 RAM 절감량이 아니다. [새 아카이브 예산](../../prototypes/connections/peer-package-budget.json)은 +CLI와 TLS 피어만 담은 두 구성에 적용된다. HTTP·TUI·GTK 또는 연구용 +저장소까지 고른 조합에는 이 상한을 적용하지 않는다. 기존의 실행물 +`text`·data·BSS와 직접 동적 의존성 검사도 별도로 유지한다. +서버 전용 묶음을 다른 출력 경로에 다시 생성해 SHA-256 +`34fb507c160e4aa719cf44fb4f8bbcb422d2c0ee6dc3f206f6a5fe3bc4d089b6`가 +같음을 확인했다. 현재 TLS 피어와 연구용 페이지 저장소를 동시에 선택하면 +저장 형식이 다를 수 있으므로 패키저가 그 조합을 거절한다. + +[서버 전용 이동 검증](../../prototypes/connections/results/2026-09-24-server-only-package/server-only-package-check.json)은 +manifest와 모든 파일의 SHA-256을 확인하고, 추출한 CLI의 문서 생성·복원과 +수정한 `.pure`의 응답 변화를 실행했다. 같은 추출 경로의 서버에는 패키지 +밖의 Python TLS 클라이언트가 접속했다. 잘못된 클라이언트 인증서·서버 +호스트 이름·ALPN을 거부했고, 조건부 생성·충돌·1 MiB 분할 수신·응답 +본문 생략·마지막 1바이트 변경을 처리했다. 잘린 프레임과 잘못된 연산은 +저장값을 바꾸지 않았으며 서버 재시작 뒤에도 1 MiB 값을 읽었다. 패키지 +안 CLI도 같은 값을 읽었다. 이 검사의 서버 `/proc` RSS 관찰값은 연결 전 +7,968 KiB, 큰 작업 뒤 8,672 KiB다. 피크나 다른 장치의 메모리 상한은 +아니다. + +[클라이언트 겸용 이동 회귀](../../prototypes/connections/results/2026-09-24-server-only-package/combined-peer-package-check.json)는 +기존 C/Python TLS·1 MiB 작업과 재시작까지 통과했다. 두 아카이브의 +manifest에는 선택 호스트, 파일 해시, 시스템 공유 라이브러리의 직접 +의존성 및 검토한 이진·아카이브 상한이 들어 있다. OpenSSL과 libc를 +묶음 안에 넣지 않으며, 인증서도 사용자가 준비해야 한다. 서버 전용 +묶음에는 C `call` 명령이 없다. 외부 클라이언트는 `pure-doc/1` 형식을 +구현하거나 별도의 Pure 클라이언트를 사용한다. + +이 결과는 이동 가능한 Linux AArch64 패키지의 한 선택 구성을 증명한다. +macOS/Apple Silicon 실행, 서명·설치 경험, 다중 연결 공정성, 장시간 부하, +장애망 복구와 전체 공개 체크포인트는 아직 완료되지 않았다. -- cgit v1.2.3