读写集生成方法、装置、存储介质及电子设备制造方法及图纸

技术编号:33775329 阅读:29 留言:0更新日期:2022-06-12 14:28
本公开涉及一种读写集生成方法、装置、存储介质及电子设备,以解决基于读写集方式的区块链中所存在的读集锁问题。所述方法包括:接收应用端发送的交易预案;模拟执行所述交易预案,得到所述交易预案的目标读写集,所述目标读写集包括目标读集以及目标写集,所述目标读集用于确定所述目标写集是否有效,在所述目标写集有效的情况下用于更新世界状态数据库;并,根据所述目标读写集缓存写集预执行数据,以在根据所述目标写集更新所述世界状态数据库之前用于针对新的交易预案生成新的目标读写集。写集。写集。

【技术实现步骤摘要】
读写集生成方法、装置、存储介质及电子设备


[0001]本公开涉及区块链
,具体地,涉及一种读写集生成方法、装置、存储介质及电子设备。

技术介绍

[0002]区块链,从狭义上讲是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。每一个区块都包含了上一个区块的哈希值(hash),从创始区块(genesis block)开始连接,数据一旦记录至区块,那么这个数据就不可逆。从广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
[0003]区块链通过交易的方式修改分布式账本。目前区块链世界主要有两种账本方式,一种是记录交易,比如比特币。一种是记录状态,比如以太坊和超级账本(即Hyperledger)。基于记录交易的区块链,由于没有直接记录最终状态,所以对智能合约不太友好。而基于状态记录的以太坊和Hyperledger则非常适合使用智能合约。智能合约赋予了区块链实现无限应用的可能,所以智能合约的使用越来越广泛。同样是基于状态记录的区块链,以太坊和Hyperledger有着不同的交易执行机制。简单来说,以太坊是在共识的时候执行交易,而Hyperledger是在共识之前执行交易。在共识之前执行交易,共识只决定交易的最终顺序的一个好处是,区块链不会发生分叉,一旦出块,执行的最终结果就确定,不会存在回滚等情况。所以在基于Hyperledger的交易场景中,交易入块后,无需等待确认,就可直接返回交易的执行结果。但是,在基于Hyperledger的交易过程中,存在读集锁问题。

技术实现思路

