Node penuh Astrix dan perpustakaan tambahannya.
Kami mengundang pengembang dan penggemar blockchain untuk berkolaborasi, menguji, dan mengoptimalkan implementasi Rust kami. Setiap baris kode di sini adalah peluang untuk berkontribusi pada gerakan blockchain sumber terbuka, membentuk platform yang dirancang untuk skalabilitas dan kecepatan tanpa mengorbankan desentralisasi.
Masukan, kontribusi, dan laporan masalah Anda akan menjadi bagian integral dalam mengembangkan basis kode ini dan melanjutkan kematangannya sebagai node yang andal di jaringan Astrix.
Instal prasyarat umum
sudo apt install curl git build-essential libssl-dev pkg-config
Instal Protobuf (diperlukan untuk gRPC)
sudo apt install protobuf-compiler libprotobuf-dev # Required for gRPC
Instal clang toolchain (diperlukan untuk build RocksDB dan WASM secp256k1)
sudo apt-get install clang-format clang-tidy
clang-tools clang clangd libc++-dev
libc++1 libc++abi-dev libc++abi1
libclang-dev libclang1 liblldb-dev
libllvm-ocaml-dev libomp-dev libomp5
lld lldb llvm-dev llvm-runtime
llvm python3-clang
Pasang rantai alat karat
Jika Anda sudah menginstal Rust, perbarui dengan menjalankan: rustup update
Instal paket wasm
cargo install wasm-pack
Instal target wasm32
rustup target add wasm32-unknown-unknown
Kloning reponya
git clone https://github.com/astrix-network/astrix-node
cd astrix-node
Instal Git untuk Windows atau distribusi Git alternatif.
Instal Protocol Buffers dan tambahkan direktori bin
ke Path
Anda
Instal LLVM-15.0.6-win64.exe
Tambahkan direktori bin
instalasi LLVM ( C:Program FilesLLVMbin
) ke PATH
atur variabel lingkungan LIBCLANG_PATH
agar menunjuk ke direktori bin
juga
PENTING: Karena masalah konfigurasi ketergantungan C++, instalasi LLVM AR
di Windows mungkin tidak berfungsi dengan benar saat beralih antara WASM dan kompilasi kode C++ asli ( RocksDB+secp256k1
asli vs WASM32 build dari secp256k1
). Sayangnya, menyetel variabel lingkungan AR
secara manual juga membingungkan rantai alat build C++ (tidak boleh disetel untuk asli tetapi harus disetel untuk target WASM32). Saat ini, cara terbaik untuk mengatasinya adalah sebagai berikut: setelah menginstal LLVM di Windows, buka direktori instalasi bin
target dan salin atau ganti nama LLVM_AR.exe
menjadi AR.exe
.
Pasang rantai alat karat
Jika Anda sudah menginstal Rust, perbarui dengan menjalankan: rustup update
Instal paket wasm
cargo install wasm-pack
Instal target wasm32
rustup target add wasm32-unknown-unknown
Kloning reponya
git clone https://github.com/astrix-network/astrix-node
cd astrix-node
Instal Protobuf (diperlukan untuk gRPC)
brew install protobuf
Instal llvm.
Instalasi XCode default llvm
tidak mendukung target pembangunan WASM. Untuk membangun WASM di MacOS, Anda perlu menginstal llvm
dari homebrew (pada saat penulisan, versi llvm untuk MacOS adalah 16.0.1).
brew install llvm
CATATAN: Homebrew dapat menggunakan lokasi pemasangan tong yang berbeda tergantung pada konfigurasi Anda. Misalnya:
/opt/homebrew/opt/llvm
-> /opt/homebrew/Cellar/llvm/16.0.1
/usr/local/Cellar/llvm/16.0.1
Untuk menentukan lokasi instalasi Anda dapat menggunakan perintah brew list llvm
dan kemudian memodifikasi jalur di bawah ini:
% brew list llvm
/usr/local/Cellar/llvm/16.0.1/bin/FileCheck
/usr/local/Cellar/llvm/16.0.1/bin/UnicodeNameMappingGenerator
...
Jika Anda memiliki /opt/homebrew/Cellar
, maka Anda seharusnya dapat menggunakan /opt/homebrew/opt/llvm
.
Tambahkan yang berikut ke file ~/.zshrc
Anda:
export PATH= " /opt/homebrew/opt/llvm/bin: $PATH "
export LDFLAGS= " -L/opt/homebrew/opt/llvm/lib "
export CPPFLAGS= " -I/opt/homebrew/opt/llvm/include "
export AR=/opt/homebrew/opt/llvm/bin/llvm-ar
Muat ulang file ~/.zshrc
source ~ /.zshrc
Pasang rantai alat karat
Jika Anda sudah menginstal Rust, perbarui dengan menjalankan: rustup update
Instal paket wasm
cargo install wasm-pack
Instal target wasm32
rustup target add wasm32-unknown-unknown
Kloning reponya
git clone https://github.com/astrix-network/astrix-node
cd astrix-node
Rust WebAssembly (WASM) mengacu pada penggunaan bahasa pemrograman Rust untuk menulis kode yang dapat dikompilasi ke dalam WebAssembly, format instruksi biner yang berjalan di browser web dan NodeJs. Hal ini memungkinkan pengembangan yang mudah menggunakan bahasa pemrograman JavaScript dan TypeScript sambil tetap mempertahankan manfaat Rust.
Komponen WASM SDK dapat dibuat dari sumber dengan menjalankan: - ./build-release
- buat paket rilis lengkap (termasuk versi rilis dan debug untuk target web dan nodejs) - ./build-docs
- dokumentasi build TypeScript - ./build-web
- rilis pembuatan web - ./build-web-dev
- pembuatan web pengembangan - ./build-nodejs
- rilis pembuatan nodejs - ./build-nodejs-dev
- pengembangan pembuatan nodejs
PENTING: jangan gunakan build dev
dalam produksi. Mereka jauh lebih besar, lebih lambat dan menyertakan simbol debug.
cd cli
cargo run --release
Jalankan server http di dalam folder wallet/wasm/web
. Jika Anda tidak punya sekali, Anda dapat menggunakan yang berikut ini:
cd wallet/wasm/web
cargo install basic-http-server
basic-http-server
Basic-http-server akan melayani pada port 4000 secara default, jadi buka browser web Anda dan muat http://localhost:4000
Kerangka kerja ini kompatibel dengan semua browser desktop dan seluler utama.
Mulai node mainnet
cargo run --release --bin astrixd
# or with UTXO-index enabled (needed when using wallets)
cargo run --release --bin astrixd -- --utxoindex
cargo run --release --bin astrixd -- --configfile /path/to/configfile.toml
# or
cargo run --release --bin astrixd -- -C /path/to/configfile.toml
=
baik-baik saja, arg=value
dan arg = value
keduanya diuraikan dengan benar..
atau =
akan mengharuskan mengutip nilai yaitu addpeer = ["10.0.0.1", "1.2.3.4"]
.Misalnya:
utxoindex = false
disable-upnp = true
perf-metrics = true
appdir = "some-dir"
netsuffix = 11
addpeer = ["10.0.0.1", "1.2.3.4"]
Berikan tanda --help
untuk melihat semua kemungkinan argumen
cargo run --release --bin astrixd -- --help
Subsistem wRPC dinonaktifkan secara default di astrixd
dan dapat diaktifkan melalui:
Protokol JSON:
--rpclisten-json = < interface:port >
# or use the defaults for current network
--rpclisten-json = default
Protokol Borsh:
--rpclisten-borsh = < interface:port >
# or use the defaults for current network
--rpclisten-borsh = default
Catatan tambahan:
Astrix Node mengintegrasikan subsistem wRPC opsional. wRPC adalah implementasi RPC berbingkai WebSocket yang berkinerja tinggi, netral platform, berpusat pada karat, yang dapat menggunakan pengkodean protokol Borsh dan JSON.
Pesan protokol JSON mirip dengan JSON-RPC 1.0, tetapi berbeda dari spesifikasinya karena pemberitahuan sisi server.
Pengkodean Borsh dimaksudkan untuk komunikasi antar proses. Saat menggunakan Borsh, klien dan server harus dibangun dari basis kode yang sama.
Protokol JSON didasarkan pada struktur data Astrix dan merupakan agnostik versi struktur data. Anda dapat terhubung ke titik akhir JSON menggunakan pustaka WebSocket apa pun. Klien RPC bawaan untuk JavaScript dan TypeScript yang mampu berjalan di browser web dan Node.js tersedia sebagai bagian dari kerangka kerja Astrix WASM.
Masuk ke astrixd
dan simpa
dapat difilter berdasarkan:
Basis kode saat ini mendukung simulasi jaringan dalam proses penuh, membangun DAG aktual melalui waktu virtual dengan penundaan virtual dan waktu validasi benchmarking (mengikuti pembuatan simulasi).
Untuk melihat perintah yang tersedia
cargo run --release --bin simpa -- --help
Perintah berikut akan menjalankan simulasi untuk menghasilkan 1000 blok dengan penundaan komunikasi 2 detik dan 8 BPS (blok per detik) sambil mencoba mengisi setiap blok hingga 200 transaksi.
cargo run --release --bin simpa -- -t=200 -d=2 -b=8 -n=1000
Pembuatan profil heap di astrixd
dan simpa
dapat dilakukan dengan mengaktifkan fitur dan profil heap
menggunakan argumen --features
cargo run --bin astrixd --profile heap --features=heap
Ini akan menghasilkan file {bin-name}-heap.json
di root workdir, yang dapat diperiksa oleh dhat-viewer
Jalankan pengujian unit dan sebagian besar integrasi
cd astrix-node
cargo test --release
// or install nextest and run
Menggunakan yang berikutnya
cd astrix-node
cargo nextest run --release
cd astrix-node
cargo bench
Masuk ke astrixd
dan simpa
dapat difilter berdasarkan:
Mendefinisikan variabel lingkungan RUST_LOG
Menambahkan argumen --loglevel seperti pada contoh berikut:
(cargo run --bin astrixd -- --loglevel info,astrix_rpc_core=trace,astrix_grpc_core=trace,consensus=trace,astrix_core=trace) 2>&1 | tee ~/astrix-node.log
Dalam perintah ini kita mengatur loglevel
ke INFO
.