分类
Uncategorized

共识过程

底层链网络每隔几秒就会产生一个新的区块,这个区块的产生过程就是所有网络节点 RPCA 共识的过程。假设共识过程是成功的,并且网络中没有分叉产生,那么新生成的区块就是全网唯一的。 RPCA 对交易分两个阶段完成,第一阶段是达成交易集的共识,第二阶段是对新生成的区块进行提议,最终形成被共识过的区块。达成交易集的共识分轮进行,在每一轮中进行下面的操作:每个节点在共识开始时尽可能多的收集所能收集到的需要共识的交易 并放到“候选集”里面;每个节点对它信任节点列表中的 “候选集”做一个并集,并对每一个交易进行投票; UNL 中的服务节点交流交易的投票结果,达到一定投票比例的交易会进入到下一轮,达不到比例的交易要么被丢弃,要么进入到下一次共识过程的候选集中;在最终轮中,所有投票超过 80%的交易会被放到共识过的交易集中,这里的交易集与比特币类似,也是 Merkle 树的数据结构。形成交易集后,每个节点开始打包新的区块,打包区块的过程如下:把新的区块号、共识交易集的 Merkle 树根 Hash、父区块 Hash、当前时间戳等内容放到一起,计算一个区块哈希;每个节点广播自己得出的区块哈希到它可见的节点,这里的可见节点不仅仅指可信列表中的节点,而是通过节点发现过程能发现的节点;节点收集到它所有可信列表中节点广播过来的区块哈希后,结合自己生成的区块哈希,对每个区块哈希计算一个比例,如果某一哈希的比例超过一个阈值(一般是 80%),则认为这个哈希是共识通过的区块哈希。如果自己的哈希与之相同,则说明自己打包的区块得到了确认,是新的被共识过的区块,直接存到本地,并且更新状态。如果自己的哈希与共识通过的哈希不同,那就需要去某个区块哈希正确的节点索要新的区块信息,要到之后存储到本地并且更新当前状态;如果上面没有对某一区块哈希超过设定的阈值,那么重新开始共识过程,直到满足条件。至此,一个区块的共识过程结束,开启下一轮共识过程。sskoo区块链比特币www.qkl91.com.com (42)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注