Triển khai hợp đồng thông minh sử dụng KEN
Trước khi bắt đầu, hãy làm quen với một số thuật ngữ riêng của Klaytn.
- Nút điểm cuối (EN): Nút xử lý các yêu cầu API JSON-RPC gửi đến mạng lưới Klaytn. Nút điểm cuối không tham gia vào thuật toán đồng thuận.
- KLAY: đồng tiền mặc định của Klaytn.
- caver-js: Triển khai JavaScript của API JSON-RPC của Klaytn.
- Baobab: mạng thử nghiệm của Klaytn
- Cypress: mạng chính thức của Klaytn
Hướng dẫn từng bước này sẽ hỗ trợ bạn trong quá trình khởi chạy Nút điểm cuối (EN) của mạng thử nghiệm Baobab và xây dựng hợp đồng thông minh cơ bản bằng tài khoản mới của bạn. Hướng dẫn này bao gồm hai phần, thiết lập một EN và triển khai một hợp đồng thông mình qua EN của bạn.
Hướng dẫn này sử dụng mạng thử nghiệm Baobab bởi vì việc triển khai hợp đồng thông minh và gửi giao dịch sẽ cần đến phí giao dịch tính bằng KLAY. Vì mục đích phát triển, bạn có thể nhận KLAY cho mạng thử nghiệm từ vòi Baobab.
Khởi chạy nút điểm cuối
Tải xuống và khởi chạy nút điểm cuối (EN)
Giải nén gói nhị phân ken và sao chép các tập tin vào thư mục klaytn.
Lưu ý: Hãy tải về gói phù hợp có tên bắt đầu bằng ken
.
Lưu ý: Hãy tải về gói phù hợp có tên bắt đầu bằng ken
.
Đối với người dùng Mac, hãy giải nén tập tin đã tải về bằng lệnh sau.
$ tar zxf ken-baobab-vX.X.X-X-darwin-amd64.tar.gz$ export PATH=$PATH:$PWD/ken-darwin-amd64/bin
Đối với người dùng Linux, hãy giải nén tập tin đã tải về bằng lệnh sau.
$ tar zxf ken-baobab-vX.X.X-X-linux-amd64.tar.gz$ export PATH=$PATH:$PWD/ken-linux-amd64/bin
Bạn nên tạo một thư mục dữ liệu để lưu trữ dữ liệu chuỗi khối. Trong phần hướng dẫn này, chúng ta sẽ tạo một thư mục kend_home
trong thư mục chính.
$ mkdir -p ~/kend_home
Cấu hình EN
Tập tin cấu hình, kend.conf
, trong ken-xxxxx-amd64/conf/
. Để biết thêm thông tin về các tham số có thể định cấu hình, bạn có thể xem phần Hướng dẫn cấu hình EN. Để khởi chạy một EN của mạng thử nghiệm Baobab, hãy cập nhật tập tin kend.conf
phù hợp như sau.
# cypress, baobab is only available if you don't specify NETWORK_ID.NETWORK="baobab"# if you specify NETWORK_ID, a private network is created.NETWORK_ID=...RPC_API="klay,net" # net module should be opened for truffle later on....DATA_DIR=~/kend_home
Khởi chạy EN
Để khởi chạy EN, hãy thực thi lệnh sau.
$ kend start Starting kend: OK
Kiểm tra EN
Để kiểm tra xem EN có đang chạy hay không, hãy thực thi lệnh sau.
$ kend statuskend is running
Kiểm tra bản ghi của EN
Để kiểm tra bản ghi của EN, hãy thực thi lệnh sau.
$ tail -f ~/kend_home/logs/kend.out...INFO[03/26,15:37:49 +09] [5] Imported new chain segment blocks=1 txs=0 mgas=0.000 elapsed=2.135ms mgasps=0.000 number=71340 hash=f15511…c571da cache=155.56kB...
Khắc phục sự cố
Xem phần mục Khắc phục sự cố nếu bạn gặp vấn đề trong việc khởi chạy Nút điểm cuối Klaytn.
Nạp tiền vào tài khoản
Kết nối với Bảng điều khiển
Nút điểm cuối Klaytn đi kèm bảng điều khiển JavaScript. Từ dòng lệnh của bảng điều khiển, bạn có thể khởi tạo một phần của các lệnh gọi ra API Klaytn đến EN của mình. Để đính kèm vào bảng điều khiển JavaScript, hãy thực thi lệnh sau.
$ ken attach ~/kend_home/klay.ipcWelcome to the Klaytn JavaScript console!instance: Klaytn/vX.X.X/XXXX-XXXX/goX.X.X datadir: ~/kend_home modules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 >
LƯU Ý: Bạn phải đợi đến khi đã tải về tất cả các khối. Enter klay.blockNumber
in a console and check whether it matches the current block number here
LƯU Ý: Gõ klay
hoặcpersonal
để nhận danh sách các hàm có sẵn.
Tạo tài khoản Klaytn mới
Để tạo một tài khoản Klaytn mới từ bảng điều khiển JavaScript, hãy thực thi lệnh sau. Mã khóa riêng tư của bạn sẽ được mã hóa bằng cụm mật khẩu mà bạn nhập.
> personal.newAccount()Passphrase: # enter your passphraseRepeat passphrase:"0x75a59b94889a05c03c66c3c84e9d2f8308ca4abd" # created account address
Tập tin lưu trữ khóa sẽ được tạo trong thư mục keystore
thuộc thư mục dữ liệu EN, DATA_DIR
đặt trong kend.conf
. Nếu bạn làm theo hướng dẫn mặc định bắt đầu nhanh, thư mục đó sẽ là ~/kend_home/keystore/
.
$ ls ~/kend_home/keystore/UTC--2019-06-24T11-20-15.590879000Z--75a59b94889a05c03c66c3c84e9d2f8308ca4abd
Mở khóa tài khoản Klaytn
Để mở khóa một tài khoản đã tạo, hãy thực thi lệnh sau. Lệnh này sẽ mở khóa tài khoản trong 300 giây.
Note: If you want to manually set the unlock duration, refer to this link.
CẢNH BÁO
: Việc mở khóa một tài khoản có thể rất nguy hiểm nếu không được thực hiện thận trọng. Có khả năng token của bạn sẽ bị hacker lấy mất nếu hacker xâm nhập được EN của bạn. Để sử dụng phương pháp an toàn hơn, hãy tham khảo mục hướng dẫn triển khai bằng mã khóa riêng tư
> personal.unlockAccount('75a59b94889a05c03c66c3c84e9d2f8308ca4abd') # account address to unlockUnlock account 75a59b94889a05c03c66c3c84e9d2f8308ca4abdPassphrase: # enter your passphrasetrue
Nhận KLAY cho mạng thử nghiệm từ Vòi Baobab
-
Sử dụng vòi Baobab trong Ví Klaytn.
-
Truy cập https://baobab.wallet.klaytn.foundation.
-
Bạn có thể tạo tài khoản mới từ Ví, hoặc dùng tập tin lưu trữ khóa mà bạn đã tạo từ bảng điều khiển JavaScript EN ở trên để đăng nhập vào Ví.
-
Đi đến “Vòi KLAY” từ trình đơn ngăn bên trái, nhấp vào nút “Run Faucet” để nhận 150 KLAY.
Bạn có thể mở vòi KLAY mỗi 24 giờ một lần.
-
Nếu bạn đã tạo một tài khoản mới để nhận KLAY, hãy gửi số KLAY đó đến tài khoản đã được tạo trên EN.
Kiểm tra số dư trong tài khoản
Để xem số dư của tài khoản, hãy thực thi lệnh sau.
Đơn vị mặc định là peb (1 KLAY = 10^18 peb). Bạn có thể tìm hiểu thêm thông tin về các đơn vị của KLAY trong phần Các đơn vị của KLAY.
> klay.getBalance('75a59b94889a05c03c66c3c84e9d2f8308ca4abd') # enter your account address1e+21 # 1000 KLAY
Thoát bảng điều khiển
Để thoát bảng điều khiển javascript, hãy thực thi lệnh sau.
> exit$