Giaosucan's blog - Chia sẻ kiến thức theo cách bá đạo

Ticker

20/recent/ticker-posts

Hyperledger part 6 - Deploy the smartcontract

Ở bài này, chúng ta sẽ thực hành deploy một smart contract lên Hyperledger blockchain
Trước tiên, down bộ fabric-samples ở đây về, open bằng VSCode, bạn sẽ thấy cấu trúc thư mục như ở dưới

Chú ý thư mục chaincode, là nơi lưu source code của smartcontract được viết bằng ngôn ngữ golang
Bạn có thể tạo thêm thư mục và viết một smartcontract bất kỳ dùng ngôn ngữ golang.
Trong thư mục basic network, có file script start.sh. File này sẽ launch các container cần thiết cho mạng Hyperledger thông qua file docker-compose.yml bao gồm CA, peer, order service, couchdb
Sau khi launch container xong, script sẽ tạo 1 channel trong mạng blockchain và join peer peer0.org1.example.com vào channel này
File generate.sh, chứa các command để tạo crypto, certificate, and genesis block… cần thiết


Run script generate sh để tạo genesis block
Hyperledger part 6 - Deploy the smartcontractRun start.sh để launch mạng blockchain
Hyperledger part 6 - Deploy the smartcontract
Chạy docker-ps sẽ thấy các container đã được launch lên bao gồm ca, peer, order service…
Hyperledger part 6 - Deploy the smartcontract
Có điểm chú ý ở đây là tại file docker-composer, phải chỉnh certificate file trùng với tên file đã được gen ra từ bước generate.sh
Nếu không container CA sẽ ko thể launch lên được
Giờ là lúc deploy smartcontract lên blockchain
Fabric cung cấp 1 image là fabric-tool cho phép bạn thực hiện các command install, upgrade, call smartcontract
Run container fabric
Hyperledger part 6 - Deploy the smartcontract
Access vào container sẽ thấy bộ code smartcontract , thư mục này được mount với thư mục chaincode trên máy local
Hyperledger part 6 - Deploy the smartcontract
Install chaincode bằng lệnh peer chaincode install
Chaincode (smartcontract) đã được install vào mạng blockchain
Sau khi install thì cần khởi tạo nó, bằng lệnh

Hyperledger part 6 - Deploy the smartcontract
Bây giờ có thể gọi các method trong smartcontact để thực thi một việc gì đó
Ví dụ lệnh trên gọi hàm initLedger trong smartcontract
Chi tiết về các lệnh với peer có thể tham khảo hướng dẫn trên trang chủ của Fabric
Còn thực tế làm dự án, các bạn nên script hóa tất các các xử lý trên cho gọn.

Đăng nhận xét

1 Nhận xét

  1. giáo sư ơi, chỉ con phân quyền đăng nhập với ạ, hay có tài liệu nào cho co xin đi giaosucan ạ, con cảm ơn ạ

    Trả lờiXóa