通过占位符减少交易读写冲突的方法与装置制造方法及图纸

技术编号:33130632 阅读:14 留言:0更新日期:2022-04-17 00:46
本发明专利技术实施例公开了一种通过占位符减少交易读写冲突的方法与装置,其中方法包括:背书过程,用户将交易发送给一组满足背书策略要求的背书节点,请求背书;所述背书节点将该交易模拟执行时要读取的状态使用占位符替换,生成使用占位符表达的读写集并对读写集进行签名作为背书结果返回;实际执行过程,用户收到满足背书策略要求的背书节点集合给出的对读写集的签名后,将交易、读写集、背书节点的签名发送给区块链网络;区块链网络将交易排序共识后交给执行节点执行;执行节点执行时将占位符用实际状态替换,求得最终要写入状态的值,写入区块链状态。入区块链状态。入区块链状态。

【技术实现步骤摘要】
通过占位符减少交易读写冲突的方法与装置


[0001]本专利技术属于区块链
,具体涉及一种通过占位符减少交易读写冲突的方法与装置。

技术介绍

[0002]在像超级账本(Hyperledger Fabric)这样的先执行后共识的联盟链,对链上智能合约的调用是通过交易背书完成的。具体来说,一般包括以下步骤:用户将智能合约调用的交易发送到链上的多个背书节点请求背书;背书节点收到交易后,根据当前链的状态模拟执行交易,将交易的执行结果(读取和写入的状态)签名后返回给用户,完成背书。用户收集到足够多满足链上要求、执行结果相同的的交易背书后,将这些背书(包含执行结果)聚合起来,交由共识节点进行排序。共识节点完成排序并将这些交易背书打包成块,交给执行节点。执行节点收到块后,验证交易背书并检查执行结果的读写状态,将合法的写入状态应用到区块链的状态上。
[0003]检验执行结果的读写状态过程,主要是检测在背书时读取的状态在执行时是否已经被修改过了,如果已经被修改过,则交易失败不会写入链的状态中。
[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](1)通过在交易背书时将容易出现修改的值以占位符的形式替代,直到共识完成后,执行节点开始写入区块链时再读出最新的值写入,从而避免出现背书时读取的值在执行时已经出现修改的情况。
[0029](2)在使用了占位符方案后,热点数据的读取会被推迟到执行阶段,即使多笔交易同时读取和修改热点数据,由于执行阶段的是依次串行执行的,下一笔交易会直接读到上一笔交易修改后的最新内容,也就不存在读写冲突,使得这样的合约能够高效地并发调用。
附图说明
[0030]图1为本专利技术一实施例的通过占位符减少交易读写冲突的方法的步骤流程图;
[0031]图2为本专利技术一实施例的通过占位符减少交易读写冲突的装置的结构示意图;
[0032]图3为本专利技术一实施例的一种计算机设备的结构示意图。
具体实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种通过占位符减少交易读写冲突的方法,其特征在于,包括:背书过程,用户将交易发送给一组满足背书策略要求的背书节点,请求背书;所述背书节点将该交易模拟执行时要读取的状态使用占位符替换,生成使用占位符表达的读写集并对读写集进行签名作为背书结果返回;实际执行过程,用户收到满足背书策略要求的背书节点集合给出的对读写集的签名后,将交易、读写集、背书节点的签名发送给区块链网络;区块链网络将交易排序共识后交给执行节点执行;执行节点执行时将占位符用实际状态替换,求得最终要写入状态的值,写入区块链状态。2.如权利要求1所述的通过占位符减少交易读写冲突的方法,其特征在于,所述背书节点将该交易模拟执行时要读取的状态使用占位符替换包括:背书节点提供以占位符的方式读取状态的接口;背书节点在模拟执行智能合约时发现以占位符形式读取状态的接口调用时,在读取集内添加记录,所述记录包括读取的状态名和占位符,将所述占位符返回给智能合约,所述占位符支持原本读取的状态的类型的所有运算,运算结果为带占位符的表达式。3.如权利要求1所述的通过占位符减少交易读写冲突的方法,其特征在于,执行节点执行时将占位符用实际状态替换,并执行交易包括:当执行节点在执行时发现读取集带占位符时,从当前链状态中读出最新的值,将写入集中对应的占位符用该值填充并对表达式求值,将求得的值写入相应的链状态中。4.如权利要求1至3任一所述的通过占位符减少交易读写冲突的方法,其特征在于,对于一条联盟链,由若干个组织组成,所述联盟链上的节点分属不同组织,背书策略为要求所执行的交易至少经过每个组织里的一个背书节点背书。5.一种通过占位符减少交易读写冲突的装置,其特征在于,包括若干背书节点和执行节点,每一背书节点包括背书请求接收模块和背书结果生成模块,每一执行节点包括执行信息接收模块和交易执行模块,所述背书请求接收模块用于接收用户将交易发送给一组满足背书策略要求的背书节点的请求背书的信息;所述背书结果生成...

【专利技术属性】
技术研发人员:王晓亮王福音
申请(专利权)人:杭州溪塔科技有限公司
类型:发明
国别省市:

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

1