【技术实现步骤摘要】
区块还原方法、设备和存储介质
本申请涉及区块链
,具体涉及一种区块还原方法、设备和存储介质。
技术介绍
在申请人先前所提出的交易广播机制(具体可参考申请人所申请的各项交易广播或区块广播等专利文本)中,交易哈希由交易的交易内容生成,区块的区块头信息中的梅克尔根由区块的各交易的交易哈希计算生成,区块链节点在收到一笔交易,假设该交易内容为content(X),区块链节点先判断本地是否已存有与content(X)相同的另一笔交易:若存有,则丢弃新接收的交易;若未存有,则将新接收的交易存入本地交易池。在申请人先前所提出的区块验证机制(具体可参考申请人所申请的各项区块生成、区块广播或区块验证等专利文本)中,生成区块的区块链节点将所生成的区块的数据集合(包括所生成的区块的区块头信息和交易哈希列表)发送给其它区块链节点;其它区块链节点在接收区块时,根据交易哈希列表在本地交易池查找所接收区块的各交易,根据所查找到的各交易的交易哈希计算梅克尔根,在判断所计算的梅克尔根与区块头信息中的梅克尔根相同时,再根据所接收的数据集合和所查找到的各交易组装还原第一区块,执行所还原的第一区块得到执行结果,但执行结果与区块头信息中的执行结果不一致。在测试使用上述机制的区块链网络时,假设区块链中有ABCD四个区块链节点,偶然发现两笔交易哈希相同但签名不同的交易tx1(sig_a1(content(M)))和tx2(sig_a2(content(M)));假设A、B先收到tx1,C、D先收到tx2;A、B收到tx1后,再收到tx2时,由于tx1
【技术保护点】
1.一种区块还原方法,其特征在于,交易池包括两个队列,区块链节点从所述交易池中的第一队列拉取交易生成区块,所述方法适用于区块链节点,所述方法包括:/n接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:/n是,则将所述第一交易存入本地交易池的第二队列;/n接收第一区块链节点在打包第一区块后广播的第一数据集合;其中,所述第一数据集合包括所述第一区块的第一区块头和第一交易哈希列表;/n根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块,计算所还原的第一区块的第一状态哈希;/n判断所述第一状态哈希与所述第一区块头中的第二状态哈希是否相同:/n否,则根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;以及/n判断在所述第二队列中所查找到的交易的数量是否为1:/n是,则删除所述第一队列中与在所述第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将所述第二交易移入所述第一队列以再次还原所述第一区块;以及,/n计算再次还原的第一区块的第三状态哈希值;/n判断所述第三状态哈 ...
【技术特征摘要】
1.一种区块还原方法,其特征在于,交易池包括两个队列,区块链节点从所述交易池中的第一队列拉取交易生成区块,所述方法适用于区块链节点,所述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易,并判断本地交易池的第一队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:
是,则将所述第一交易存入本地交易池的第二队列;
接收第一区块链节点在打包第一区块后广播的第一数据集合;其中,所述第一数据集合包括所述第一区块的第一区块头和第一交易哈希列表;
根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块,计算所还原的第一区块的第一状态哈希;
判断所述第一状态哈希与所述第一区块头中的第二状态哈希是否相同:
否,则根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;以及
判断在所述第二队列中所查找到的交易的数量是否为1:
是,则删除所述第一队列中与在所述第二队列中所查找到的第二交易的交易哈希相同的第三交易,并将所述第二交易移入所述第一队列以再次还原所述第一区块;以及,
计算再次还原的第一区块的第三状态哈希值;
判断所述第三状态哈希值是否与所述第一状态哈希值相同:
否,则向所述第一区块链节点请求所述第一区块;
否,则向所述第一区块链节点请求所述第一区块。
2.根据权利要求1所述的方法,其特征在于,所述将所述第一交易存入本地交易池的第二队列包括:
判断本地交易池的第二队列中是否存在与所述第一交易的交易哈希相同、签名不同的交易:
否,则将所述第一交易存入本地交易池的第二队列;
是,则丢弃所述第一交易。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则删除所查找到的各交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块包括:
根据所述第一交易哈希列表在所述第二队列中查找所述第一区块的各交易;
判断在所述第二队列中所查找到的交易的数量是否大于1:
是,则从所查找到的各交易中保存一个交易并删除其它交易,并根据所述第一交易哈希列表在所述第一队列中查找所述第一区块的各交易以还原所述第一区块。
5.一种区块还原方法,其特征在于,交易池包括两个队列,区块链节点从所述交易池中的第一队列拉取交易生成区块,所述方法适用于区块链节点,所述方法包括:
接收客户端发送的或其它区块链节点广播的第一交易...
【专利技术属性】
技术研发人员:何正军,王志文,吴思进,
申请(专利权)人:杭州复杂美科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。