
技术摘要:
本发明提出一种基于一致性hash的能源区块链区块存储方法,区块链中最大节点数为N,编号为0‑N‑1,n为2^N,对于每一个节点T,通过对节点地址进行hash运算得出hash值h(T),h(T)%n为该节点对应于hash环中的位置;每一个记账周期中,主节点将交易打包为区块之后,计算区 全部
背景技术:
能源行业的交易和传统交易相比,有着交易频率高,数据量大的特点,传统的联盟 链区块链方案将所有数据存储到所有节点中,并且交易验证需要通过主节点进行,这对存 储空间和主节点的性能都有较大的影响。能源行业对安全的要求没有金融类交易的要求 高,可以考虑将区块存储到少数节点中,在节点出现故障的时候通过存储的备份进行恢复。
技术实现要素:
本发明所要解决的技术问题是,针对分布式能源交易的特点,提出一种存储效率 高,故障恢复快的适用于能源交易的区块存储方案。 本发明为解决上述技术问题所采用的技术方案是: 一种基于一致性hash的能源区块链区块存储方法,包括以下步骤: (1)节点状态初始化:对每一个节点IP进行hash运算,得到hash值h(T),通过对h (T)进行取模运算,得到m(T)=h(T)%n,其中n=2^N,N为最大节点数。每个节点将全局所有 节点的m(T)以及IP地址记录到本地,并与hash环上一个节点和下一个节点建立TCP长连接。 所有通过PBFT算法对主节点达成共识,选出主节点; (2)客户端提交交易:客户端将交易发送到主节点,主节点将交易记录到本地交易 池中; (3)主节点打包交易并备份存储区块体:主节点将当前交易池中所有交易打包到 区块中,并通过hash运算得出区块hash,h(B)。主节点通过对h(B)进行取模运算m(B)=h (B)%n,得到区块在hash环中的位置,通过对比本地所有节点的位置m(T),找到m(T)>m(B) 和m(T)