AeroNyx 탈중앙 프라이버시 노드 설치 및 등록
공식 단일 운영 스크립트와 Nodeboard 일회용 등록 코드로 AeroNyx 탈중앙 프라이버시 노드를 안전하게 설치, 등록, 검증, 업그레이드하고 필요할 때 블라인드 릴레이에 참여시킵니다.
이 문서는 새 AeroNyx 노드를 위한 현재 지원되는 운영 절차입니다. 저장소의 단일 운영 진입점을 사용하고 Nodeboard 일회용 코드로 노드 ID를 연결하며 systemd 서비스를 구성합니다. 완료를 선언하기 전에 로컬 데이터 플레인, backend heartbeat, 서명된 discovery, 공개 pool 상태를 검증합니다. 프로세스가 active라는 사실만으로 네트워크 가입이 증명되지는 않습니다.
노드 운영 콘솔: app.aeronyx.network
오픈 소스: github.com/AeroNyxNetwork/AeroNyx
시작하기 전에
안정적인 공인 주소가 있는 전용 Linux 호스트를 사용하세요. 클라우드 방화벽, 호스트 방화벽, 공급자 네트워크에서 필요한 포트를 확인하고 관리 API를 공용 인터넷에 직접 노출하지 마세요.
| 리소스 | 운영 권장 사항 |
|---|---|
| 운영체제 | 현재 지원되는 Ubuntu 또는 Debian |
| CPU | 최소 2코어, 소스 빌드와 높은 pps에는 추가 코어 |
| 메모리 | 4 GB 권장, 2 GB 미만은 preflight 경고 또는 실패 |
| 디스크 | 최소 20 GB, Cargo cache와 rollback 여유 포함 |
| 네트워크 | 프라이버시 데이터 플레인 51820/UDP, 서명 discovery와 peer API 8422/TCP |
| 관리 플레인 | 8421/TCP는 localhost 또는 신뢰 관리망만, SSH 소스 제한 |
1. 일회용 등록 코드 생성
등록 대상은 노드 ID, 기능, 운영 소유 관계이며 사용자 콘텐츠가 아닙니다. 일회용 코드는 짧게 유효하고 한 번만 사용할 수 있습니다.
- Nodeboard에 로그인합니다.
- Registration Codes에서 대상 운영자 계정용 단기 코드를 만듭니다.
- 노드 이름과 ISO 3166-1 alpha-2 지역 코드를 정합니다.
- 코드를 티켓, 스크린샷, shell history, 공개 AI 대화에 남기지 않습니다.
2. 공식 운영 스크립트 가져오기
aeronyx-node.sh는 Linux 전역 명령이 아니라 공식 AeroNyx Rust 저장소의 파일입니다. 새 호스트에서는 main을 받은 뒤 저장소 루트에서 실행합니다.
sudo install -d -m 0755 /opt/aeronyx
sudo git clone --branch main --single-branch \
https://github.com/AeroNyxNetwork/AeroNyx.git \
/opt/aeronyx/AeroNyx
cd /opt/aeronyx/AeroNyx
git rev-parse HEAD
기존 디렉터리 위에 clone하지 마세요. tracked worktree가 clean일 때만 fast-forward하고, 로컬 수정이 있는 운영 노드는 commit-pinned isolated upgrade를 사용합니다.
cd /opt/aeronyx/AeroNyx
git fetch origin main
git checkout main
git pull --ff-only origin main
./deploy/node/aeronyx-node.sh plan --repo-dir "$PWD" --branch main
3. 계획 확인 후 quickstart 실행
예시 이름과 국가 코드를 실제 값으로 바꾸세요. --public-vpn은 명시적 opt-in입니다. 생략한 노드도 등록·관리되지만 공개 프라이버시 네트워크 pool에는 들어가지 않습니다. 대화형 모드는 코드 입력을 숨기고 해결된 계획을 보여 준 뒤 확인을 요청합니다.
cd /opt/aeronyx/AeroNyx
sudo ./deploy/node/aeronyx-node.sh quickstart \
--node-name "Berlin1" \
--region "DE" \
--public-vpn
자동화는 bounded stdin 한 줄로 secret을 전달하고 계획 승인 후에만 --yes를 사용해야 합니다. 익명 pipe는 코드를 하위 프로세스 argv에서 제외합니다.
read -r -s -p 'Nodeboard registration code: ' AERONYX_NODE_CODE; echo
printf '%s\n' "${AERONYX_NODE_CODE}" | \
sudo ./deploy/node/aeronyx-node.sh quickstart \
--registration-code-stdin \
--node-name "Berlin1" \
--region "DE" \
--public-vpn \
--yes
unset AERONYX_NODE_CODE
install과 upgrade는 호스트 deployment lock을 공유하므로 두 번째 작업을 동시에 실행할 수 없습니다. --allow-dirty와 --skip-admission-check는 정상 경로가 아니라 명시된 긴급 유지보수나 격리 복구에만 사용하세요.
4. 네트워크 참여 증명
기본 admission gate는 최대 120초 동안 필요한 증거를 기다린 후에만 completed를 기록합니다. 설치 후 다음 read-only 명령으로 다시 확인할 수 있습니다.
cd /opt/aeronyx/AeroNyx
./deploy/node/aeronyx-node.sh status
./deploy/node/aeronyx-node.sh health --json
systemctl is-active aeronyx-server
/api/vpn/health가ok이며 listener, TUN, forwarding, NAT, DNS, egress 검사 사용 가능.- 등록 노드에 최신 backend policy timestamp가 있어 서명 management heartbeat 왕복 완료.
- discovery status와 snapshot에 검증된 서명 descriptor가 있고 gossip round 완료.
- 공개 노드가 정확한 backend UUID,
visibility=public, VPN capability, online 상태로 public pool에 존재. - Nodeboard 이름, 지역, visibility, capacity, heartbeat가 노드와 일치.
private 노드는 public pool 표시가 의도적으로 필수가 아니지만 local health, 등록 heartbeat, 서명 discovery는 통과해야 합니다. 느린 첫 부팅은 --admission-timeout 240으로 대기만 늘리고 검사를 제거하지 마세요.
공개 노드와 블라인드 릴레이 역할 선택
공개 프라이버시 출구, ChatRelay, no-exit OnionMiddle은 별도 선택입니다. 8422 peer API의 public endpoint가 도달 가능하고 config validation 및 안전한 restart 조건을 충족한 뒤에만 블라인드 릴레이 기능을 광고하세요.
cd /opt/aeronyx/AeroNyx
./deploy/node/aeronyx-node.sh chat-relay --enable-chat-relay --dry-run
sudo ./deploy/node/aeronyx-node.sh chat-relay --enable-chat-relay --restart
./deploy/node/aeronyx-node.sh onion-middle --enable-onion-middle --dry-run
sudo ./deploy/node/aeronyx-node.sh onion-middle --enable-onion-middle --restart
./deploy/node/aeronyx-node.sh relay-probe --two-hop --json
helper는 server.toml을 백업하고 대상 필드만 수정해 검증하며 active sessions가 있으면 restart를 거부합니다. 새 노드는 fresh reachability와 path-proof evidence를 모아야 하므로 capability 설정이 즉시 route eligibility를 뜻하지 않습니다. two-hop probe에는 서로 다른 routeable node 세 개가 필요하며 부족하면 blocked가 올바른 결과입니다.
일상 운영과 안전한 업그레이드
먼저 후보를 build·validate하여 restart 없이 stage하고 승인된 maintenance window에서 정식 업그레이드하세요. 운영 노드에서 수동 git pull 후 binary를 바로 덮어쓰지 마세요.
cd /opt/aeronyx/AeroNyx
sudo ./deploy/node/aeronyx-node.sh upgrade \
--build-priority live \
--build-jobs auto \
--no-restart
sudo ./deploy/node/aeronyx-node.sh upgrade \
--build-priority live \
--build-jobs auto
workflow는 build 후, promotion 전, restart 직전에 active sessions를 다시 확인하며 값을 얻지 못하면 fail closed합니다. config와 systemd unit을 검증하고 이전 binary/unit을 보관한 뒤 atomic promotion하며 재시작 health 실패 시 rollback합니다. upgrade-status.json에는 운영 메타데이터만 기록합니다.
AI 지원 설치 계약
Codex, Claude Code 같은 terminal agent가 실행할 수 있지만 무제한 root 권한으로 추측하지 말고 제약된 노드 운영 도구로 행동해야 합니다.
- 공식 repository, branch, checkout, current commit을 확인합니다.
- 변경 전
plan을 실행하고 표시합니다. - 등록 코드는 hidden prompt 또는 bounded stdin만 사용합니다.
- 기존 ID와 config를 보존하고
/etc/aeronyx영구 파일을 덮어쓰지 않습니다. - restart 전에 active sessions를 확인하고 신뢰할 수 없으면 중단합니다.
- local health, backend heartbeat, public reachability, 서명 discovery, Nodeboard를 검증합니다.
- warning, blocked, rollback을 정직하게 보고하고 systemd active만으로 성공이라 하지 않습니다.
프라이버시 경계
노드와 Nodeboard는 운영에 필요한 집계 증거만 처리할 수 있습니다. 릴레이는 콘텐츠를 읽을 수 없어야 하며 운영 telemetry를 사용자 기록으로 바꾸면 안 됩니다.
허용되는 집계 운영 데이터
- CPU, memory, disk, fd, conntrack, packet drops
- IP pool capacity, max connections, pps, bps, active session count
- heartbeat, version, capability, peer quorum, relay proof status
수집하거나 출력하면 안 되는 데이터
- client public IP activity, destination, DNS, domain, URL, browsing history
- packet/message plaintext, chat peer, social graph, MemChain plaintext
- private key, registration code, voucher secret, wallet-level traffic, 식별 가능한 credential