Memasang dan mendaftarkan node AeroNyx

AeroNyx11 menit baca

Pasang node AeroNyx sumber terbuka di server Linux dengan perintah quickstart dari repositori, daftarkan dengan kode Nodeboard sekali pakai, dan verifikasi penerimaan jaringan. Juga membahas peran relay, join tanpa izin, penerapan TEE, dan pemasangan dengan bantuan AI.

Panduan ini memasang perangkat lunak node AeroNyx sumber terbuka di server Linux, mendaftarkannya ke akun operator Nodeboard Anda dengan kode sekali pakai, dan memeriksa bahwa jaringan telah menerimanya. Jalur yang didukung adalah skrip repositori deploy/node/aeronyx-node.sh quickstart, yaitu perintah yang sama yang dibuatkan Nodeboard untuk Anda.

Saat ini seluruh node produksi di jaringan AeroNyx dioperasikan oleh AeroNyx. Sebelum mengoperasikan node, baca Kebijakan Operator Node.

Sebelum memulai

ItemPersyaratan
Sistem operasiLinux dengan systemd. Penginstal memasang paket dengan apt-get (Debian, Ubuntu), dnf atau yum.
AksesShell root. Setiap perintah dalam panduan ini mengasumsikan Anda telah menjalankan sudo -i terlebih dahulu.
Perangkat TUN/dev/net/tun harus ada untuk bidang data VPN.
MemoriPenginstal memberi peringatan jika di bawah 2 GB lalu tetap melanjutkan. Node dikompilasi dari kode sumber di server, sehingga 4 GB atau lebih adalah pilihan yang lebih aman.
DiskPenginstal memberi peringatan jika ruang kosong di bawah 4 GB lalu tetap melanjutkan. Sediakan 20 GB atau lebih untuk cache build dan cadangan rilis yang disimpan oleh alur kerja pembaruan.
Port masuk51820/UDP (listener VPN) dan 8422/TCP (penemuan bertanda tangan dan API peer). Buka port tersebut di firewall cloud Anda; penginstal tidak mengubah aturan firewall masuk.
Hanya lokal127.0.0.1:8421 adalah API kesehatan dan manajemen lokal. Jangan mengeksposnya.

Mengapa root: repositori berada di /root/open/AeroNyx, penginstal menulis /etc/aeronyx dan /var/lib/aeronyx dengan mode 700, serta server.toml dengan mode 600. Perintah yang membaca jalur tersebut gagal bagi pengguna lain, dan Git menolak membaca checkout milik root dari akun lain ("dubious ownership").

Apa yang dilakukan quickstart

quickstart menjalankan empat langkah dan berhenti sebelum perubahan apa pun pada host hingga Anda menyetujuinya:

  1. Mencetak rencana pemasangan yang telah ditentukan (hanya baca).
  2. Menunggu Anda mengetik INSTALL. Menekan Enter akan menghentikan proses dengan aman.
  3. Menjalankan pemeriksaan pendahuluan, memasang paket dan toolchain Rust yang dipatok oleh repositori, menulis /etc/aeronyx/server.toml jika belum ada (berkas yang sudah ada tetap dipertahankan), menyiapkan penerusan IP dan NAT, membangun node, memasang unit systemd aeronyx-server, mendaftarkan identitas node dengan kode Anda, memulai layanan, dan menunggu hingga 120 detik untuk penerimaan jaringan.
  4. Mencetak status dan ringkasan health --json.

Penantian penerimaan memeriksa bahwa kesehatan lokal melaporkan ok, bahwa backend mengembalikan kebijakan baru (perjalanan pulang-pergi heartbeat berfungsi), bahwa penemuan memiliki setidaknya satu peer bertanda tangan yang tervalidasi dan telah menyelesaikan satu putaran gossip, serta, untuk node publik, bahwa node tercantum dalam pool publik.

Langkah 1: buat kode pendaftaran

  1. Masuk ke Nodeboard dan buka Registration Codes.
  2. Pilih Generate Code.
  3. Jaga kerahasiaan kode tersebut. Kode kedaluwarsa setelah 15 menit, hanya berlaku sekali, dan mengikat node baru ke akun yang membuatnya.

