Testnet-02: Run Midnight node
Nút Midnight phụ thuộc vào một kết nối liên tục với PORT Postgres. Điều này cho phép nút Midnight theo dõi chuỗi Cardano.
🗹 PORT Postgres cần phải khả dụng đối với nút Midnight và Cardano-db-sync phải được đồng bộ hóa hoàn toàn (Bước 2).
🗹 Nút Midnight hiện được cung cấp dưới dạng hình ảnh Docker tại thời điểm này. Do đó, Docker hoặc Docker Compose là bắt buộc.
Sao chép tệp giữa các phiên bản bằng Magic Wormhole
sudo apt install magic-wormhole # install magic wormhole on each instance.
wormhole send ./data/chains/testnet # returns a recieve command to copy and paste on the other instance
# on the intended midnight-node copy the recieve command
wormhole recieve <secret words>
# verify the directory and contents were copied over
sudo apt install tree
tree testnet/
I. Khởi động nút Midnight ở chế độ xác thực bằng docker-compose
1. Sao chép kho lưu trữ midnight-node-docker
git clone git@github.com:midnight-ntwrk/midnight-node-docker.git # clone the repo
cd midnight-node-docker # enter the project
ls . # list contents
2. Cấu hình kết nối Postgres:
Node Midnight cần một kết nối liên tục với Postgres để theo dõi chuỗi Cardano. Nếu kết nối này không được thiết lập, Node sẽ dừng.
Mở tệp .env trong trình chỉnh sửa vi hoặc nano.
Cập nhật các biến môi trường POSTGRES với các giá trị riêng của bạn:
POSTGRES_HOST="x.x.x.x" # Replace x.x.x.x with IP or host to postgres connection
POSTGRES_PORT="xxxxxxx"
POSTGRES_USER="xxxxxx"
POSTGRES_PASSWORD="xxxxxxxxx"
POSTGRES_DB="xxxxxxxxx"
DB_SYNC_POSTGRES_CONNECTION_STRING="psql://$POSTGRES_USER:$POSTGRES_PASSWORD@$POSTGRES_HOST:$POSTGRES_PORT/$POSTGRES_DB"
3. Cấu hình volume Docker của nút:
Chỉnh sửa tệp compose.yml và cấu hình volume Docker của midnight-node với đường dẫn tuyệt đối đến thư mục testnet của bạn, nơi chứa các key của bạn.
Ví dụ:
testnet
├── chain
│ └── chains
│ └── testnet-02
│ ├── keystore
│ ├── network
│ └── paritydb
│ └── full
└── partner_chains_template
├── keystore
└── network
Chỉnh sửa tệp compose.yml với đường dẫn tuyệt đối đến thư mục testnet.
volumes:
- /PATH_TO/testnet:/node
Khởi động midnight-node bằng docker-compose:
Trong cùng thư mục với compose.yml, chỉ cần chạy lệnh docker compose up để khởi động nút.
docker-compose up
# docker-compose up -d to run in detatched mode
Nút sẽ bắt đầu đồng bộ với testnet.
midnight | 2025-03-25T13:42:45.395519119Z 2025-03-25 13:42:45 💤 Idle (16 peers), best: #855816 (0x4efe…781d), finalized #855814 (0x14c3…601f), ⬇ 45.4kiB/s ⬆ 55.4kiB/s
midnight | 2025-03-25T13:42:48.109545621Z 2025-03-25 13:42:48 🏆 Imported #855817 (0x4efe…781d → 0x7b20…c99b)
midnight | 2025-03-25T13:42:50.418999231Z 2025-03-25 13:42:50 💤 Idle (16 peers), best: #855817 (0x7b20…c99b), finalized #855815 (0xbec6…3f9f), ⬇ 46.0kiB/s ⬆ 50.0kiB/s
midnight | 2025-03-25T13:42:54.147713462Z 2025-03-25 13:42:54 🏆 Imported #855818 (0x7b20…c99b → 0x7709…52ff)
midnight | 2025-03-25T13:42:55.402710240Z 2025-03-25 13:42:55 💤 Idle (16 peers), best: #855818 (0x7709…52ff), finalized #855816 (0x4efe…781d), ⬇ 45.6kiB/s ⬆ 61.3kiB/s
midnight | 2025-03-25T13:43:00.127316673Z 2025-03-25 13:43:00 🏆 Imported #855819 (0x7709…52ff → 0x12ea…1296)
midnight | 2025-03-25T13:43:00.427745011Z 2025-03-25 13:43:00 💤 Idle (16 peers), best: #855819 (0x12ea…1296), finalized #855816 (0x4efe…781d), ⬇ 36.9kiB/s ⬆ 58.9kiB/s
Khi nút được đồng bộ hoàn toàn, bạn sẽ bắt đầu tham gia vào việc sản xuất khối. Ví dụ:
🙌 Starting consensus session on top of parent 0x0b17c52de9b5a87f2ae7df698d87ddce250a25e919af69bb9a1 (#811523 )
midnight | 2025-03-25T13:43:24.017683798Z 2025-03-25 13:43:24 🎁 Prepared block for proposing at 811523 (3 ms) [hash: 0xcbae6e532a04e2bca5c0ebfbfcde09de98b76b4ba126d96; parent_hash: 0x0b17…b9a1
midnight | 2025-03-25T13:43:24.017689158Z 2025-03-25 13:43:24 🔖 Pre-sealed block for proposal at 811523 . Hash now 0x20effd6c7c4a3ea6c46149989ca16cae73e9a043c1620ae, previously 0xcbae6e532a04e2bca5c0ebfbfcde09de98b76b4ba126d96.
“Prepared block for proposing”: Dòng này cho thấy nút của bạn đã chuẩn bị một khối để đề xuất tại một độ cao khối cụ thể (ví dụ: #12346). Đây là dấu hiệu rõ ràng rằng nút của bạn đang tham gia tích cực vào việc sản xuất khối.
“Pre-sealed block for proposal”: Điều này cho thấy khối đã sẵn sàng để được đề xuất lên mạng, bao gồm mã hash của nó.
“Imported”: Điều này có nghĩa là khối do nút của bạn tạo ra (hoặc một khối khác ở độ cao đó) đã được nhập vào chuỗi. Nếu hàm băm khớp với khối bạn đề xuất, đó là dấu hiệu rõ ràng rằng khối của nút bạn đã được chấp nhận.
Nếu số khối tốt nhất tiếp tục tăng và phù hợp với các khối bạn đề xuất, nút của bạn đang góp phần vào sự phát triển của chuỗi.