🏨 Cài đặt và triển khai Hyperledger Fabric trên Swarm
Khi triển khai một mạng Hyperledger thường cần tương tác giữa nhiều máy với nhau. Các component của mạng hoạt động trong các container của docker. Chính vì vậy mà thường sẽ không tương tác được với nhau. Nên bắt buộc phải triển khai bằng Docker Swarm hoặc Kubernetes
Cài đặt môi trường theo hướng dẫn:
- Installing pre-requisites
- Installing the development environment
- Yarn
- Updating components
- Uninstalling components
- Clone this git:
git clone https://github.com/phuctu1901/create-fabric-on-swarm
- Mở các cổng cho Swarm:
sudo apt-get install firewalld
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
firewall-cmd --permanent --zone=public --add-port=2377/tcp --add-port=7946/tcp --add-port=7946/udp --add-port=4789/udp
firewall-cmd --reload
- Khởi tạo một swarm:
docker swarm init
- Thêm các máy khác vào swarm: Nếu chỉ triển khai trên một máy thì không cần lệnh này
Các máy khi tham gia vào một swarm thì có thể có vai trò là manager hoặc worker.
Lấy token để join máy vào:
a. Nếu là join vào với vài trò manager
docker swarm join-token manager
b. Nếu là join vào với vài trò worker
docker swarm join-token worker
- Join máy vào swarm:
docker swarm join --token <đoạn token sinh ra từ lệnh ở trên>
- Tạo một overlay network:
docker network create --attachable --driver overlay --subnet=10.200.1.0/24 hyperledger-ov
- Khởi tạo các file config: Mục đích của bước này là tạo ra các file .yaml để khởi chạy các docker.
yarn genConfig -domain example.com -Kafka 3 -Orderer 2 -Zookeeper 3 -Orgs 2 -Peer 1 -Tag :latest
Các thông số trên có thể thay đổi. Ví dụ khởi tạo một mạng gồm 2 orgs, mỗi org gồm 2 peer. Khởi tạo như vậy là để tương tự với mạng Hyperledger Fabric First Network trong các demo để thuận tiện cho các bài hướng dẫn khác.
yarn genConfig -domain example.com -Orderer 1 -Orgs 2 -Peer 2 -Tag :latest
- Khởi tạo channel artifacts:
yarn genArtifacts -c <CHANNEL-NAME> -d <DOMAIN-NAME> -o <NUM-ORGS>
Cụ thể cho ví dụ trên:
mkdir -p channel-artifacts
yarn genArtifacts -c mychannel -d example.com -o 2
Lưu ý: Ở bước này, cần cài đặt đầy đủ các tools, mà ở đây là thư mục bin. 8. Khởi chạy:
- On Master host,
- If you choose to configure with multiple orderers,
./run.sh
- If you choose to configure in 'solo' mode (without kafka, zookeeper). Chúng ta sẽ thực hiện lệnh này cho ví dụ trên.
./run-solo.sh
- I recommend you to check services' status after every deploy.
docker service ls
- Khởi chạy lệnh khởi động portainer
Đây là lệnh dùng để khởi động portainer, sẽ được truy cập thông qua localhost:9000. Ứng dụng này sẽ hỗ trợ quản lý docker tối ưu và dễ sử dụng hơn các câu lệnh.
yarn portainer
- Khởi chạy lệnh ở container cli của hyperledger fabric:
docker exec -it $(docker ps --format "table {{.ID}}" -f "label=com.docker.stack.namespace=hyperledger-cli" | tail -1) bash
- Khởi chạy script để join vào mạng: Đây là script của byfn (build first fabric network) được tùy biến để phù hợp với mạng ví dụ này:
./script/script.sh
Lệnh 10 chỉ chạy khi đã chạy xong lệnh số 9.
- Quản lý mạng này với Hypereledger Composer: Truy cập tài liệu này đây
Bạn có câu hỏi hoặc vấn đề với dự án? Đặt câu hỏi tại đây trên Github.
- Nguyễn Phúc Tú - phuctu1901