Nodeboard kemudian menampilkan perintah quickstart, perintah pratinjau dan pemasangan langkah demi langkah, perintah status, dan prompt asisten AI. Kolom Install Progress miliknya mengikuti penginstal melalui not_started → planning → running → completed | failed.

Backend memeriksa kode saat penginstal mencapai langkah pendaftarannya, yang terjadi setelah build. Build pertama di server kecil dapat memakan waktu lebih dari 15 menit. Jika pendaftaran kemudian gagal karena kode telah kedaluwarsa, buat kode baru dan jalankan quickstart lagi; proses kedua menggunakan ulang cache build.

Langkah 2: dapatkan atau perbarui repositori

aeronyx-node.sh bukan perintah sistem. Skrip ini disertakan dalam repositori. Berikut baris clone-atau-perbarui yang digunakan Nodeboard:

bash
mkdir -p /root/open && cd /root/open
if [ -d AeroNyx/.git ]; then cd AeroNyx && git fetch origin main && git checkout main && git pull --ff-only origin main; else git clone https://github.com/AeroNyxNetwork/AeroNyx.git AeroNyx && cd AeroNyx; fi
git rev-parse HEAD

Selalu berikan --repo-dir "$PWD" (atau --repo-dir /root/open/AeroNyx) ke skrip. Tanpanya, install, upgrade, health dan status secara default menggunakan /opt/aeronyx/AeroNyx.

Langkah 3: jalankan quickstart

Jalankan quickstart tanpa kode di baris perintah. Saat berjalan di terminal, skrip meminta kode melalui prompt tersembunyi, sehingga kode tidak ditampilkan, tidak disimpan dalam riwayat shell, dan tidak diteruskan sebagai argumen proses:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick \
  --node-name "Example1" --region DE --public-vpn
  • --node-name adalah nama yang ditampilkan di Nodeboard dan di daftar node VPN.
  • --region adalah kode negara ISO 3166-1 alpha-2.
  • --public-vpn menerbitkan node di pool VPN publik. Hilangkan opsi ini agar node tetap privat.

Pada Nodeboard registration code: tempelkan kode lalu tekan Enter. Tinjau rencananya, lalu ketik INSTALL.

Tentang perintah yang dibuat Nodeboard

Perintah quickstart dari Nodeboard menyertakan kode secara langsung di dalam perintah, misalnya AERONYX_REGISTRATION_CODE='<code>' ./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick. Cara itu berfungsi, tetapi kode tersimpan dalam riwayat shell Anda. Jika Anda menggunakannya:

  • Periksa echo "$HISTCONTROL". Jika berisi ignorespace atau ignoreboth, awali perintah dengan spasi dan Bash tidak akan mencatatnya.
  • Jika tidak, hapus entri tersebut sesudahnya dengan history -d <number>.

Kode hanya dapat dipakai sekali dan kedaluwarsa setelah 15 menit, yang membatasi paparannya, tetapi jangan menempelkannya ke tiket, tangkapan layar, atau chat.

Pemasangan non-interaktif

Untuk otomatisasi, lakukan pratinjau terlebih dahulu, lalu berikan kode melalui standard input. read -rs menjaga kode agar tidak tampil di layar dan tidak masuk ke riwayat:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh plan --repo-dir "$PWD" --branch main
read -rs AERONYX_CODE
printf '%s\n' "$AERONYX_CODE" | ./deploy/node/aeronyx-node.sh install \
  --repo-dir "$PWD" --branch main --quick --registration-code-stdin \
  --node-name "Example1" --region DE --public-vpn
unset AERONYX_CODE

install --quick tidak meminta INSTALL. Gunakan hanya setelah Anda meninjau rencananya.

Langkah 4: verifikasi node

bash
cd /root/open/AeroNyx
systemctl is-active aeronyx-server
./deploy/node/aeronyx-node.sh status --repo-dir "$PWD"
./deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json

Node baru yang sehat menunjukkan:

  • aeronyx-server berstatus active, dan health melaporkan fail=0
  • penginstal mencetak [OK] Node admission accepted dengan health=ok, management=fresh dan discovery=ready (serta public_pool=online untuk node publik)
  • status mencetak operator_status=ok dan langkah berikutnya
  • baris JSON terakhir dari health --json berisi "success":true; peringatan muncul di bawah checks

