Cài đặt ServiceChain
Đối tượng mục tiêu
- Các công ty muốn xây dựng blockchain cho Metaverse, GameFi và NFT
- Nhà phát triển dApp cần TPS cao, phí giao dịch tối thiểu và quyền riêng tư dữ liệu.
- Bất kỳ ai muốn xây dựng mạng lưới riêng tư cục bộ hoặc cơ sở dữ liệu sổ cái để thử nghiệm.
Tổng quan về ServiceChain
ServiceChain là một blockchain cấp doanh nghiệp để đáp ứng các yêu cầu của công ty như chuyển giá trị, bảo mật, hiệu suất cao và tùy chỉnh. ServiceChain Klaytn cung cấp các tính năng sau:
- Tính hoàn thiện tức thời
- Chuyển token giữa các chuỗi Klaytin
- Neo dữ liệu vào chuỗi chính để đảm bảo tính toàn vẹn của dữ liệu
- Hợp đồng cầu nối đa chữ ký để đáp ứng các yêu cầu bảo mật cấp doanh nghiệp
Đọc Giải pháp mở rộng Klaytn để biết thêm chi tiết về ServiceChain. Các video sau đây sẽ giúp bạn hiểu rõ hơn về ServiceChain Klaytn.
- Mở rộng quy mô theo chiều ngang thông qua Chuỗi dịch vụ trên Klaytn | TXGX 2019
- Kiến trúc có tính khả dụng cao của Chuỗi dịch vụ Klaytn | TXGX 2019
Tải xuống
Bạn có thể nhận các gói cho SCN, SPN và SEN tại trang tải về.
Hướng dẫn cài đặt
Chương này giải thích về việc cài đặt Nút đồng thuận chuỗi dịch vụ(SCN).
Phân bổ lưu trữ Linux
Tập tin lưu trữ cho nút đồng thuận chuỗi dịch vụ có bố cục thư mục như sau.
Tên tập tin | Mô tả tập tin |
---|---|
bin/kscn | Tập tin thực thi SCN |
bin/kscnd | Tập tin lệnh bắt đầu/kết thúc SCN |
conf/kscnd.conf | Tập tin cấu hình SCN |
Tập tin lưu trữ cho nhị phân homi có bố cục thư mục như sau.
Tên tập tin | Mô tả tập tin |
---|---|
bin/homi | Tập tin thực thi HOMI |
Quá trình cài đặt chính là giải nén gói đã tải xuống.
$ tar zxf kscn-vX.X.X-XXXXX-amd64.tar.gz$ tar zxf homi-vX.X.X-XXXXX-amd64.tar.gz
Phân bổ RPM (RHEL/CentOS/Fedora)
Bạn có thể cài đặt RPM đã tải về với lệnh yum
sau đây.
$ yum install kscnd-vX.X.X.el7.x86_64.rpm$ yum install homi-vX.X.X.el7.x86_64.rpm
Vị trí đã cài đặt
Gói Linux Klaytn bao gồm nhị phân thực thi và tập tin cấu hình có cấu trúc như sau.
Tên tập tin | Vị trí |
---|---|
kscn | /usr/bin/kscn |
kscnd.conf | /etc/kscnd/conf/kscnd.conf |
homi | /usr/bin/homi |
Cấu hình
Trang này giải thích cấu hình của SCN để tạo mạng lưới đồng thuận.
Nếu đã cài đặt phân bổ lưu trữ, bạn có thể thấy nhị phân và tập tin cấu hình trong các thư mục mà bạn trích xuất từ kho lưu trữ. Dưới đây là một ví dụ về thực thi lệnh.
$ homi-darwin-amd64/bin/homi setup ...$ kscn-darwin-amd64/bin/kscnd start$ vi kscn-darwin-amd64/conf/kscnd.conf
Trong hướng dẫn này, không phải lúc nào chúng ta cũng chỉ định đường dẫn đầy đủ đến lệnh.
Tạo một tập tin Genesis (Khởi nguyên)
Trước tiên, bạn nên tạo tập tin khởi nguyên và tập tin khóa nút cho chuỗi dịch vụ của riêng mình. Bạn có thể tạo thêm bằng cách dùng homi như dưới đây.
$ homi setup --gen-type local --cn-num 1 --servicechain -o ./homi-outputCreated : homi-output/keys/passwd1Created : homi-output/scripts/genesis.jsonCreated : homi-output/keys/nodekey1Created : homi-output/keys/validator1Created : homi-output/scripts/static-nodes.jsonCreated : homi-output/Klaytn.jsonCreated : homi-output/Klaytn_txpool.json
Dưới đây là các ví dụ về tập tin khởi nguyên và khóa nút.
$ cat homi-output/scripts/genesis.json{ "config": { "chainId": 1000, "istanbul": { "epoch": 3600, "policy": 0, "sub": 22 }, "unitPrice": 0, "deriveShaImpl": 2, "governance": null }, "timestamp": "0x5dca0732", "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000f85ad594f8690562c0839c44b17af421f7aaaa9f12dcc62bb8410000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0", "governanceData": null, "blockScore": "0x1", "alloc": { "f8690562c0839c44b17af421f7aaaa9f12dcc62b": { "balance": "0x2540be400" } }, "number": "0x0", "gasUsed": "0x0", "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"}
$ cat homi-output/keys/nodekey1 0c28c77ce5c2ca9e495b860f190ed7dfe7bd5c1a2e5f816587eb4d3d9566df44
Hãy thay đổi chainID trong tập tin khởi nguyên. Dùng số của chính bạn để đề phòng tấn công phát lại. (Không sử dụng chainID giống nhau với Klaytn Cypress (8217) và Baobab (1001))
Nếu muốn, bạn có thể thay đổi địa chỉ được cấp từ trước bằng cách chỉnh sửa "alloc"
trong tập tin khởi nguyên.
(Bạn có thể xem thêm chi tiết trong JSON KHỞI NGUYÊN.)
Tạo thư mục dữ liệu SCN
Kích thước của dữ liệu blockchain Klaytn sẽ luôn tăng lên nên cần sử dụng một dung lượng lưu trữ đủ lớn.
Bạn có thể tạo thư mục dữ liệu trên đường dẫn bạn muốn.
Trong văn bản này, chúng ta tạo ~/kscnd_home
như một thư mục dữ liệu.
$ mkdir -p ~/kscnd_home
Khởi chạy khối khởi nguyên
Sau đó, bạn có thể khởi tạo thư mục dữ liệu với tập tin khởi nguyên.
Trước khi bắt đầu một nút chuỗi dịch vụ, cần sử dụng kscn
và genesis.json
để khởi chạy khối khởi nguyên của mạng lưới chuỗi dịch vụ.
$ kscn init --datadir ~/kscnd_home homi-output/scripts/genesis.json WARN[11/12,10:13:58 +09] [19] Some input value of genesis.json have been set to default or changed INFO[11/12,10:13:58 +09] [18] Setting connection type nodetype=cn conntype=0 ... INFO[11/12,10:13:59 +09] [5] Using DeriveShaConcat! INFO[11/12,10:13:59 +09] [5] Writing custom genesis block INFO[11/12,10:13:59 +09] [5] Using DeriveShaConcat! INFO[11/12,10:13:59 +09] [47] Persisted trie from memory database updated nodes=1 updated nodes size=80.00B time=304.931µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B INFO[11/12,10:13:59 +09] [19] Successfully wrote genesis state database=lightchaindata hash=0xc269669079fc8c06ac37435a563b8ed8ef273c1c835f3d823d2e586315319aa8 INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/header INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/body INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/receipts INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/statetrie/0 INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/statetrie/1 INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/statetrie/2 INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/statetrie/3 INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/txlookup INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/misc INFO[11/12,10:13:59 +09] [46] Database closed path=/Users/ethan/kscnd_home/klay/lightchaindata/bridgeservice
Cài đặt khóa nút
Sao chép homi-output/keys/khóa nút1
vào thư mục klay
trong thư mục dữ liệu SCN như bên dưới.
$ cp homi-output/keys/nodekey1 ~/kscnd_home/klay/nodekey
Cấu hình của SCN
kscnd.conf
là tập tin cấu hình cho SCN.
Giả định rằng SCN sử dụng cổng mặc định và liên kết một vùng có quy mô lớn vào ~/kscnd_home
.
Trong tập tin kscnd.conf
mặc định, tùy chọn SC_SUB_BRIDGE
bị vô hiệu hóa và DATA_DIR
đang trống.
# Configuration file for the kscnd...SC_SUB_BRIDGE=0...DATA_DIR=...
Bạn có thể bật SC_SUB_BRIDGE
để sử dụng tính năng Neo/ Chuyển giá trị.
Bạn cũng nên đặt DATA_DIR như dưới đây.
# Configuration file for the kscnd...SC_SUB_BRIDGE=1...DATA_DIR=~/kscnd_home...
Nếu muốn, bạn có thể sửa đổi thêm các tùy chọn khác để tùy chỉnh ServiceChain của mình. Nếu không, bạn có thể hoàn tất cấu hình ngay bây giờ và dùng cấu hình mặc định để chạy chuỗi dịch vụ.
Bắt đầu/dừng SCN
Tùy thuộc vào loại cài đặt của bạn, bạn có thể bắt đầu/dừng dịch vụ Klaytn bằng lệnh systemctl
hoặc kscnd
như sau.
bắt đầu
## when installed from rpm distribution $ systemctl start kscnd.service## when installed using linux archive$ kscnd start
dừng
## when installed from rpm distribution $ systemctl stop kscnd.service## when installed using linux archive$ kscnd stop
trạng thái
## when installed from rpm distribution $ systemctl status kscnd.service## when installed using linux archive$ kscnd status
Kiểm tra trạng thái nút
Tình trạng xử lý
Có thể kiểm tra trạng thái quy trình của SCN bằng các lệnh trạng thái systemctl
và kscnd
.
systemctl
systemctl
được cài đặt cùng với RPM, có thể kiểm tra trạng thái của SCN như sau.
$ systemctl status kscnd.service● kscnd.service - (null) Loaded: loaded (/etc/rc.d/init.d/kscnd; bad; vendor preset: disabled) Active: active (running) since Wed 2019-01-09 11:42:39 UTC; 1 months 4 days ago Docs: man:systemd-sysv-generator(8) Process: 29636 ExecStart=/etc/rc.d/init.d/kscnd start (code=exited, status=0/SUCCESS) Main PID: 29641 (kscn) CGroup: /system.slice/kscnd.service └─29641 /usr/local/bin/kscn --networkid 1000 --datadir ~/kscnd_home --port 32323 --srvtype fasthttp --metrics --prometheus --verbosity 3 --txpool.global...Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal systemd[1]: Starting (null)...Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal kscnd[29636]: Starting kscnd: [ OK ]Jan 09 11:42:39 ip-10-11-2-101.ap-northeast-2.compute.internal systemd[1]: Started (null).
Bạn có thể kiểm tra trạng thái hiện tại như Active: active (running)
trong ví dụ bên dưới.
kscnd
kscnd
được cài đặt cùng với gói; trạng thái của SCN có thể được kiểm tra như sau.
$ kscnd statuskscnd is running
Nhật ký
Nhật ký được lưu trữ trong tập tin kscnd.out
được đặt tại đường dẫn xác định trong trường LOG_DIR
của tập tin kscnd.conf
. Khi nút hoạt động bình thường, bạn có thể thấy rằng mỗi khối được nhập theo từng giây như sau.
Ví dụ:
$ tail -F ~/kscnd_home/logs/kscnd.out INFO[11/12,10:19:09 +09] [49] Successfully wrote mined block num=11 hash=03da06…f194b0 txs=0 INFO[11/12,10:19:09 +09] [49] Commit new mining work number=12 txs=0 elapsed=236.972µs INFO[11/12,10:19:10 +09] [24] Committed number=12 hash=470aca…be4fdf address=0xf8690562c0839C44B17AF421F7AaaA9F12dCc62b INFO[11/12,10:19:10 +09] [49] Successfully sealed new block number=12 hash=470aca…be4fdf INFO[11/12,10:19:10 +09] [49] Successfully wrote mined block num=12 hash=470aca…be4fdf txs=0 INFO[11/12,10:19:10 +09] [49] Commit new mining work number=13 txs=0 elapsed=198.221µs INFO[11/12,10:19:11 +09] [24] Committed number=13 hash=95e4a3…14e50f address=0xf8690562c0839C44B17AF421F7AaaA9F12dCc62b INFO[11/12,10:19:11 +09] [49] Successfully sealed new block number=13 hash=95e4a3…14e50f INFO[11/12,10:19:11 +09] [49] Successfully wrote mined block num=13 hash=95e4a3…14e50f txs=0 INFO[11/12,10:19:11 +09] [49] Commit new mining work number=14 txs=0 elapsed=220.004µs INFO[11/12,10:19:12 +09] [24] Committed number=14 hash=dcd2bc…b2aec0 address=0xf8690562c0839C44B17AF421F7AaaA9F12dCc62b
Truy vấn
kscn console
Klaytn cung cấp một máy khách CLI: kscn console
. Một cách khác để sử dụng máy khách là kết nối với quy trình thông qua IPC (giao tiếp giữa các quy trình). Tập tin IPC klay.ipc
được đặt tại thư mục data
trên một SCN.
Hãy thực hiện lệnh sau và kiểm tra kết quả.
$ kscn attach ~/kscnd_home/klay.ipcWelcome to the Klaytn JavaScript console!instance: Klaytn/vX.X.X/XXXX-XXXX/goX.X.Xat block: 11573551 (Wed, 13 Feb 2019 07:12:52 UTC) datadir: ~/kscnd_home modules: admin:1.0 debug:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 >
You can check the usable commands on API Document
Các API hữu ích để kiểm tra trạng thái của SCN:
klay.blockNumber
(để lấy số khối mới nhất)net.peerCount
(để lấy số nút Klaytn được kết nối hiện tại)
klay.blockNumber
Bạn có thể lấy số khối mới nhất để xem các khối có được truyền đúng cách không.
> klay.blockNumber11573819
net.peerCount
> net.peerCount4
Dòng lệnh trên trả lại số nút mà SCN kết nối, ngoại trừ EN trong chuỗi chính.