共识算法
元之田
小红书同名 | 亚洲第一商学院博士在读 | Financial Technology Research at HSBC Lab | 华南理工大学金融科技专业第一 |国家奖学金 |雅思7.5 |Global CBDC Challenge Finalist
展开
-
Perdersen承诺Hyperledger实现遇到的问题
调试记录: 核心思想:当出现以下问题时,多数是出现了空指针问题。这就意味着从区块链上读取的数据哪里出现了问题,导致接下来的代码无法运行。 1.在本地测试时使用HashMap替代stub,这里r_在判断的时候不能使用isEmpty,而需要判断是否与null相等;而在stub上需要使用方法isEmpty(); 2.删除了init方法;由于init方法与本实验无关,删除后导致区块链无法运行。注意脚本会判断isInit,第一个方法必须名为init。 setupPeerENV1 set -x if [[ "$COR原创 2020-07-28 10:41:45 · 255 阅读 · 0 评论 -
Perdersen加密 Hyperledger实现(java)
Perdersen加密 Hyperledger实现Perdersen承诺代码实现 Perdersen承诺 Pedersen 承诺是一个满足完美隐藏、计算绑定的同态承诺协议,其完美隐藏性不依 赖与任何困难性假设,计算绑定依赖于离散对数假设(DLA),其构造分为 3 个阶段: 初始化阶段 setup:选择阶为大素数 q 的乘法群 G、生成元,G==,公开元祖 (g,h,q); 承诺阶段 commit:承诺方选择随机数 r 作为盲因子,计算承诺值,然后发送 comm 给 接收者; 打开阶段 open:承诺方发送原创 2020-08-08 12:34:16 · 703 阅读 · 0 评论 -
综述:PBFT, Paxos, RAFT
综述:PBFT, Paxos, RAFTPBFTRaftPaxos总结 PBFT 共识算法的集群中有很多节点,它们都可以处理客户发来的请求,但是客户发送请求的顺序对于最终的结果存在很大的影响。因此,为了统一这个结果的顺序,PBFT采取选举一个leader的做法。而这个Leader是随机产生的。 基于拜占庭将军问题,一致性的确保主要分为这三个阶段:预准备(pre-prepare)、准备(prepare)和确认(commit)。流程如下图所示: 其中C为发送请求端,0123为服务端,3为宕机的服务端,具体步骤如原创 2020-07-06 17:36:20 · 574 阅读 · 0 评论 -
图解RAFT成员变更
图解RAFT成员变更问题是怎样的?一个一个节点扩充Joint Consensus 过渡态 这几天看了不上网上关于RAFT的成员变更的介绍,基本上是对原论文的翻译,毫无解释可言。因此准备结合自己的理解,通俗易懂地介绍一下成员变更的过程。这里面主要有2种方法,是本人搜集了一些论文总结思考所得。 问题是怎样的? 想象在我们的共识算法中,现在有3个节点,我们若想增加至5个节点,一般如何处理? 常用的方法是让所有服务器停机,再进行更新。那为什么要这么做呢? 这里引用论文中的图片。如图,我们在原有集群中有Server1原创 2020-06-10 18:40:02 · 757 阅读 · 0 评论