Di Nodeboard, kode menunjukkan completed, dan node muncul di bawah Nodes dengan nama, wilayah, visibilitas, dan heartbeat baru. Halaman detail node menampilkan Capacity Decision berupa ready, watch, blocked atau waiting.

Untuk pemeriksaan harian, log, pembaruan, dan rollback, lihat Menjalankan dan memeriksa node AeroNyx.

Opsional: bergabung dengan relay terenkripsi

Node VPN dan node relay terenkripsi adalah pilihan yang terpisah. Partisipasi relay memiliki tiga bagian: API peer publik yang dapat dijangkau, peran simpan-dan-teruskan ChatRelay buta, dan peran OnionMiddle tanpa exit. Kedua peran nonaktif dalam konfigurasi default.

  1. Pastikan 8422/TCP dapat dijangkau dari internet.

  2. Edit /etc/aeronyx/server.toml (misalnya nano /etc/aeronyx/server.toml) dan atur kunci-kunci berikut di bagian [discovery], menggunakan alamat publik Anda:

    toml
    public_endpoint = "http://203.0.113.10:8422"
    public_discovery = true
    region = "DE"
    
  3. Validasi berkas:

    bash
    cd /root/open/AeroNyx
    ./target/release/aeronyx-server validate -c /etc/aeronyx/server.toml
    
  4. Aktifkan ChatRelay tanpa memulai ulang. Helper ini mencadangkan konfigurasi, meminta Anda mengetik ENABLE CHATRELAY, melakukan validasi, dan memulihkan cadangan jika validasi gagal:

    bash
    ./deploy/node/aeronyx-node.sh chat-relay --repo-dir "$PWD" --enable-chat-relay
    
  5. Aktifkan OnionMiddle dan mulai ulang dalam satu langkah yang dijaga. Helper ini meminta Anda mengetik ENABLE ONIONMIDDLE dan menolak memulai ulang jika node memiliki sesi aktif atau tidak dapat melaporkan jumlah sesi:

    bash
    ./deploy/node/aeronyx-node.sh onion-middle --repo-dir "$PWD" --enable-onion-middle --restart
    

    Jika ditolak, aktifkan Maintenance Mode untuk node tersebut di Settings Nodeboard, tunggu hingga sesi aktif mencapai nol, lalu jalankan lagi. Jangan menambahkan --yes: opsi itu melewati konfirmasi dan pengaman sesi aktif.

  6. Periksa kesiapan relay:

    bash
    ./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json
    

Mengaktifkan suatu peran tidak sama dengan digunakan untuk rute. Node baru menjadi kandidat rute setelah peer melihatnya dapat dijangkau dan bukti path-proof yang baru tersedia. Lihat Penemuan node dan relay terenkripsi.

Bergabung tanpa Nodeboard

join memasang node dan mengirimkan deskriptor bertanda tangannya ke node seed untuk penerimaan Stage-A, tanpa kode pendaftaran atau akun Nodeboard:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh join --repo-dir "$PWD" \
  --seed http://SEED_PUBLIC_IP:8422 \
  --public-endpoint http://YOUR_PUBLIC_IP:8422 --json
  • --seed menerima 1 hingga 8 node seed publik; permintaan dikirim ke yang pertama. --public-endpoint adalah API peer node Anda yang dapat dijangkau. Keduanya harus berupa URL http atau https dengan alamat IP publik, bukan nama host.
  • Perintah ini berjalan sebagai root di Linux dengan systemd, dan memerlukan Python 3.11 atau lebih baru, atau python3 dengan paket tomli.
  • Perintah ini mengatur enam nilai [discovery] (enabled, advertise_self, public_discovery, gossip_enabled, public_endpoint, seed_endpoints) dan membiarkan bagian lain berkas tidak tersentuh.
  • Jika layanan sudah berjalan dengan pengaturan berbeda, perintah ini berhenti tanpa mengubah apa pun.
  • --commit <40-hex SHA> mematok commit sumber yang persis. --dry-run mencetak hasil yang direncanakan tanpa perubahan. --check-only memverifikasi node yang sudah bergabung tanpa mengirim apa pun.

