七、msp成员关系服务模块改造
(1)、fabric的成员身份基于标准的x509证书,秘钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有 相同MSP内的节点才可以通过Gossip协议进行数据分发;
(2)、国密改造需要把x509证书修改成sm2证书,ECDSA算法修改成sm2算法;
(3)、修改程序文件列表如下:
msp/identities.go
msp/cert.go
msp/mspimplsetup.go
msp/mspimplvalidate.go
msp/mspimpl.go
八、Orderer节点模块改造
(1)、orderer节点在fabric架构中处于最核心位置,主要功能是排序打包交易,生成新的区块,然后通过共识算法将数据广播;
(2)、orderer节点模块的共识模式有,solo单机模式,kafka消息队列模式,etcdraft一致性算法模式,最开始采用的是kafka模式,后边为了减少资源开销切换成etcdraft模式;
(3)、如果采用kafka模式共识,需要确认kafaka的tls连接是否支持国密算法,再决定是否对kafka的tls做出修改;
(4)、改程序文件列表如下:
orderer/common/cluster/comm.go
orderer/common/cluster/connections.go
orderer/consensus/kafka/config.go
九、Peer节点模块改造
(1)、peer可是区块链网络的基石,包含了账本和链码,应用程序或管理员都得通过节点去管理网络的资源;
(2)、channel对应账本,一个peer节点可以接入到多个channel, 所以一个节点可以有多个账本副本;
(3)、国密改造中对chaincode和common部分有修改;
(4)、改程序文件列表如下:
peer/common/common.go
peer/common/peerclient.go
peer/common/ordererclient.go
peer/chaincode/common.go
十、vendor目录国密改造
(1)、修改程序文件列表如下:
vendor/github.com/Shopify/sarama/config.go
总结:
到目前为止fabric的国密修改已经完成,修改完毕后通过前面提到的编译方式进行编译,然后进行测试,如有bug再增对性的进行处理,遇到问题和解决问题是比较好的熟悉系统的方式。
有疑问加站长微信联系(非本文作者)