本周主要做了两件事
1. fabric整体架构
2.编程小知识
如图所示:fabric一共分成三个部分,其中最重要的部分是中间的成员服务、共识服务和连码服务。
成员服务: 和身份验证紧密结合,用于在注册登录和交易提交过程中验证背书节点。
链码服务: 提供一个安全、可隔离的执行环境,用于确保用户数据的安全
缺点:每一个链码都是一个独立的容器,消耗资源过大
共识机制:(也是本周学习的重点)
根据CPA原理可知,在一个分布式系统中不能同时满足一致
性、可用性和分区容忍性,区块链机制保证了可用性,就会造成一致性的降低,所以要从算法方面尽可能大的提高一致性,所以,共识机制是核心。
共识过程如下
如图,fabric中把节点分成客户端节点,orderer节点,peer节点,CA节点
客户端节点:是应用程序与底层之间交互的媒介节点,主要功能是向排序节点发送交易提案(经过背书节点验证以后,注意此过程并未在图中画出),排序节点经过排序以后发给各个组织的主节点,主节点通过gossip协议在该组织内部进行传播。
orderer节点:用于排序,排序节点将收到的交易提案并且通过不同的通道进行排序、打包形成区块,其中用到的kafka和solo。
主节点: 用于验证交易的合法性,并且保存在区块中,同步状态,更新世界状态。
世界状态与主节点保存的区别:
对mysql举例说明: 主节点保存指的是保存sql语句
而世界状态指的就是存入的数据
交易流程如下
编程部分
- int最大值: 0x3f
- 异或得到配偶
- lowbit运算
- vector运算
心得:有勇气去攻克一些大模拟的题,对STL掌握的也比以前熟练一些,但对于纯算法理解起来还是有些吃力,加油呀!冲!冲!冲!
:
- 共识机制中的源代码的心得
- 论文心得 Block-Supply Chain:A New Anti-Counterfeiting Supply Chain Using NFC and Blockchain
- 算法心得
- 琐碎小技巧
ps:上述fabric心得体会来自慕课网 自游蜗牛 的课程,感谢老师的讲解!
网友评论