Smart Contractsbeginnertutorial30 min read

Chạy Cardano Node: Hướng Dẫn Thực Hành | VCC

Vietcardano teamTeam

Đội ngũ biên tập VietCardanoCommunity — các chuyên gia blockchain và Cardano, cung cấp nội dung giáo dục và nghiên cứu chuyên sâu cho cộng đồng.

Published 31 tháng 8, 2026Updated 12 tháng 8, 2026
Mục lục (60 mục)

Chạy một node Cardano là cách trực tiếp nhất để tham gia vào sự đồng thuận của mạng, xác nhận giao dịch và đóng góp cho sự phân quyền làm cho Cardano an toàn. Bất kể bạn là một nhà phát triển xây dựng dApps, một nhà điều hành kho chứa cổ phần, hoặc một người hâm mộ muốn kiểm soát hoàn toàn các tương tác với ADA, việc học cách chạy một node Cardano cho bạn sự độc lập từ các API của bên thứ ba và quyền truy cập trực tiếp vào trạng thái chuỗi khối.

Cuốn hướng dẫn này bao gồm tất cả các nội dung từ yêu cầu phần cứng và cài đặt phần mềm đến cấu hình, đồng bộ hóa và bảo trì liên tục. Đến cuối bài học, bạn sẽ có một node Cardano hoạt động đầy đủ trên mainnet hoặc testnet.


Tại sao nên chạy node Cardano của riêng bạn?

Trước khi đi sâu vào cấu hình kỹ thuật, bạn nên hiểu được những lợi ích bạn nhận được khi vận hành node của riêng mình:

Xác minh không cần tin tưởng — Bạn tự xác minh từng khối và giao dịch thay vì dựa vào một trình duyệt khối hoặc nhà cung cấp ví. Đây là nền tảng của "không tin tưởng, xác minh".

Gửi giao dịch trực tiếp — Gửi giao dịch trực tiếp vào mempool mà không cần thông qua API của bên thứ ba. Độ trễ thấp, không có giới hạn tốc độ, không cần khóa API.

Lịch sử blockchain đầy đủ — Tìm kiếm bất kỳ khối, giao dịch hoặc UTxO nào vào bất kỳ thời điểm nào. Đáng kể cho việc phát triển dApp, phân tích và kiểm toán.

Kinh doanh kho chứa cổ phần - Nếu bạn có kế hoạch chạy kho chứa cổ phần, bạn cần ít nhất hai nút (người sản xuất khối + trung gian). Hướng dẫn này là điểm khởi đầu của bạn.

Công trình bảo vệ sức khỏe mạng – Mỗi nút đầy đủ bổ sung sẽ tăng cường sự phân quyền và khả năng chống lại các cuộc tấn công của Cardano.


Yêu cầu phần cứng cho node Cardano

Phần mềm node của Cardano tiêu thụ nhiều tài nguyên, đặc biệt là trong quá trình đồng bộ hóa blockchain ban đầu. Hãy lên kế hoạch cho thiết bị của bạn theo đó.

Thông số tối thiểu (Mainnet)

Bộ phậnMinimumTốt nhấtGhi chú
CPU4 lõi (x86_64)8+ lõiARM64 (Apple Silicon, Raspberry Pi 4+) được hỗ trợ nhưng đồng bộ hóa chậm hơn
RAM16 GB32 GB8 GB hoạt động nhưng có nguy cơ OOM khi đồng bộ; việc thay đổi giúp nhưng làm giảm hiệu suất
Cung cấp bộ nhớ100 GB SSD500 GB+ NVMeBlockchain tăng ~50 GB/năm; NVMe tăng tốc đồng bộ đáng kể
Mạng10 Mbps lên/xuống100 Mbps+Tích hợp kết nối không giới hạn; tải xuống đồng bộ ~100 GB
Hệ điều hànhLinux (Ubuntu 22.04+, Debian 12)LinuxmacOS hoạt động; Windows thông qua WSL2 chỉ

Báo cáo phân tích lưu trữ (Mainnet, tháng 8 năm 2026)

  • Bảng dữ liệu chuỗi (DB không thể thay đổi): ~120 GB

Tổng cộng: tối thiểu 200 GB, khuyến nghị 500 GB+ trong 3 năm trở lên.

> ⚠️ Đừng sử dụng HDD. Mẫu I/O ngẫu nhiên trong quá trình đồng bộ hóa và xác minh khối làm cho các ổ đĩa cơ học hoạt động quá chậm. NVMe SSD được khuyến nghị mạnh mẽ.


Yêu cầu trước của phần mềm

