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

Ticker

20/recent/ticker-posts

Deploy hyperledger on k8s - part 1

 Một ứng dụng trên Hyperledger Fabric sẽ trông như thế nào ?


Overview

Công ty ABC là một startup về tài chính ở Ấn Độ, công ty phát triển một hệ thống trading platform để mua bán các khoản nợ. Để đảm bảo các giao dịch mua bán được bảo mật, không bị thay đổi, CEO công ty muốn lưu trữ thông tin giao dịch vào blockchain

Có nhiều giải pháp blockchain được team thảo luận trong đó có Ethereum, Fabric Hyperledger. Sau khi đánh giá về requirement, platform chỉ cần lưu thông tin giao dịch như người mua, người bán, ngày giờ, NDA information, không có mua bán token như mạng blockchain BSC hay Ethereum, team quyết định dùng platform Hyperledger fabric do những ưu thế về khả năng lưu trữ thông tin mà platform này đem lại

Overview về architect của Fabric



Demystifying Hyperledger Fabric (1/3): Fabric Architecture | by Phuwanai  Thummavet | Coinmonks | Medium



Một mạng Fabric bao gồm

Các peer node làm nhiệm vụ verify các transaction (các thao tác ghi đọc dữ liệu vào blockchain phải được xác nhận mới peer node)

CA node (Cert Authority) làm nhiệm vụ cấp quyền cho các user tham gia mạng fabric, quy định ai có quyền access vào blockchain, operation nào được phép (đọc ghi, thêm org peer …) hiểu nhanh thì CA node giống như đội HR của công ty, nhân viên mới vào công ty phải đăng ký với HR trình diện CMND, offer letter. Sau đó HR sẽ cấp ID nhân viên, nhân dạng (user/pass) …

Client node thao tác với blockchain (đọc/ghi)

Order node là điểm khác biệt cho với các public blockchain khác như Ethereum hay Bitcoin, khi bất kì node nào cũng có thể tham gia consensus process ( quá trình transaction được sắp xếp và đóng gói vào block). Các order node sẽ restrict những ai được đọc/ghi data , validate transaction và đóng gói thành block


Giải pháp

Trước đây, team dự án từng deploy Fabric blockchain trên AWS VM như hình dưới, tuy nhiên cách deploy này có nhiều nhược điểm


Hyperledger Fabric Deployment with Kafka - Stack Overflow

Chuỗi fabric blockchain ngày càng tăng theo lượng dữ liệu dẫn tới workload ngày càng lớn trong khi fabric lại deploy trên các VM cố định không thể autoscale. 


Giải pháp deploy Fabric blockchain lên K8s được sử dụng để tận dụng tính năng autoscale và container management của k8s


Mạng blockchain được deploy trên Azure AKS , với 2 order node, 2  organization, mỗi org có 3 peer node để validate transaction, 1 CA node để cert authorize 


Mỗi node đều được mount với 1 PVC volume để lưu dữ liệu blockchain, các volume được snapshot periodically để backup


Blockchain crypto config materials lưu trong k8s secrets


Process để launch 1 Hyperledger blockchain network như sau 



Blockchain materials được generate từ tool crypto gen đi kèm với bộ hyperledger, các config được lưu trong file configtx.yaml

Team sẽ define các thông tin về blockchain như Organization, Endorsement policy trong file này 



Execute để generate network artifact


 

Một số artifact cần chú ý

  • genesis.block: block đầu tiên của blockchain . Ngày xưa cụ Shatoshi đào bitcoin là người tạo ra khối đầu tiên của mạng BTC
  • channel.tx : Channel configuration transaction
  • Certificate: Các certificate của peer. ca, order node. Mỗi org đều có các cert riêng

Các certificate của peer, ca, order là các file secret, key.pem , được lưu vào k8s secret và mount vào k8s pod dưới dạng volume


Các peer, ca, order node trong hyperledger được deploy thành các k8s pod. Mạng blockchain này được thiết kế sử dụng 2 org, mỗi org có 1 ca, 1 peer và 1 cli pod. 

3 order node để thực hiện sắp xếp transaction



Toàn bộ infra được build bằng infra as code, được launch tự động bằng shell script để có thể tích hợp vào CICD pipeline

Việc sử dụng multiple orderer node để tránh Single point of failure issue, 


Trong quá trình deploy network, team cũng gặp nhiều issue như 

  • Lỗi connection refused khi connect với các node
  • Endorsement process failed khi thực hiện install chain code
  • Lỗi certificate [This identity is not an admin]]

Đón đọc phần sau


Đăng nhận xét

0 Nhận xét