Hasil yang berhasil adalah "admission_stage":"stage_a_candidate" dengan "route_authority":false dan "route_ready":false. Penerimaan Stage-A berarti seed menerima deskriptor Anda. Penerimaan ini tidak membuat node dapat dirutekan, tidak mencantumkannya di Nodeboard atau pool VPN, dan tidak membuatnya memenuhi syarat untuk pembayaran. Jawaban seed dikirim melalui HTTP biasa kecuali seed menggunakan HTTPS, sehingga jawaban itu bukan tanda terima kriptografis.

Penerapan TEE dengan Docker

Repositori juga berisi penerapan kontainer untuk VM rahasia yang menjalankan dstack (Phala Cloud atau Intel TDX yang di-hosting sendiri): deploy/node/Dockerfile, deploy/node/compose.tee.yaml, deploy/node/server.tee.toml dan deploy/node/tee-entrypoint.sh.

Peran ini bukan node VPN:

  • vpn.enabled = false: tanpa perangkat TUN, tanpa proxy DNS, tanpa MemChain. Kontainer berjalan dengan semua kapabilitas Linux dilepas dan no-new-privileges.
  • Peran ini menjalankan relay onion (advertise_onion_middle = true), ChatRelay, dan kotak surat anonim, serta hanya mengekspos 8422.
  • Identitas node berasal dari layanan manajemen kunci dstack ([server_key] source = "dstack"). Tidak ada berkas kunci.

Untuk menerapkan:

  1. Pilih image rilis dari ghcr.io/aeronyxnetwork/aeronyx-node. CI membangun image linux/amd64 dari tag node-v* dan melampirkan atestasi asal-usul build. Temukan digest-nya, misalnya dengan docker buildx imagetools inspect ghcr.io/aeronyxnetwork/aeronyx-node:<tag>.
  2. Di compose.tee.yaml, ganti IMAGE_DIGEST dengan digest tersebut. Selalu patok berdasarkan digest, bukan tag; di VM dstack, berkas compose adalah bagian dari penerapan yang diukur.
  3. Atur AERONYX_PUBLIC_ENDPOINT ke origin https:// yang ditetapkan gateway dstack untuk port 8422. Entrypoint menolak skema lain apa pun.
  4. Secara opsional, atur AERONYX_REGION (default tee).
  5. Hanya untuk start pertama, berikan AERONYX_REGISTRATION_CODE sebagai secret terenkripsi. Entrypoint menyalurkannya ke aeronyx-server register --code-stdin. Setelah node_info.json ada di volume /var/lib/aeronyx, kode tidak lagi diperlukan.

Kontainer tidak menyertakan aeronyx-node.sh. Pantau node TEE di Nodeboard dan melalui API penemuan publiknya.

Memasang dengan asisten coding AI

Asisten terminal seperti Claude Code, Codex, OpenClaw atau Hermes dapat menjalankan prosedur ini. Nodeboard menyediakan AI assistant prompt siap pakai di samping setiap kode. Aturan berikut berlaku asisten mana pun yang Anda gunakan.

Operator manusia:

  • menyediakan server dan menyetujui setiap perubahan host
  • mengetik sendiri INSTALL setelah membaca rencananya
  • menjaga kerahasiaan kode pendaftaran. Prompt AI dari Nodeboard berisi kode, sehingga menempelkannya berarti membagikan kode kepada penyedia asisten. Untuk menghindarinya, biarkan asisten memperbarui repositori dan menjalankan plan yang tidak memerlukan kode, lalu jalankan quickstart sendiri dan ketik kode di prompt tersembunyi. Serahkan kembali ke asisten untuk verifikasi.

