Hyperledger part 2 - Hướng dẫn cài đặt mạng blockchain

Tiếp theo phần 1, phần này sẽ đi sâu vào thực hành, hướng dẫn các bạn cách cài đặt một mạng blockchain dùng Hyperledger Fabric
Dưới đây là mô hình 1 mạng blockchain Hyperledger fabric

Image result for hyperledger fabric network
Ở mô hình trên, Fabric CA là Fabric Certificate Authority cung cấp authentication cho các participant trong mạng Hyperledger.  Bất kỳ participant nào tham gia mạng blockchain phải được đăng kí với CA trước. Quá trình này gọi là enrollment. Peer là các computer node, lưu trữ bản copy của blockchain và thực hiện quá trình consensus. Ordering service kiêm tra permission của clien, validate các transaction đến từ client.
Chúng ta sẽ cài đặt mạng blockchain này trên môi trường Linux Ubuntu 16.04

Prerequisites

Trước khi cài đặt Hyperledger, cần cài đặt những tool sau
Git client Go - 1.7.5 For macOS, Xcode must be installed Docker - 17.03.0-ce or later Docker Compose - 1.8.1 or later Pip
Những tool trên thì cài đặt như guideline (Google Search ra đầy), chỉ chú ý về Go, không nên cài đặt go vào thư mục /usr/ mà nên cài vào thư mục  ~ để tránh việc permission sau này. Sau đó setup GOPATH trong file ~/.bashrc như dưới

Cloning the Hyperledger Fabric source

Tạo một thư mục  github.com/Hyperledger trong thư mục $GOPATH để clone source code Fabric về

cd $GOPATH/src
mkdir -p github.com/hyperledger
cd github.com/hyperledger 
Sau đó chạy git clone để  download Hyperledger Fabric từ github  về
Build mạng hyperledger
Hyperledger cung cấp 1 bản sample để bạn có thể build 1 mạng blockchain đơn giản
git clone https://github.com/hyperledger/fabric-samples.git
cd fabric-samples

Hyperledger đã đóng gói Fabric-CA, Ordering Service, Peer thành các docker, bạn cần download các docker image này về để sử dụng như sau
curl -sSL https://goo.gl/kFFqh5 | bash -s 1.1.0

Chú ý version giữa bản binary và bản fabric sample ở trên cần cùng 1 version, nếu khác version sẽ gây lỗi khi running sau này
Đây là lệnh mình hay dùng

git clone -b master https://github.com/hyperledger/fabric-samples.git
cd fabric-samples
git checkout v1.1.0-alpha
cd fabric-samples
curl -sSL https://goo.gl/6wtTN5 | bash -s 1.1.0-alpha

Lệnh trên sẽ download file shellscript và và thực hiện shell để download và extract bộ binaries của Hyperleger Fabcric về cũng như các docker images
Navigate vào thư mục fabcar trong bộ fabric-sample, execute shellscript ./startFabric để khởi động mạng blockchain và install smartcontract sẵn có vào blockchain
Phân tích shellscript này để biết nó làm gì
Đoạn script này chạy 1 shell script khác từ thư mục basic-network là start.sh
Command docker-compose sẽ run các fabric container đã down đươc ở bước trên bao gồm fabric CA (ca.example.com), ordering service (orderer.example.com) và peer (peer0.org1.example.com) và cuối cùng là couchdb, một built-in database của Fabric ledger .Các container này được định nghĩa trong docker-compose.yml
Sau đó là tạo 1 channel của fabric và join peer0.org1.example.com và channel này. Giải thích thêm channel trong Hyperledger fabric là một sub-network, các peer trong cùng 1 channel này sẽ maintain 1 distributed ledger tách biệt với các peer trong channel khác
Còn đoạn command dưới là thực hiện việc cài đặt và khởi tạo 1 smartcontract tên là fabcar vào mạng hyperledger
Cuối cùng, chạy lệnh docker ps  để thấy các fabric instance như ca, peer, ordering đang chạy
Trên đây là cách setup 1 mạng blockchain Hyperledger đơn giản, bài tiếp theo sẽ hướng dẫn bạn cách phát triển app tương tác với mạng blockchain này

Powered by Blogger.