aboutsummaryrefslogtreecommitdiffstats
path: root/docs/research/056-server-only-document-package.md
diff options
context:
space:
mode:
authoreunhhu <[email protected]>2026-09-24 17:14:54 +0100
committereunhhu <[email protected]>2026-09-24 17:14:54 +0100
commitb1ce1927022d374198441afafeb27199fc8a052a (patch)
tree6021f175f4c67ed03b44240eaa2f90d846f12f6f /docs/research/056-server-only-document-package.md
parentd34f9426d5317a1948f12f229439946728bc342a (diff)
downloadpure-b1ce1927022d374198441afafeb27199fc8a052a.tar.gz
pure-b1ce1927022d374198441afafeb27199fc8a052a.zip
Establish native micro runtime checkpoint
Diffstat (limited to 'docs/research/056-server-only-document-package.md')
-rw-r--r--docs/research/056-server-only-document-package.md54
1 files changed, 54 insertions, 0 deletions
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 실행, 서명·설치 경험, 다중 연결 공정성, 장시간 부하,
+장애망 복구와 전체 공개 체크포인트는 아직 완료되지 않았다.