Hyperledger超级账本
简介
超级账本是推动区块链行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入超级账本项目,但是还是要遵循Hyperledger的生命周期。
管理架构
TSC 负责主导社区开发工作。
董事会是由各个组织和大型企业公司加入,对社区进行管理。
背景
首个面向企业应用场景的开源分布式帐本平台。为透明,公开,去中心化的企业级分布式账本技术提供开源参考实现,并推动区块链和分布式账本项目相关协议、规范和标准的发展。
超级账本作为一个联合项目,由面向不同目的和场景的子项目构成。项目分框架类和工具类两种。
框架类:Burrow、Hyperledger Fabric、Hyperledger Indy、Hyperledger Iroha和Hyperledger Sawtooth等五个项目
工具类:Hyperledger Caliper、Hyperledger Cello、Hyperledger Composer、Hyperledger Explorer、Hyperledger Quilt等五个项目
Fabric
简介
是最早加入超级账本项目中的顶级项目,定位是面向企业的分布式账本平台,创新地引入权限管理支持,设计上支持可拔插,可拓展,多通道,支持多种共识机制,首个面向联盟链场景地开源项目。
整体逻辑架构
节点逻辑架构
交易架构
区块链账本数据结构
研发架构
搭建开发环境
【环境】VM15Pro + ubuntu20.04
Git配置
前置软件Git curl
sudo apt-get install git
在终端配置git
sudo apt-get install git
创建公钥
ssh-keygen -C "your email" -t rsa
将github上添加ssh key,将.ssh/id_rsa.pub里面的内容全部复制。登陆settings里面选择SSH and GPG keys。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mWFfigdn-1620982576322)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20210514095148402.png)]
5.将key添加到ssh-agent中
ssh-agent bash ssh-add ~/.ssh/id_rsa
6.测试,在终端输入
ssh -T git@github.com
Docker配置
卸载旧版本
sudo apt-get remove docker docker-engine docker.io containerd runc
设置仓库
在新主机上首次安装 Docker Engine 之前,需要设置 Docker 仓库。之后,您可以从仓库安装和更新 Docker 。更新 apt 包索引
sudo apt-get update
安装 apt 依赖包,用于通过HTTPS来获取仓库
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
下载稳定性的仓库
sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装Docker Engine
更新apt包索引
sudo apt-get update
安装最新版本的 Docker Engine 和 containerd
sudo apt-get install docker-ce docker-ce-cli containerd.io
安装特定版本的 Docker Engine:
apt-cache madison docker-ce
使用第二列的版本号安装指定版本
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
笔者直接
sudo apt-get install docker-ce
测试
sudo docker run hello-world
安装Docker Compose
下载
sudo curl -L "https://github.com/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
下载完之后将可执行权限应用文件中
sudo chmod +x /usr/local/bin/docker-compose
查看版本
docker-compose --version
脚本化安装Fabric
创建
sudo mkdir -p $GOPATH/src/github.com/hyperledger
下载
cd $GOPATH/src/github.com/hyperledger sudo git clone https://github.com.cnpmjs.org/hyperledger/fabric.git
查看版本号
切换到1.4.7版本分支下
sudo git checkout v1.4.7
查看当前分支
git branch -a
注意一定要有gcc,查看有无gcc,没有的话自行百度安装
gcc --version
Fabric Docker镜像下载
cd $GOPATH/src/github.com/hyperledger/fabric/examples/e2e_cli/ source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0
下载完成
我们仍然停留在e2e_cli文件夹,这里提供了启动、关闭Fabric网络的自动化脚本。我们要启动Fabric网络,并自动运行Example02 ChainCode的测试,执行一个命令:
./network_setup.sh up
编译生成Fabric公私钥、证书的程序,程序在目录:fabric/release/linux-amd64/bin
基于configtx.yaml生成创世区块和通道相关信息,并保存在channel-artifacts文件夹。
基于crypto-config.yaml生成公私钥和证书信息,并保存在crypto-config文件夹中。
基于docker-compose-cli.yaml启动1Orderer+4Peer+1CLI的Fabric容器。
在CLI启动的时候,会运行scripts/script.sh文件,这个脚本文件包含了创建Channel,加入Channel,安装Example02,运行Example02等功能。