Vận hành Validator#
Validator tạo và ký các khối, và đổi lại nhận một phần phần thưởng khối. Việc thiết lập khá đơn giản, nhưng đó là một cam kết vận hành: một validator ngừng hoạt động hoặc ký hai lần sẽ bị giao thức phạt.
Hướng dẫn này không phụ thuộc vào nhà cung cấp. Bất kỳ máy chủ Linux nào đáp ứng các yêu cầu bên dưới đều dùng được.
Vận hành validator bao gồm những gì#
- Thời gian hoạt động. Node của bạn phải luôn trực tuyến và đồng bộ. Bỏ lỡ quá nhiều khối sẽ dẫn đến bị giam (jail).
- Bảo quản khóa. Bạn chịu trách nhiệm về khóa validator. Mất nó là mất validator; lộ nó thì người khác có thể ký thay bạn.
- Nâng cấp. Bạn phải áp dụng các bản nâng cấp chuỗi đúng lịch.
- Không ký trùng. Cùng một khóa validator không bao giờ được chạy trên hai node cùng lúc.
Nếu bạn không thể cam kết những điều đó, ủy quyền cho một validator có sẵn là lựa chọn tốt hơn — xem Hướng dẫn staking.
Yêu cầu phần cứng#
| Thành phần | Testnet (tối thiểu) | Khuyến nghị cho mainnet |
|---|---|---|
| CPU | 4 vCPU (x86-64) | 8 lõi riêng, CPU đời mới |
| RAM | 8 GB | 32 GB |
| Lưu trữ | 100 GB NVMe SSD | 500 GB+ NVMe SSD |
| Mạng | 1 Gbps, không giới hạn | 1 Gbps, không giới hạn |
| Hệ điều hành | Ubuntu 22.04 LTS | Ubuntu 22.04 / 24.04 LTS |
Ưu tiên NVMe hơn SATA SSD — đồng thuận nhạy cảm với độ trễ đĩa, và I/O chậm là nguyên nhân phổ biến nhất gây bỏ lỡ khối. Tránh các gói CPU chia sẻ/burst cho mainnet.
Chọn nhà cung cấp#
Điều quan trọng, theo thứ tự:
- CPU riêng (không phải burst) và lưu trữ NVMe
- Băng thông không giới hạn hoặc dồi dào — validator giao tiếp liên tục
- Mạng và nguồn điện ổn định, với lịch sử hoạt động rõ ràng
- Một khu vực chưa quá đông validator khác
Các nhà cung cấp uy tín được dùng phổ biến trong hệ sinh thái Cosmos:
| Nhà cung cấp | Ghi chú |
|---|---|
| Hetzner | Hiệu năng/giá xuất sắc, khu vực EU + US |
| OVHcloud | Hiện diện toàn cầu rộng, VPS và máy chủ vật lý |
| Latitude.sh | Máy chủ vật lý, phổ biến với nhà vận hành chuyên nghiệp |
| Vultr | Nhiều khu vực, VPS và máy chủ vật lý |
| DigitalOcean | Công cụ đơn giản, tài liệu tốt |
| Akamai (Linode) | Lâu đời, giá cả dễ dự đoán |
Các hyperscaler (AWS, Google Cloud, Azure) vẫn dùng được nhưng chi phí cao hơn đáng kể cho cùng hiệu năng. Máy chủ vật lý được ưu tiên hơn VPS cho mainnet.
Về phi tập trung: mạng khỏe mạnh hơn khi các validator trải rộng trên nhiều nhà cung cấp, quốc gia và khu vực pháp lý khác nhau. Nếu một nhà cung cấp hoặc khu vực đã chiếm phần lớn tập hợp validator, hãy cân nhắc chọn nơi khác. Xem trình khám phá để biết tập hợp đang tập trung ở đâu.
1. Chuẩn bị máy chủ#
Kết nối tới máy chủ và tạo một người dùng không phải root để chạy node:
adduser ethwei
usermod -aG sudo ethweiThiết lập xác thực bằng khóa SSH cho người dùng đó, rồi tăng cường bảo mật SSH daemon bằng cách sửa
/etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication nosudo systemctl restart sshdBật tường lửa, chỉ cho phép SSH và cổng peer-to-peer:
sudo ufw allow 22/tcp
sudo ufw allow 26656/tcp
sudo ufw enableKhông để lộ các cổng RPC (
26657), API (1317) hoặc gRPC (9090) ra internet công khai trên validator. Hãy giữ chúng bind vào localhost.
Chuyển sang người dùng mới cho các bước còn lại:
su - ethwei2. Cài đặt phụ thuộc#
sudo apt update && sudo apt upgrade -y
sudo apt install -y git curl jq build-essentialCài Go (xem phiên bản hiện tại tại go.dev/dl):
wget https://go.dev/dl/go1.23.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.23.4.linux-amd64.tar.gz
echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> ~/.bashrc
source ~/.bashrc
go version3. Biên dịch binary#
git clone https://github.com/ethwei/ethwei-chain
cd ethwei-chain
make install
ethweid version4. Khởi tạo node#
Moniker là tên công khai hiển thị trên trình khám phá.
ethweid init <your-moniker> --chain-id ethwei-testnet-1Tải tệp genesis:
curl -s https://rpc-testnet.ethwei.com/genesis | \
jq '.result.genesis' > ~/.ethwei/config/genesis.json5. Cấu hình peer#
Sửa ~/.ethwei/config/config.toml:
[p2p]
seeds = "" # xem Thông tin mạng
persistent_peers = "" # xem Thông tin mạngĐịa chỉ seed và peer hiện tại được công bố trên trang Thông tin mạng.
6. Cấu hình node#
Sửa ~/.ethwei/config/app.toml:
minimum-gas-prices = "0.025WEI"
# Kiểm soát dung lượng đĩa trên validator
pruning = "custom"
pruning-keep-recent = "100"
pruning-interval = "10"Validator không cần phục vụ truy vấn, vì vậy hãy để dịch vụ API và gRPC tắt trừ khi bạn có lý do cụ thể để bật chúng.
7. Chạy như một service#
sudo tee /etc/systemd/system/ethweid.service > /dev/null <<EOF
[Unit]
Description=Ethwei Node
After=network-online.target
[Service]
User=ethwei
ExecStart=$(which ethweid) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl enable ethweid
sudo systemctl start ethweidTheo dõi log:
journalctl -u ethweid -f8. Chờ đồng bộ#
Kiểm tra tiến độ:
ethweid status | jq '.SyncInfo'Chờ đến khi catching_up là false.
Đừng tạo validator cho đến khi node đã đồng bộ hoàn toàn. Một validator vào tập hợp hoạt động trước khi đồng bộ sẽ ngay lập tức bắt đầu bỏ lỡ khối.
9. Tạo và nạp tiền cho khóa#
ethweid keys add validatorLưu cụm từ khôi phục (mnemonic) ngoại tuyến — đó là cách duy nhất để khôi phục khóa này. Sau đó nạp ETE testnet cho địa chỉ.
10. Tạo validator#
ethweid tx staking create-validator \
--amount=1000000WEI \
--pubkey=$(ethweid tendermint show-validator) \
--moniker="<your-moniker>" \
--chain-id=ethwei-testnet-1 \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--gas-adjustment=1.5 \
--fees="5000WEI" \
--from=validatorXác nhận validator của bạn xuất hiện trên trình khám phá:
ethweid query staking validator $(ethweid keys show validator --bech val -a)Vận hành#
Giám sát#
Tối thiểu, hãy cảnh báo về: tiến trình node ngừng, catching_up chuyển thành true, số khối bỏ lỡ
tăng, và dung lượng đĩa thấp. Node cung cấp số liệu Prometheus — bật chúng trong config.toml và chỉ
thu thập từ mạng riêng.
Nâng cấp#
cd ethwei-chain && git pull && make install
sudo systemctl restart ethweidCác bản nâng cấp có phối hợp diễn ra tại một chiều cao khối xác định. Theo dõi các kênh thông báo và nâng cấp trong khung bảo trì, không nâng cấp sớm hơn.
Sao lưu#
Sao lưu hai tệp này và giữ ngoại tuyến:
| Tệp | Mục đích |
|---|---|
~/.ethwei/config/priv_validator_key.json | Khóa ký của validator |
~/.ethwei/config/node_key.json | Danh tính p2p của node |
Bảo mật#
- Không bao giờ chạy hai node với cùng một
priv_validator_key.json. Ký hai lần bị giao thức phát hiện và phạt (slash) — đây là sai lầm gây thiệt hại lớn nhất mà một nhà vận hành có thể mắc. - Đóng các cổng của validator trừ p2p. Dùng kiến trúc sentry node cho mainnet để validator không trực tiếp tiếp cận được từ internet công khai.
- Hạn chế SSH chỉ dùng xác thực bằng khóa, lý tưởng là chỉ từ các địa chỉ đã biết.
- Cân nhắc bộ ký từ xa (như Horcrux hoặc TMKMS) cho mainnet, để khóa ký không bao giờ nằm trên máy chủ validator.
Slashing: validator bỏ lỡ quá nhiều khối sẽ bị giam, và validator ký hai lần sẽ bị phạt và loại vĩnh viễn khỏi tập hợp. Cả hai hình phạt đều ảnh hưởng đến người ủy quyền của bạn.