Hyperledger Fabric(高可用之Raft部署)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hyperledger Fabric(高可用之Raft部署)相关的知识,希望对你有一定的参考价值。
参考技术ARaft共识在1.4.1版本时正式支持,本次基于1.4.4版本部署Raft版的Fabric网络。由于Raft共识集成了etcd,不再需要使用kafka、zookeeper等中间件。本次部署将搭建3Orderer节点、2组织(2peer)的Fabric网络,使用vagrant创建 8台centos虚拟机,其中一台用于nfs共享文件,具体主机组件对应如下:
192.168.33.11: orderer0
192.168.33.12: orderer1
192.168.33.13: orderer2
192.168.33.21: peer0-org1
192.168.33.22: peer1-org1
192.168.33.23: peer0-org2
192.168.33.24: peer1-org2
192.168.33.25: nfs-server
本次搭建所需文件目录如下:
获取源码
启动并进入nfsserver主机
Hyperledger Fabric密码模块系列之BCCSP
fabric中通过工厂模式来生成bccsp实例,进而通过bccsp的接口来提供加密、解密、签名验证以及哈希等操作。 fabric的factory工厂默认返回的bccsp实例是sw(也就是所有密码操作都是封装go底层算法来实现的),这里的工厂模式代码不多,大家可以自己去fabric/bccsp/factory目录下阅读源代码,以后有时间单独作为一章来介绍。
sw在fabric项目发展中有一次较大的改动:
1、在fabric-1.0发布前,代码的结构是通过具体算法来组织的,比如ecdsa相关的生成密钥、签名以及验证等编写在同一个go文件中。
2、fabric-1.0发布后,代码按照bccsp接口实现来组织代码,比如关于密钥生成的操作KeyGen,aes,rsa以及ecdsa的密钥生成操作都组织到一个go文件中,它们都实现了同一个接口KeyGenerator,当调用bccsp的密钥生成算法KeyGen的时候,通过反射的机制来判断具体需要生成什么类型的密钥。新版本的优点是更加容易扩展,bccsp实现代码更加简洁。
以下不作说明,以fabric-1.0版本以后的sw来介绍。本着“无图说个j8”原则,先附一张sw下的文件列表图:
好了,这就是bccsp子包sw里面的代码,从文件名字上来看,主要分为6类:
1、internals.go:定义了一组接口,每个接口对应bccsp接口中的一个函数,internals.go中的接口简化了bccsp的实现。
2、fileks.go:与密钥存储和读取相关
3、impl.go:sw的主文件,通过调用6中的函数来实现bccsp的各个接口。
4、以算法名字开头的:密码算法实现相关。
5、以算法名字+key开头的: 定义该算法密钥的具体数据结构,并实现Key接口
6、以bccsp接口函数名开头的:包含了bccsp接口各个函数的具体实现代码。
-------------代码包含了一切,想要深入了解,只能近距离接触------------------------------
If you want to understand it further, you\'d better go to view the code.
以上是关于Hyperledger Fabric(高可用之Raft部署)的主要内容,如果未能解决你的问题,请参考以下文章
部署Hyperledger Fabric之SIGSEGV问题
Hyperledger Fabric密码模块系列之BCCSP
Hyperledger Fabric Java SDK最新教程