HyperLedger Fabric实战(一):基础环境构建

2023-11-09

1. 简介

本文档说明了HyperLedger Fabric 1.4.0版本的区块链网络搭建所需的基本环境组件以及安装流程,最后再记录了安装过程中可能会遇到的一些问题,采用的操作系统为ubuntu 18.04。
具有参考价值的网站:

  1. Hyperledger Fabric的官方文档:https://hyperledger-fabric.readthedocs.io/en/latest/;
  2. HyperLedger的官网,里面还有其他的配套组件:https://www.hyperledger.org/。

2. 基础环境构建

2.1 组件清单

HyperLedger Fabric的依赖环境较多,且对版本有一定的要求,本次安装使用了如下的组件:

名称 版本 描述
操作系统 Ubuntu 18.04 基础环境
docker 17.06.2-ce或更高 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
Docker-compose 1.1.14或更高 Compose 是用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。
Go 1.13.x 运行的基本SDK
NodeJS 8.9或更高(Version 9全部不支持),Version10从10.15.3后继续支持 运行的基本SDK
npm 5.x npm 是 JavaScript 世界的包管理工具,并且是 Node.js 平台的默认包管理工具。通过 npm 可以安装、共享、分发代码,管理项目依赖关系。
python 2.7.x 运行的基本SDK
curl latest 远程获取资源,通常系统自带
ssh latest 远程控制服务器

2.2 组件安装过程

基于上述的内容,我们开始安装这些组件:

2.2.1 SSH

SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。

# 安装SSH服务器
sudo apt install openssh-server

# 安装SSH客户端
sudo apt install openssh-client

# 配置SSH
sudo vim /etc/ssh/ssh_config

# 在配置文件中,把如下的内容的注释删除掉
PasswordAuthentication yes
PermitRootLogin yes

# 重启ssh服务
sudo /etc/init.d/ssh restart

2.2.2 安装docker

docker作为整个超级账本运行的基础环境,其安装是重中之重,也是问题最多的步骤。如果你之前安装了docker且版本不适用,卸载的过程参考如下的教程:https://www.cnblogs.com/shiningrise/p/14775654.html。

# 更新安装包
sudo apt-get update

# 安装apt依赖包
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://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"
  
# 安装docker-ce
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 查看docker版本
docker -v

# 设置开机启动docker
sudo systemctl enable docker

#运行docker自带的helloworld程序
sudo docker run hello-world

# 添加当前用户到docker组,这样当前用户就可以直接操作docker命令
# 列出自己的用户组,确认自己在不在 docker 组中
sudo groups
# 没有则新增docker组
sudo groupadd docker
# 把当前用户加入到docker组中
sudo gpasswd -a ${USER} docker
# 重启docker服务
sudo service docker restart

2.2.3 安装docker-compose

docker compose它使用单个YAML文件来编排所有Docker容器和配置,使用docker compose我们可以快速构建多个容器,部署网络等。

# 安装docker-compose到/usr/local/bin/docker-compose,其中-o是指定的输出文件位置
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

# 为docker-compose启动设置权限
sudo chmod +x /usr/local/bin/docker-compose

# 验证docker-compose版本
sudo docker-compose --version

2.2.4 安装go

Go是Fabric运行的基本环境之一。

# 准备go语言安装位置
cd /opt
sudo mkdir golang
cd golang
# 使用wget下载go语言,不推荐使用高版本的
sudo wget https://dl.google.com/go/go1.10.3.linux-amd64.tar.gz
# 安装gzip
sudo apt-get install gzip

# 解压缩,如果没有安装gzip需要提前安装
sudo tar -zvxf go1.10.3.linux-amd64.tar.gz

# 配置go的环境变量
sudo vim /etc/profile
# 添加如下内容:
export GOPATH=/opt/gopath
export GOROOT=/opt/golang/go
export PATH=$GOROOT/bin:$PATH

# 使配置文件生效
source /etc/profile

# 查看go是否安装成功
go version
# 结果如下
go version go1.10.3 linux/amd64

2.2.5 git安装

git是一个分布式的版本控制工具,我们可以使用git管理一个项目,并在不同的版本之间进行切换,同时,还可以使用git在远程的仓库中拉取需要的文件。

sudo apt-get install git

