Thiết lập chuỗi dịch vụ 4 nút
Last updated
Last updated
Phần này trình bày cách thiết lập ServiceChain đa nút. Chúng ta sẽ thiết lập ServiceChain 4 nút đồng thuận với chainID
1002, như bạn có thể thấy trong hộp viền màu xanh trong hình bên dưới.
Gói tải về nhị phân kscn
và homi
từ Tải xuống.
4 máy chủ Linux hoặc MacOS
Yêu cầu phần cứng tối thiểu
CPU: 4 nhân (Intel Xeon hoặc tương đương), RAM: 16GB, HDD: 50GB
Vui lòng tham khảo Yêu cầu hệ thống để biết thêm chi tiết.
Quá trình cài đặt chính là giải nén gói đã tải xuống. Giải nén SCN trên mỗi máy chủ.
Để thuận tiện, chúng tôi sẽ thêm đường dẫn nhị phân vào $PATH. Sử dụng đường dẫn thực trên nút của bạn.
SCN cũng cung cấp nhiều trình phân bổ RPM như RHEL, CentOS và Fedora. Để biết thêm thông tin, vui lòng tham khảo Cài đặt.
Chúng ta sẽ sử dụng tiện ích homi để tạo ra các tập tin cần thiết. homi
là tiện ích tự động tạo tập lệnh, tập tin cấu hình và khóa riêng tư cần thiết để định cấu hình blockchain Klaytn. Bạn có thể thực thi homi từ bất kỳ máy bàn Linux/Mac nào.
Đầu tiên, giải nén tập tin homi mà bạn đã tải xuống.
Chuyển đến thư mục bin
và thực thi homi
với các tùy chọn sau để tạo tập tin. homi setup --gen-type local --cn-num 4 --test-num 1 --servicechain --chainID 1002 --p2p-port 22323 -o homi-output
Since Baobab's chainID
is 1001, for convenience, the chainID
of the ServiceChain constructed in this example is set to 1002. Khi vận hành một blockchain bằng cách khởi chạy một dịch vụ thực tế, bạn nên sử dụng dịch vụ đó sau khi đăng ký giá trị chainID mới tại https://chainlist.defillama.com/ để chainID không trùng lặp với các ServiceChain khác. Cổng ServiceChain được đặt là 22323 hay chính là cổng mặc định.
Trong số các đầu ra, chúng ta sẽ sử dụng khóa nút*
, genesis.json
và static-nodes.json
trong các bước tiếp theo.
Mở homi-output/scripts/static-nodes.json
trong trình soạn thảo văn bản, rồi cập nhật địa chỉ IP và cổng bằng giá trị thực của các nút của bạn. Trong ví dụ này, giả định rằng IP của mỗi nút SCN trong ServiceChain giống như trong hình bên dưới. Hãy nhớ cổng bạn đã gán ở đây vì nó sẽ được sử dụng sau trong bước 4.
Sau khi bạn cập nhật static-nodes.json
, hãy tải các thư mục đầu ra(homi-output
) lên tất cả các SCN, tức là nút SCN-L2-01, SCN-L2-02, SCN-L2-03, SCN-L2-04 trong ví dụ này.
Bây giờ, chúng ta sẽ khởi tạo nút EN bằng tập tin khởi nguyên. Trên mỗi nút, hãy thực hiện lệnh sau. Điều này sẽ tạo thư mục dữ liệu lưu trữ dữ liệu chuỗi và bản ghi trên thư mục chủ của bạn. Bạn có thể thay đổi thư mục dữ liệu bằng lệnh dẫn hướng --datadir
. Trong ví dụ này, chúng ta đặt thư mục dữ liệu thành \~/data
.
khóa nút
và static-nodes.json
Trên mỗi SCN, hãy sao chép static-nodes.json
vào thư mục dữ liệu.
Ở bước 1, chúng ta đã tạo 4 khóa nút. Gán từng khóa nút cho SCN và sao chép khóa nút
phù hợp vào từng thư mục dữ liệu của SCN. Ví dụ: sử dụng nodekey1
cho nút SCN-L2-01(192.168.0.1) và sử dụng nodekey2
, nodekey3
và nodekey4
tương ứng cho SCN-L2-02(192.168.0.2), SCN-L2-03(192.168.0.3) và SCN-L2-04(192.168.0.4).
Trên mỗi SCN, chuyển đến thư mục cài đặt kscn và chỉnh sửa conf/kscnd.conf
như sau. PORT
là cổng dùng để thiết lập homi
và SC_SUB_BRIDGE
cần thiết để kết nối cầu nối trong phần tiếp theo. Hiện tại, chỉ cần đặt nó thành 0. Trong DATA_DIR
, nhập thư mục dữ liệu được sử dụng trrong bước 3.
Thực hiện lệnh sau trên tất cả các nút SCN.
Bạn có thể kiểm tra trạng thái tạo khối bằng cách xem klay.blockNumber
. Nếu số này không phải là 0 thì nút đang hoạt động bình thường.
Nếu bạn muốn dừng một nút, bạn có thể sử dụng lệnh kscnd stop
Bây giờ, ServiceChain 4 nút đã hoạt động. Chúng ta sẽ thực hiện giao dịch chuyển giá trị trong ServiceChain để xác nhận cài đặt.
testkey1
được tạo tự động bởi homi
ở bước 1. KLAY được phân bổ cho tài khoản thử nghiệm như được mô tả trong genesis.json
và được tạo bởi homi
.
Chỉ có thể mở khóa tài khoản thông qua bảng điều khiển của nút SCN đã nhập testkey1
.
Hình thức đơn giản nhất của ServiceChain là có một SCN. ServiceChain được minh họa trong hướng dẫn này là ServiceChain 4 nút. Tuy nhiên, bạn có thể thiết lập ServiceChain một nút nếu muốn. Chỉ cần chuyển --cn-num 1
thay vì --cn-num 4
cho homi trong "Bước 1:Tạo genesis.json và khóa nút".
Cần ít nhất 4 nút để kháng lỗi byzantine. Do đó, số lượng SCN tối thiểu để đạt được tính sẵn sàng cao theo thuật toán BFT là 4. Có 2 nút SCN là không đủ, bởi vì nếu một SCN bị lỗi thì nút còn lại sẽ không thể đạt được sự đồng thuận.