Cài đặt hệ điều hành (ví dụ: Ubuntu 22.04 LTS)

bash sudo apt update && sudo apt upgrade -y

sudo apt install -y \ build-essential \ pkg-config \ libgmp-dev \ libssl-dev \ libsystemd-dev \ zlib1g-dev \ libncursesw5-dev \ libtinfo5 \ git \ jq \ wget \ curl \ tmux \ htop

Cài đặt GHC và Cabal (qua GHCup)

Node Cardano yêu cầu các phiên bản GHC cụ thể. Hãy sử dụng GHCup để quản lý phiên bản một cách đáng tin cậy.

bash curl --proto '=https' --tlsv1.2 -sSf https://get-ghcup.haskell.org | sh

trình nguồn ~/.ghcup/env ghcup cài đặt ghc 9.6.5 ghcup cài đặt cabal 3.10.3.0 ghc --version # Nên hiển thị 9.6.5

> 💡 Định vị phiên bản: Hãy luôn kiểm tra [một số ghi chú phát hành của cardano-node](https://github.com/IntersectMBO/cardano-node/releases) để biết chính xác các phiên bản GHC/Cabal cần thiết. Sử dụng các phiên bản không phù hợp sẽ dẫn đến thất bại trong quá trình xây dựng.


Cấu tạo node Cardano từ nguồn

Tạo từ nguồn đảm bảo bạn có được phiên bản chính xác mà bạn cần và có thể áp dụng các bản sửa lỗi nếu cần thiết.

Clone và xây dựng

bash mkdir -p ~/cardano && cd ~/cardano

git clone https://github.com/IntersectMBO/cardano-node.git git fetch --tags git checkout $(git tag -l "10.*" | sort -V | tail -1) # Thay đổi mẫu phiên bản theo yêu cầu cabal update cabal configure -O2 -w ghc-9.6.5 cabal build tất cả ./dist-newstyle/build/x86_64-linux/ghc-9.6.5/cardano-node-*/x/cardano-node/build/cardano-node/cardano-node --version

Lựa chọn khác: Binary đã được xây dựng sẵn (cài đặt nhanh hơn)

Đối với các triển khai sản xuất, các bản sao lưu đã được xây dựng sẵn từ các bản phát hành chính là hoàn toàn phù hợp:

bash cd ~/cardano wget https://github.com/IntersectMBO/cardano-node/releases/download/10.1.1/cardano-node-10.1.1-linux.tar.gz

./cardano-node --version

Cấu hình mạng: Mainnet vs Testnet

Cardano có nhiều mạng lưới. Hãy chọn dựa trên trường hợp sử dụng của bạn.

Mainnet (Sản xuất)

  • ADA thực tế - Giá trị thực tế, cược thực tế

Testnet Preprod (Tốt nhất cho thử nghiệm)

  • Test ADA — Miễn phí từ các vòi nước

Xem trước Testnet (điểm tiên tiến)

  • Các tính năng mới nhất - Có thể không ổn định

sơ đồ quy trình - cây quyết định cấu hình Node Cardano

Tệp cấu hình

Node Cardano sử dụng tệp cấu trúc, tệp cấu hình và tệp khởi tạo. Ba loại này đều phải phù hợp với mạng đích của bạn.

Cấu trúc thư mục

bash mkdir -p ~/cardano-node/{mainnet,preprod}/{config,db,logs,socket}

Tập tin Genesis

Tải các tệp genesis cho mạng của bạn:

bash cd ~/cardano-node/mainnet/config wget https://book.world.mobile/genesis/mainnet/byron-genesis.json wget https://book.world.mobile/genesis/mainnet/shelley-genesis.json wget https://book.world.mobile/genesis/mainnet/alonzo-genesis.json wget https://book.world.mobile/genesis/mainnet/conway-genesis.json

cd ~/cardano-node/preprod/config wget https://book.world.mobile/genesis/preprod/byron-genesis.json wget https://book.world.mobile/genesis/preprod/shelley-genesis.json wget https://book.world.mobile/genesis/preprod/alonzo-genesis.json wget https://book.world.mobile/genesis/preprod/conway-genesis.json

> 📍 Các nguồn chính thức của Genesis: Bản sao book.world.mobile được duy trì bởi cộng đồng. Đối với sản xuất, bạn nên sử dụng các nguồn chính thức của IOG hoặc kiểm tra các checksum.


Hình đồ - Các mối quan hệ giữa tệp cấu hình node Cardano

Tệp cấu trúc (topology.json)

Giải thích các đối tác mà nút của bạn kết nối. Đối với một nút trung chuyển:

`json { "Producers": [ { "addr": "relays-new.cardano-mainnet.iohk.io", "port": 3001, "valency": 1 }, { "addr": "relays-new.cardano-mainnet.iohk.io", "port": 3002, "valency": 1 } ] }

Đối với một nhà sản xuất block, bạn có thể cấu hình nó để kết nối chỉ với các nút relay của bạn (không phải là nút relay công khai).

Tệp cấu hình (config.json)

"AlonzoGenesisFile": "alonzo-genesis.json", "ByronGenesisFile": "byron-genesis.json", "ConwayGenesisFile": "conway-genesis.json", "ShelleyGenesisFile": "shelley-genesis.json", "RequiresNetworkMagic": "RequiresMagic", "LastKnownBlockVersion-Major": 10, "LastKnownBlockVersion-Minor": 0, "Protocol": "Cardano", "NodeName": "my-cardano-node", "HasEKG": 12788, "HasPrometheus": [ "127.0.0.1", 9090 ], "minSeverity": "Info", "maxConcurrencyBulkSync": 2, "maxConcurrencyDeadline": 6, "viewMode": "LiveView", "tracerTracer": "default"

Các cài đặt chính được giải thích như sau:

Cài đặtMục đíchGiá trị khuyến nghị
RequiresNetworkMagicMã nhận dạng mạngRequiresMagic (testnet) / RequiresNoMagic (mainnet)
HasEKGCổng theo dõi ECG12788 (tắt bằng 0)
HasPrometheusKPI của Prometheus["127.0.0.1", 9090]
maxConcurrencyBulkSyncNhân viên đồng bộ hóa song song2 (tăng tốc độ đồng bộ hóa trên thiết bị tốt)
viewModeSự chi tiết của việc ghi log“LiveView” hoặc “SimpleView”

Bắt đầu cài đặt node Cardano

Lần chạy đầu tiên: đồng bộ từ Genesis

Khi đồng bộ ban đầu, nó sẽ tải xuống và xác minh toàn bộ blockchain. Điều này sẽ mất 12-48 giờ trên các thiết bị được khuyến nghị.

bash cd ~/cardano-node/mainnet

tmux new-session -s cardano-node

cardano-node run \ --topology config/topology.json \ --config config/config.json \ --database-path db \ --socket-path socket/node.socket \ --port 3001 \ --host-addr 0.0.0.0 \ --log-config config/log-config.json

Điều gì xảy ra trong quá trình đồng bộ hóa:

  1. Lấy khối — Tải các khối từ các đối tác (bước đồng bộ hóa lớn)

Theo dõi tiến trình đồng bộ

Mở một terminal thứ hai và kiểm tra trạng thái đồng bộ:

bash cardano-cli query tip \ --mainnet \ --socket-path ~/cardano-node/mainnet/socket/node.socket

watch -n 10 'cardano-cli query tip --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket'

Tải về và giải thích: `json { "epoch": 450, "hash": "abc123...", "slot": 45000000, "block": 10245000, "era": "Conway" } `

  • block = Chiều cao khối hiện tại (so sánh với các trình khám phá như CardanoScan)

Dòng - Các giai đoạn đồng bộ hóa Blockchain

Chạy như một dịch vụ Systemd (các môi trường sản xuất)

Đối với sản xuất, chạy node như một dịch vụ systemd để tự động khởi động lại và ghi lại thông tin.

bash sudo tee /etc/systemd/system/cardano-node.service > /dev/null <<'EOF' [Unit] Description=Cardano Node After=network.target

Type=simple User=cardano Group=cardano WorkingDirectory=/home/cardano/cardano-node/mainnet ExecStart=/home/cardano/.local/bin/cardano-node run \ --topology config/topology.json \ --config config/config.json \ --database-path db \ --socket-path socket/node.socket \ --port 3001 \ --host-addr 0.0.0.0 Restart=always RestartSec=10 LimitNOFILE=65535

[Cài đặt] WantedBy=multi-user.target

sudo systemctl daemon-reload sudo systemctl status cardano-node

Xác minh nút của bạn đang hoạt động

Kiểm tra sức khỏe cơ bản

bash cardano-cli query tip --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket

cardano-cli query protocol-parameters --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket cardano-cli query epoch --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket cardano-cli query utxo --address addr1... --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket

KPI Prometheus (nếu được kích hoạt)

`bash curl http://127.0.0.1:9090/metrics | grep cardano

Các chỉ số quan trọng cần theo dõi: - cardano_node_metrics_blockHeight_int — Độ cao khối hiện tại - cardano_node_metrics_peers_connected_int — Peer kết nối (nên là > 0) - cardano_node_metrics_mempool_txs_int — Số giao dịch trong mempool


Các vấn đề thường gặp và khắc phục

Sync bị lỗi hoặc rất chậm

Triệu chứngNguyên nhânĐịnh vị
Peer = 0Tệp cấu trúc không đúng / tường lửaKiểm tra tập tin topology.json, mở cổng 3001
CPU cao, I/O ổ đĩa thấpBộn chặn CPUTăng maxConcurrencyBulkSync
I/O đĩa cao, CPU thấpLưu trữ chậmSử dụng NVMe; kiểm tra tình trạng ổ đĩa
OOM gây chếtRAM không đủThêm swap, tăng RAM, giảm mức đồng thời

bash cardano-cli query node-state --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket

journalctl -u cardano-node -f tail -f ~/cardano-node/mainnet/logs/node.log

Lỗi "Chain DB Corrupted"

bash sudo systemctl stop cardano-node

mv ~/cardano-node/mainnet/db ~/cardano-node/mainnet/db.backup sudo systemctl start cardano-node

> ⚠️ Đừng xóa DB khi node đang chạy. Hãy luôn ngừng dịch vụ trước.

Sai lệch phiên bản sau khi nâng cấp

bash cardano-node --version

cardano-cli --version `

So sánh hiệu suất đồng bộ: HDD vs SSD vs NVMe

Cấu hình nâng cao

Chạy nút Relay (cho các kho bạc Stake)

Một nút relay nằm giữa nhà sản xuất khối của bạn và mạng công cộng. Nó bảo vệ nhà sản xuất khối của bạn khỏi sự tiếp xúc trực tiếp.

Topology relay.json: `json { "Producers": [ { "addr": "relay1.yourdomain.com", "port": 3001, "valency": 1 }, { "addr": "relay2.yourdomain.com", "port": 3001, "valency": 1 }, { "addr": "relays-new.cardano-mainnet.iohk.io", "port": 3001, "valency": 2 } ] } `

Block producer topology.json (đối với các relay chỉ cần kết nối với relay của bạn):

Cấu hình tường lửa

bash sudo ufw allow 3001/tcp comment "Cardano P2P"

sudo ufw allow từ YOUR_MONITORING_IP đến bất kỳ cổng nào 9090 sudo ufw allow ssh sudo ufw enable

Đảo chuyển log

Tránh để các log đầy đĩa:

`bash sudo tee /etc/logrotate.d/cardano-node > /dev/null <<'EOF' /home/cardano/cardano-node/mainnet/logs/*.log { daily rotate 14 compress delaycompress missingok notifempty create 640 cardano cardano } EOF


Kiểm tra và nâng cấp

Các nhiệm vụ bảo trì thường xuyên

Nhiệm vụTần sốHướng dẫn
Kiểm tra trạng thái đồng bộMỗi ngàycardano-cli query tip
Theo dõi sử dụng đĩaTuần mộtdf -h ~/cardano-node/mainnet/db
Kiểm tra số peerMỗi ngàycardano-cli query node-state
Xem các bản ghi để tìm lỗiTuần mộtjournalctl -u cardano-node --since "1 tuần trước"
Cập nhật đối tác cấu trúcThángSửa đổi topology.json, khởi động lại node

Cập nhật Node Cardano

bash sudo systemctl stop cardano-node

cp ./new-cardano-node /home/cardano/.local/bin/cardano-node sudo systemctl start cardano-node cardano-node --version cardano-cli query tip --mainnet --socket-path ~/cardano-node/mainnet/socket/node.socket

> 🔄 Chiến lược nâng cấp: Đầu tiên, thử nghiệm trên testnet. Các nâng cấp trên mainnet nên được phối hợp với cộng đồng (xem Discord/forum để biết thời gian nâng cấp).


Hình đồ - Kiến trúc Node Cardano: Các thành phần và lưu lượng dữ liệu

Các phương pháp tốt nhất về bảo mật

An ninh mạng

  1. Điều hành như người dùng không phải là root — Tạo một người dùng cardano riêng biệt

An ninh hoạt động

  1. Không có khóa trên các nút relay — Khóa của nhà sản xuất khối vẫn được lưu trữ trên máy không kết nối mạng/offline

Tùy chỉnh hiệu suất

Để đồng bộ nhanh hơn

json { "maxConcurrencyBulkSync": 4, "maxConcurrencyDeadline": 12, "blockFetchBatchSize": 100 }

Để sử dụng tài nguyên ít hơn (sau khi đồng bộ)

json { "maxConcurrencyBulkSync": 1, "maxConcurrencyDeadline": 2, "viewMode": "SimpleView" }

Tùy chỉnh cơ sở dữ liệu (PostgreSQL không được sử dụng – Node sử dụng cơ sở dữ liệu không thay đổi)

Bảng dữ liệu nội bộ của nút được tối ưu hóa cho các công việc có tải trọng lớn. Không cần thiết phải điều chỉnh thủ công ngoài việc đảm bảo đủ bộ nhớ RAM và bộ lưu trữ NVMe.


FAQ: Cài đặt node Cardano

Câu hỏi: Tôi có thể chạy node Cardano trên Raspberry Pi không?

A: Có, trên Raspberry Pi 4 (8 GB RAM) hoặc Pi 5 với NVMe HAT. Sync mất 5-7 ngày. Sử dụng hệ điều hành 64-bit (Ubuntu Server 22.04 ARM64). Không khuyến nghị sử dụng cho relay kho lưu trữ do độ trễ mạng.

Câu hỏi: Node sử dụng bao nhiêu băng thông?

A: Sync ban đầu: ~100 GB tải xuống. Đơn hàng: ~50-200 GB/tháng tùy thuộc vào số lượng người đồng hành và hoạt động của mempool. Tích hợp kết nối không giới hạn được khuyến nghị mạnh mẽ.

Câu hỏi: Tôi có cần đặt cọc ADA để chạy một node không?

A: Không. Để chạy một node (người trung chuyển hoặc nhà sản xuất khối) không cần ADA. Chỉ cần đăng ký một nhóm đặt cọc thì cần khoản tiền gửi 500 ADA + cam kết.

Q: Tôi có thể chạy nhiều node trên một máy không?

A: Có, với các cổng, đường dẫn cơ sở dữ liệu và đường dẫn kết nối khác nhau. Thông thường để chạy mainnet + testnet cùng lúc, hoặc relay + block producer (mặc dù các máy riêng biệt được ưu tiên cho các pool).

Câu hỏi: Sự khác biệt giữa node đầy đủ và ví điện tử thông thường là gì?

A: Một điểm cuối đầy đủ (các hướng dẫn này) tải xuống và xác minh toàn bộ blockchain. Một cá nhân tiền điện tử nhẹ (như Yoroi, Eternl, Lace) tin tưởng vào một máy chủ xa để lấy dữ liệu blockchain. Điểm cuối đầy đủ cung cấp xác minh không cần tin tưởng; cá nhân tiền điện tử nhẹ cung cấp sự tiện lợi.

Câu hỏi: Làm thế nào để tôi biết nút của tôi nằm trong chuỗi đúng?

A: So sánh hash cuối cùng của nút và độ cao khối với nhiều trình khám phá khối (CardanoScan, CExplorer, PoolTool). Chúng nên trùng khớp hoàn toàn.

Câu hỏi: Điều gì xảy ra trong quá trình hard fork?

A: Knoten của bạn sẽ tự động theo dõi chuỗi có công việc tích lũy nhiều nhất, miễn là bạn đã nâng cấp lên phiên bản hỗ trợ các quy tắc của giao thức mới. Hãy luôn nâng cấp trước thời kỳ fork cứng.

Q: Tôi có thể chạy một node trên Windows không?

A: Chỉ qua WSL2 (Windows Subsystem for Linux). Các phiên bản Windows gốc không được hỗ trợ chính thức. Tốc độ trong WSL2 gần như tương đương với phiên bản gốc.


Các bước tiếp theo

Bây giờ khi nút Cardano của bạn đang chạy, hãy xem xét các đường dẫn sau:

  1. Quản trị viên của kho chứa stake — Cài đặt cặp sản xuất khối + relay, đăng ký kho chứa

Các nguồn tài nguyên và tham khảo

  • Danh sách tài liệu chính thức: https://docs.cardano.org/
  • Cardano Node GitHub: https://github.com/IntersectMBO/cardano-node
  • Cardano CLI Reference: https://github.com/IntersectMBO/cardano-cli
  • Testnet Faucets: https://testnets.cardano.org/
  • Topology cộng đồng: https://github.com/cardano-community/guild-operators
  • Stack giám sát: https://github.com/cardano-community/cardano-node-exporter

Danh sách này bao gồm phiên bản node Cardano 10.x (thời kỳ Conway). Chi tiết cấu hình có thể thay đổi khi nâng cấp giao thức trong tương lai. Hãy luôn tham khảo các ghi chú phát hành chính thức cho phiên bản cụ thể của bạn.

Tags:

run cardano nodecardano node setupcardano node configurationcardano node requirementscardano node tutorial