Blockchain là gì?

Là một cơ chế cơ sở dữ liệu tiên tiến cho phép chia sẻ data minh bạch trong một mạng lưới kinh doanh. Data có sự nhất quán theo trình tự thời gian, không thể xóa hoặc sửa đổi mà không có sự đồng thuận từ mạng lưới Data không chỉ lưu 1 nơi, mà lưu phi tập trung, ở tất cả các node trong mạng lưới.

Đọc thêm ở đây: https://aws.amazon.com/vi/what-is/blockchain/?aws-products-all.sort-by=item.additionalFields.productNameLowercase&aws-products-all.sort-order=asc

Khái niệm Hyperledger Fabric

là một framework blockchain, chính xác là 1 private blockchain. Các public blocchain quen thuộc như Bitcoin, Ethereum, BSC, ... mọi người đều có thể tương tác, truy vấn dữ liệu, nhưng fabric thì có khả năng giới hạn, xác định cho phép được tương tác, truy vấn dữ liệu.

Kiến trúc fabric network đọc thêm ở trang chủ: https://hyperledger-fabric.readthedocs.io/en/latest/network/network.html

Cài đặt Test-network

Ví dụ cài đặt test-network của fabric sample, mặc định có 2 organization, 2 peer, 1 ca, 1 orderer

  1. Clone bản chính thức từ github v2.2.15: https://github.com/hyperledger/fabric-samples/tree/v2.2.15/
  2. Folder: test-network: xây dựng 1 mạng test network Fabric, các folder khác là smart contract và application sample để tương tác với network.
  3. Trỏ vào thư mục test-network: cd test-network/
  4. Khởi chạy network: ./network.sh up createChannel -ca -s couchdb
    1. ./network.sh: file shell script
    2. up: start network
    3. createChannel: option, tạo channel. channel là một môi trường riêng tư mà các user của mạng blockchain có thể giao tiếp và thực hiện các giao dịch với nhau trong cùng 1 nội bộ channel
    4. -ca: option, tạo Certificate Authorities. CA là một thành phần cấp, quản lý, thu hồi, xác thực chứng chỉ số cho các user tham gia mạng blockchain
    5. -s couchdb: option, tạo db lưu trữ data, default là goleveldb
    6. -c <channelName>: tạo channel name, default là mychannel
    7. -r <max retry>: số lần retry nếu lỗi, default là 5
    8. -d <delay>: số giây delay để tạo block, default là 3
  5. Xóa network: Trong lúc khởi chạy, nếu muốn reset data, xóa hoàn toàn network thì chạy lệnh: ./network.sh down
  6. Deploy chaincode (smart contract): ./network.sh deployCC -ccn demoSmartContract -ccv 1 -cci Initialize -ccl javascript -ccp /path/to/source/javascript
    1. ccn demoSmartContract: chaincode name
    2. ccv 1: chaincode version
    3. ccl javascript: chaincode language
    4. cci Initialize: chaincode init, function gọi khi deploy xong chaincode
    5. ccp /path/to/source/javascript: chainncode path, đường dẫn tới thư mục chứa source code, folder chứa file package.json
  7. Update chaincode: khi thay đổi code của chaincode, dùng lệnh sau để upgrade code mới: ./network.sh deployCC -ccn demoSmartContract -ccv 2 -ccs 2 -ccl javascript -ccp /path/to/source/javascript
    1. ccs: chaincode sequence: quản lý phiên bản và cập nhật của chaincde, phải là số tự nhiên liên tiếp: 1,2,3
  8. Các tham số xem chi tiết ở help: ./network.sh -h

Tóm lại dễ hiểu, fabric network như là 1 server, chaincode như là 1 source code ứng dụng của mình nằm trong server đó để tương tác với data của blockchain.