【技术实现步骤摘要】
基于智能合约设计的关联交易重排方法、系统及介质
本专利技术涉及区块链
,具体地,涉及基于智能合约设计的关联交易重排方法、系统及介质。
技术介绍
目前,以比特币、以太坊为代表的绝大多数的区块链都采用了区块+链式结构,其特点在于全网的交易都在一条单链环环相扣的链上被记录。即使每个节点收到的广播交易不完全一致,但链式区块会通过工作量证明(PoW)、权益证明(PoS)等机制让某一节点提出的区块得到全网的共识。这种线性增长的区块链结构保证了单笔交易的有序性。但是随着区块链的业务的成熟,业务的交易复杂度也提高了,由目前的单笔交易上链衍生到多笔关联交易顺序上链(多笔交易之间有关联,交易之间有前后置关系,需要等前置交易上完链,才能进行后置交易上链),目前行业技术中对关联交易顺序上链的技术方案大部分是通过外部业务系统维护交易的关联关系,通过循环的调用链查询前置交易的上链状态来决定后置交易是否继续发起上链,这种技术方案带来的问题是性能非常慢,而且需要依赖外部系统来进行关联关系的维护,成本太高。专利文献CN201911128389. ...
【技术保护点】
1.一种基于智能合约设计的关联交易重排方法,其特征在于,在智能合约中设计了交易分发组件、交易处理组件、关联交易组件、交易缓冲池、交易结果hash映射表,基于以上组件实现关联的交易的顺序上链的控制。/n
【技术特征摘要】
1.一种基于智能合约设计的关联交易重排方法,其特征在于,在智能合约中设计了交易分发组件、交易处理组件、关联交易组件、交易缓冲池、交易结果hash映射表,基于以上组件实现关联的交易的顺序上链的控制。
2.根据权利要求1所述的基于智能合约设计的关联交易重排方法,其特征在于,包括:
步骤1:交易分发组件接收上链的交易数据包;
步骤2:交易分发组件对数据包进行拆解,从解析的每笔交易中判断该交易是否有关联交易;
步骤3:交易分发组件对没有关联交易的数据转发给交易处理组件直接进行上链操作;
步骤4:交易分发组件对有关联交易的数据转发给关联交易组件;
步骤5:关联交易组件接收到交易之后,首先对交易进行前后置交易关系解析;
步骤6:关联交易组件根据解析出来的每笔交易的前后置交易关系,对前置交易进行交易上链结果检索;
步骤7:关联交易组件通过交易上链结果hash映射表线性检索到前置交易是否上链成功;
步骤8:关联交易组件通过前置交易id去交易上链结果映射hash中检索到前置交易的上链结果为上链成功时,则直接把当前交易准发给交易处理组件进行上链,接收到交易处理组件反馈当前交易上链成功以后,需要去交易池中检索一下是否有当前交易的后置交易需要处理上链的,如果有则进行处理上链;
步骤9:关联交易组件通过前置交易id去交易上链结果映射hash中检索到前置交易的上链结果为未上链或未知时,则把当前交易放置到交易缓冲池的双向链表中等待上链。
3.根据权利要求2所述的基于智能合约设计的关联交易重排方法,其特征在于,所述步骤S5中所述的对交易进行前后置交易关系解析指:关联交易组件接收到交易数据之后,通过交易数据中的前置交易字段是否为空,解析出当前这笔交易与其他交易的前后置关系。
4.根据权利要求2所述的基于智能合约设计的关联交易重排方法,其特征在于,所述步骤1:
交易分发组件主要负责接收业务系统请求上链的交易数据包,接收的上链的交易数据包里可以包含多笔交易;
所述步骤2:
数据包中解析出来的每笔交易信息中会包含自己的前置交易的id,如果前置交易id为空则说明无前置交易;
所述步骤3:
交易处理组件主要负责处理交易上链逻辑,当交易上链成功以后,交易处理组件会把交易的上链结果快速同步至交易上链结果映射hash表;
所述步骤4:
关联交易组件主要负责处理有关联交易逻辑的交易;
所述步骤5:
关联交易组件通过解析交易数据体中的前置交易id,来判断交易是否是关联交易,如果前置交易id为空则说明无前置交易;
所述步骤6:
关联交易组件根据前置交易id,去交易上链结果映射hash表通过key的指针索引,知道前置交易是否上链成功。
5.根据权利要求2所述的基于智能合约设计的关联交易重排方法,其特征在于,所述步骤8包括:
步骤8.1:关联交易组件检索到每笔交易中的前置交易如果已经上链成功,则直接把当前交易准发给交易处理组件进行上链,交易处理组件处理完当前交易上链成功以后,在同步交易结果只交易上链结果映射hash表以后,通过方法弹栈的方式反馈上链结果给关联交易组件,关联交易组件接收到交易处理组件反馈后,在通过当前交易id去交易缓冲池中链表指针检查当前交易是否是后置交易需要处理;
步骤8.2:关联交易组件如果检测到交易池中有当前交易的后置交易需要处理,则会把交易池的后置交易的数据拿出来,转发给交易处理组件进行上链,利用方法弹栈方法再借助递归算法直到处理完成所有的后置交易上链为止。
6.根据权利要求2所述的基于智能合约设计的关联交易重排方法,其特征在于,所述步骤9:
关联交易组件通过前置交易id去交易上链结果映射hash中检索到前置交易的上链结果为未上链或未知时,则会把当前交易放置到交易缓冲池中,交易缓冲池设计的是一个双向链表结构存储池,只需要根据当前交易的前置交易id指针方式就可以很方便的把当前交易拼接到交易缓冲池中对应前置交易的后面,形成链表结构,...
【专利技术属性】
技术研发人员:李星星,郑姣,宋金泽,
申请(专利权)人:上海万向区块链股份公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。