/hyperledger

Hyperledger fabric environment using docker in docker

Primary LanguageShellGNU General Public License v3.0GPL-3.0

Hyperledger

Docker Automated build Docker Build Status Docker Pulls MicroBadger Size MicroBadger Layers license

简介

Hyperledger Fabric是一个区块链框架的实现,是Linux基金会托管的Hyperledger项目之一,最初由Digital Asset和IBM贡献。Hyperledger Fabric允许组件即插即用(例如共识和成员服务),这作为开发具有模块化架构的应用程序或解决方案的基础。Hyperledger Fabric利用容器技术来托管被称为“链代码”的智能合约,其中包含系统的应用程序逻辑。

由于Hyperledger Fabric环境配置的复杂性以及众所周知的网络原因,初次接触很难在短时间内配置完成。本项目通过docker in docker技术简化的环境配置,只需要一步即可完成环境搭建,只需要一条命令就可以构建第一个fabric网络。本项目提供的组件如下:

版本说明

如何使用

  1. 准备工作

    docker pull mulinbc/hyperledger # 下载docker镜像文件
    mkdir -p ~/.mulin/hyperledger/var-lib-docker # 创建存放fabric镜像的文件夹
  2. 运行docker镜像

    docker run --privileged -p 22222:22 -p 80:8080 -p 8080:80 --name hyperledger -v ~/.mulin/hyperledger/var-lib-docker:/var/lib/docker -d mulinbc/hyperledger
    # 参数含义
    # --privileged: 以特权模式运行容器
    # -p: 端口映射,22222:22,将本机的22222端口映射到容器的22端口
    # -v: 添加数据卷,/test:/soft,将本机的/test目录挂载到容器的/soft目录
    # -d: 容器在后台运行
    # -e: 指定环境变量,-e ROOT_PASSWORD=password,指定root 用户的密码为password
    # 例如: docker run --privileged -e ROOT_PASSWORD=password -p 22222:22 -p 80:8080 -p 8080:80 --name hyperledger -v ~/.mulin/hyperledger/var-lib-docker:/var/lib/docker -d mulinbc/hyperledger
  3. 进入容器

    • 方法一
    docker exec -it hyperledger sh
    • 方法二
    ssh -p 22222 root@127.0.0.1 # 默认密码: root
  4. 初始化hyperledger环境

    bootstrap.sh init # 下载必要的fabric镜像
  5. 测试hyperledger环境

    bootstrap.sh upnet # 启动第一个hyperledger网络
    bootstrap.sh upexp # 启动hyperledger区块链浏览器
  6. 关闭hyperledger网络

    bootstrap.sh down # 测试完后需要清除hyperledger网络

注意事项

  1. 如遇到fabric网络不能启动,可以先运行bootstrap.sh down后重试
  2. 如遇到explorer不能访问的情况检查
    • 由于导入数据库需要一段时间,检查postgres容器是否启动完成,运行docker logs postgres查看docker容器的日志,如果输出database system is ready to accept connections则说明容器启动成功,运行bootstrap.sh upexp重试
    • 检查~/hyperledger/blockchain-explorer/app/platform/fabric/config.json配置文件中的路径是否正确,配置方法参考https://github.com/hyperledger/blockchain-explorer#Fabric-Network-Setup
    • 如果启动的是fabcar例子的话,需要将~/hyperledger/blockchain-explorer/app/platform/fabric/config.json配置文件中grpcs改为grpc,删除多余信息,检查配置路径
  3. 如有建议或BUG可以创建issue,创建方法参考https://guides.github.com/features/issues

致谢

  • 感谢sgerrand提供的alpine glibc库

官方文档: