群内分享
1.Hashgraph —— 或许是目前最为优秀的共识协议
2.【熊丽兵Tiny】如何系统快速学习区块链技术
Fabric学习笔记-PBFT算法
作者-趣链科技-清源
原文链接:https://zhuanlan.zhihu.com/p/34346665
本文介绍了实用拜占庭容错算法(PBFT)。
Fabric在v0.6中采用的是PBFT算法,在v1.0.0-preview中是SBFT算法,在v1.0.0-release中文档上说PBFT还在开发中,项目中目前还没有实现(⊙o⊙)…但是万变不离其宗都是对BFT算法的一些优化改进。
解决的问题
拜占庭算法主要解决了缺少可信的中央节点和可信任的通道的情况下,分布在网络中的各个节点如何达成共识的问题,实用拜占庭算法是拜占庭算法的改进,主要改进了拜占庭算法效率不高的问题,将算法复杂度由指数级降低到多项式级,使得拜占庭容错算法在实际系统应用中变得可行。
基本概念
客户端(client)负责发送请求。
副本(replica)所有参与提供服务的节点。
备份节点(backup)主节点外的所有节点。
主节点(primary)从副本中选出提供主要服务的节点。
视图(view)主节点和副本之间编号的一次快照。
PBFT是一种状态机副本复制算法,即服务作为确定有限状态机进行建模,状态机在分布式系统的不同节点进行副本复制。每个状态机的副本都保存了服务的状态,同时也实现了服务的操作。
在确定有限自动机中,每个状态对每个可能输入只有精确的一个转移,在输入顺序一致,起始状态一致的情况下输出也必然一致。这也就对PBFT算法中的副本提出了两个限定 :
所有节点必须是确定性的。也就是说,在给定状态和参数相同的情况下,操作执行的结果必须相同。
所有节点必须从相同的状态开始执行。
在这两个限定条件下,即使失效的副本节点存在,PBFT算法对所有非失效副本节点的请求执行总顺序达成一致,从而保证安全性。
将所有的副本组成的集合使用大写字母R表示,使用0到|R|-1的整数表示每一个副本。为了描述方便,假设|R|=3f+1,这里f是有可能失效的副本的最大个数。尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。
算法流程
请求阶段:客户端向主节点发送请求。
预准备阶段:主节点分配一个序列号n给收到的请求,然后向所有备份节点广播预准备消息,预准备消息的格式为<,m>,这里v是视图编号,m是客户端发送的请求消息,d是请求消息m的摘要。
准备阶段:备份节点i接受了预准备消息<,m>,则进入准备阶段。在准备阶段的同时,该节点向所有副本节点发送准备消息,并且将预准备消息和准备消息写入自己的消息日志。
确认阶段:副本节点收到2f个从不同副本节点发来一致的预准备消息,一共2f+1个一致的预准备消息确认了消息的正确性,然后按照序号n依次执行请求。
预准备阶段和准备阶段确保所有正常节点对同一个视图中的请求序号达成一致。
准备阶段和确认阶段确保了节点执行了大多数都认可的操作。
PBFT算法流程:
PBFT算法流程
主要介绍了PBFT算法的主要流程,其中还有一些问题例如:主节点是如何选择,主节点失效,怎么确定消息的正确性等都不在此赘述,可以参考:https://www.jianshu.com/p/fb5edf031afd 区块链核心技术:拜占庭共识算法之PBFT。
群内讨论
最新资讯
CHONG
1.北京金融资产交易所首单应用区块链技术的供应链ABS成功发行。3月29日,中骏集团供应链应收账款债权融资计划(供应链ABS)在北京金融资产交易所成功发行并挂牌,融资金额7.69亿元,主承销商为天津银行。
2.泉州海关试水能源贸易区块链应用项目。近日,泉州海关成功参与区块链在出口贸易方面的应用试点。该单业务对象是一船从中国泉州到新加坡的汽油。通过将跨境贸易各个关键环节的核心单据进行数字化,对贸易流程中的合同签订、货款汇兑、提单流转、海关监管等环节信息进行全程记录,大大提高了各个环节效率,降低了交易风险。相比传统方式,区块链的应用能提高流程整体时间效率50%以上。
3.中远海运集运促成区块链在集运业首次商业应用。4月1日,中远海运集装箱运输公司与京东、佳农食品共同宣布在运输中使用区块链技术,货物为厄瓜多尔香蕉。这是区块链技术在国际海上集装箱运输业内的首次商业应用落地。
4.中国银行利用区块链在雄安发放首笔临时占地补偿款。据河北省人民政府网站公告显示,中国银行对接“数字雄安”项目,运用区块链技术参与新区的土地补偿、“智慧森林”供应链融资等核心业务,代理发放了新区首笔临时占地补偿款。
5.泉州海关成功试水能源贸易区块链应用,预计大概率将在全国海关系统引发区块链+试点浪潮。
群内工作
《磨链入门区块链》共同参与写一些东西,目录大纲完善中,一个长期项目。
招募条件:
1.需要一定的区块链基础。
2.对上述任何一方面有较为深入理解。
3.每周能保证一定的空余时间来折腾。
4.了解github相关
5.人员进行筛选,时间周期比较长。
有意向联系我。
磨链在线课程
对自己擅长方面有一定的沉淀,愿意开设在线课程,会考虑和一些专业培训机构合作,要求有一定的一线经验,实实在在分享课程。有兴趣的联,有偿工作。
磨链(mochain)社区招募相关人员
编号社区内岗位具体工作内容
1.社区运营组每周有固定时间投入社区的建设,包括活动策划,社区门户的维护,相关分享文档编辑,每天社区分享在各个平台的发布,规划整个社区运行。
2核心活动组织者负责社区相关具体学习小组,线上线下活动,社区和合作社区、合作企业的具体合作。
3社区核心技术组社区核心技术输出,普及区块链是一个方面,具体实实在在做一些事情,包括社区内的具体实践项目
4编辑美工组建设良好的门面,一些宣传的内容的美工,一些文章的编辑。
PS:想加入磨链的,或者具体参与到磨链的建设中的,请加磨链组织者微信(jackyjin09)。并且注明自己的能参与的编号(1.2.3.4),欢迎每一位区块链技术爱好者加入磨链,一块琢磨区块链技术
关于磨链和相关合作
磨链”---取磨炼之意,旨在普及区块链技术,磨炼技术,更好投身区块链行业。有兴趣一块琢磨区块链技术,联系笔者微信(jackyjin09)。
磨链社区是一个纯粹的技术社区,欢迎相关技术合作,在不违反原则的前提下,积极参与合作。
你可以在这里找到我们:
磨链社区公众号:
1. 磨链社区:http://mochain.info
2. Github : https://github.com/mochain
3. Gitter 聊天: https://gitter.im/mochain
4. 知识星球: https://t.zsxq.com/M3BMVZN
5. 知乎:https://www.zhihu.com/people/mochain
(持续更新中)
合作社区
趣链科技技术团队
HiBlock区块链社区