Thiết lập nút proxy
Tải về
Bạn có thể tải về phiên bản mới nhất của kpn
trên trang Tải xuống.
Cài đặt
Phân bổ lưu trữ Linux
Tập tin lưu trữ bao gồm tập tin nhị phân thực thi và cấu hình có cấu trúc như sau.
Lưu ý: KHÔNG thay đổi cấu trúc hoặc tên tập tin. Nếu bạn thay đổi điều đó, nút có thể sẽ không hoạt động đúng.
- bin |- kpn |- kpnd- conf |- kpnd.conf
Tên tập tin | Mô tả tập tin |
---|---|
bin/kpn | Tập tin thực thi PN |
bin/kpnd | Tập tin lệnh bắt đầu/kết thúc PN |
conf/kpnd.conf | Tập tin cấu hình PN |
Quá trình cài đặt chính là giải nén gói đã tải về tại nơi bạn muốn cài đặt gói.
$ tar zxf kpn-vX.X.X-linux-amd64.tar.gz
Hoặc,
$ tar zxf kpn-baobab-vX.X.X-linux-amd64.tar.gz
Lưu ý: nên thêm đường dẫn thư mục chưa giải nén kcn-linux-amd64/bin
vào biến môi trường $PATH
để chạy kcn
và kcnd
trên toàn hệ thống. Ví dụ,
$ export PATH=$PATH:~/downloaded/path/kpn-linux-amd64/bin
Các phần khác giả định rằng đường dẫn đã đư ợc thêm vào biến.
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 kpnd-vX.X.X.el7.x86_64.rpm
Hoặc,
$ yum install kpnd-baobab-vX.X.X.el7.x86_64.rpm
Cài đặt từ Klaytn Yum Repo
Ngoài ra, bạn có thể cài đặt kpnd
từ Klaytn Yum repo, chạy:
$ sudo curl -o /etc/yum.repos.d/klaytn.repo https://packages.klaytn.net/config/rhel/7/prod.repo && sudo yum install kpnd
Vị trí đã cài đặt
Tập tin đã cài đặt nằm ở vị trí như sau.
Tên tập tin | Vị trí |
---|---|
kpn | /usr/bin/kpn |
kpnd.conf | /etc/kpnd/conf/kpnd.conf |
Cấu hình
Cấu hình PN dùng để tạo thư mục dữ liệu và thiết lập các giá trị trong tập tin cấu hình kpnd.conf
.
- Tạo thư mục dữ liệu PN
- Cài đặt khóa nút
- Cài đặt
static-node.json
- Định cấu hình PN với
kpnd.conf
.
Tạo thư mục dữ liệu PN
Kích thước của dữ liệu blockchain Klaytn sẽ luôn tăng lên thế nên cần sử dụng một dung lượng lưu trữ đủ lớn. Bạn có thể cần phải tạo thư mục trên đường dẫn bạn muốn.
$ mkdir -p /var/kpnd/data
Cài đặt Khóa nút
Để vận hành PN cần có khóa nút
. Nhị phân PN Klaytn sẽ tạo ra một nút mới nếu bạn không có sẵn. Nếu bạn đã có, bạn cần chuyển khóa nút
vào thư mục dữ liệu PN. Cách để tạo khóa nút
được mô tả trong phần 'Trước khi bạn cài đặt'. Dòng lệnh sau sao chép khóa nút
vào thư mục dữ liệu PN.
$ cp nodekey /var/kpnd/data
Cài đặt static-nodes.json
static-nodes.json
nên được tạo bởi người vận hành PN. Nó chứa các địa chỉ kết nối với PN của bạn. Bạn nên thêm địa chỉ bao gồm CN và PN từ Core Cell khác. Vui lòng liên hệ qua email chính thức của Klaytn để biết thêm chi tiết (bootstrap@klaytn.com
cho Cypress hoặc baobab@klaytn.com
cho Baobab).
static-nodes.json
[ "kni://4f2f47f3bf35a2c576d3345e6e9c49b147d510c05832d2458709f63c3c90c76ead205975d944ed65e77dd4c6f63ebe1ef21d60da95952bc1e200e7487f4d9e1b@10.11.2.101:32323?discport=0&ntype=cn", "kni://8dee912aeda2ccfaa4fe421f015d4d75c2e3fd4aab75fa399b42767caad33531e57f3356b4a4af374593e33ec4320e1325aa2390a7be2489fa6b5724894680eb@10.11.2.102:32323?discport=0&ntype=pn"]
URI nút của PN có trong phần 'Trước khi bạn cài đặt'. (Lưu ý: Địa chỉ IP này khác với IP công khai của CN.) Dòng lệnh sau sao chép tập tin static-nodes.json
vào thư mục dữ liệu PN.
$ cp static-nodes.json /var/kpnd/data
Cập nhật Tập tin cấu hình
Vị trí tập tin cấu hình:
- Nếu phân bổ lưu trữ, vị trí thư mục cấu hình mặc định là
$INSTALL_PATH/kpn-linux-amd64/conf/
. - Nếu phân bổ gói, vị trí thư mục cấu hình mặc định là
/etc/kpnd/conf/
.
Thêm Thư mục dữ liệu
Bạn nên cập nhật biến môi trường thư mục dữ liệu $DATA_DIR
trên tập tin cấu hình kpnd.conf
.
...DATA_DIR=/var/kpnd/data...
Đồng bộ nhanh (Tùy chọn)
Mỗi PN duy trì một bản sao dữ liệu chuỗi của mạng lưới. Nếu một nút không được đồng bộ, nút này có thể lấy dữ liệu này từ các nút khác trong mạng lưới -- một quá trình được gọi là đồng bộ hóa. Khi một PN mới được bắt đầu lần đầu tiên, nó phải tải xuống toàn bộ dữ liệu chuỗi từ mạng lưới.
Để đẩy nhanh quá trình này, bạn cần thực hiện đồng bộ nhanh bằng cách tải về bản thu thập dữ liệu của dữ liệu chuỗi trước khi bắt đầu PN. Điều này giúp giảm đáng kể thời gian PN cần để đồng bộ khi bắt đầu lần đầu tiên.
Tải xuống bản thu thập dữ liệu chuỗi mới nhất từ Lưu trữ thu thập dữ liệu Cypress hoặcLưu trữ thu thập dữ liệu Baobab. Trước khi bắt đầu kpnd
, trích xuất bản thu thập dữ liệu trong DATA_DIR mà bạn định cấu hình trong kpnd.conf
.
Ví dụ:
$ tar -C /var/kpnd/data -xvf klaytn-cypress-chaindata-latest.tar.gz
Hoặc,
$ tar -C /var/kpnd/data -xvf klaytn-baobab-chaindata-latest.tar.gz
Sau khi dữ liệu được trích xuất, bạn có thể bắt đầu PN như bình thường.
Bạn có thể tham khảo thông tin chi tiết tại Thay đổi dữ liệu chuỗi
Khởi động PN
Bắt đầu/Dừng PN
Bạn có thể bắt đầu/dừng dịch vụ Klaytn bằng lệnh systemctl
sau đây.
Lưu ý: Việc này yêu cầu quyền root.
bắt đầu
$ systemctl start kpnd.service
dừng
$ systemctl stop kpnd.service
trạng thái
$ systemctl status kpnd.service
Khắc phục sự cố
Nếu bạn gặp lỗi sau,
Failed to start kpnd.service: Unit not found.
tải lại cấu hình trình quản lý hệ thống bằng lệnh sau.
$ systemctl daemon-reload
Kiểm tra Core Cell
Đã đến lúc kiểm tra xem Core Cell đã được cài đặt thành công chưa và nó có hoạt động như mong đợi sau khi cài đặt không.
Tình trạng xử lý
Có thể kiểm tra trạng thái quy trình của PN bằng các lệnh trạng thái systemctl
và kpnd
.
systemctl
systemctl
được cài đặt cùng với RPM, có thể kiểm tra trạng thái của PN như sau.
$ systemctl status kpnd.service● kpnd.service - (null) Loaded: loaded (/etc/rc.d/init.d/kpnd; 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/kpnd start (code=exited, status=0/SUCCESS) Main PID: 29641 (kpn) CGroup: /system.slice/kpnd.service └─29641 /usr/local/bin/kpn --networkid 1000 --datadir /kpnd_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 kpnd[29636]: Starting kpnd: [ 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ụ trên.
kpnd
kpnd
được cài đặt cùng với gói và trạng thái của PN có thể được kiểm tra như sau.
$ kpnd statuskpnd is running
Nhật ký
Nhật ký được lưu ở kpnd.out
tại đường dẫn xác định trong trường LOG_DIR
của tập tin kpnd.conf
(hoặc kpnd.conf
). Khi nút hoạt động bình thường, bạn có thể thấy rằng mỗi giây sẽ có một khối được tạo như sau.
Ví dụ:
$ tail kpnd.outINFO[02/13,07:02:24 Z] [35] Commit new mining work number=11572924 txs=0 elapsed=488.336µsINFO[02/13,07:02:25 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.800ms mgasps=0.000 number=11572924 hash=f46d09…ffb2dc cache=1.59mBINFO[02/13,07:02:25 Z] [35] Commit new mining work number=11572925 txs=0 elapsed=460.485µsINFO[02/13,07:02:25 Z] [35] 🔗 block reached canonical chain number=11572919 hash=01e889…524f02INFO[02/13,07:02:26 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=1fabd3…af66fe number=11572925INFO[02/13,07:02:26 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.777ms mgasps=0.000 number=11572925 hash=1fabd3…af66fe cache=1.59mBINFO[02/13,07:02:26 Z] [35] Commit new mining work number=11572926 txs=0 elapsed=458.665µsINFO[02/13,07:02:27 Z] [14] Committed address=0x1d4E05BB72677cB8fa576149c945b57d13F855e4 hash=60b9aa…94f648 number=11572926INFO[02/13,07:02:27 Z] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=1.783ms mgasps=0.000 number=11572926 hash=60b9aa…94f648 cache=1.59mBINFO[02/13,07:02:27 Z] [35] Commit new mining work number=11572927 txs=0 elapsed=483.436µs
bảng điều khiển kpn
Klaytn cung cấp một CLI khách: bảng điều khiển kpn
(hoặc bảng điều khiển kpn
). Tuy nhiên, PN có thể vô hiệu hóa giao diện RPC cho máy khách vì lý do bảo mật. 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
nằm ở thư mục data
trên PN.
Hãy thực hiện lệnh sau và kiểm tra kết quả.
$ kpn attach /var/kpnd/data/klay.ipc Welcome to the Klaytn JavaScript console! instance: Klaytn/vX.X.X/XXXX-XXXX/goX.X.X coinbase: 0x67f68fdd9740fd7a1ac366294f05a3fd8df0ed40 at block: 11573551 (Wed, 13 Feb 2019 07:12:52 UTC) datadir: /var/kpnd/data 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
API hữu dụng để kiểm tra trạng thái của PN:
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 liệu các khối được tạo (đối với CN) hay được truyền (đối với CN và PN) đúng cách không dựa trên loại nút của bạn.
> klay.blockNumber11573819
net.peerCount
> net.peerCount14
Dòng lệnh trên trả về một giá trị khác dựa trên loại nút.
- CN: số CN được kết nối + số PN được kết nối.
- PN: số CN được kết nối + số PN được kết nối + số EN được kết nối.