Ubuntu部署基于Fabric的虚拟区块链服务

2023-11-03

关于Hyperledger Fabric的部署适合在Ubuntu或其它Linux上进行,本例在Ubuntu16.04LTS上操作。如果是Windows、MacOS系统,建议安装Virtual Box,在虚拟机上部署区块链环境。

准备:

1、源需要换成国内源,这样速度能快很多。

参考:http://www.linuxidc.com/Linux/2016-06/132518.htm

2、安装好git,ssh服务,配置go语言环境(我的version是1.9.2,官网下载最新版本,注意项目路径名与src包一致!!),安装docker容器(我的version是1.12.6,建议1.12以上!!)并启动容器服务(配置过程比较简单,自行百度),分别输入需要的环境名字来检查是否正确安装,确认安装正确继续。

参考:http://www.linuxidc.com/Linux/2017-01/139985.htm

3、修改你的权限

sudo usermod -aG docker USER_NAME

4、注销并重新登录,然后添加阿里云的Docker Hub镜像(一定要注销后再重启docker服务!!)

参考:https://cr.console.aliyun.com/#/accelerator/

5、然后重新加载守护进程,输入以下两行命令

sudo systemctl daemon-reload
sudo systemctl restart docker

6、安装python-pip

sudo apt-get install python-pip

7、安装docker-compose

直接运行脚本:
curl -L https://get.daocloud.io/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > ~/docker-compose
sudo mv ~/docker-compose /usr/local/bin/docker-compose 

chmod +x /usr/local/bin/docker-compose


部署:

1、建立fabric目录,用Git拉取源码

mkdir -p ~/go/src/github.com/hyperledger 
cd ~/go/src/github.com/hyperledger 
git clone https://github.com/hyperledger/fabric.git

2、切换v1.0.0版本的源码

cd ~/go/src/github.com/hyperledger/fabric
git checkout v1.0.0

3、下载Fabric docker镜像

cd ~/go/src/github.com/hyperledger/fabric/examples/e2e_cli/
source download-dockerimages.sh -c x86_64-1.0.0 -f x86_64-1.0.0

若下载成功,输入docker images会看到如下内容


启动:

1、在e2e_cli文件夹内,启动Fabric网络的自动化脚本。

./network_setup.sh up

2、启动成功,则出现如下:



测试:

1、测试官方example,打开另一个终端:

docker exec -it cli bash

peer chaincode query -C mychannel -n mycc -c '{"Args":["query","a"]}'


余额(Query Result)显示为90。

2、再把a账户的余额全部转给b账户,运行命令:

peer chaincode invoke -o orderer.example.com:7050  --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem  -C mychannel -n mycc -c '{"Args":["invoke","a","b","90"]}'

运行结果为:


3、再次查询a的余额,结果为:


4、退出cli容器:exit

5、关闭Fabric网络:./network_setup.sh down


PS: 链码调试方法(在fabric-sample下)

# 启动网络
1$ cd fabric-samples/chaincode-docker-devmode
1$ docker-compose -f docker-compose-simple.yaml up -d

# 进入链码容器
2$ docker exec -it chaincode bash

# 编译链码
2$ cd [链码目录]
2$ go build -o [可执行文件]

# 部署链码
2$ CORE_PEER_ADDRESS=peer:[端口号] CORE_CHAINCODE_ID_NAME=[实例]:0 ./[可执行文件]

# 启动测试容器
3$ docker exec -it cli bash

# 安装链码
3$ cd ..
3$ peer chaincode install -p [可执行文件的所在目录路径] -n [实例] -v [版本号]

# 实例化链码
3$ peer chaincode instantiate -n [实例] -v [版本号] -c '{"Args":["函数","参数","参数"]}' -C [通道]

# 调用链码
3$ peer chaincode invoke -n [实例] -c '{"Args":["函数", "参数", "参数"]}' -C [通道]


docker常用命令:

1)删除一个容器

docker rm <containerID>

2)强制删除一个容器

docker rm -f <containerID>

3)强制删除全部容器

docker rm -f $(docker ps -aq)

4)删除一个镜像:

docker rmi <imageID>

5)强制删除一个镜像:

docker rmi -f <imageID>

6)强制删除全部镜像

docker rmi -f $(docker images -q)



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

Ubuntu部署基于Fabric的虚拟区块链服务 的相关文章

  • VUE 学习笔记(一)开发环境搭建

    1 Visual Studio Code安装及使用 下载地址官网 https code visualstudio com 直接点击下载按钮即可 会根据系统自动下载合适的版本 无需自行选择 2 VSCode 上安装 JavaScript De
  • S7-200 PLC新特性是什么

    更多关于西门子S7 200PLC内容请查看 西门子200系列PLC学习课程大纲 课程筹备中 西门子200PLC能做什么 它可以控制设备 实现自动控制 比如切割机 木雕刻机 写字机 锅炉的自动控制等等 应用广泛 它属于小型的PLC特别适用于一
  • Spring整合JSON

    在使用SpringMVC结合JSON时 需要导入com springsource org codehaus jackson mapper 1 4 2 jar和com springsource org codehaus jackson 1 4
  • C++通讯录管理系统

    C 通讯录管理系统 开发环境 Visual studio 2019 1 系统需求 系统中需要实现的功能如下 添加联系人 向通讯录中添加新人 信息包括 姓名 性别 年龄 联系电话 家庭住址 最多记录10000人 显示联系人 显示通讯录中所有联
  • linux的etc相当于windows,Linux——LDAP(相当于Windows下的AD)

    LDAP 轻量级目录访问服务 通过配置这个服务 我们也可以在linux下面使用目录的形式管理用户 就像windows下面的AD一样 方便我们管理 下面我们就一起来配置openldap服务 本文运行环境 CentOS 5 软件需求 openl
  • Java 的JSON、XML转换方法——目录索引

    原文地址 http blog csdn net ibm hoojo article details 6366429 JSON及XML的Java序列化 反序列化 转换 在WebService Ajax数据传递中 用得比较多 如 在用ExtJS
  • 【Socket】Java Socket编程基础及深入讲解

    转自 https www cnblogs com yiwangzhibujian p 7107785 html Socket是Java网络编程的基础 了解还是有好处的 这篇文章主要讲解Socket的基础编程 Socket用在哪呢 主要用在进
  • 【模板】高精度乘低精度

    文章目录 1 数组 2 vector 推荐 1 数组 include
  • 使用ARIMA算法进行时间序列预测。

    本文以行健宏扬中国为例 提取数据 使用ARIMA算法进行时间序列预测 爬取数据 抓取行健宏扬中国基金 from bs4 import BeautifulSoup import requests headers Accept text jav
  • TTS

    2021 VITS Conditional Variational Autoencoder with Adversarial Learning for End to End Text to Speech Paper Conditional
  • 消息中间件:选型分析。

    前言 消息队列中间件 简称消息中间件 是指利用高效可靠的消息传递机制进行与平台无关的数据交流 并基于数据通信来进行分布式系统的集成 通过提供消息传递和消息排队模型 它可以在分布式环境下提供应用解耦 弹性伸缩 冗余存储 流量削峰 异步通信 数
  • 关于进程,I/O模型的文章

    PHP类 http rango swoole com archives 508 Node https github com DoubleSpout threadAndPackage
  • Windows双系统Ubuntu18.04安装分区过程

    声明 由于这个寒假过长 从1月到9月 期间无数次作死操作 导致windows和ubuntu崩了N次 所以现在把以前的东西重新做一遍 windows和ubuntu双系统 首先在windows完好的情况下 进入 计算机管理 选择 磁盘管理 压缩
  • 唐先杰遇上区块链:要加薪,也要改变世界

    区块链能带来什么 对于唐先杰来说 是 加薪 的现实收益 也是 改变世界 的精神满足 唐先杰是旺链科技的区块链系统架构师 拥有10余年技术经验 接触到区块链以及FISCO BCOS开源社区之后 在社区伙伴的帮助下 他成功完成了对公司产品的升级
  • js中把数字转换成汉字输出

    前言 在js中把数字转换成汉字输出的方法 直接可以拿来用 方法一 支持7位 也就是最大1234567 案例 this toChinesNum 10101010 得到 一千零一十万一千零一十 数字转成汉字 params num 要转换的数字
  • el-tree的使用与样式修改大全

    el tree的使用与样式修改大全 一 样式篇 1 修改节点选中后的背景样式 el tree node focus gt el tree node content background color 5daaf0 背景色 2 节点hover后
  • 开源大数据平台 集群搭建及使用

    1 Hadoop集群搭建及使用 1 集群规划 2 虚拟机准备 1 创建虚拟机 具体步骤不再展示 2 配置网络 ping外网 ping baidu com 如果ping不通 修改如下文件 vi etc sysconfig network sc
  • Flutter Icons内置图标库MaterialIcons大全

    Flutter 中的图标组件 Icon 专门用于显示图标 如 Icon Icons check rounded color Colors white size 18 图集预览
  • 报错解决方案1

    遇到报错 TypeError conv2d received an invalid combination of arguments got numpy ndarray Parameter Parameter tuple tuple tup
  • catkin build 的使用

    1 catkin build vs catkin make 初学的时候一般我们用catkin make 但是相较于catkin build而言 并没有那么好使 对比如下 catkin make 同时编译工作空间下的所有包 速度慢 不灵活 c

随机推荐

  • C++(11):生成随机字符串

    C 11 产生随机数 c 11 随机数 风静如云的博客 CSDN博客 介绍了如何生成随机数 可以基于随机数生成随机字符串 include
  • 华为OD机试 - 字符串划分(Java)

    题目描述 给定一个小写字母组成的字符串 s 请找出字符串中两个不同位置的字符作为分割点 使得字符串分成三个连续子串且子串权重相等 注意子串不包含分割点 若能找到满足条件的两个分割点 请输出这两个分割点在字符串中的位置下标 若不能找到满足条件
  • HTML中的table表格

    表格标签 分为行 tr 和列 td 行及列都可以进行合并操作 table 定义表格 tr 定义行 td 定义列 先有行 后有列 th 多用于表头 定义表格中头部 加粗 border 边框大小 bordercolor 边框的颜色 cellpa
  • Spring的两种动态代理:Jdk和Cglib 的区别和实现

    一 原理区别 java动态代理是利用反射机制生成一个实现代理接口的匿名类 在调用具体方法前调用InvokeHandler来处理 而cglib动态代理是利用asm开源包 对代理对象类的class文件加载进来 通过修改其字节码生成子类来处理 1
  • 重构——重构原则

    何谓重构 目的在于不改变软件可观察行为的前提下 提高其可理解性 降低其修改成本 重构可能会在软件内部做修改 但是对软件的外部行为造成很小改变 或者不造成改变 与之相比的是性能优化 为何重构 程序的设计会逐渐腐败 当人们只为了短期目的 或者未
  • 实用工具系列 - Pycharm插件推荐

    博客主页 Passerby Wang的博客 CSDN博客 系统运维 云计算 Linux基础领域博主 所属专栏 实用工具系列 上期文章 实用工具系列 Pycharm安装下载使用 如觉得博主文章写的不错或对你有所帮助的话 还望大家多多支持呀 关
  • 云计算虚拟化:k8s二进制Master主备集群部署

    一 前言 无论从成本还是效率上考虑 k8s都极占优势 基本代表了未来趋势 官网推荐kubeadm配置 虽然方便 但掩盖了许多细节问题 k8s虽然咋看仅仅是个容器编排工具 但涉及的相关知识面非常广泛 如果说大数据的相关知识你需要花N天 K8S
  • do{...} while(0) 用意

    linux内核和其他一些开源的代码中 经常会遇到这样的代码 do while 0 这样的代码一看就不是一个循环 do while表面上在这里一点意义都没有 那么为什么要这么用呢 实际上 do while 0 的作用远大于美化你的代码 查了些
  • 人工智能革命:从ANI到AGI的道路

    从ANI到AGI的道路为什么这么难 没有什么比学习创造一台像人类一样聪明的电脑这种难以置信的创造更能让人欣赏人类的智慧了 建造摩天大楼 将人类置于太空中 弄清楚大爆炸如何发生的细节 这些都比了解我们自己的大脑或如何制造像它一样酷的东西要容易
  • docker harbor的安装使用以及镜像上传和拉取

    目录 harbor harbor安装 harbor上传和拉取镜像 上传 1 登录Harbor 2 打标签 3 上传镜像 拉取 1 登录Harbor 2 拉取镜像 harbor harbor是一个开源的容器镜像仓库 可用于存储和分发docke
  • 电脑怎么加快网页打开速度?加快网速。

    电脑怎么加快网页打开速度 加快网速 更换合适的dns可以直接加快网页打开速度 1 使用软件更换dns 下载地址 2 手动输入dns 1 win R键 输入 ncpa cpl 2 依次点击连接的网络 属性 Internet协议版本 TCP I
  • 【每日一题】排序子序列(贪心)

    题目来源 牛客网 链接 排序子序列 题目描述 牛牛定义排序子序列为一个数组中一段连续的子序列 并且这段子序列是非递增或者非递减排序的 牛牛有一个长度为n的整数数组A 他现在有一个任务是把数组A分为若干段排序子序列 牛牛想知道他最少可以把这个
  • PTA程序设计类实验辅助教学平台-基础编程题--JAVA--7.3 用天平找小球

    import java util Scanner public class Main public static void main String args Scanner sc new Scanner System in
  • 【总线】I2C 通信协议

    目录 I2C 总线协议概述 参数总结 I2C 的工作原理 寻址 读 写位 数据帧 I2C数据传输的步骤 具有多个从机的单个主机 具有多个从机的多个主机 I2C的优缺点 优点 缺点 文章参考 I2C 总线协议概述 I2C 总线广泛应用在 OL
  • 在B站如何不动一根手指,就可以养成6级大佬?大四学生发明养号神器,看完你也会...

    杨净 发自 凹非寺 量子位 报道 公众号 QbitAI 如何像拥有一个小助手一样 每天帮你签到打卡 或许 现在利用GitHub Action定时任务就可以做到 而这个小助手 混迹b站 可以每天按时按点签到打卡 看视频投币 定期充电 每天任务
  • leetcode 1024. 视频拼接

    你将会获得一系列视频片段 这些片段来自于一项持续时长为 T 秒的体育赛事 这些片段可能有所重叠 也可能长度不一 视频片段 clips i 都用区间进行表示 开始于 clips i 0 并于 clips i 1 结束 我们甚至可以对这些片段自
  • Prometheus+grafana

    Prometheus grafana 文章目录 Prometheus grafana 安装部署 常用指标监控 进程监控 docker容器的监控 安装部署 使用docker的方式部署 1 创建项目目录 root 129 mkdir home
  • timedate如何查看当前时间并去除毫秒

    import datetime dt datetime datetime strptime str datetime datetime now replace microsecond 0 Y m d H M S datetime datet
  • 一个批量数据导入的实现方案

    数据导入作为系统常用的功能 几乎所有的系统都应该支持 主要用于系统初期 大批量初始化数据 或者需要输入的数据行比较多的情况 导入在建项目的交付清单 通常成百上千项 数据导入的一般过程是 用户按照模板格式Excel文件 然后程序读取这个文件
  • Ubuntu部署基于Fabric的虚拟区块链服务

    关于Hyperledger Fabric的部署适合在Ubuntu或其它Linux上进行 本例在Ubuntu16 04LTS上操作 如果是Windows MacOS系统 建议安装Virtual Box 在虚拟机上部署区块链环境 准备 1 源需