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 Ở 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 PrerequisitesTrướ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 sourceTạ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.