[0004]本公开的目的是提供一种读写集生成方法、装置、存储介质及电子设备,以解决基于读写集方式的区块链中所存在的读集锁问题。
[0005]为了实现上述目的,本公开实施例的第一方面提供一种读写集生成方法,所述方法包括:
[0006]接收应用端发送的交易预案;
[0007]模拟执行所述交易预案,得到所述交易预案的目标读写集,所述目标读写集包括目标读集以及目标写集,所述目标读集用于确定所述目标写集是否有效,在所述目标写集有效的情况下用于更新世界状态数据库;并,
[0008]根据所述目标读写集缓存写集预执行数据,以在根据所述目标写集更新所述世界状态数据库之前用于针对新的交易预案生成新的目标读写集。
[0009]可选地,所述目标读集包括唯一键以及对应的版本,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,包括:
[0010]在模拟执行所述交易预案的过程中,确定所述唯一键;
[0011]在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本确定所述唯一键的所述版本,以得到所述目标读集。
[0012]可选地,所述目标写集包括所述唯一键以及对应的修改值,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,还包括:
[0013]在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史修改值确定所述修改值,以得到所述目标写集。
[0014]可选地,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,包括:
[0015]模拟执行所述交易预案,以基于本地状态数据库确定初始读写集,所述初始读写集包括初始读集,所述初始读集包括唯一键以及对应的初始版本;
[0016]在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本修正所述初始读集中的所述初始版本,以得到所述目标读集。
[0017]可选地,所述初始读写集还包括初始写集,所述初始写集包括所述唯一键以及对应的初始修改值;
[0018]所述方法还包括:
[0019]在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史修改值修正所述初始写集中的所述初始修改值,以得到所述目标写集。
[0020]可选地,所述在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本确定所述唯一键的所述版本,以得到所述目标读集,包括:
[0021]若缓存有多个包括所述唯一键的所述历史写集预执行数据,则从最近一次缓存的所述历史写集预执行数据中确定所述唯一键的所述版本,得到所述目标读集。
[0022]可选地,所述接收应用端发送的交易预案,包括:
[0023]接收所述应用端发送的多个所述交易预案;
[0024]所述模拟执行所述交易预案,得到所述交易预案的目标读写集,并根据所述目标读写集缓存写集预执行数据,包括:
[0025]依次针对多个所述交易预案中的每一所述交易预案执行所述模拟执行所述交易预案,得到所述交易预案的目标读写集,并根据所述目标读写集缓存写集预执行数据的步骤。
[0026]可选地,所述依次针对多个所述交易预案中的每一所述交易预案执行所述模拟执行所述交易预案,得到所述交易预案的目标读写集,并根据所述目标读写集缓存写集预执行数据的步骤,包括:
[0027]针对多个所述交易预案进行排序,得到交易预案序列;
[0028]根据所述交易预案序列,依次针对各所述交易预案,执行所述模拟执行所述交易预案,得到所述交易预案的目标读写集,并根据所述目标读写集缓存写集预执行数据的步骤。
[0029]可选地,所述针对多个所述交易预案进行排序,得到交易预案序列,包括:
[0030]确定交易预案之间具有引用关系的目标交易预案;
[0031]将各所述目标交易预案捆绑为一个整体预案;
[0032]将所述整体预案与除所述目标交易预案以外的其他交易预案进行排序,得到所述交易预案序列。
[0033]可选地,所述方法还包括:
[0034]在根据所述目标写集更新所述世界状态数据库之后,删除根据所述目标读写集缓存的所述写集预执行数据。
[0035]本公开实施例的第二方面提供一种读写集生成装置,所述装置包括:
[0036]接收模块,用于接收应用端发送的交易预案;
[0037]执行模块,用于模拟执行所述交易预案,得到所述交易预案的目标读写集,所述目标读写集包括目标读集以及目标写集,所述目标读集用于确定所述目标写集是否有效,在所述目标写集有效的情况下用于更新世界状态数据库;并根据所述目标读写集缓存写集预执行数据,以在根据所述目标写集更新所述世界状态数据库之前用于针对新的交易预案生成新的目标读写集。
[0038]可选地,所述目标读集包括唯一键以及对应的版本,所述执行模块包括:
[0039]第一确定子模块,用于在模拟执行所述交易预案的过程中,确定所述唯一键;
[0040]第二确定子本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种读写集生成方法,其特征在于,所述方法包括:接收应用端发送的交易预案;模拟执行所述交易预案,得到所述交易预案的目标读写集,所述目标读写集包括目标读集以及目标写集,所述目标读集用于确定所述目标写集是否有效,在所述目标写集有效的情况下用于更新世界状态数据库;并,根据所述目标读写集缓存写集预执行数据,以在根据所述目标写集更新所述世界状态数据库之前用于针对新的交易预案生成新的目标读写集。2.根据权利要求1所述的方法,其特征在于,所述目标读集包括唯一键以及对应的版本,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,包括:在模拟执行所述交易预案的过程中,确定所述唯一键;在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本确定所述唯一键的所述版本,以得到所述目标读集。3.根据权利要求2所述的方法,其特征在于,所述目标写集包括所述唯一键以及对应的修改值,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,还包括:在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史修改值确定所述修改值,以得到所述目标写集。4.根据权利要求1所述的方法,其特征在于,所述模拟执行所述交易预案,得到所述交易预案的目标读写集,包括:模拟执行所述交易预案,以基于本地状态数据库确定初始读写集,所述初始读写集包括初始读集,所述初始读集包括唯一键以及对应的初始版本;在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本修正所述初始读集中的所述初始版本,以得到所述目标读集。5.根据权利要求4所述的方法,其特征在于,所述初始读写集还包括初始写集,所述初始写集包括所述唯一键以及对应的初始修改值;所述方法还包括:在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史修改值修正所述初始写集中的所述初始修改值,以得到所述目标写集。6.根据权利要求2所述的方法,其特征在于,所述在确定缓存有包括所述唯一键的历史写集预执行数据的情况下,根据所述历史写集预执行数据中的历史版本确定所述唯一键的所述版本,以得到所述目标读集,包括:若缓存有多个包括所述唯一键的所述历史写集预执行数据,则从最近一次缓存的所述历史写集预执行数据中确定所述唯一键的所述版本,得到所述目标读集。7.根据权...

【专利技术属性】
技术研发人员:陈敏
申请(专利权)人:达闼机器人股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1