CN112102082A - 一种判定区块链交易执行结果的方法 - Google Patents
一种判定区块链交易执行结果的方法 Download PDFInfo
- Publication number
- CN112102082A CN112102082A CN202010858976.8A CN202010858976A CN112102082A CN 112102082 A CN112102082 A CN 112102082A CN 202010858976 A CN202010858976 A CN 202010858976A CN 112102082 A CN112102082 A CN 112102082A
- Authority
- CN
- China
- Prior art keywords
- transaction
- block
- time
- node
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Technology Law (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Economics (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明属于区块链技术领域,尤其为一种判定区块链交易执行结果的方法,在构建交易之前,从相关区块链节点上获取最新区块,从中解析出最新区快的打包时间T;若最新打包时间T与当前时间相差大于N*T,则认为节点与区块链网络尚未同步;根据具体上下文构建交易TXN,并设置交易过期时间为E;本发明为相关从业者提供了一种通用、可复制、与具体区块链网络无法的方法,去避免基于区块链的去中心化交易带来的结果不确定性,其中的核心关键点在于通过出块时间T判定节点状态以及交易过期时间E判定交易是否过期,用户可以采用一种通用、可复制、与具体区块链网络无法的方法,去避免基于区块链的去中心化交易带来的结果不确定性。
Description
技术领域
本发明属于区块链技术领域,具体涉及一种判定区块链交易执行结果的方法。
背景技术
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应 用模式。区块链(Blockchain),是比特币的一个重要概念,它本质上是一个去中心化的数据库,同时作为比特币的底层技术,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次比特币网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
去中心化,不是不要中心,而是由节点来自由选择中心、自由决定中心。简单地说,中心化的意思,是中心决定节点。节点必须依赖中心,节点离开了中心就无法生存。在去 中心化系统中,任何人都是一个节点,任何人也都可以成为一个中心。任何中心都不是永 久的,而是阶段性的,任何中心对节点都不具有强制性。
节点是区块链分布式系统中的网络节点,是通过网络连接的服务器、计算机、电话等, 针对不同性质的区块链,成为节点的方式也会有所不同。以比特币为例,参与交易或挖矿 即构成一个节点。
工作量证明是一种对应服务与资源滥用、或是阻断服务攻击的经济对策。一般是要求 用户进行一些耗时适当的复杂运算,并且答案能被服务方快速验算,以此耗用的时间、设 备与能源做为担保成本,以确保服务与资源是被真正的需求所使用。
时至今日,在与去中心化区块链网络进行交互的过程中,尚未有一种完备、可靠的方 式去判定发起的交易是否已经成功、失败、过期。对于一些对交易结果敏感的业务来说是 一个致命的缺点,未知的交易状态很容易导致相关业务无法正确去判定下一步该做怎么样 的决策。急需一种通用、可复制、与具体区块链网络无关的方法来解决这种问题。
因此,本技术领域人员提出了一种判定区块链交易执行结果的方法,以解决上述背景 中提出的问题。
发明内容
为解决上述背景技术中提出的问题。本发明提供了一种判定区块链交易执行结果的方 法,具有能够正确判定交易执行结果的特点。
为实现上述目的,本发明提供如下技术方案:一种判定区块链交易执行结果的方法, 包括如下步骤:
S1、在构建交易之前,从相关区块链节点上获取最新区块,从中解析出最新区快的打 包时间T;
S2、若最新打包时间T与当前时间相差大于N*T,则认为节点与区块链网络尚未同步, 直接退出并认为节点处于同步状态,否则进入下一步;
S3、根据具体上下文构建交易TXN,并设置交易过期时间为E;
S4、把步骤S3构建的交易TXN发送至相关区块链节点,若节点返回异常信息,根据具体业务进行处理并把交易状态标记为失败;否则认为交易已发出,保存交易标识符 TXN_HASH并进入下一个步骤;
S5、通过区块链节点查询交易标识符为TXN_HASH的交易回执,若成功获取交易回执, 那么根据回执中包含的结果判定交易是否成功,且把交易状态标记为成功或者失败;若获 取的交易回执为空,那么尝试获取最新区块,且从区块中获取出块时间T,若出块时间T 与当前时间相差大于N*T,那么认为节点再次进入同步状态,并把交易状态标记为未知且重新执行步骤S5。
优选的,步骤S2中N的取值与具体区块链相关。
优选的,步骤S3中E的取值与具体业务以及具体区块链相关。
优选的,步骤S5中若最新区块的出块时间T大于过期时间E,那么将交易状态标记为已 过期;否则重新执行步骤S5。
与现有技术相比,本发明的有益效果是:
1、推出一种通用、可复制、与具体区块链网络无法的方法,去避免基于区块链的去中心化交易带来的结果不确定性,从而使得相关业务的健壮性、可维护性等得以改善。
2、通过本方案,用户可以采用一种通用、可复制、与具体区块链网络无法的方法,去避免基于区块链的去中心化交易带来的结果不确定性。从而把主要精力放在具体业务上,无需再为交易结果不确定性带来的隐患而担忧。
3、由于职位上的分工,大部分情况下负责业务的从业人员的人并不了解区块链,了 解区块链的从业人员又不负责具体的业务开发,在这种情况下,一种通用、可复制、与具体区块链网络无法的判定交易执行结果的方法可以使业务开发者在不了解区块链的前提下也可写出严谨的逻辑,避免因为不严谨而带来无法预料的结果从而导致各方面的损失。
4、本发明为相关从业者提供了一种通用、可复制、与具体区块链网络无法的方法,去避免基于区块链的去中心化交易带来的结果不确定性,其中的核心关键点在于通过出块时间T判定节点状态以及交易过期时间E判定交易是否过期。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例 一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1为本发明中区块链交易执行流程示意图;
图2为本发明中以太坊网络交易执行流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地 描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本 发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。
实施例1
请参阅图1,本发明提供以下技术方案:一种判定区块链交易执行结果的方法,包括 如下步骤:
S1、在构建交易之前,从相关区块链节点上获取最新区块,从中解析出最新区快的打 包时间T;
S2、若最新打包时间T与当前时间相差大于N*T,则认为节点与区块链网络尚未同步, 直接退出并认为节点处于同步状态,否则进入下一步;
S3、根据具体上下文构建交易TXN,并设置交易过期时间为E;
S4、把步骤S3构建的交易TXN发送至相关区块链节点,若节点返回异常信息,根据具体业务进行处理并把交易状态标记为失败;否则认为交易已发出,保存交易标识符 TXN_HASH并进入下一个步骤;
S5、通过区块链节点查询交易标识符为TXN_HASH的交易回执,若成功获取交易回执, 那么根据回执中包含的结果判定交易是否成功,且把交易状态标记为成功或者失败;若获 取的交易回执为空,那么尝试获取最新区块,且从区块中获取出块时间T,若出块时间T 与当前时间相差大于N*T,那么认为节点再次进入同步状态,并把交易状态标记为未知且重新执行步骤S5。
具体的,步骤S2中N的取值与具体区块链相关,需要根据不同实例选择合适的取值。
具体的,步骤S3中E的取值与具体业务以及具体区块链相关,应该根据实际情况去合理设置。
具体的,步骤S5中若最新区块的出块时间T大于过期时间E,那么将交易状态标记为 已过期;否则重新执行步骤S5。
实施例2
请参阅图2,本发明提供以下技术方案:一种判定区块链交易执行结果的方法,包括 如下步骤:
S1、从以太坊节点上获取最新区块,并从中解析出最新区快的打包时间T;
S2、假如最新打包时间T与当前时间相差大于30秒,则认为节点与区块链网络尚未同步,标记交易状态为未发出并返回,否则进入下一步骤;
S3、根据传入的发送方私钥、收款人账号以及收款金额构建一笔转账交易,并设置交 易过期时间为5分钟之后;
S4、把步骤S3构建的交易TXN发送至以太坊节点,假如节点返回异常信息,标记交易状态标记为失败;否则认为交易已发出,保存交易标识符TXN_HASH并进入下一个步骤;
S5、通过以太坊节点查询交易标识符为TXN_HASH的交易回执,假如成功获取交易回 执,那么认为交易已经成功并返回;假如获取的交易回执为空,那么尝试获取最新区块,且从区块中获取出块时间T,假如出块时间T与当前时间相差30秒,那么认为节点再次进 入同步状态,并把交易状态标记为未知且重新执行步骤S5;假如最新区块的出块时间T大 于过期时间E,那么将交易状态标记为已过期;否则,重新执行步骤S5。
本发明依赖的参数:对于一般的区块链,虽然出块的耗时都是随机不固定的,但是都 会趋近于一个平均值,具体可通过以下公式估算:
对于采用工作量证明(Proof-of-Work)作为共识算法的区块链,还可以通过难度值 以及全网算力估计出块时间,但是由于专利的目标是推出一种通用、可复制、与具体区块 链网络无法的方法,故不采用此种方式。
因此,我们假定区块链的平均出块耗时为D、打包区块的时间为T、交易的过期时间为E。通过观察数种主流区块链结构,可以发现,区块信息都会包含打包区块的时间就 算没有直接包含也可通过其它字段间接算出。除此之外,区块会包含相关交易列表,对于 一般区块链来说,交易还会包含该交易的过期时间;既假如超过该时间交易还未被执行, 那么该交易将无效化。
本发明的工作原理及使用流程:在构建交易之前,从相关区块链节点上获取最新区 块,从中解析出最新区快的打包时间T;假如最新打包时间T与当前时间相差大于N*T,则认为节点与区块链网络尚未同步,直接退出并认为节点处于同步状态;否则进入下一步(其中N的取值与具体区块链相关,需要根据不同实例选择合适的取值);根据具体上下 文构建交易TXN,并设置交易过期时间为E(E的取值与具体业务以及具体区块链相关,应 该根据实际情况去合理设置);把构建的交易TXN发送至相关区块链节点,假如节点返回 异常信息,根据具体业务进行处理并把交易状态标记为失败;否则认为交易已发出,保存 交易标识符TXN_HASH并进入下一个步骤;通过区块链节点查询交易标识符为TXN_HASH的 交易回执,假如成功获取交易回执,那么根据回执中包含的结果判定交易是否成功,且把 交易状态标记为成功或者失败;假如获取的交易回执为空,那么尝试获取最新区块,且从 区块中获取出块时间T,假如出块时间T与当前时间相差大于N*T,那么认为节点再次进 入同步状态,并把交易状态标记为未知且重新执行上述步骤。假如最新区块的出块时间T 大于过期时间E,那么将交易状态标记为已过期;否则重新执行上述步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或 者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任 何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些 要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下。由语句“包括一个限定的要素,并不排除 在包括要素的过程、方法、物品或者设备中还存在另外的相同要素”。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解 在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变 型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.一种判定区块链交易执行结果的方法,其特征在于,包括如下步骤:
S1、在构建交易之前,从相关区块链节点上获取最新区块,从中解析出最新区快的打包时间T;
S2、若最新打包时间T与当前时间相差大于N*T,则认为节点与区块链网络尚未同步,直接退出并认为节点处于同步状态,否则进入下一步;
S3、根据具体上下文构建交易TXN,并设置交易过期时间为E;
S4、把步骤S3构建的交易TXN发送至相关区块链节点,若节点返回异常信息,根据具体业务进行处理并把交易状态标记为失败;否则认为交易已发出,保存交易标识符TXN_HASH并进入下一个步骤;
S5、通过区块链节点查询交易标识符为TXN_HASH的交易回执,若成功获取交易回执,那么根据回执中包含的结果判定交易是否成功,且把交易状态标记为成功或者失败;若获取的交易回执为空,那么尝试获取最新区块,且从区块中获取出块时间T,若出块时间T与当前时间相差大于N*T,那么认为节点再次进入同步状态,并把交易状态标记为未知且重新执行步骤S5。
2.根据权利要求1所述的一种判定区块链交易执行结果的方法,其特征在于:步骤S2中N的取值与具体区块链相关。
3.根据权利要求1所述的一种判定区块链交易执行结果的方法,其特征在于:步骤S3中E的取值与具体业务以及具体区块链相关。
4.根据权利要求1所述的一种判定区块链交易执行结果的方法,其特征在于:步骤S5中若最新区块的出块时间T大于过期时间E,那么将交易状态标记为已过期;否则重新执行步骤S5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010858976.8A CN112102082A (zh) | 2020-08-24 | 2020-08-24 | 一种判定区块链交易执行结果的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010858976.8A CN112102082A (zh) | 2020-08-24 | 2020-08-24 | 一种判定区块链交易执行结果的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112102082A true CN112102082A (zh) | 2020-12-18 |
Family
ID=73754280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010858976.8A Pending CN112102082A (zh) | 2020-08-24 | 2020-08-24 | 一种判定区块链交易执行结果的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112102082A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108376106A (zh) * | 2018-02-01 | 2018-08-07 | 中国工商银行股份有限公司 | 一种区块链消息反馈方法及系统 |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN108900549A (zh) * | 2018-08-15 | 2018-11-27 | 深圳区块大陆科技有限公司 | 一种安全的区块链组网技术 |
WO2019001141A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种跨链交易方法及装置 |
CN109829267A (zh) * | 2019-02-22 | 2019-05-31 | 陕西优米数据技术有限公司 | 一种基于区块链的版权共识系统和方法 |
CN110009494A (zh) * | 2019-03-18 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种监控区块链中的交易内容的方法及装置 |
CN111028084A (zh) * | 2020-03-11 | 2020-04-17 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的交易处理方法、装置及设备 |
CN111159293A (zh) * | 2019-12-25 | 2020-05-15 | 杭州加密矩阵科技有限公司 | 一种基于轻节点技术的跨链信息验证方法 |
CN111478828A (zh) * | 2020-06-24 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 区块链网络的压力测试方法及装置、系统 |
-
2020
- 2020-08-24 CN CN202010858976.8A patent/CN112102082A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019001141A1 (zh) * | 2017-06-30 | 2019-01-03 | 华为技术有限公司 | 一种跨链交易方法及装置 |
CN108376106A (zh) * | 2018-02-01 | 2018-08-07 | 中国工商银行股份有限公司 | 一种区块链消息反馈方法及系统 |
CN108764870A (zh) * | 2018-05-29 | 2018-11-06 | 阿里巴巴集团控股有限公司 | 基于区块链的交易处理方法及装置、电子设备 |
CN108900549A (zh) * | 2018-08-15 | 2018-11-27 | 深圳区块大陆科技有限公司 | 一种安全的区块链组网技术 |
CN109829267A (zh) * | 2019-02-22 | 2019-05-31 | 陕西优米数据技术有限公司 | 一种基于区块链的版权共识系统和方法 |
CN110009494A (zh) * | 2019-03-18 | 2019-07-12 | 阿里巴巴集团控股有限公司 | 一种监控区块链中的交易内容的方法及装置 |
CN111159293A (zh) * | 2019-12-25 | 2020-05-15 | 杭州加密矩阵科技有限公司 | 一种基于轻节点技术的跨链信息验证方法 |
CN111028084A (zh) * | 2020-03-11 | 2020-04-17 | 支付宝(杭州)信息技术有限公司 | 一种基于区块链的交易处理方法、装置及设备 |
CN111478828A (zh) * | 2020-06-24 | 2020-07-31 | 支付宝(杭州)信息技术有限公司 | 区块链网络的压力测试方法及装置、系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11233656B2 (en) | Method for mining a block in a decentralized blockchain consensus network | |
US11283634B2 (en) | System and method for detecting replay attack | |
EP3688929B1 (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
US10681083B2 (en) | System and method for detecting replay attack | |
CN110199500B (zh) | 用于更新网络拓扑的网络知识的计算机实现的系统和方法 | |
EP3545665B1 (en) | System and method for detecting replay attack | |
US10735464B2 (en) | System and method for detecting replay attack | |
JP7296596B2 (ja) | ブロックの迅速な生成用の分散コンセンサスのアルゴリズム、デバイス及びコンピュータ可読記憶媒体 | |
US11265162B2 (en) | System and method for providing privacy and security protection in blockchain-based private transactions | |
CN112422341B (zh) | 区块链网络的故障检测方法及相关设备 | |
CN111582845A (zh) | 区块链的跨链交易方法、装置以及电子设备 | |
CN111953754A (zh) | 跨链交易方法、电子设备及可读存储介质 | |
CN114172680A (zh) | 一种基于节点信誉机制的区块链系统及其运行方法 | |
CN112102082A (zh) | 一种判定区块链交易执行结果的方法 | |
Ding et al. | Lilac: Parallelizing Atomic Cross-Chain Swaps | |
CN113904869B (zh) | 一种区块链中恶意节点的检测方法及区块链 | |
CN110443616B (zh) | 基于随机门限签名机制的拜占庭容错共识方法 | |
CN114157444A (zh) | 一种基于容器技术的区块链部署系统及部署方法 | |
CN112860807A (zh) | 一种适用于无线区块链网络的容错共识方法 | |
US20230177501A1 (en) | Methods and devices for double-spend relay in a blockchain network | |
CN113922953B (zh) | 一种数据处理方法及装置 | |
CN117857114A (zh) | 基于udp的封闭式网络铁路安全通信方法、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |