Đồng bộ các miner

Chúng ta đã biết, công nghệ blockchain đảm bảo an toàn dữ liệu nhờ dữ liệu được lưu trữ ở nhiều node trên hệ thống. Do đó, một hệ thống blockchain cần ít nhất 2 node hoặc miner trở lên, trong hướng dẫn trước, chúng ta chỉ mới tạo một miner, nên trong hướng dẫn này, chúng ta sẽ tạo một miner nữa và cho 2 miner đồng bộ dữ liệu với nhau để tạo thành một hệ thống blockchain hoàn chỉnh.

Thêm một miner mới

Bắt đầu từ thư mục ethereum đã tạo ở hướng dẫn trước, chúng ta sẽ tạo thêm một thư mục nữa để chứa thông tin của miner2. Sau đó, tiến hành khởi tạo lại miner2 với các bước đã thực hiện để tạo miner1.

Tạo miner thứ hai cho hệ thống.

Cấu hình mới cho miner2

Trường hợp cài cả hai miner trên cùng một máy, chúng ta sẽ phải cấu hình port và rpcport cho từng miner để không bị trùng port và nhận diện được các miner còn lại.

Mở file startMiner.sh trong thư mục miner1 và thêm option sau:

--port "30303"

Như vậy file startMiner.sh của miner1 sẽ thành như vầy:

geth --identity "miner1" --networkid 88 --datadir "/home/trinh/Desktop/ethereum/miner1" --rpc --rpcapi "db,eth,net,web3,personal" --rpcport "8545" --unlock 0 --password /home/trinh/Desktop/ethereum/miner1/password.sec --ipcpath "~/.ethereum/geth.ipc" --port "30303"

Tương tự cho file startMiner.sh của miner2, chúng ta sẽ đổi thành port 30304 và thêm rpcport 8546. 

Ngoài ra, trong file startMiner.sh của miner2, chúng ta sẽ bỏ đi option –ipcpath, option này giúp chúng ta quy định file geth.ipc sẽ xuất ra ở đâu khi khởi động miner, và chúng ta sẽ phải khai báo đường dẫn đến file geth.ipc này để mở console điều khiển. Trong hệ điều hành linux, ~/.ethereum/ là đường dẫn mặc định, do đó khi khai báo ipcpath cho miner1 như trên, chúng ta chỉ cần nhập lệnh:

geth attach

Thay vì nhập lệnh:

geth attach ipc:/home/trinh/Desktop/ethereum/miner1/geth.ipc

Và do miner1 đã dùng đường dẫn đó rồi nên miner2 sẽ không được trùng đường dẫn với miner1 nữa.

Như vậy, file startMiner.sh của miner2 sẽ như sau:

geth --identity "miner2" --networkid 88 --datadir "/home/trinh/Desktop/ethereum/miner2" --rpc --rpcapi "db,eth,net,web3,personal" --rpcport "8546" --unlock 0 --password /home/trinh/Desktop/ethereum/miner2/password.sec --port "30304"

Sau khi đã cấu hình xong 2 miner, chúng ta sẽ cho miner ngừng hoạt động và khởi động lại. Để vào console điều khiển của miner2, ta nhập lệnh:

geth attach ipc:/home/trinh/Desktop/ethereum/miner2/geth.ipc

Lấy địa chỉ và kết nối đến node hoặc miner khác

Trong console điều khiển miner2, chúng ta lấy địa chỉ node của miner2 bằng lệnh:

admin.nodeInfo.enode
Địa chỉ của một node.

Trong console điều khiển của miner1, nhập lệnh sau để thêm kết nối đến địa chỉ node của miner2:

Kết nối miner2.

Tương tự, chúng ta cũng thêm địa chỉ node của miner1 cho miner2:

Kết nối đến miner1.

Sau khi thêm kết nối trên cả 2 miner, chúng ta nhập lệnh sau để kiểm tra:

admin.peers
Thông tin khi kết nối thành công.

Nếu có thông tin kết nối như hình trên thì chúng ta đã kết nối 2 miner thành công. Ngược lại, nếu không có bất cứ thông tin nào như hình bên dưới, chúng ta cần kiểm tra lại địa chỉ node, địa chỉ ip, và port.

Thông tin khi kết nối không thành công.

Khi 2 miner đã kết nối với nhau, các miner sẽ luôn đồng bộ dữ liệu trên hệ thống, để kiểm tra miner đã đồng bộ dữ liệu hay chưa, ta nhập:

eth.syncing

Nếu đang đồng bộ dữ liệu từ các miner khác, console sẽ hiển thị thông báo như sau:

Thông tin khi miner hoặc node đang đồng bộ dữ liệu.

Khi đã đồng bộ xong thì chúng ta sẽ không còn thấy các thông số đồng bộ nữa:

Kết quả trả về khi miner hoăc node đã đồng bộ xong.

Như vậy là chúng ta đã xây dựng một hệ thống private blockchain Ethereum.

Related posts

Xây dựng private blockchain

Cài đặt Geth

Giới thiệu về blockchain

1 Bình luận

https://ericsundwall.com/tarot-card-reading-and-meanings/ Tháng mười hai 2, 2019 - 4:49 chiều
tarot cards reading https://ericsundwall.com/tarot-card-reading-and-meanings/ Ericsundwall.com tarot card reading
Add Comment