利索能及
我要发布
收藏
专利号: 2020105144654
申请人: 上海朝夕网络技术有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-11-27
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种区块链的共识方法,所述区块链包括n个核心节点,其特征在于,包括步骤:P1,接收待共识的交易数据,接收所述交易数据的核心节点记为核心节点Node1,其他核心节点记为Node2~Noden;

P2,读取当前核心节点Node1的状态值S1和其他核心节点Node2~Noden的状态值S2~Sn;

P3,根据其他核心节点Node2~Noden的状态值S2~Sn计算得到状态根哈希值Rs;

P4,根据所述交易数据及当前出块周期核心节点Node1的状态值S1,计算得到交易根哈希值Rt;

P5,生成区块,对所述区块进行签名并将所述区块广播给其他核心节点Node2~Noden进行验证,所述区块中包括所述状态根哈希值Rs、交易根哈希值Rt、其他核心节点Node2~Noden的状态值S2~Sn以及所述交易数据;

P6,接收其他核心节点Node2~Noden对所述区块的验证结果,若所述验证结果满足预设的共识条件,则将所述区块写入核心节点Node1管理的本地区块链中,然后进入下一出块周期,重复步骤P1~P6。

2.如权利要求1所述的一种区块链的共识方法,其特征在于,所述验证结果包括对其他核心节点Node2~Noden的状态值S2~Sn进行验证、根据所述交易根哈希值Rt和其他核心节点上存储的核心节点Node1的状态值进行验证以及对所述区块的签名进行验证的验证结果。

3.如权利要求1或2所述的一种区块链的共识方法,其特征在于,所述步骤P2具体是:读取上一出块周期核心节点Node1生成的交易根哈希值Rt',将交易根哈希值Rt'作为当前出块周期核心节点Node1的状态值S1;

接收其他核心节点Node2~Noden广播的区块,对区块进行验证,若验证通过,则更新核心节点Node1中存储的其他核心节点Node2~Noden的状态值S2~Sn。

4.如权利要求1或2所述的一种区块链的共识方法,其特征在于,所述步骤P1包括:对所述交易数据的签名和重复性进行验证;

若所述交易数据的签名正确且交易不重复,则将所述交易数据放入交易缓冲池,若所述交易缓冲池的交易数据满足预设条件,则触发执行步骤P2~P6。

5.如权利要求1或2所述的一种区块链的共识方法,其特征在于,所述步骤P3和步骤P4中,分别采用默克尔树计算得到状态根哈希值Rs和交易根哈希值Rt。

6.如权利要求1或2所述的一种区块链的共识方法,其特征在于,所述方法使得n个所述核心节点可以同时挖矿。

7.一种区块链的共识系统,所述共识系统包括n个核心节点,其特征在于,核心节点包括:交易数据接收模块,用于接收待共识的交易数据,接收所述交易数据的核心节点记为核心节点Node1,其他核心节点记为Node2~Noden;

状态维护模块,用于读取当前出块周期核心节点Node1的状态值S1和其他核心节点Node2~Noden的状态值S2~Sn;

状态处理模块,用于根据其他核心节点Node2~Noden的状态值S2~Sn计算得到状态根哈希值Rs;

交易处理模块,用于根据所述交易数据及当前出块周期核心节点Node1的状态值S1,计算得到交易根哈希值Rt;

挖矿模块,用于生成区块并对所述区块进行签名,所述区块中包括所述状态根哈希值Rs、交易根哈希值Rt、其他核心节点Node2~Noden的状态值S2~Sn以及所述交易数据;

广播模块,用于将所述区块广播给其他核心节点Node2~Noden进行验证;

验证结果接收模块,用于接收其他核心节点Node2~Noden对所述区块的验证结果,若所述验证结果满足预设的共识条件,则将所述区块写入核心节点Node1管理的本地区块链中。

8.如权利要求7所述的一种区块链的共识系统,其特征在于,所述验证结果包括对其他核心节点Node2~Noden的状态值S2~Sn进行验证、根据所述交易根哈希值Rt和其他核心节点上存储的核心节点Node1的状态值进行验证以及对所述区块的签名进行验证的验证结果。

9.如权利要求7或8所述的一种区块链的共识系统,其特征在于,所述状态维护模块包括:自身状态更新模块,用于读取上一出块周期核心节点Node1生成的交易根哈希值Rt',将交易根哈希值Rt'作为当前出块周期核心节点Node1的状态值S1;

其他核心节点状态更新模块,用于接收其他核心节点Node2~Noden在其他出块周期广播的区块,对区块进行验证,若区块验证通过,则更新核心节点Node1中存储的其他核心节点Node2~Noden的状态值S2~Sn。

10.一种电子设备,包括处理器和存储器,其特征在于,其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1至6中任一项所述的方法。