一种基于区块链的交易超时控制方法与流程

文档序号:11621191阅读:347来源:国知局

本发明涉及一种基于区块链的交易超时控制方法,在现有区块链技术的基础上,添加了交易超时相关的协议和处理方法,增强用户对分布式系统中交易延迟掌控力,简化了上层业务中的超时处理逻辑。



背景技术:

区块链是一种新的分布式技术,由一个个顺序排列而成的交易组成块,再由一个个顺序排列而成的块组成链,每个块包含一个自增的高度作为编号,还有一个时间戳用于记载打包时间。用户数据的安全性依赖公私钥体系,只有用户私钥签名的交易才是合法的交易,故他人无法代为发起,且每个交易只存在唯一id,以确保无法重复发起。

用户每次操作需主动为新交易单独签名并广播进网络,但由于网络的分布式特性,交易存在一定的丢失概率、交易广播入网及节点打包入块需要时间、网络拥塞时需排队等待、出块时间间隔不固定等多种因素,导致用户无法完全立即得到自己的交易是否被打包的响应结果,用户只能后需等待一段随机性的时间,才能查看在哪个高度入块,如果长期等不到入块结果,则推断交易可能丢失或可能已经失败,需重新发起覆盖交易,但这期间还是有一定概率之前的交易会被打包入块。



技术实现要素:

本发明的目的在于针对现有技术的不足,提供一种基于区块链的交易超时控制方法。

本发明的目的是通过以下技术方案实现的:一种基于区块链的交易超时控制方法,包括以下步骤:

步骤1:用户实时同步区块链;

步骤2:用户设置交易的“超时类别”和“超时期限”,并发起交易,包括以下三种形式:

(1)“超时类别”为“永不超时”,“超时期限”设置为空。

(2)“超时类别”为“按时间戳”,“超时期限”为t0+t’,其中t0为用发起交易的最新时间戳,t’为可以接受的最长等待时间;

(3)“超时类别”为“按块高度”,“超时期限”为b0+b’,其中,b0为发起交易的最新块高度,b’为可以接受的最长等待高度。

步骤3:出块节点在生成区块前,得出待出块的高度b1,以及区块时间戳t1,在收到用户交易后,首先判断交易的“超时类别”字段,进行如下处理:

如果“超时类别”是“永不超时”,则不需判断超时逻辑,继续原有处理逻辑。

如果“超时类别”是“按时间戳”,则判断交易的“超时期限”大于等于t1,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于t1,则该交易已超时,作为非法交易处理。

如果“超时类别”是“按块高度”,则判断交易的“超时期限”大于等于b1,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于b1,则该交易已超时,作为非法交易处理。

步骤4:同步节点在收到新的区块后,读取新块的块高度b2和时间戳t2,若新块的块高度b2比上一个块的高度大1,并且新块的时间戳t2大于上一个块的时间戳,同时小于本地时间,则进入步骤5,否则为非法区块

步骤5:同步节点逐个检验区块内交易,如果交易的“超时类别”是“永不超时”,则不需判断超时逻辑,继续原有处理逻辑。如果交易的“超时类别”是“按时间戳”,则判断交易的“超时期限”大于等于t2,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于t2,则该交易已超时,作为非法交易处理。如果交易的“超时类别”是“按块高度”,则判断交易的“超时期限”大于等于b2,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于b2,则该交易已超时,作为非法交易处理。

本发明的有益效果在于:为用户在区块链上的交易设定了明确的超时机制,不需要再对交易能否上链做概率性的估算,易于用户在客户端做超时处理操作。

附图说明

图1为总体架构示意图。

具体实施方式

本发明涉及一种基于区块链的交易超时控制方法,大致如下:用户发起交易时,需要为交易设定一个超时期限,可以是时间戳或块高度,节点在打包交易时首先判断该超时期限,如果没有超时则打包交易,如果超时则丢弃交易,用户实时监控区块链如果超过该超时期限,自己的交易还没有被打包入区块,则可以认定交易失败,需重新发起,不需再等待。具体包括以下步骤:

步骤1:用户实时同步区块链;

步骤2:用户设置交易的“超时类别”和“超时期限”,并发起交易,包括以下三种形式:

(1)“超时类别”为“永不超时”,“超时期限”设置为空。

(2)“超时类别”为“按时间戳”,“超时期限”为t0+t’,其中t0为用发起交易的最新时间戳,t’为可以接受的最长等待时间;

(3)“超时类别”为“按块高度”,“超时期限”为b0+b’,其中,b0为发起交易的最新块高度,b’为可以接受的最长等待高度。

步骤3:出块节点在生成区块前,得出待出块的高度b1,以及区块时间戳t1,在收到用户交易后,首先判断交易的“超时类别”字段,进行如下处理:

如果“超时类别”是“永不超时”,则不需判断超时逻辑,继续原有处理逻辑。

如果“超时类别”是“按时间戳”,则判断交易的“超时期限”大于等于t1,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于t1,则该交易已超时,作为非法交易处理。

如果“超时类别”是“按块高度”,则判断交易的“超时期限”大于等于b1,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于b1,则该交易已超时,作为非法交易处理。

步骤4:同步节点在收到新的区块后,读取新块的块高度b2和时间戳t2,若新块的块高度b2比上一个块的高度大1,并且新块的时间戳t2大于上一个块的时间戳,同时小于本地时间,则进入步骤5,否则为非法区块

步骤5:同步节点逐个检验区块内交易,如果交易的“超时类别”是“永不超时”,则不需判断超时逻辑,继续原有处理逻辑。如果交易的“超时类别”是“按时间戳”,则判断交易的“超时期限”大于等于t2,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于t2,则该交易已超时,作为非法交易处理。如果交易的“超时类别”是“按块高度”,则判断交易的“超时期限”大于等于b2,则未超时,继续原有交易处理逻辑;如果交易的“超时期限”小于b2,则该交易已超时,作为非法交易处理。



技术特征:

技术总结
本发明公开了一种基于区块链的交易超时控制方法,用户发起交易时,需要为交易设定一个超时期限,可以是时间戳或块高度,节点在打包交易时首先判断该超时期限,如果没有超时则打包交易,如果超时则丢弃交易,用户实时监控区块链如果超过该超时期限,自己的交易还没有被打包入区块,则可以认定交易失败,需重新发起,不需再等待;本发明为用户在区块链上的交易设定了明确的超时机制,不需要再对交易能否上链做概率性的估算,易于用户在客户端做超时处理操作。

技术研发人员:谢晗剑;岳利鹏
受保护的技术使用者:杭州秘猿科技有限公司
技术研发日:2017.03.29
技术公布日:2017.08.04
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1