Asisten wajib:

  • hanya menggunakan deploy/node/aeronyx-node.sh dari github.com/AeroNyxNetwork/AeroNyx, dan memberikan --repo-dir
  • hanya menggunakan opsi yang didokumentasikan skrip (./deploy/node/aeronyx-node.sh help). Opsi yang tidak dikenal akan gagal; misalnya, --api-base menghentikan penginstal dengan Unknown option.
  • menampilkan atau meringkas rencana sebelum perubahan host apa pun dan menunggu persetujuan
  • menjalankan status setelah pemasangan atau pembaruan dan melaporkan operator_status, operator_title, operator_detail dan operator_next_step, lalu health --json jika diperlukan detail lebih lanjut
  • melaporkan peringatan sebagai peringatan, dan tidak menyatakan berhasil hanya karena ada proses yang berjalan
  • mengutamakan upgrade --no-restart kecuali Anda menyetujui mulai ulang pada jendela pemeliharaan
  • tidak pernah menggunakan --force atau --yes, dan tidak pernah memulai ulang node yang memiliki sesi aktif, tanpa persetujuan eksplisit Anda
  • tidak pernah mencetak kode pendaftaran, kunci privat, secret API, IP publik klien, tujuan, isi DNS, payload paket, atau teks polos chat

Selesai berarti:

  • repositori berada di main dan commit-nya dilaporkan
  • quickstart atau install selesai dengan Node admission accepted
  • status melaporkan operator_status=ok, atau setiap peringatan dijelaskan
  • health --json melaporkan "success":true
  • Nodeboard menampilkan node dengan heartbeat baru dan Capacity Decision
  • Alerts / Events → Incident Closure tidak memiliki item open yang belum ditinjau untuk node tersebut
  • Anda mengetahui halaman detail node di Nodeboard

Apa yang dilaporkan node terdaftar

Diagnostik lokal (status, health, relay-probe) hanya mencetak nilai agregat: status layanan, kapasitas, penghitung paket, kesiapan penemuan, dan hasil bukti.

Node VPN terdaftar juga melaporkan setiap sesi VPN ke backend AeroNyx: ID sesi, kunci klien (client_wallet), IP virtual tunnel, jumlah byte, waktu, dan kualitas tautan. Node tidak melaporkan IP publik klien, tujuan, isi DNS, atau payload paket. Operator dapat melihat catatan sesi ini untuk node mereka sendiri di Nodeboard; lihat Panduan konsol operator Nodeboard. Seperti server VPN mana pun, node itu sendiri menangani lalu lintas klien dalam bentuk tidak terenkripsi di titik exit, sehingga operator harus mematuhi Kebijakan Operator Node.

Halaman terkait

<!-- faq:start -->

Pertanyaan yang sering diajukan

Dari mana asal aeronyx-node.sh?

Ini adalah berkas dalam repositori node AeroNyx di deploy/node/aeronyx-node.sh, bukan perintah sistem. Clone atau perbarui https://github.com/AeroNyxNetwork/AeroNyx ke /root/open/AeroNyx dan jalankan dari sana dengan --repo-dir "$PWD".

Bagaimana cara menjaga kode pendaftaran agar tidak masuk ke riwayat shell?

Jalankan quickstart tanpa kode dan ketik kode tersebut di prompt tersembunyi Nodeboard registration code:. Untuk skrip, baca kode dengan read -rs dan salurkan ke install --quick --registration-code-stdin.

Mengapa skrip mencari di /opt/aeronyx/AeroNyx?

Itu adalah default bawaan skrip untuk --repo-dir, sedangkan Nodeboard melakukan clone ke /root/open/AeroNyx. Berikan --repo-dir pada setiap perintah agar install, health, status, dan upgrade semuanya menggunakan checkout tempat layanan berjalan.

Apa yang terjadi jika kode saya kedaluwarsa selama pemasangan?

Langkah pendaftaran gagal dan penginstal berhenti sebelum memulai layanan. Kode diperiksa setelah build, jadi buat kode baru dan jalankan quickstart lagi; proses kedua menggunakan ulang cache build.

Apakah saya memerlukan Nodeboard untuk menjalankan node?

Tidak, join memasang node dan mengirimkannya untuk penerimaan Stage-A tanpa kode pendaftaran. Node yang bergabung dengan cara ini tidak dapat dirutekan, tidak tercantum di Nodeboard atau pool VPN, dan tidak memenuhi syarat untuk pembayaran.

Dapatkah saya menjalankan node di VM rahasia?

Ya, repositori menyertakan penerapan Docker untuk VM rahasia dstack yang menjalankan relay onion, ChatRelay, dan kotak surat anonim. Penerapan ini tidak menyediakan layanan VPN dan mengambil identitasnya dari layanan manajemen kunci dstack.

<!-- faq:end -->