CN116521786A - 基于区块链的合约监控方法、系统、存储介质及计算设备 - Google Patents
基于区块链的合约监控方法、系统、存储介质及计算设备 Download PDFInfo
- Publication number
- CN116521786A CN116521786A CN202210073699.9A CN202210073699A CN116521786A CN 116521786 A CN116521786 A CN 116521786A CN 202210073699 A CN202210073699 A CN 202210073699A CN 116521786 A CN116521786 A CN 116521786A
- Authority
- CN
- China
- Prior art keywords
- contract
- monitoring
- latest
- instance
- block
- 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
- 238000012544 monitoring process Methods 0.000 title claims abstract description 208
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 18
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 230000002688 persistence Effects 0.000 claims description 4
- 238000012217 deletion Methods 0.000 claims description 3
- 230000037430 deletion Effects 0.000 claims description 3
- 230000007704 transition Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- NQLVQOSNDJXLKG-UHFFFAOYSA-N prosulfocarb Chemical compound CCCN(CCC)C(=O)SCC1=CC=CC=C1 NQLVQOSNDJXLKG-UHFFFAOYSA-N 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Accounting & Taxation (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及一种基于区块链的合约监控方法,应用于第一节点集的节点,节点添加一个新的合约监控指令,监控主程序接收到所述监控指令后,返回监控ID给所述节点;所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本;所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器;所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务。本申请降低了数据的冗余,减少了链上数据的增长,通过追朔到合约实例下最新的UTXO,使得用户可以使用该UTXO对合约实例发起下一笔交易。
Description
技术领域
本申请涉及区块链技术领域,特别是涉及一种基于区块链的合约监控方法、系统、存储介质及计算设备。
背景技术
区块链是一种新型去中心化协议,能安全地存储数字货币交易或其他数据,信息不可伪造和篡改,区块链上的交易确认由区块链上的所有节点共同完成,由共识算法保证其一致性,区块链上维护一个公共的账本,公共账本位于存储区块上任何节点可见,从而保证其不可伪造和篡改。
智能合约是由事件驱动的、具有状态的、获得多方承认的、运行在区块链之上的、且能够根据预设条件自动处理资产的程序,智能合约最大的优势是利用程序算法替代人仲裁和执行合同。它是在区块链数据库上运行的计算机程序,可以在满足其源代码中写入的条件时自动执行。智能合约一旦编写好就可以被用户信赖,合约条款不能改变,因此合约是不可更改的。
账户模型的合约部署完成后拥有一个固定的合约地址,其方便用户进行追溯。而UTXO模型每次向合约发起一笔交易时,原先的UTXO合约将被消耗,并产生对应新的UTXO合约,作为状态的转换。
发明内容
根据本说明书的第一方面,本说明书提供了一种基于区块链的合约监控方法,包括:
节点添加一个新的合约监控指令,监控主程序接收到所述监控指令后,返回监控ID给所述节点;
所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本;
所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器;
所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务;
根据本说明书的第二方面,本说明书提供了一种基于区块链的抵押借贷系统,包括:
监控后台模块,用于处理每个节点更新的合约监控指令,通过异步扫描,更新合约实施例的区块高度;
监控服务模块,用于为上层应用提供统一接口,支持创建监控、删除监控、查询合约实例;
基础服务模块,用于提供链相关的服务、数据持久化服务;
合约实施例模块,用于将获取到的目标解锁条款通过所述入口加载到目标子合约中;
根据本说明书的第三方面,本说明书提供了一种计算设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
节点添加一个新的合约监控指令,监控主程序接收到所述监控指令后,返回监控ID给所述节点;
所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本;
所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器;
所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务;
根据本说明书的第四方面,本说明书提供了一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
节点添加一个新的合约监控指令,监控主程序接收到所述监控指令后,返回监控ID给所述节点;
所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本;
所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器;
所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务;
本申请提供了基于区块链的合约监控方法、系统、存储介质及计算设备,相比于现有技术,通过节点添加合约监控服务,将新的监控保存在本地服务器,只需要通过指定协议来关联合约哈希,就能直接调用相关合约,降低了数据的冗余,减少了链上数据的增长,通过追朔到合约实例下最新的UTXO,使得用户可以使用该UTXO对合约实例发起下一笔交易。
附图说明
图1为一实施例中适用的区块链网络布局图;
图2为一实施例中的基于区块链的合约监控方法的流程图;
图3为又一实施例中的基于区块链的合约监控方法的架构图;
图4为又一实施例中的基于区块链的合约监控方法的架构图;
图5为又一实施例中的基于区块链的合约监控方法的流程图;
图6为一实施例中的基于区块链的合约监控系统的结构框图;
图7为一实施例中的计算设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例的说明书和权利要求书及上述附图中的术语“第一”、“第二”、等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)区块链(Blockchain),是由区块(Block)形成的加密的、链式的交易的存储结构。每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,从而基于哈希值实现区块中交易的防篡改和防伪造;新产生的交易被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长。
2)区块链网络,通过共识的方式将新区块纳入区块链的一系列的节点的集合。区块链网络可以包括多个节点,该多个节点形成一个去中心化的、能够协同运转的数据库存储系统。如图1所示,任意两个区块链节点2之间采用P2P(Peer To Peer,点对点)协议进行网络通信。
3)交易,也称为交易请求,交易包括了需要提交到区块链网络执行的操作,以及对应的交易结果。并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
4)数字货币,被称为数字加密货币,英文名为Cryptocurrency。数字加密货币是指不依托任何实物,基于密码学和网络P2P技术,由计算机程序产生,并在因特网上发行和流通的新型货币,其发行总量固定,例如比特币BTC、以太坊ETH等等。
5)资产池,亦称作资金池或流动池,是指把资产汇集在一起形成的像蓄水池一样的存储资产的空间,在本说明书中,资产是指数字货币。
6)去中心化金融,(defi,decentralized finance)是基于智能合约平台构建的加密资产、金融类智能合约以及协议。
7)UTXO合约,在UTXO模型中,合约指带有资产锁定脚本的UTXO,并携带当前的状态。
8)合约实例,合约的状态转换将从一组UTXO合约转换到另一组UTXO合约,因此,最新的UTXO合约可视作当前的合约实例。
9)合约监控ID,添加合约监控后将得到一个ID,用于监控某个合约实例。该ID只在本地生效,并不会最终上链,其用于后续操作该合约实例的监控。
参阅图1,本发明一实施例提供的基于区块链的抵押借贷方法可应用于如图1所示的应用环境中,其中,终端31与区块链1中的任意节点通过网络通信,终端32与区块链1中的任意节点通过网络通信。
终端31可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。本说明书对终端32的限制请参考终端31,此处不再赘述。需要说明的是,终端31和终端32仅为示例性说明,本发明对终端的数量不做限定。
图1中,区块链1包括第一节点集和第二节点集,其中,第一节点集包括多个节点1,第二节点集包括多个节点2。第一节点集与第二节点集可通过配置文件进行配置,以实现本发明实施例提供的方案中所要实现的功能。需要说明的是,图1中的节点1和节点2的数量仅为示例性说明,本发明对此不做限定。
通常,区块链可分为三种类型:公有链、私有链和联盟链。此外,还有不少公有链、私有链和联盟链之间跨链的架构。
任意两个区块链节点之间采用P2P(Peer To Peer,点对点)协议进行网络通信。一个节点可以用独立的计算设备或者是多个计算设备组成的计算设备集群来实现。
第一用户可通过运行于终端31上的应用向区块链1发出请求,第二用户可通过运行于终端32上的应用向区块链1发出请求。
在本说明书的实施例一中,如图2所示,实施例一提供一种基于区块链的合约监控方法,以该方法应用于图1中的第一节点集的节点1为例进行说明,包括步骤S201~S204:
步骤S201,节点添加一个新的合约监控指令,监控主程序收到所述监控指令后,返回监控ID给所述节点。
其中,合约监控指令通过指定协议来关联合同哈希,进而调用相关合约,对该合约进行监控,可以追溯到该合约实例下最新状态的UTXO。
其中,合约监控服务除了作为全节点该有的功能,也可以将合约监控服务移植到其他链衍生平台,并对外提供统一的接口。
步骤S202,所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本。
其中,监控主程序一般挂在全节点或者钱包的同步模块中,节点通过在内存中维护合约实例的副本,每隔若干个块更新到本地数据库内部。将一个新的区块交给监控主程序处理时,需要保证该函数的幂等性,如果存在不同的幂等性,当前函数处理成功后,会发生全节点/钱包支付失败的情况,当全节点/钱包回滚区块时,回调该函数,同样需要保证幂等性;
其中步骤S202,还包括:
处理一笔未确认的交易,需要通过交易输入中的UTXO找到某个合约实例,并更新该合约实例未确认的UTXO;
添加一个新的合约监控,监控主程序将相关数据写入本地数据库,并转发给监控服务模块,监控服务模块定时处理追赶到最新的区块高度,处理完相关进程后,系统调用监控主程序,把合约监控交给监控主程序管理。
步骤S203,所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器。
其中,监控主程序通过发送程序指令,接收所述合约监控服务的进程,当该笔合约监控的ID生成之后,系统自动返回该笔交易的哈希值、数据等,从而保证链上信息的真实性、同步性,同时,系统自动更新区块的最新高度发送给基础设施服务器;
其中基础设施服务器,负责融合链相关的服务,以及全节点/钱包各自会有不同的实现方式;
步骤S204,所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务;
基础设施服务器通过收集监控主程序发送的新合约监控相关数据,进行区块的更新,将最新的区块高度返回给合约监控程序,完成合约监控服务;
本实施例通过节点进行合约监控,在保证合约进行运行过程中,监控主程序一直处于运行状态,对合约的运行状态进行监控,可以追溯到合约实例下最新状态的UTXO,使得节点可以使用该UTXO对合约实例发起下一笔交易,使得节点能够快速找到合约地址对应的UTXO,方便节点追溯最新状态的UTXO,降低数据的冗余,减少链上数据的增长。
应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在实施例二中,如图3所示,提供一种基于区块链的合约监控方法,以该方法应用于图1中的计算设备3为例进行说明,包括步骤S1~S1.2.4:
步骤S1,节点添加一个新的合约监控,发送给监控主程序;
其中,节点发送的信息包括合约地址,节点地址,合约哈希值,当前区块高度及哈希值,通过节点自主进行合约监控服务的发起,保证节点数据的真实性,同时也提高合约监控服务的效率。
步骤S1.1,监控主程序将新的合约监控初始化写入本地数据库。
步骤S1.2,监控主程序添加一个新的合约监控脚本;
其中,合约监控脚本脚本负责监控新的合约状态,包括合约内部的交易,合约执行次数等;
步骤S1.2.1,监控服务将添加成功后的数据,直接返回给监控主程序;
监控服务通过处理主程序发送来的合约监控数据,进行后台识别,对数据的真伪进行判别,通过节点公钥、判断节点身份,找到对应的区块数据,进行鉴别,当鉴别成功后,返回添加成功的指令给到监控主程序。
步骤S1.2.2,监控服务获得最新的区块高度;
其中,监控服务更新最新的区块数据之后,获得最新的区块高度,发送给基础服务模块。
步骤S1.2.3,监控服务处理新加入的监控追赶到最新高度;
其中,监控服务通过对合约状态进行识别,锁定合约内部交易的区块,进行及时更新。
步骤S1.2.4,监控服务将更新区块高度发送给监控主程序;
本实施例通过监控主程序主动添加新的监控脚本,方便更加高效的对合约监控服务进行把控,使得节点更加快捷的完成合约监控服务;
应该理解的是,虽然图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在实施例三中,如图4所示,提供一种基于区块链的合约监控方法,以该方法应用于图1中的计算设备3为例进行说明,包括步骤S1~S4.2:
步骤S1,用户编译相关合约X;
步骤S1.1,编译完成的合约,返回合约脚本给到用户。
步骤S2,用户通过全节点,进行合约X的注册;
步骤S2.1,全节点返回合约X注册成功的指令给到用户;
步骤S3,用户发起合约X的第一笔交易Y;
步骤S4,用户使用交易Y作为合约实例的凭据创建该实例的监控;
步骤S4.1,合约实例监控服务通过异步创建监控成功,返回合约实例ID给用户;
步骤S4.2,合约实例监控服务从交易Y的区块开始扫描区块,跟踪UTXO的转换;
本实施例通过用户主动编译相关合约,根据合约的交易,生成相关合约实例监控,保证合约内部的UTXO进行安全转换,同时通过分配的合约监控ID,可向监控服务查询到合约实例最新状态,即对应的最新UTXO合约。
在实施例四中,如图5所示,提供一种基于区块链的合约监控方法,以该方法应用于图1中的计算设备3为例进行说明,包括步骤S502~S505:
步骤S501:获取当前合约监控ID,保存到客户端;
通过合约监控ID,确定节点正在执行的合约交易,从而根据合约实例,对合约内部的UTXO进行提取、质押等操作;
步骤S502:获取合约实例最后一次交易的区块高度、哈希值;
合约实例也就是合约内部包含的交易事件,最后一次的区块高度,可以锁定交易事件的区块位置,通过区块哈希值进行追溯,提取交易事件的相关信息;
步骤S503:获取代表合约最新状态的一组UTXO;
合约最新的状态,包括注册完成、正在执行、被消耗三种状态,其中步骤S503的合约处于正在执行的状态,此时合约内部的UTXO是处于未知状态的,只有合约内部的交易完成之后,才能知道节点钱包的余额,从而判断合约内部的UTXO;
步骤S504:监控当前追溯的最新区块哈希值;
通过合约监控服务,监控当前追溯的最新区块的哈希值,可以锁定当前交易,便于后续对区块内部的事件进行校验;
步骤S505:标记合约实例生命周期是否已经结束,标记是否与全节点保持同步的状态;
当合约完成事件后,原先的UTXO合约将被消耗,并产生新的UTXO合约,作为合约状态转换的标志;
本实施例通过获取合约监控的ID,结合合约实例的最后一次交易哈希值、区块高度,保证合约监控服务的准确性,从而确保合内部UTXO的安全性;
在一个实施例中,合约监控ID的输入包括合约实例生命周期中的相关交易;所述监控服务将从该交易所在区块高度开始扫描,直至最新高度,找到最新的合约实例。
通过上述实施例的合约监控ID,保证合约在执行过程中的安全性,保证合约内部资金的安全,提高节点进行合约交易的效率;
在一个实施例中,节点可以通过合约监控ID查询到合约实例最新状态,即对应的最新UTXO合约,该UTXO可作为后续向该合约实例发起交易。
通过上述实施例,可以保证合约内部UTXO一直处于可以调用的状态,提高合约内部UTXO的流动性。
在一个实施例中,合约监控都将追溯一个唯一的合约实例,直到该合约实例处于结束状态。
通过上述实施例,保证合约实例的整个生命周期过程中,合约一直处于可维护状态,提高链上数据的运转效率。
在一个实施例中,如图6所示,提供一种基于区块链的合约监控系统,该系统应用于第一节点集的节点,该系统包括监控后台模块100、第一接收模块200、条款获取模块300、加载模块400。
监控后台模块,用于处理每个节点更新的合约监控指令,通过异步扫描,更新合约实施例的区块高度;
监控后台负责处理新区块的合约监控请求,当有新的监控任务指令时,会先交给监控主程序,监控主程序定时处理追赶到最新高度,监控主程序处理完毕后,监控后台负责处理后续进程;
监控服务模块,用于为上层应用提供统一接口,支持创建监控、删除监控、查询合约实例;
监控服务通过绑定合约实例生命周期中任意一笔交易哈希以及交易对应的区块哈希,之后创建一个合约实例监控,创建成功后,监控服务模块返回合约监控ID,发送合约监控ID给到对应的客户端;
基础服务模块,用于提供链相关的服务、数据持久化服务;
基础服务模块提供链相关的服务,以及数据持久化服务,当批量插入多个合约实例时,如果合约实例没有分配合约监控ID,则不会记录上述合约实例;当合约监控ID相同时记录将会被覆盖,保证所有记录要么同时写入成功,要么失败不做任何操作;
合约实施例模块,用于将获取到的目标解锁条款通过所述入口加载到目标子合约中;
合约实施例模块用于存储合约实例,当不需要监控该合约实例时,可以通过指定合约实例ID进行删除,以减少计算资源的消耗;
在一个实施例中,该系统还包括:
监控后台模块每隔5S扫描所有落后于最新高度的合约实例集合S。
根据模拟计算得到,每隔5S扫描最新高度的合约实例,可以最大效率的节省计算资源,也可以延长或者缩短扫描时间,扫描时间的集合为3S~8S的任意整数;
在一个实施例中,监控服务模块通过合约监控ID控制对应合约监控服务进程。
通过合约监控ID,监控服务模块可以直接控制合约监控服务,根据合约监控ID搜索相关进程,后台可以自动进行进程的终止、停止、继续等操作;
在一个实施例中,基础服务模块通过批量插入多个合约实例,节点通过监视器ID查询相关合约实例。
基础服务模块可以批量插入多个合约实例,节点可以通过监视器ID,直接搜索到相关的合约实例,对实例进行删除、增加等操作;
关于基于区块链的合约监控系统的具体限定可以参见上文中对于基于区块链的抵押借贷方法的限定,在此不再赘述。上述基于区块链的合约监控系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算设备中的处理器中,也可以以软件形式存储于计算设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算设备,其内部结构图可以如图7所示。该计算设备包括通过设备总线连接的处理器、存储器、网络接口和数据库。其中,该计算设备的处理器用于提供计算和控制能力。该计算设备的存储器包括介质和内存储器。该介质为计算机可读存储介质。具体地,该计算机可读存储介质为非易失性计算机可读存储介质。该非易失性计算机可读存储介质存储有操作设备、计算机程序和数据库。该内存储器为非易失性计算机可读存储介质中的操作设备和计算机程序的运行提供环境。该计算设备的数据库用于存储数据。该计算设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于区块链的抵押借贷方法。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算设备的限定,具体的计算设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
步骤S501:获取当前合约监控ID,保存到客户端;
通过合约监控ID,确定节点正在执行的合约交易,从而根据合约实例,对合约内部的UTXO进行提取、质押等操作;
步骤S502:获取合约实例最后一次交易的区块高度、哈希值;
合约实例也就是合约内部包含的交易事件,最后一次的区块高度,可以锁定交易事件的区块位置,通过区块哈希值进行追溯,提取交易事件的相关信息;
步骤S503:获取代表合约最新状态的一组UTXO;
合约最新的状态,包括注册完成、正在执行、被消耗三种状态,其中步骤S503的合约处于正在执行的状态,此时合约内部的UTXO是处于未知状态的,只有合约内部的交易完成之后,才能知道节点钱包的余额,从而判断合约内部的UTXO;
步骤S504:监控当前追溯的最新区块哈希值;
通过合约监控服务,监控当前追溯的最新区块的哈希值,可以锁定当前交易,便于后续对区块内部的事件进行校验;
步骤S505:标记合约实例生命周期是否已经结束,标记是否与全节点保持同步的状态;
当合约完成事件后,原先的UTXO合约将被消耗,并产生新的UTXO合约,作为合约状态转换的标志;
在一个实施例中,提供了一种存储介质,该介质为计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
步骤S501:获取当前合约监控ID,保存到客户端;
通过合约监控ID,确定节点正在执行的合约交易,从而根据合约实例,对合约内部的UTXO进行提取、质押等操作;
步骤S502:获取合约实例最后一次交易的区块高度、哈希值;
合约实例也就是合约内部包含的交易事件,最后一次的区块高度,可以锁定交易事件的区块位置,通过区块哈希值进行追溯,提取交易事件的相关信息;
步骤S503:获取代表合约最新状态的一组UTXO;
合约最新的状态,包括注册完成、正在执行、被消耗三种状态,其中步骤S503的合约处于正在执行的状态,此时合约内部的UTXO是处于未知状态的,只有合约内部的交易完成之后,才能知道节点钱包的余额,从而判断合约内部的UTXO;
步骤S504:监控当前追溯的最新区块哈希值;
通过合约监控服务,监控当前追溯的最新区块的哈希值,可以锁定当前交易,便于后续对区块内部的事件进行校验;
步骤S505:标记合约实例生命周期是否已经结束,标记是否与全节点保持同步的状态;
当合约完成事件后,原先的UTXO合约将被消耗,并产生新的UTXO合约,作为合约状态转换的标志;
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于区块链的合约监控方法,其特征在于,包括:
节点添加一个新的合约监控指令,监控主程序接收到所述监控指令后,返回监控ID给所述节点;
所述监控主程序将新的监控初始化后写入本地数据库,同时添加新的监控脚本;
所述监控主程序接收程序调度器返回添加成功的相关数据,同时将区块的最新高度值发给所述基础设施服务器;
所述基础设施服务器处理新加入的监控,更新区块的最新高度,完成合约监控服务。
2.根据权利要求1所述的方法,其特征在于,所述合约监控ID的输入包括合约实例生命周期中的相关交易;所述监控服务将从该交易所在区块高度开始扫描,直至最新高度,找到最新的合约实例。
3.根据权利要求1所述的方法,其特征在于,所述节点可以通过合约监控ID查询到合约实例最新状态,即对应的最新UTXO合约,该UTXO可作为后续向该合约实例发起交易。
4.根据权利要求1所述的方法,其特征在于,所述合约监控都将追溯一个唯一的合约实例,直到该合约实例处于结束状态。
5.一种基于区块链的合约监控系统,其特征在于,包括:
监控后台模块,用于处理每个节点更新的合约监控指令,通过异步扫描,更新合约实施例的区块高度;
监控服务模块,用于为上层应用提供统一接口,支持创建监控、删除监控、查询合约实例;
基础服务模块,用于提供链相关的服务、数据持久化服务。
合约实施例模块,用于将获取到的目标解锁条款通过所述入口加载到目标子合约中。
6.根据权利要求5所述的系统,其特征在于,所述监控后台模块每隔5S扫描所有落后于最新高度的合约实例集合S。
7.根据权利要求5所述的系统,其特征在于,所述监控服务模块通过合约监控ID控制对应合约监控服务进程。
8.根据权利要求5所述的系统,其特征在于,所述基础服务模块通过批量插入多个合约实例,节点通过监视器ID查询相关合约实例。
9.一种计算设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任意一项所述的基于区块链的合约监控方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任意一项所述的基于区块链的合约监控方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073699.9A CN116521786A (zh) | 2022-01-21 | 2022-01-21 | 基于区块链的合约监控方法、系统、存储介质及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210073699.9A CN116521786A (zh) | 2022-01-21 | 2022-01-21 | 基于区块链的合约监控方法、系统、存储介质及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521786A true CN116521786A (zh) | 2023-08-01 |
Family
ID=87406861
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210073699.9A Pending CN116521786A (zh) | 2022-01-21 | 2022-01-21 | 基于区块链的合约监控方法、系统、存储介质及计算设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521786A (zh) |
-
2022
- 2022-01-21 CN CN202210073699.9A patent/CN116521786A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379834B2 (en) | Secure management of data files using a blockchain | |
CN108898390B (zh) | 基于区块链的智能合约调用方法及装置、电子设备 | |
CN110597925B (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
CN109492983B (zh) | 基于区块链智能合约的电子印章签署方法、装置、设备和介质 | |
CN112003858B (zh) | 基于区块链的平台对接的方法、电子装置和存储介质 | |
KR20200013679A (ko) | 스크립트 기반 블록체인 상호작용 | |
EP3945432A1 (en) | Blockchain-based method and apparatus for managing biological asset object | |
CN111597567B (zh) | 数据处理方法、装置、节点设备及存储介质 | |
US11314544B2 (en) | Transaction log for audit purposes | |
CN112559448A (zh) | 数据状态迁移方法、装置、计算机设备和存储介质 | |
US20220327531A1 (en) | Method and device for control of blockchain data access based on smart contract | |
CN111694873B (zh) | 虚拟资源包的处理方法、装置及数据库服务器 | |
CN113535691B (zh) | 一种用户服务注册方法及装置 | |
CN111488626A (zh) | 基于区块链的数据处理方法、装置、设备及介质 | |
CN113515322B (zh) | 应用程序加载方法、装置、计算机设备和可读存储介质 | |
CN113469815A (zh) | 数据管理方法及装置 | |
WO2019191635A1 (en) | System and methods for preventing reverse transactions in a distributed environment | |
CN116521786A (zh) | 基于区块链的合约监控方法、系统、存储介质及计算设备 | |
US20200364788A1 (en) | Computer-implemented systems and methods for enhanced bitcoin wallets | |
CN113535690B (zh) | 一种区块链服务网络的组建方法和装置 | |
CN115221559A (zh) | 数据账户的访问授权方法及装置 | |
CN111831678A (zh) | 基于区块链的隐私保护方法及装置和电子设备 | |
CN115203746A (zh) | 数据账户的访问授权方法及装置 | |
CN115601160A (zh) | 数据处理的方法以及装置 | |
CN115878270A (zh) | 一种并发数据的处理方法、平台、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |