Hyperledger超级账本在Centos7下搭建运行环境
超级账本(hyperledger)是Linux基金会于2015年发起的推进区块链数字技术和交易验证的开源项目,加入成员包括:荷兰银行(ABN AMRO)、埃森哲(Accenture)等十几个不同利益体,目标是让成员共同合作,共建开放平台,满足来自多个不同行业各种用户案例,并简化业务流程。由于点对点网络的特性,分布式账本技术是完全共享、透明和去中心化的,故非常适合于在金融行业的应用,以及其他的例如制造、银行、保险、物联网等无数个其他行业。通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换,例如资产合约、能源交易、结婚证书、能够安全和高效低成本的进行追踪和交易。
节点类型:Orderer、Peer、Client、fabric-Ca
先说一下这几个节点都是干什么的。
Orderer:区块链共识节点,主要作用就是完成交易同步和区块的生成,同时也保证区块链共识过程的安全性(安全性是由共识机制来保证的,目前Fabric自带的有三种共识机制:solo、kafka、PBFT)。
Peer:服务节点,这里所谓的服务是相对于外围的应用而言,主要分为两种,Endorser节点和Committer节点。Endorser节点主要是负责背书(提供交易合法性证明和权限验证),Committer节点负责记账。
Client:客户节点,这就是根据Fabric SDK开发的面向用户的终端。
fabric-Ca: 证书管理中心,通过证书(签名、加密、秘钥协商)来实现权限管理和加密通讯。
大家可以看出来Fabric的节点类型是要比Bitcoin和Ethereum更多,而且功能更细化。这主要是因为Fabric倡导模块化和可插拔的架构,鼓励大家DIY,其中Orderer里面的共识机制、fabric-Ca、包括Ledger(总账)的数据存储方式(ram、LevelDb)都是可以替换的。
它大概的架构就如下图:
Hyperledger Fabric 构建于一种模块化架构之上,该架构将交易处理分为 3 个阶段:分布式逻辑处理和协商(“链代码”)、交易订购,以及交易验证和提交。这种分离提供了一些优势:不同节点类型之间需要的信任和验证水平更低,网络可伸缩性和性能得到了优化。
目前超级账本项目( Hyperledger Fabric )支持在Mac及各大主流Linux下运行,现主要讲解以下在 Centos7 下搭建 超级账本的 开发验证环境。
1、安装Docker
目前开源社区Docker最新版本为 18.03.1,社区分为开源版本(docker-ce)和企业版本(docker-ee)。 需要配置Docker官方源才可以安装最新版本,此处我们安装开源社区版本 docker-ce。
具体操作安装步骤可参考我另一篇文章 《Docker在CentOS 7 环境下的安装及基本操作入门》
需要安装 Docker 及 Docker-compose,验证这两项安装成功即可。
2、安装Go语言运行环境
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go语言于2009年11月由Google正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。Go语言具有 部署简单、并发性好、良好的语言设计、执行性能好 等特点。
CentOS 7 下安装 Go语言运行环境可参考我另一篇文章 《Centos 7 下安装Go语言运行环境》。
3、安装NVM及Node.js
nvm全称Node Version Manager ,是 Nodejs 版本管理器,它让我们能方便的对 Nodejs 的版 本进行切换。 nvm 的官方版本只支持 Linux 和 Mac。 Windows 用户,可以用 nvm-windows。
fabric暂时不支持7.x,需要安装6.9.x 或 6.x高的版本,通过 nvm 安装指定 版本的node。
现安装Node.js 6.5.9 版本。
具体步骤可以参考《Centos7 使用NVM安装Node.js》。
至此 Docker、Docker-compose、Go、Node.js 基础运行环境已经全部安装完成。
Hyperledger超级账本在Centos7下搭建运行环境的更多相关文章
- centos7下搭建Testlink环境详细过程
花了半天的时间终于搭建好了完整的Testlink环境,主要包括Mysql以及PHP的版本.未关闭防火墙.以及安装配置过程中遇到的一些问题.以下是详细的搭建过程. 一.工具准备 以下是我在搭建过程中用到 ...
- CentOs7下搭建LAMP环境
● 环境搭建 参考: http://blog.csdn.net/zph1234/article/details/51248124 http://www.jb51.net/os/188488.html ...
- Centos7下搭建LAMP环境,安装wordpress(不会生产博客,只是一名博客搬运工)(菜鸟)
1.搭建MySQL数据库 安装MariaDB yum install mariadb-server -y 启动MySQL服务 emctl start mariadb #启动服务 emtcl enabl ...
- 在centos7下搭建nginx环境,并配置负载均衡,最终能达到通过域名直接访问的目的
1.关于nginx:个人理解的nginx它的主要用途就是负载均衡,当然可能还有其他一些功能可能我们不长用到,我们通过nginx可以干什么呢?为什么要引入它呢?原因是当有高并发访问服务器时,服务器可能会 ...
- Centos7下搭建gitbook环境踩坑记录
1.安装npm yum -y install npm 2.配置npm仓 npm config set registry https://mirrors.tencent.com/npm/ 3.安装git ...
- CentOS7下搭建zabbix监控(二)——Zabbix被监控端配置
Zabbix监控端配置请查看:CentOS7下搭建zabbix监控(一)——Zabbix监控端配置 (1).在CentOS7(被监控端)上部署Zabbix Agent 主机名:youxi2 IP地址: ...
- 阿里云成为Hyperledger超级账本全球会员,发力区块链生态建设
摘要: 阿里云将会与Hyperledger社区共同推进全球区块链技术和商业生态在多行业领域的建设. 2018年12月12日在瑞士巴塞尔的2018Hyperledger全球峰会上,阿里云正式加入Hype ...
- Linux系统:Centos7下搭建PostgreSQL关系型数据库
本文源码:GitHub·点这里 || GitEE·点这里 一.PostgreSQL简介 1.数据库简介 PostgreSQL是一个功能强大的开源数据库系统,具有可靠性.稳定性.数据一致性等特点,且可以 ...
- 在Centos7下搭建Socks5代理服务器
在Centos7下搭建Socks5代理服务器 http://blog.51cto.com/quliren/2052776 采用socks协议的代理服务器就是SOCKS服务器,是一种通用的代理服务器 ...
随机推荐
- webpack-clean-webpack-plugin
在webpack中打包生成的文件会覆盖之前的文件,不过生成文件的时候文件名加了hash之后会每次都生成不一样的文件,这就会很麻烦,不但会生成很多冗余的文件,还很难搞清楚到底是哪个文件,这就需要引入该插 ...
- python的开发环境配置-Eclipse-PyDev插件安装
安装PyDev插件的两种安装方法: 1.百度搜索PyDev 2.4.0.zip,下载后解压,得到Plugins和Feature文件夹,复制两文件夹到Eclipse目录,覆盖即可. 插件的版本要对应py ...
- 在 laravel 的 DB::transaction 中,为外部变量赋值
例如,我想在 laravel 的事务中,对某个外部变量赋值,然后在后续的逻辑中判断该变量的属性 $user = null; // init DB::transaction(function() use ...
- django----用户认证(auth模块)
用法 from django.contrib import auth user = authenticate(username='someone',password='somepassword') l ...
- easyUI拖动:draggable()方法运用
<!DOCTYPE html><html><head> <meta charset="utf-8"> <title>de ...
- FXML Stuffs (include and define)
FXML Stuffs (include and define)Hello folks,Today I would like to blog about the FXML define and inc ...
- Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
最近一段时间一直在学习Spring Boot,刚进的一家公司也正好有用到这个技术.虽然一直在学习,但是还没有好好的总结,今天周末先简单总结一下基础知识,等有时间再慢慢学习总结吧. Spring Boo ...
- lldp学习
http://support.huawei.com/enterprise/docinforeader!loadDocument1.action?contentId=DOC1000088818& ...
- mysql 增加只读用户查询指定表
GRANT SELECT ON dsideal_db.t_base_organization TO 'guanli'@'%' IDENTIFIED BY '123456';GRANT SELECT O ...
- python学习之基础语法
一.缩进 学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断.python 最具特色的就是用缩进来写模块. 缩进的空白数量是可变的, ...