区块链之旅(五)超级账本简介及Git、Docker、Fabric的配置

简介: 超级账本是推动区块链行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入超级账本项目,但是还是要遵循Hyperledger的生命周期。

Hyperledger超级账本

简介

超级账本是推动区块链行业应用的开源项目的总称,组织成员可以发起新的区块链项目,加入超级账本项目,但是还是要遵循Hyperledger的生命周期。


管理架构

image.png


TSC 负责主导社区开发工作。

董事会是由各个组织和大型企业公司加入,对社区进行管理。

背景

首个面向企业应用场景的开源分布式帐本平台。为透明,公开,去中心化的企业级分布式账本技术提供开源参考实现,并推动区块链和分布式账本项目相关协议、规范和标准的发展。


超级账本作为一个联合项目,由面向不同目的和场景的子项目构成。项目分框架类和工具类两种。


框架类:Burrow、Hyperledger Fabric、Hyperledger Indy、Hyperledger Iroha和Hyperledger Sawtooth等五个项目


工具类:Hyperledger Caliper、Hyperledger Cello、Hyperledger Composer、Hyperledger Explorer、Hyperledger Quilt等五个项目


image.png


Fabric

简介

是最早加入超级账本项目中的顶级项目,定位是面向企业的分布式账本平台,创新地引入权限管理支持,设计上支持可拔插,可拓展,多通道,支持多种共识机制,首个面向联盟链场景地开源项目。


整体逻辑架构

image.png


节点逻辑架构

image.png


交易架构


image.png

区块链账本数据结构


image.png

研发架构

image.png


搭建开发环境

【环境】VM15Pro + ubuntu20.04


Git配置

前置软件Git curl

sudo apt-get install git

在终端配置git

sudo apt-get install git

创建公钥

ssh-keygen -C "your email" -t rsa

image.png

将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

image.png

6.测试,在终端输入

ssh -T git@github.com

image.png

Docker配置

卸载旧版本

sudo apt-get remove docker docker-engine docker.io containerd runc

image.png

设置仓库


在新主机上首次安装 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 -

image.png

下载稳定性的仓库

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

image.png

安装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

image.png

脚本化安装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

查看版本号

image.png


切换到1.4.7版本分支下

sudo git checkout v1.4.7


查看当前分支


git branch -a

image.png

注意一定要有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

下载完成

image.png


我们仍然停留在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等功能。


相关文章
|
1月前
|
Java Go 开发者
Docker容器技术简介及其与Go语言的结合点
【2月更文挑战第23天】本文首先概述了Docker容器技术的核心概念和优势,接着探讨了Go语言与Docker容器技术的结合点。通过阐述Docker的轻量级、可移植性和版本控制等特性,以及Go语言在容器化应用中的优势,本文旨在说明两者结合能够实现更高效、灵活的应用开发和部署。
|
8月前
|
Docker 容器
01Docker简介
01Docker简介
31 0
|
25天前
|
Linux 应用服务中间件 nginx
docker 网络简介
docker 网络简介
|
1月前
|
Java 虚拟化 Docker
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别
|
1月前
|
jenkins Java 持续交付
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(上)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
1月前
|
NoSQL Redis Docker
[docker] Compose 简介
[docker] Compose 简介
|
1月前
|
jenkins 持续交付 开发工具
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)(下)
Jenkins 快速入门 (含Jenkins + Docker + Git 简单的自动化实操)
|
1月前
|
Kubernetes Cloud Native 虚拟化
【docker】—— Docker 简介
【docker】—— Docker 简介
|
7月前
|
jenkins 持续交付 数据安全/隐私保护
Jenkins简介及Docker Compose部署
Jenkins是一个开源的自动化服务器,用于自动化构建、测试和部署软件项目。它提供了丰富的插件生态系统,支持各种编程语言和工具,使得软件开发流程更加高效和可靠。在本文中,我们将介绍Jenkins的基本概念,并展示如何使用Docker Compose轻松部署Jenkins服务。
214 3
Jenkins简介及Docker Compose部署
|
6月前
|
存储 算法 开发工具
Git->git简介,git的常用命令,git命令的常用理论
Git->git简介,git的常用命令,git命令的常用理论
77 0