2.2.6 安装npm与NodeJS

Node.js简单的说 Node.js 就是运行在服务端的 JavaScript,是一个基于Chrome JavaScript 运行时建立的一个平台。Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。在本项目中,它也是HyperLedger Fabric的基本环境之一

NPM是随同Node.js一起安装的包管理工具,能解决Node.js代码部署上的很多问题,常见的使用场景有以下几种:

  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
# 更新安装包
sudo apt update

# 安装npm
sudo apt-get install npm

此时,安装的Node.js并不是我们指定的版本,可能存在冲突的情况。此时我们可以使用Node.js提供的工具来切换不同版本的Node.js。

# 利用n来管理NodeJS版本
sudo npm install -g n

# n来下载node版本
sudo n lts 长期支持
sudo n stable 稳定版
sudo n latest 最新版
sudo n 8.9.4 直接指定版本下载

# 切换版本
sudo n 8.9.4

# 重新打开一个终端查看版本
node -v
#此时版本为:
v8.9.4

2.2.7 安装Python

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。Python也是Fabric的基本支撑环境之一。注意:Fabric支持的Python版本为python2。

# 更新安装包
sudo apt update

#安装python2.7
sudo apt install python2.7

#检查python版本
python
#显示结果:
Python 2.7.17
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HyperLedger Fabric实战(一):基础环境构建 的相关文章

  • 【ubuntu】ubuntu实体机与windows互传文件(两台电脑)

    先记录一些命令 dpkg list 查看软件列表 sudo apt get purge remove 包名 purge是可选项 写上这个属性是将软件及其配置文件一并删除 如不需要删除配置文件 可执行sudo apt get remove 包
  • Python列表操作中extend和append的区别

    1 用法 append 用于在列表末尾添加新的对象 输入参数为对象 extend 用于在列表末尾追加另一个序列中的多个值 输入对象为元素队列 2 相同点 两个都是对列表即list进行的操作 具体句法可以写为 list1 append obj

