OpenGuild
Published on

Polkadot Guide: Chạy Substrate node trên máy tính của bạn

Language: Vietnamese

Cấp độ: Begineer

Polkadot Guide: Chạy Substrate node trên máy tính của bạn

Để bắt đầu phát triển node bằng Substrate, bạn bắt buộc phải khởi tạo một node trên máy tính cá nhân (local) hoặc trên một VPS (Virtual Private Server: Mạng cá nhân ảo).

Bài viết liên quan

Các bước chuẩn bị

Cài đặt Rust

  • Máy của bạn đã được cài đặt Rust và toolchain phù hợp. Để cài đặt Rust, bạn có thể làm theo hướng dẫn ở đây

Sau khi cài đặt, bạn hãy giúp mình chạy các command sau để kiểm tra xem Rust đã được cài đặt chưa nhé. (các phiên bản chỉ là ví dụ, có thể khác trên máy bạn.)

Nếu sử dụng MacOS thì mình khuyên bạn nên cài đặt cargorust theo các phiên bản dưới đây vì substrate-node-template chưa được tối ưu trên chip Apple Silion (M1 trở đi) của MacOS

❯ cargo --version
cargo 1.76.0-nightly (71cd3a926 2023-11-20)
❯ rustc --version
rustc 1.76.0-nightly (3a85a5cfe 2023-11-20)
❯ rustup --version
rustup 1.25.2 (17db695f1 2023-02-01)

Thêm wasm32-unknown-unknown vào Rust toolchain

  • Rust toolchain và target phù hợp: Mã nguồn của Substrate tương thích với binary target cho wasm32-unknown-unknown. Để thêm wasm32-unknown-unknown target vào build script của Rust, bạn có thể chạy câu lệnh sau:
rustup target add wasm32-unknown-unknown

Sau đó để kiểm tra xem target đã được thêm vào toolchain hay chưa, bạn có thể chạy câu lệnh

rustup show

Và đây là output từ câu lệnh trên

Default host: aarch64-apple-darwin
rustup home:  /Users/chungquantin/.rustup

installed toolchains
--------------------

stable-aarch64-apple-darwin
nightly-2020-08-19-x86_64-apple-darwin
nightly-aarch64-apple-darwin (default)

installed targets for active toolchain
--------------------------------------

aarch64-apple-darwin
wasm32-unknown-unknown

active toolchain
----------------

nightly-aarch64-apple-darwin (overridden by '/Users/chungquantin/Developer/substrate-node/rust-toolchain.toml')
rustc 1.76.0-nightly (3a85a5cfe 2023-11-20)

Nếu wasm32-unknown-unknown được hiển thị ở phần installed targets for active toolchain, có nghĩa là bạn đã thành công thêm target vào toolchain. Để giải thích cho việc setup vừa rồi thì mã nguồn của Substrate node được thiết kế để biên dịch sang WebAssembly hỗ trợ cho 32-bit memory.

Chạy local Substrate node

Tải mã nguồn của substrate-node-template

git clone https://github.com/substrate-developer-hub/substrate-node-template
cd substrate-node-template

Sau khi bạn đã cd vào substrate-node-template chạy

cargo build --release

Sau đó chạy file binary đã được biên dịch

./target/release/node-template --dev

Nếu chạy node thành công, trên terminal sẽ hiển thị các thông tin này

2023-11-22 22:22:16 Substrate Node
2023-11-22 22:22:16 ✌️  version 4.0.0-dev-41ad4a6c9d7
2023-11-22 22:22:16 ❤️  by Substrate DevHub <https://github.com/substrate-developer-hub>, 2017-2023
2023-11-22 22:22:16 📋 Chain specification: Local Testnet
2023-11-22 22:22:16 🏷  Node name: acid-sea-0519
2023-11-22 22:22:16 👤 Role: FULL
2023-11-22 22:22:16 💾 Database: RocksDb at /Users/chungquantin/Library/Application Support/node-template/chains/local_testnet/db/full
2023-11-22 22:22:17 🔨 Initializing Genesis block/state (state: 0x6880…c472, header-hash: 0x0d80…ce87)
2023-11-22 22:22:17 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.
2023-11-22 22:22:17 Using default protocol ID "sup" because none is configured in the chain specs
2023-11-22 22:22:17 🏷  Local node identity is: 12D3KooWSaDfHMHYYLNMDMfb1CHAufuL4BHsJ4UdhT5Rh5aAnV98
2023-11-22 22:22:17 💻 Operating system: macos
2023-11-22 22:22:17 💻 CPU architecture: aarch64
2023-11-22 22:22:17 📦 Highest known block at #0
2023-11-22 22:22:17 〽️ Prometheus exporter started at 127.0.0.1:9615
2023-11-22 22:22:17 Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"]