随机推荐

  • 解决EXPLORER应用程序错误,桌面出不来

    打开运行 输入CMD 输入for 1 in windir system32 dll do regsvr32 exe s 1 意思是注册所有DLL组件 一般都能解决问题 转载于 https blog 51cto com feifei888 4
  • word文件doc、docx转pdf

    综合类管理系统不管是自研还是外包项目都会被客户或者产品经理要求 实现word导出 excel导出 pdf导出等功能 其实pdf导出呢 有很多种方式 我实现过的就有两种 接下来呢 就说说其中的一种 就是当你已经实现了word导出 或有明确的要
  • 粉丝文化:抖音广告短视频美妆营销中,男明星比女明星更带货?

    1996年 木村拓哉为佳丽宝拍摄了一支口红广告 这条广告轰动一时 代言的口红两个月就卖出了300万支 从此 男明星就成了美妆品牌的宠儿 众多美妆品牌开始启用男明星代言人 男明星为何有如此强力的带货潜力 美妆品牌如何在短视频时代占得先机 抖音
  • 阿里天池比赛——街景字符编码识别

    文章目录 前言 一 街景字符编码识别 1 目标 2 数据集 3 指标 总结 前言 之前参加阿里天池比赛 好久了 一直没有时间整理 现在临近毕业 趁论文外审期间 赶紧把东西整理了 5月底学校就要让我们滚蛋了 哭哭哭 大运会的牺牲品 一 街景字
  • 赛马游戏的java设计_赛马游戏源码

    0 Intro pos g setClip 10 10 HorseMidlet imgIntro 0 getWidth HorseMidlet i mgIntro 0 getHeight g drawImage HorseMidlet im
  • 面试题记1

    希望各位看客们能积极提供答案 1 125874和它的两倍251748 包含着同样的数字 只是顺序不同 找出最小的正整数x 使得2x 3x 4x 5x 和6x都包含有相同的数字 2 求100 各位数之和 3 是用从1到9所有数字 将其任意的连
  • Notion?Roam?OneNote? 不要再用这些垃圾做笔记啦

    双向链接 最近因为Roam Research 双向链接在笔记圈子里火了起来 Notion也在准备做了 那么双向链接是什么呢 我用我的我关于管道的一则笔记给大家讲明白 管道的实现 Linux里 管道实现的原理是 Shell进程先调用pipe创
  • 浅谈 qmake 之 shadow build

    shadow build shadow build 是什么东西 就是将源码路径和构建路径分开 也就是生成的makefile文件和其他产物都不放到源码路径 以此来保证源码路径的清洁 这不是qmake独创的东西 cmake中早就使用这个东西了
  • 性能测试_Day_10(负载测试-获得最大可接受用户并发数)

    目录 如何理解负载测试 如何实现负载测试 jpgc Standard Set插件安装 jpgc Standard Set使用方法 负载测试分析指标 获得最大可接受用户并发数 区间值 负载测试分析指标 获得最大可接受用户并发数 真实值 负载测
  • 阅读论文《Deep Bilateral Learning for Real-Time Image Enhancement》

    这是2017 siggraph的一篇论文 寒假boss让我看这篇论文我没怎么看懂 最近在公司实习 发现该论文的成果已经移到手机端上了 效果还非常不错 这里我重新温习了一下这篇论文 发现有许多可以借鉴的地方 是一篇非常不错的论文 这里重新叙述
  • 我碰到avs错误

    1 写好的avs脚本用播发器不能播放 并且报unexpected chatacter 错误 解决办法 1 尽管avs支持汉语文件路径 但是仍要确认标点符号是否为英文状态下 2 将AVS脚本用记事本打开 重新存为并把编码格式修改成ASNI格式
  • 数值计算方法python实现

    包括 泰勒级数展开 差分逼近微分 二分法求解 试位法求解 迭代法求根 牛顿法求根 正割法 贝尔斯托法多项式求跟 多项式回归 牛顿差商插值 拉格朗日插值法 三次样条插值法 二次样条插值法 高斯消元法 求解线性代数方程组 代码在我的github
  • 事件循环与线程 一

    初次读到这篇文章 译者感觉如沐春风 深刻体会到原文作者是花了很大功夫来写这篇文章的 文章深入浅出 相信仔细读完原文或下面译文的读者一定会有收获 由于原文很长 原文作者的行文思路是从事件循环逐渐延伸到线程使用的讨论 译者因时间受限 暂发表有关
  • SnowFlake 算法

    SnowFlake 算法 1 介绍 是 Twitter 开源的分布式 id 生成算法 核心思想 使用一个 64 bit 的 long 型的数字作为全局唯一 id 2 结构 0 0001000000 0000010000 0001000100
  • KVM架构与原理详解

    1 KVM架构 KVM 基本上有两个组件构成 1 kvm 驱动 现在已经是Linux内核的一个模块了 它的作用主要是负责虚拟机的创建 虚拟内存的分配 虚拟CPU寄存器的读写和虚拟cpu的运行 2 另一个组件是 Qemu QEMU是一个通用的
  • Wsl2 Ubuntu18.04图形化界面,亲测成功

    Wsl2 Ubuntu18 04图形化界面 亲测成功 Windows端 Linux端 最后 抖抖索索搞了两天 差点Windows系统都重装 终于搞成功了 参考文献 一定要看 非常感谢这个哥们 成功搞出来了 Windows端 powershe
  • ThreadLoacl

    目录 三 ThreadLoacl 基础 二 InheritableThreadLocal 三 TransmittableThreadLocal 三 ThreadLoacl 基础 在Java的多线程编程中 为保证多个线程对共享变量的安全访问
  • 数据库配置时useUnicode=true&characterEncoding=UTF-8

    数据库连接时经常会写到 jdbc url jdbc mysql localhost 3306 db1 useUnicode true characterEncoding UTF 8 添加的作用是 指定字符的编码 解码格式 例如 mysql数
  • mvvm设计模式总结

    要了解mvvm 首先要了解mvc和mvp 我们也先简单说一下mvc和mvp MVC MVC全名是Model View Controller 是模型 model 视图 view 控制器 controller 的缩写 一种软件设计典范 用一种业
  • HyperLedger Fabric实战(一):基础环境构建

    1 简介 本文档说明了HyperLedger Fabric 1 4 0版本的区块链网络搭建所需的基本环境组件以及安装流程 最后再记录了安装过程中可能会遇到的一些问题 采用的操作系统为ubuntu 18 04 具有参考价值的网站 Hyperl