一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种区块链数据的删除方法和装置与流程

2021-10-27 20:59:00 来源:中国专利 TAG:区块 多个 说明书 装置 删除


1.本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链数据的删除方法和装置。


背景技术:

2.区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。


技术实现要素:

3.有鉴于此,本说明书一个或多个实施方式提供了一种区块链数据的删除方法、装置和计算机设备。
4.为实现上述目的,本说明书一个或多个实施方式提供技术方案如下:
5.根据本说明书一个或多个实施方式的第一方面,提出了一种区块链数据的删除方法,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述方法包括:
6.获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
7.计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量;
8.在从用户的虚拟资源账户扣除所述第二数量的虚拟资源之后,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
9.根据本说明书一个或多个实施方式的第二方面,提出了一种区块链数据的删除方法,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述方法包括:
10.获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
11.将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据;
12.在所述区块链的节点设备执行所述数据删除交易之后,计算处理所述数据删除交易所实际消耗的所述区块链的节点设备的系统资源的第一数量,确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量,以使所述用户的虚拟资源账户被扣除所述第二数量的虚拟资源。
13.根据本说明书一个或多个实施方式的第三方面,提出了一种区块链数据的删除装置,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述装置包括:
14.获取单元,获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
15.计算单元,计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量;
16.发送单元,在从用户的虚拟资源账户扣除所述第二数量的虚拟资源之后,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
17.根据本说明书一个或多个实施方式的第四方面,提出了一种区块链数据的删除装置,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述装置包括:
18.获取单元,获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
19.发送单元,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据;
20.计算单元,在所述节点设备执行所述数据删除交易之后,计算处理所述数据删除交易所实际消耗的所述区块链的节点设备的系统资源的第一数量,确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量,以使所述用户的虚拟资源账户被扣除所述第二数量的虚拟资源。
21.根据本说明书一个或多个实施方式的第五方面,提出了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述第一方面所提供的实施方式所述的、管理平台所执行的区块链数据的删除方法。
22.根据本说明书一个或多个实施方式的第六方面,提出了一种计算机设备,包括:存储器和处理器;所述存储器上存储有可由所述处理器运行的计算机程序;所述处理器运行所述计算机程序时,执行如上述第二方面所提供的实施方式所述的、管理平台所执行的区块链数据的删除方法。
23.基于上述一种或多种实施方式所述的区块链数据的删除方法、装置、计算机设备和计算机可读存储介质,管理平台将区块链的节点设备搭载的系统资源与虚拟资源进行价值锚定,从而可基于节点设备处理数据删除交易所消耗的区块链的节点设备的第一数量的系统资源,锚定第二数量的虚拟资源,并由管理平台向用户收取所述第二数量的虚拟资源,使用户可基于自身的需求优化管理智能合约的账户存储空间。
附图说明
24.图1是一示例性实施例提供的创建智能合约的示意图;
25.图2是一示例性实施例提供的一种调用智能合约的示意图;
26.图3是一示例性实施例提供的创建智能合约和调用智能合约的示意图;
27.图4是一示例性实施例提供的区块链数据的删除方法的流程示意图;
28.图5是一示例性实施例提供的应用于管理平台端的区块链数据的删除装置的示意图;
29.图6是又一示例性实施例提供的应用于管理平台端的区块链数据的删除装置的示意图;
30.图7是运行本说明书所提供的智能合约的调用装置实施例的一种硬件结构图。
具体实施方式
31.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。
32.需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
33.本说明书一个或多个实施例所述的区块链或区块链网络,具体可指一个各节点设备通过共识机制达成的、具有分布式数据存储结构的p2p网络系统,该区块链内的账本数据分布在时间上相连的一个个“区块(block)”之内,后一区块可包含前一区块的数据摘要,且根据具体的共识机制(如pow、pos、dpos 或pbft等)的不同,达成全部或部分节点的数据全备份。
34.区块链一般被划分为三种类型:公有链(public blockchain),私有链(privateblockchain)和联盟链(consortium blockchain)。此外,还可以有上述多种类型的结合,比如私有链 联盟链、联盟链 公有链等。
35.其中,去中心化程度最高的是公有链。加入公有链的参与者(也可称为区块链中的节点)可以读取链上的数据记录、参与交易、以及竞争新区块的记账权等。而且,各节点可自由加入或者退出网络,并进行相关操作。
36.私有链则相反,该网络的写入权限由某个组织或者机构控制,数据读取权限受组织规定。简单来说,私有链可以为一个弱中心化系统,其对节点具有严格限制且节点数量较少。这种类型的区块链更适合于特定机构内部使用。
37.联盟链则是介于公有链以及私有链之间的区块链,可实现“部分去中心化”。联盟链中各个节点通常有与之相对应的实体机构或者组织;节点通过授权加入网络并组成利益相关联盟,共同维护区块链运行。
38.可以预期,本说明书所提供的实施方式能够在任何合适类型的区块链网络中实现。
39.计算设备可将数据构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对收到的交易进行共识处理,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
40.无论区块链采用哪种共识算法,记账节点均可以将接收到的交易打包以生成最新区块,并将生成的最新区块发送至其它节点设备进行共识验证。如果其它节点设备接收到最新区块后,经验证没有问题,可以将该最新区块追加到原有的区块链末尾,从而完成区块链的记账过程。其它节点验证记账节点发来的新的区块的过程中,也可以执行该区块中的包含的交易。
41.需要说明的是,区块链每产生一个最新区块,则在该最新区块中的交易被执行之后,区块链中这些被执行交易的对应状态会随之发生变化,例如,以账户模型构架的区块链中,外部账户或者智能合约账户的账户状态,通常也会随着交易的执行而发生相应的变化。
42.例如,当区块中的一笔“转账交易”执行完毕后,与该“转账交易”相关的转出方账户和转入方账户的余额(即这些账户的balance字段的字段值),通常也会随之发生变化。
43.又如,区块中的“智能合约调用交易”则用以调用区块链上部署的智能合约,在节点设备对应的evm内调用上述智能合约以执行上述“智能合约调用交易”,并将执行上述智能合约调用交易后、智能合约账户的账户状态更新在该智能合约的账户中。
44.在实际应用中,不论是公有链、私有链还是联盟链,都可能提供智能合约(smart contract)的功能。区块链上的智能合约是在区块链上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。
45.以以太坊为例,支持用户在以太坊网络中创建并调用一些复杂的逻辑。以太坊作为一个可编程区块链,其核心是以太坊虚拟机(evm),每个以太坊节点都可以运行evm。evm是一个图灵完备的虚拟机,通过它可以实现各种复杂的逻辑。用户在以太坊中发布和调用智能合约就是在evm上运行的。实际上, evm直接运行的是虚拟机代码(虚拟机字节码,下简称“字节码”),所以部署在区块链上的智能合约可以是字节码。
46.如图1所示,bob将一笔包含创建智能合约信息的交易(transaction)发送到以太坊网络后,各节点均可以在evm中执行这笔交易。其中,图中交易的 from字段用于记录发起创建智能合约的账户的地址,交易的data字段的字段值保存的合约代码可以是字节码,交易的to字段的字段值为一个null(空)的账户。当节点间通过共识机制达成一致后,这个智能合约成功创建,后续用户可以调用这个智能合约。
47.智能合约创建后,区块链上出现一个与该智能合约对应的合约账户,并拥有一个特定的地址;比如,图1中各节点中的“0x68e12cf284
…”
就代表了创建的这个合约账户的地址;合约代码(code)和账户存储(storage)将保存在该合约账户的账户存储中。智能合约的行为由合约代码控制,而智能合约的账户存储则保存了合约的状态。换句话说,智能合约使得区块链上产生包含合约代码和账户存储的虚拟账户。
48.前述提到,包含创建智能合约的交易的data字段保存的可以是该智能合约的字节码。字节码由一连串的字节组成,每一字节可以标识一个操作。基于开发效率、可读性等多方面考虑,开发者可以不直接书写字节码,而是选择一门高级语言编写智能合约代码。例如,高级语言可以采用诸如solidity、serpent、 lll语言等。对于采用高级语言编写的智能合约代码,可以经过编译器编译,生成可以部署到区块链上的字节码。
49.以solidity语言为例,用其编写的合约代码与面向对象编程语言中的类(class)很相似,在一个合约中可以声明多种成员,包括状态变量、函数、函数修改器、事件等。状态变量是永久存储在智能合约的账户存储(storage)字段中的值,用于保存合约的状态。
50.如图2所示,仍以以太坊为例,bob将一笔包含调用智能合约信息的交易发送到以太坊网络后,各节点均可以在evm中执行这笔交易。其中,图中交易的 from字段用于记录发起调用智能合约的账户的地址,to字段用于记录被调用的智能合约的地址,交易的data字段用于记录调用智能合约的方法和参数。调用智能合约后,合约账户的账户状态可能改变。后续,某个客户端可以通过接入的区块链节点查看合约账户的账户状态,例如,上述账户状态可以key

value 对的形式存储到智能合约的storage树中。调用智能合约的交易的执行结果,可以是以交易收据(receipt)的形式,存储到mpt收据树中。
51.智能合约可以以规定的方式在区块链网络中每个节点独立的执行,所有执行记录和数据都保存在区块链上,所以当这样的交易执行完毕后,区块链上就保存了无法篡改、不会丢失的交易凭证。
52.创建智能合约和调用智能合约的示意图如图3所示。以太坊中要创建一个智能合约,需要经过编写智能合约、变成字节码、部署到区块链等过程。以太坊中调用智能合约,是发起一笔指向智能合约地址的交易,各个节点的evm可以分别执行该交易,将智能合约代码分布式的运行在以太坊网络中每个节点的虚拟机中。
53.对于区块链中的账户而言,通常会通过一个结构体,来维护账户的账户状态。当区块中的交易被执行后,区块链中与该交易相关的账户的状态通常也会发生变化。
54.以以太坊为例,账户的结构体通常包括balance,nonce,code和storage 等字段。其中:
55.balance字段,用于维护账户目前的账户余额;
56.nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;
57.code字段,用于维护该账户的合约代码;在实际应用中,code字段中通常仅维护合约代码的hash值;因而,code字段通常也称之为codehash字段。
58.storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成mpt(merkle patricia trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的mpt树,通常也称之为storage 树。而storage字段通常仅维护该storage树的根节点;因此,storage字段通常也称之为storageroot字段。
59.其中,对于外部账户而言,以上示出的code字段和storage字段的字段值均为空值。
60.对于大多数区块链模型,通常都会使用merkle树;或者,基于merkle树的数据结构,来存储和维护数据。以以太坊为例,以太坊使用了mpt树(一种 merkle树变种),作为数据组织形式,用来组织和管理账户状态、交易信息等重要数据。
61.以太坊针对区块链中需要存储和维护的数据,设计了三棵mpt树,分别是 mpt状态树、mpt交易树和mpt收据树。其中,除了以上三棵mpt树以外,实际上还存在一棵基于合约账户的存储内容构建的storage树。
62.mpt状态树,是由区块链中所有账户的账户状态(state)数据组织成的mpt 树;mpt交易树,是由区块链中的交易(transaction)数据组织成的mpt树;mpt 收据树,是区块中的
交易在执行完毕后生成的与每笔交易对应的交易(receipt)收据组织成的mpt树。以上示出的mpt状态树、mpt交易树和mpt收据树的根节点的hash值,最终都会被添加至对应区块的区块头中。
63.其中,mpt交易树和mpt收据树均与区块相对应,即每一个区块都有自己的mpt交易树和mpt收据树。对于组织成的mpt交易树、mpt收据树和mpt 状态树,最终都会在采用多级数据存储结构的key

value型数据库(比如, leveldb)中进行存储。
64.在公有链领域,往往通过gas、token等方式激励矿工节点进行区块链出块,矿工节点会选择gas或token等手续费较高的交易优先打包入块,以增加自身的收益;对于非矿工节点,虽然贡献了存储和共识资源,却没有获得相应的收益。在无代币(token)的区块链模型中,比如联盟链,尤其是开放联盟链环境下,如何对节点设备提供的区块链资源进行统计并覆盖相应的节点成本,从而维持联盟链网络的良好运转也是亟需解决的问题。目前尚缺乏一种基于区块链资源的使用或占用情况,对区块链用户进行的资源管理和计费的方法。
65.鉴于以上问题,本说明书的一个或多个实施方式提供了区块链系统中的多种资源收费方式。可以预期,本说明书所提供的实施方式能够在公有链、联盟链、私有链等合适类型的区块链网络中实现。
66.本说明书提供的一个或多个实施方式所述的管理平台,可以包括设置于所述区块链的各节点设备中的、或者与区块链的各节点设备连接的平台,以对区块链的各节点设备执行管理。可选地,上述管理平台包括云计算管理平台,相应的,上述区块链的节点设备包括云计算管理平台管理的物理主机上创建的虚拟机。
67.在本说明书提供的一个或多个实施方式中所述的区块链客户端,可通过上述管理平台,与区块链的节点设备连接,从而基于与所述管理平台通信,向区块链网络中发送交易,或者,获取区块链网络中的交易执行结果。
68.在本说明书提供的区块链中,所述管理平台将区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定。
69.上述虚拟资源可包括在区块链下流通的真实资产的数字化形式,如货币、房产、股票、债券、贷款合同、票据、应收账款等资产形式;还可包括在区块链上流通的虚拟资源,区块链上发布的虚拟资源可包括与用户持有的链外真实资产具有价值锚定关系的区块链资产,可通过将现实世界的真实资产(包括货币、房产、股票、贷款合同、票据、应收账款等资产形式)冻结后,在链上发行与被冻结的真实资产锚定的、且能够在链上流通的虚拟资源。
70.在实现时,用户客户端可与上述管理平台进行资产冻结兑换流程,用户客户端将一定数额的真实资产冻结,并将冻结凭证发送至管理平台;管理平台在接收到该冻结凭证后,即可基于该冻结凭证,指示节点设备在区块链上向该用户的区块链账户余额内增加与上述冻结的真实资产数额价值对应的虚拟资源。
71.上述基于冻结凭证,向该用户的区块链账户余额内增加与上述冻结的真实资产数额价值对应的虚拟资源,可进一步通过用户与智能合约交互来实现:上述管理平台触发向区块链网络中发送的虚拟资源兑换交易,该虚拟资源兑换交易包括上述资产冻结凭证;响应于上述虚拟资源兑换交易,区块链的节点设备调用区块链上部署的虚拟资源兑换合约,执行所述智能合约声明的资源兑换逻辑,向该用户的区块链账户余额内增加与上述资产冻结凭证冻结的真实资产数额价值对应的虚拟资源。
72.基于上述的方式,用户即可基于自身持有的真实资产,在区块链网络中获得可与真实资产的价值锚定的虚拟资源,上述虚拟资源可以表现为用户的链上账户余额。
73.在所述区块链网络系统中,区块链的节点设备为区块链服务所提供的系统资源,可与上述虚拟资源进行价值锚定。例如,节点设备为区块链上的数据提供的存储资源可与上述虚拟资源进行价值锚定,每存储单位容量区块链数据可获取与之对应的虚拟资源;再如,节点设备为区块链上的任意交易的执行所提供的cpu计算资源,可与上述虚拟资源进行价值锚定,每执行单位数量的cpu 指令集,可获取与之对应的虚拟资源;又如,节点设备为区块链上任一交易的广播、共识所提供的网络资源,可与上述虚拟资源进行价值锚定,可基于上链交易的广播或共识过程所消耗的网络流量,获取与对应的虚拟资源。
74.区块链开发者或者管理平台可对上述存储资源、计算资源、网络资源等形式的系统资源进行量化,为区块链网络中每单位的存储资源、计算资源、网络资源或其他形式的系统资源对应的虚拟资源数量进行定价。对于联盟链,其联盟成员相对固定,上述锚定所得的系统资源定价可以较长期的保持固定;对于公链系统来说,节点进入或退出区块链网络较为频繁,区块链开发者在对上述多种形式的系统资源进行单位定价后,基于用户使用区块链时的区块链规模进行实时虚拟资源转移,或按照较短周期进行周期性虚拟资源转移。本领域技术人员还可以从实际的费用需求出发,基于与上述虚拟资源具有价值锚定关系的、任意形式的系统资源,为区块链节点设备所提供的区块链服务向用户进行虚拟资源扣除,本说明书对此不做限定。
75.如图4所示,本说明书一示例性实施方式所提供的区块链数据的删除方法,由上述管理平台执行,可包括:
76.步骤402,获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息。
77.上述待删除的目标数据为用户维护管理的目标智能合约中存储的目标数据,例如,存储在目标智能合约的账户存储空间(上述storage树中)中的数据。智能合约的账户存储空间的数据可以key

value格式存储,上述目标数据的标识信息可包含目标数据的key值,如目标数据的哈希值。上述目标数据的标识信息还可包括其他标识,例如目标智能合约中存储的数据的序列号,等等。
78.可选地,上述数据删除交易还可包括待删除的目标数据所在的目标智能合约的账户地址。此时,上述目标数据的标识信息还可包括其他标识,例如目标智能合约中存储的数据的序列号,等等。
79.本实施方式并不限定上述数据删除交易的构建者身份。在一示出的实施方式中,上述数据删除交易可以由上述区块链客户端构建,并在构建后基于用户在客户端的触发操作,将所述数据删除交易发送至所述管理平台,以使所述管理平台在获取上述数据删除交易后,可将所述交易转发至区块链网络。
80.在又一示出的实施方式中,上述区块链客户端可将上述待删除的目标数据的标识信息发送至管理平台,以触发所述管理平台基于所述目标数据的标识信息构建数据删除交易,并将其构建的数据删除交易发送至区块链网络。
81.步骤404,计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量。
82.区块链的节点设备处理所述数据删除交易的过程可包括接收、转发(广播)数据删除交易,对数据删除交易进行共识验证,基于上述目标数据的标识信息执行数据删除交易,将所述数据删除交易的执行结果存储至所述区块链的状态数据库,将所述数据删除交易收录于新生区块中等过程中的一个或多个。由于节点设备搭载的系统资源与虚拟资源进行价值锚定,区块链的节点设备在上述处理数据删除交易的全过程中均提供了自身的系统资源,因此,上述管理平台可计算节点设备在处理数据删除交易过程中消耗或提供的系统资源的第一数量,确定与第一数量的系统资源价值锚定的第二数量的虚拟资源。
83.具体地,上述处理所述数据删除交易所消耗的所述节点设备的系统资源,可包括以下示出的一个或者多个的组合:
84.处理所述数据删除交易所消耗的节点设备的计算资源,上述计算资源可包括为节点设备基于所述目标数据的标识信息执行上述数据删除交易所消耗的cpu指令集中的指令数。例如,区块链系统或管理平台可为节点设备提供的计算资源进行定价:m(虚拟资源单位)/指令,节点设备可首先计算执行上述数据删除交易所消耗的cpu指令集中的指令个数n,再计算与上述n 个指令对应的、与处理所述数据删除交易所消耗的节点设备的计算资源价值锚定的、虚拟资源的数量:m*n(虚拟资源单位)。
85.处理所述数据删除交易所消耗的节点设备的网络资源,上述网络资源可包括为在广播、共识等传输上述数据删除交易过程中所消耗的区块链网络流量,该网络资源与区块链的节点数量正相关。例如,区块链系统或管理平台可为节点设备提供的网络资源进行定价:m(虚拟资源单位)/兆流量,节点设备可首先计算执行上述数据删除交易所消耗的网络总流量n兆,再计算与上述n兆流量对应的、与处理所述数据删除交易所消耗的节点设备的网络资源价值锚定的、虚拟资源的数量:m*n(虚拟资源单位)。
86.处理所述数据删除交易所消耗的节点设备的存储资源,上述存储资源可包括为节点设备执行所述数据删除交易所消耗的存储资源。
87.如果所述区块链执行所述数据删除交易,是将所述目标数据从所述目标智能合约的账户存储空间内直接删除,而不再做其他备份存储,则可在计算处理所述数据删除交易所消耗的节点设备的系统资源时,不考虑处理所述数据删除交易所消耗的节点设备的存储资源;如果所述区块链执行所述数据删除交易,是将所述目标数据从所述目标智能合约的账户存储空间移动至所述区块链的备份数据库中进行存储,则在计算处理所述数据删除交易所消耗的节点设备的系统资源时,可考虑计算与所述目标数据在所述区块链维护的备份数据库中所消耗的存储资源价值锚定的虚拟资源。
88.区块链系统或管理平台可为节点设备提供的上述备份数据库中的存储资源进行定价:m(虚拟资源单位)/gb,当目标数据的容量为ngb时,节点设备可计算出与处理所述智能合约创建交易所消耗的节点设备的存储资源价值锚定的、虚拟资源的第二数量包括:m*n(虚拟资源单位)。
89.为了基于用户的需求,定制化节点设备可为目标数据提供备份存储服务的具体时长,在又一示出的实施方式中,所述数据删除交易还包括:用户请求在所述备份数据库中存储所述目标数据的有效时长;所述节点设备搭载的备份数据库的存储资源的有效时长,也与在所述区块链上发布的虚拟资源进行了价值锚定;相应地,上述计算与所述账户存储资源价值锚定的虚拟资源的数量,包括:计算与目标数据消耗所述区块链备份数据的存储资
源以及所述有效时长价值锚定的虚拟资源的数量。
90.例如,区块链系统或管理平台可为节点设备提供的上述备份数据库中的存储资源和存储有效时长进行定价:m(虚拟资源单位)/gb/天,用户数据删除交易汇总为所述目标数据请求了一年的有效时长,当目标数据的容量为ngb 时,节点设备即可计算出与处理所述智能合约创建交易所消耗的节点设备的存储资源价值锚定的、虚拟资源的第二数量包括:m*n*365(虚拟资源单位)。
91.值得注意的是,上述数据删除交易包括的、与用户请求在所述备份数据库中存储所述目标数据的有效时长对应的字段可以为空,以由节点设备基于区块链系统默认的有效时长、执行对虚拟资源的第二数量的计算。
92.上述区块链系统或管理平台对节点设备提供的系统资源的定价可与区块链系统的节点数量相关,可以预期,区块链的节点设备越多,执行所述数据删除交易所实际消耗的系统资源总量越多,因此,区块链系统可基于节点设备的数量调节向用户收取的、每单位系统资源的定价。
93.本实施方式对上述系统资源的形式不作具体限定,除上述存储资源、存储的有效时长、计算资源、或网络资源外,管理平台还可以基于删除智能合约存储的目标数据过程中所消耗的区块链节点设备的其他形式的系统资源,进行与该形式的系统资源所锚定的虚拟资源的收取。
94.在一示出的实施方式中,上述管理平台内、或上述区块链的底层协议可部署有计算模型,用以计算与处理所述数据删除交易所消耗的节点设备的系统资源价值锚定的虚拟资源数量,管理平台在获取到区块链客户端触发的数据删除交易后,可基于调用上述计算模型,计算出与处理所述数据删除交易所需消耗系统资源对应的虚拟资源的第二数量。
95.或者,上述区块链上还可部署用于为数据删除交易计算虚拟资源消耗的智能合约(以下称为资源计算合约),该资源计算合约的合约代码对应的执行逻辑包括计算逻辑,用以计算与处理数据删除交易所消耗的节点设备的系统资源所价值锚定的虚拟资源数量;
96.相应地,上述管理平台计算处理所述数据删除交易所消耗的所述节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量,包括:
97.调用所述资源计算合约,执行所述计费逻辑,计算执行所述数据删除交易所消耗的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量。
98.值得注意的是,管理平台在调用上述资源计算智能合约时,可响应于获取到的上述智能合约创建交易,构建一笔本地交易(local transaction或 local call),在节点设备本地调用上述区块链上部署的资源计算智能合约,以确定执行所述智能合约创建交易所消耗的节点设备的系统资源价值锚定的所述虚拟资源的第一数量。此时,管理平台可在本地获得该资源计算合约的调用执行结果,而无需将上述资源计算合约的调用执行结果在区块链上共识。
99.步骤406,获取所述用户的虚拟资源账户被扣除所述第二数量的虚拟资源的消息。
100.上述用户的虚拟资源账户即存储有与上述虚拟资源同类型的资源的账户;当上述虚拟资源为链外的真实资产时,上述虚拟资源账户可以包括货币账户(如银行账户),或用
户在所述管理平台上建立的虚拟积分账户,该虚拟积分账户内的虚拟积分可由用户使用货币兑换;当上述虚拟资源为区块链上发布的虚拟资源时,上述虚拟资源账户可以包括用户的区块链账户。
101.当上述用户的虚拟资源账户为货币账户时,从所述用户的虚拟资源账户中执行扣除所述第二数量的虚拟资源的实体可以为银行等金融机构,并可将扣除的所述第二数量的虚拟资源转移至管理平台对应的货币账户;当上述用户的虚拟资源账户为所述管理平台上建立的虚拟积分账户时,上述虚拟积分账户中的虚拟积分是用户使用货币兑换的,此时从所述用户的虚拟资源账户中执行扣除所述第二数量的虚拟资源的实体可以为上述管理平台;当上述用户的虚拟资源账户为区块链账户时,从所述用户的虚拟资源账户中执行扣除所述第二数量的虚拟资源的实体可以为区块链的节点设备,并可将扣除的所述第二数量的虚拟资源转移至管理平台对应的区块链账户。
102.本实施方式并不限定该用户的虚拟资源账户中被扣除所述第二数量的虚拟资源的执行主体、扣除时机和具体方式。
103.步骤408,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
104.在所述管理平台将上述数据删除交易发送至区块链,以使所述数据删除交易可以在区块链网络中广播、共识验证、并在共识验证通过后由区块链的节点设备基于所述目标数据的标识信息执行上述数据删除交易,以从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
105.如前所述,智能合约账户的结构体通常可包括balance,nonce,code 和storage等字段。balance字段,用于维护账户目前的账户余额;nonce字段,用于维护该账户的交易次数;它是用于保障每笔交易能且只能被处理一次的计数器,有效避免重放攻击;code字段,用于维护该账户的合约代码;在实际应用中,code字段中通常仅维护合约代码的hash值(智能合约的代码则被保存在收录上述数据删除交易的区块内)。
106.storage字段,用于维护该账户的存储内容(默认字段值为空);对于合约账户而言,通常会分配一个独立的存储空间,用以存储该合约账户的存储内容;该独立的存储空间通常称之为该合约账户的账户存储。合约账户的存储内容通常会构建成mpt(merkle patricia trie)树的数据结构存储在上述独立的存储空间之中;其中,基于合约账户的存储内容构建成的mpt树,通常也称之为storage树。而storage字段通常仅维护该storage树的根节点;因此,storage字段通常也称之为storageroot字段。
107.维护目标智能合约的用户可包括目标智能合约的创建用户,或目标智能合约中声明的具有数据删除权限的用户。区块链的节点设备在虚拟机内基于上述目标数据的标识信息,执行所述数据删除交易,并将上述数据删除交易的执行结果存储于区块链的状态数据库中,例如节点设备可在区块链状态数据库中将目标智能合约的账户存储空间内的目标数据删除,并将包含上述数据删除交易执行结果的交易收据(receipt)收录于上述区块链的mpt收据树中。
108.在一示出的实施方式中,上述从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,可以包括将目标数据从目标智能合约的账户存储空间中永
久删除,但是在之后的区块链成块过程中,该操作可能会引起某些对该目标智能合约的调用交易无法执行;因此在该实施方式中,后续若引发某些对该目标智能合约的调用交易无法执行时,用户可启动数据恢复请求,例如,对区块链的已有区块中收录的交易回放执行(或区块回滚),重新在目标智能合约的账户空间中存储上述目标数据。
109.区块链中的热数据可以包括智能合约调用所需要的数据(也称为实时数据),例如智能合约账户中包括的数据,智能合约调用所需用到的最近若干个区块内的数据,区块链的热数据通常被节点设备存储于性能优越的存储硬件中,如ssd硬盘,从而可使节点设备高效快捷地执行智能合约调用交易;区块链中的冷数据包括区块链系统设定的、无法被智能合约直接调用的非实时数据,例如历史区块内的交易、与历史区块对应的历史状态数据等;为了节约存储成本,上述冷数据可被存储与性能配置较低的存储硬件中。
110.因此,在又一示出的实施方式中,上述从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,可以包括将目标数据从目标智能合约的账户存储空间中移除,并将所述目标数据存储至所述区块链维护的备份数据库。例如,账户存储空间可以存储智能合约调用需要使用的“热数据”,用户出于节约其管理的目标智能合约的存储空间的目的,基于用户发送的数据删除交易,作为上述热数据的目标数据,可被节点设备移动至收集区块链的“冷数据”的数据库中。若上述数据删除交易后续引发某些对该目标智能合约的调用交易无法执行,用户可启动数据恢复请求,例如,将收录与冷数据数据库中的目标数据迁移回目标智能合约的账户存储空间中,以进一步执行对该目标智能合约的调用交易。
111.基于步骤402至406所述的区块链数据的删除方法,区块链系统中可以配置数据删除类型的交易(例如,系统开发者在底层协议中扩充区块链上可执行的交易类型,除转账交易、智能合约创建交易、智能合约调用交易外,扩充开发数据删除类型的交易),由维护管理目标智能合约的用户发起,删除目标智能合约的账户存储空间内的目标数据,使得用户可以优化目标智能合约的账户存储空间的数据存储;由于区块链节点设备为智能合约账户分配的数据存储资源通常为优质的存储资源,如ssd热存储资源,以方便快捷高效地进行智能合约的调用执行,因此基于本实施方式所述的区块链数据的删除方法,降低对各节点设备的优质存储资源的占用,进一步优化了区块链内节点设备的存储配置。
112.在又一示出的实施方式中,上述目标智能合约的合约代码对应的执行逻辑包括数据删除逻辑;上述数据删除交易为智能合约的调用交易,此时,区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,则包括:
113.区块链的节点设备调用所述目标智能合约,执行所述数据删除逻辑,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
114.通过调用目标智能合约的数据删除逻辑完成对目标智能合约内存储的目标数据的删除,避免了对区块链系统协议层的交易类型扩充需求,降低了区块链系统的开发难度。
115.在目标智能合约的存续期间,用户出于对目标智能合约的管理需求,可通过向管理平台支付虚拟资源,而获得节点设备可为所述目标智能合约分配的设定的存储资源容量。为方便用户对节点设备为目标智能合约分配的设定账户存储资源进行管理,所述管理平台中可维护节点设备为所述目标智能合约分配的账户存储资源中的剩余(未用)存储容
量。
116.当区块链的节点设备执行所述数据删除交易之后,上述管理平台还可监测获取所述目标智能合约的账户存储容量的占用状态,进而更新所述管理平台维护的节点设备为所述目标智能合约分配的账户存储资源的剩余存储容量:例如,基于所述目标数据被删除而增加所述管理平台维护的、所述账户存储资源的剩余存储容量的值。
117.基于上述一种或多种实施方式所述的区块链数据的删除方法,区块链的节点设备搭载的系统资源与在所述区块链上发布的虚拟资源进行了价值锚定,从而可基于节点设备处理数据删除交易所消耗的节点设备的第一数量的系统资源,锚定第二数量的虚拟资源,上述管理平台代表区块链的节点设备从用户收取所述第二数量的虚拟资源。由于不收费模式中用户随意删除智能合约包含的热数据资源容易造成后续对该智能合约的调用执行发生系统故障,从而既基于删除操作需要转移第二数量的虚拟资源的前提条件,降低误删除操作,提高区块链上交易执行的成功概率,又通过删除冗余或错误的热数据资源,优化了节点设备为所述目标智能合约分配的区块链存储资源的配置。
118.在上述一个或多个实施方式中,当用户的虚拟资源账户被成功扣除上述第二数量的虚拟资源后,管理平台的虚拟资源账户中可相应收取到的上述第二数量的虚拟资源。上述管理平台可基于预设的周期(包括实时地、或定期地)分配至所述区块链的节点设备对应的用户或机构实体的、虚拟资源账户进行持有,以完成向所述区块链系统中、提供系统资源的用户或机构实体进行虚拟资源的分配。
119.本实施方式并不限定上述虚拟资源被分配的具体方式。例如,管理平台可将收取到的货币现金、或者与扣除的虚拟积分对应的货币现金分配到所述区块链的节点设备对应的用户或机构实体的货币现金账户,或者,管理平台可将区块链账户中收到的链上发布的虚拟资源,分配到所述区块链的节点设备对应的用户或机构实体的区块链账户中,此后,响应于上述用户或机构的兑现请求,将分配至其区块链账户中的虚拟资源兑换为链外的实体资产,并将已兑换完成的链上虚拟资源做注销处理。
120.本说明书对管理平台向区块链中的各个节点设备对应的区块链账户分配所述第二数量的虚拟资源的规则不作具体限定。例如,管理平台可将上述扣除的所述第二数量的虚拟资源,平均分配至所述区块链的各个节点设备对应的用户或机构实体的虚拟资源账户分别进行持有。
121.或者,基于所述区块链的各个节点设备为所述智能合约分配的账户存储资源的存储介质性能属性,管理平台将从所述第二数量的虚拟资源,分配至所述区块链的各个节点设备对应的用户或机构实体的、虚拟资源账户分别进行持有。例如,由于各个节点设备的存储介质配置不同,管理平台可基于监测各节点设备而获取到的每个节点设备的存储介质性能属性(如hdd、或ssd、或nvm等硬盘性能属性),对每个节点设备的存储介质进行评级,从而为提供高等级存储介质的节点设备分配较高比例的虚拟资源,为提供低等级存储介质的节点设备分配较低比例的虚拟资源。
122.由上述管理平台代表区块链的节点设备进行虚拟资源的统一收取,方便了用户对第二数量的虚拟资源的支付操作;而且,上述管理平台可基于预设的分配规则,实时或定期向区块链的节点用户分配其收取的虚拟资源,从而使每一个为区块链提供系统资源的节点用户可获得相应的收益。因此,相较于仅由矿工节点收取交易手续费的现有模式,以更公平
的虚拟资源分配方式,鼓励了区块链中各节点设备贡献相应的系统资源。
123.值得注意的是,上述实施方式中并不限定步骤404、406和步骤408的执行先后顺序。
124.在一示出的实施方式中,管理平台在获取到区块链客户端触发的数据删除交易后,计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量;在获取到用户的虚拟资源账户被成功扣除所述第二数量的虚拟资源的消息之后,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
125.上述管理平台在计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与其价值锚定的虚拟资源的第二数量后,可向用户客户端发出第二数量的虚拟资源的支付指示,例如,在所述客户端的用户界面上推送现金货币支付页面,以响应于用户在客户端输入的支付验证信息(如数字密码、生物学识别信息),由用户的现金货币账户对应的金融机构从所述用户的现金货币账户完成上述第二数量的虚拟资源的扣除。又如,在所述客户端的用户界面上推送上述管理平台上流通的虚拟积分支付页面,该虚拟积分是用户使用货币现金在上述管理平台上兑换所得,并存入上述用户在所述管理平台上开通的虚拟积分账户,从而响应于用户在客户端输入的支付验证信息(如数字密码、生物学识别信息),由所述管理平台从所述用户在所述管理平台的虚拟积分账户扣除上述第二数量的虚拟资源。
126.当上述虚拟资源为区块链上发布的虚拟资源时,上述管理平台向客户端发出的、第二数量的虚拟资源的支付指示,可以为在所述客户端的用户界面推送的、区块链上的转账交易构建页面,以使上述区块链客户端可进一步通过管理平台向区块链发送转账交易,以使所述转账交易被区块链共识验证通过后,由区块链的节点设备从所述用户的区块链账户中扣除所述第二数量的虚拟资源,或者,从所述用户的区块链账户中扣除所述第二数量的虚拟资源并转移至至所述管理平台对应的区块链账户。之后,管理平台可从节点设备处获知上述转账交易是否被成功执行的消息。
127.如果所述用户的虚拟资源账户持有的虚拟资源数量小于所述第二数量而导致上述扣除过程失败,或者,所述管理平台未在预设时限内获取到客户端用户的虚拟资源账户被扣除所述第二数量的虚拟资源的消息,管理平台可向所述区块链客户端返回所述数据删除交易执行失败的提示。
128.值得注意的是,由于上述节点设备执行所述数据删除交易所消耗的系统资源包括计算资源、网络资源、存储资源等多种形式,有些资源形式可以在数据删除交易被执行前基于智能合约的代码计算出,而有些资源形式仅能在数据删除交易被执行后才可被准确获知。因此,当本实施方式中步骤406所述的扣除的第二数量的虚拟资源,是基于执行数据删除交易可能需要消耗的系统资源预估而得出的;上述区块链还可对设置后续的系统资源消耗验证环节,以检验目标数据被删除后实际消耗的系统资源是否明显与预估的系统资源不符,从而进行相应的虚拟资源补充或退还操作,本说明书对此不做限定。
129.在又一示出的实施方式中,管理平台在获取到区块链客户端触发的数据删除交易后,可先将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数
据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,并将删除所述目标数据后的所述目标智能合约的账户状态、及基于上述数据删除交易的执行结果生成的交易收据(receipt)在内存中暂存;之后,管理平台再计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量,以使用户的虚拟资源账户被扣除所述第二数量的虚拟资源,从而进一步获取到用户的虚拟资源账户被扣除所述第二数量的虚拟资源的消息。
130.上述计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定用户需转移的虚拟资源的第二数量的过程,可基于所述区块链的节点设备处理数据删除交易所实际消耗的系统资源进行统计计算。
131.当上述虚拟资源为区块链外的实体资产、或上述管理平台发布流通的、与实体资产锚定的积分或代币时,上述管理平台在获知节点设备已将删除所述目标数据后的所述目标智能合约的账户状态、及基于上述数据删除交易的执行结果生成的交易收据(receipt)暂存于节点设备内存之后,可向客户端发出第二数量的虚拟资源的支付指示,例如,在所述客户端的用户界面上推送现金货币支付页面、上述管理平台发布流通的虚拟积分支付页面,以响应于用户在客户端输入的支付验证信息(如数字密码、生物学识别信息),由用户的现金货币账户对应的金融机构从所述用户的现金货币账户、或由所述管理平台从所述用户在所述管理平台的虚拟积分账户完成上述第二数量的虚拟资源的扣除。当上述虚拟资源为货币现金时,上述第二数量的虚拟资源可被转移至所述管理平台对应的货币现金账户。
132.如果管理平台获取到从所述用户的现金货币账户、或所述用户在所述管理平台的虚拟积分账户持有的虚拟资源中成功扣除所述第二数量的虚拟资源的消息,可指示节点设备更新区块链中目标智能合约的账户状态,将执行所述数据删除交易后生成的交易收据(receipt)保存在区块链的mpt收据树中,上述交易收据可包括上述目标数据被从目标智能合约的账户存储空间删除、所述目标数据被移动至区块链的备份数据库(如有)等执行结果的。待获取到上述交易收据后,管理平台可向所述区块链客户端返回上述数据删除交易执行完成的提示,或者返回所述交易收据包含的所述数据删除交易的执行结果。
133.如果所述用户的现金货币账户、或所述用户在所述管理平台的虚拟积分账户持有的虚拟资源的数量小于所述第二数量,或者管理平台在预设的支付期限内未收到成功扣除所述第二数量的虚拟资源的消息,此时管理平台可指示节点设备从内存中删除上述目标智能合约的账户状态、数据删除交易对应的交易收据(receipt);此时,管理平台可向所述区块链客户端返回所述数据删除交易执行失败的提示。
134.当上述虚拟资源为区块链上发布的虚拟资源时,上述数据删除交易还可包括用户的区块链账户的账户标识。上述账户标识是为所述数据删除交易支付上述的第二数量的虚拟资源的用户账户的账户标识;上述账户标识可包括上述数据删除交易发布者的账户标识,也可包括由上述数据删除交易发布者指定的其他用户的账户标识。
135.在该实施方式中,节点设备将执行所述数据删除交易后目标智能合约的账户状态、和与所述数据删除交易对应的交易收据(receipt)暂存于内存后,可从所述数据删除交易包括账户标识对应的区块链账户中扣除所述第二数量的虚拟资源,并将所述第二数量的虚拟资源增加至所述管理平台对应的区块链账户。
136.如果从所述账户标识对应的区块链账户持有的虚拟资源中成功扣除所述第二数量的虚拟资源,节点设备可在区块链中更新所述目标智能合约的账户状态,并将执行所述数据删除交易后生成的交易收据(receipt)保存在区块链的mpt收据树中;此时,管理平台在获取到所述区块链中存储的所述数据删除交易的交易收据后,可向所述区块链客户端返回上述数据删除交易执行完成的提示;
137.如果所述账户标识对应的区块链账户持有的虚拟资源的数量小于所述第二数量,节点设备则无法从所述账户标识对应的区块链账户中扣除所述第二数量的虚拟资源,此时节点设备可删除内存中存储的目标智能合约的账户状态及与数据删除交易对应的交易收据(receipt)并通知管理平台;此时,管理平台可向所述区块链客户端返回所述数据删除交易执行失败的提示。
138.或者,当所述虚拟资源账户持有的虚拟资源的数量小于所述第二数量,所述第二数量的虚拟资源无法被足量扣除时,管理平台可指示节点设备暂存上述交易收据和账户状态,并由管理平台向所述区块链客户端发送余额补充提醒,待上述区块链客户端完成对所述用户账户的余额补充后,再执行上述的第二数量的虚拟资源的扣除操作,并在扣除成功后,在所述区块链中更新目标智能合约的账户状态,并将上述交易收据(receipt)保存在区块链的mpt 收据树中,从而由管理平台向所述区块链客户端返回所述数据删除交易执行完成的提示。
139.在又一示出的实施方式中,当上述虚拟资源为区块链上发布的虚拟资源时,且由节点设备执行从用户的区块链账户中扣除第二数量的虚拟资源的操作时,上述数据删除交易被管理平台发送至区块链后,在区块链中的广播、共识验证、及执行过程可具体包括:
140.上述节点设备在收到上述数据删除交易后,可将所述数据删除交易在区块链网络中广播传递;
141.区块链中共识节点在收到上述数据删除交易后,可对所述数据删除交易进行共识验证;
142.如果对所述数据删除交易的共识验证通过,区块链的节点设备基于与处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的价值锚定的所述虚拟资源的第二数量,从与用户标识对应的用户账户中扣除所述第二数量的虚拟资源;以及在扣除成功后执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
143.在该实施方式中,为了减少由于上述用户标识对应的区块链账户中的虚拟资源余额不足以支付处理所述数据删除交易所需转移的虚拟资源的第二数量,导致所述智能合约调用失败,造成节点设备的系统资源浪费,上述区块链的共识节点所执行的共识验证过程,可包括:验证所述数据删除交易所包含的所述标识对应的区块链用户账户持有的虚拟资源的数量是否不小于预设阈值。
144.上述预设阈值可以是区块链开发者为数据删除类型的交易所设定的固定的虚拟资源阈值,例如,可基于执行数据删除类型的交易的最小系统资源消耗、或平均系统资源消耗所锚定的虚拟资源数量来设定;在该条件下,为了使智能合约成功被调用执行,用户标识对应的区块链账户中需持有符合上述预设阈值的虚拟资源数量,从而使得当用户账户中的虚拟资源数量少于上述预设阈值时,则直接返回共识验证未通过的提示,避免节点设备在
共识验证阶段后由于处理所述数据删除交易而进一步消耗系统资源。
145.在一些实施方式中,上述数据删除交易虽然通过了上述包含对用户账户余额不小于预设阈值的共识验证,但是仍可能由于上述数据删除交易所需新增的存储资源过大、或者调用上述智能合约执行的逻辑过于复杂,而使上述计算确定的虚拟资源的第二数量大于用户账户的余额,导致交易执行失败。
146.可选地,上述共识验证还可包括上述步骤404所述的计算处理所述数据删除交易所消耗的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量的过程,例如,当上述区块链的底层协议部署了计算与处理所述数据删除交易所消耗的节点设备的系统资源价值锚定的虚拟资源数量的计算模型时,共识节点获取所述数据删除交易时,即可获取区块链底层协议所计算确定的、节点设备处理所述智能合约消耗的系统资源锚定的虚拟资源的第二数量,此时,上述预设阈值可以为经上述计算处理过程所确定的虚拟资源的第二数量,从而使区块链的共识节点在共识验证中,直接基于处理该数据删除交易所需扣除的虚拟资源的第二数量,执行是否足以支付的共识验证,从而提供了更加精准的共识验证,提高通过共识验证的数据删除交易的执行成功率。
147.在上述示出的一个或多个实施方式中,由于上述管理平台基于区块链的节点设备提供的系统资源,代表区块链的节点设备进行了第二数量的虚拟资源收取;上述管理平台还可设定相应的虚拟资源分配规则,基于预设的周期(包括实时地、或定期地)将收取到的虚拟资源向区块链的节点用户分配,以使区块链的节点用户可基于自身为处理数据删除交易而提供的系统资源,获取到相应的虚拟资源。本说明书对虚拟资源的分配方式此不作具体限定,例如可通过链下银行账户分配,或由管理平台通过系统管理员级指令,统一向各节点设备的区块链账户分配。
148.与上述流程实现对应,本说明书的实施例还提供了区块链数据的删除装置 50和60。装置50和60可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过所在设备的 cpu(central process unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图7所示的cpu、内存以及存储器之外,上述装置所在的设备通常还包括用于进行无线信号收发的芯片等其他硬件,和/或用于实现网络通信功能的板卡等其他硬件。
149.如图5所示,本说明书还提供了一种区块链数据的删除装置,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述装置包括:
150.获取单元502,获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
151.计算单元504,计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量;
152.发送单元506,在所述用户的虚拟资源账户被扣除所述第二数量的虚拟资源之后,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
153.在又一示出的实施方式中,所述数据删除交易为智能合约调用交易,所述目标智
能合约的合约代码对应的执行逻辑包括数据删除逻辑;
154.所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,包括:
155.所述区块链的节点设备调用所述目标智能合约,执行所述数据删除逻辑,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
156.在又一示出的实施方式中,所述从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,包括:
157.将所述目标数据从所述用户管理的目标智能合约的账户存储空间移除,并将所述目标数据存储至所述区块链维护的备份数据库。
158.在又一示出的实施方式中,所述装置50还包括返回单元508,在将所述数据删除交易发送至所述区块链之前,如果所述用户的所述虚拟资源账户在预设时限内未被成功扣除所述第二数量的虚拟资源,向所述区块链客户端返回所述智能合约调用交易执行失败的提示。
159.在又一示出的实施方式中,处理所述数据删除交易所消耗的所述节点设备的系统资源,包括以下示出的一个或者多个的组合:
160.处理所述智能合约创建交易所消耗的节点设备的存储资源,所述存储资源包括所述目标数据在所述区块链维护的备份数据库中所消耗的存储资源;
161.处理所述智能合约创建交易所消耗的节点设备的计算资源;
162.处理所述智能合约创建交易所消耗的节点设备的网络资源。
163.在又一示出的实施方式中,所述区块链部署了资源计算合约,所述资源计算合约的合约代码对应的执行逻辑包括计算逻辑;
164.所述计算单元504,进一步用于:
165.调用所述资源计算合约,执行所述计算逻辑,计算处理所述数据删除交易所消耗的所述节点设备的系统资源的第一数量,并确定与所述第二数量的系统资源价值锚定的所述虚拟资源的第二数量。
166.在又一示出的实施方式中,所述的装置50还包括分配单元510:
167.将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,分配至所述区块链的节点设备对应的虚拟资源账户进行持有,并在分配完毕后进一步执行所述智能合约创建交易。
168.在又一示出的实施方式中,所述分配单元510,进一步用于:
169.将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,平均分配至所述区块链的各个节点设备对应的虚拟资源账户分别进行持有;
170.或者,基于所述区块链的各个节点设备为所述智能合约分配的账户存储资源的存储介质性能属性,将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,分配至所述区块链的各个节点设备对应的虚拟资源账户分别进行持有。
171.在又一示出的实施方式中,所述管理平台中维护了节点设备为所述目标智能合约分配的账户存储资源的剩余存储容量;
172.所述装置还包括更新单元512,在所述目标数据被删除后,更新所述管理平台维护的节点设备为所述目标智能合约分配的账户存储资源的剩余存储容量。
173.在又一示出的实施方式中,所述管理平台包括云计算管理平台;所述区块链的节点设备包括在云计算管理平台管理的物理主机上创建的虚拟机。
174.处理所述智能合约创建交易所消耗的节点设备的处理所述智能合约创建交易所消耗的节点设备的上述装置50中各个单元的功能和作用的实现过程具体详见上述在所述用户的虚拟资源账户被扣除第二数量的虚拟资源之后、将所述数据删除交易发送至所述区块链的实施方式中,管理平台所执行的区块链数据的删除方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。
175.如图6所示,本说明书还提供了一种区块链数据的删除装置60,应用于对区块链的节点设备执行管理的管理平台,所述区块链的节点设备搭载的系统资源与虚拟资源进行了价值锚定;所述装置60包括:
176.获取单元602,获取区块链客户端触发的数据删除交易,所述数据删除交易包括待删除的目标数据的标识信息;
177.发送单元604,将所述数据删除交易发送至所述区块链,以使所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据;
178.计算单元606,在所述区块链的节点设备执行所述数据删除交易之后,计算处理所述数据删除交易所消耗的所述区块链的节点设备的系统资源的第一数量,并确定与所述第一数量的系统资源价值锚定的所述虚拟资源的第二数量。
179.在又一示出的实施方式中,所述数据删除交易为智能合约调用交易,所述目标智能合约的合约代码对应的执行逻辑包括数据删除逻辑;
180.所述区块链的节点设备执行所述数据删除交易,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,包括:
181.所述区块链的节点设备调用所述目标智能合约,执行所述数据删除逻辑,从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据。
182.在又一示出的实施方式中,所述从所述用户管理的目标智能合约账户中删除与所述标识信息对应的所述目标数据,包括:
183.将所述目标数据从所述用户管理的目标智能合约的账户存储空间移除,并将所述目标数据存储至所述区块链维护的备份数据库。
184.在又一示出的实施方式中,所述虚拟资源为与将用户持有的链外资产作为价值锚定,在区块链上发布的区块链资产;
185.所述数据删除交易还包括用户的账户标识;
186.所述用户的虚拟资源账户包括与所述账户标识对应的区块链用户账户。
187.在又一示出的实施方式中,所述的装置60还包括返回单元608,
188.如果所述用户的虚拟资源账户被成功扣除所述第二数量的虚拟资源,指示节点设备将生成的所述数据删除交易的交易收据保存至区块链,并基于所述交易收据向所述区块链客户端返回所述智能合约调用交易的执行结果;
189.如果所述用户的所述虚拟资源账户持有的虚拟资源的数量小于所述第二数量,指示节点设备删除生成的所述数据删除交易的交易收据,并向所述区块链客户端返回所述智能合约调用失败的提示。
190.在又一示出的实施方式中,处理所述数据删除交易所消耗的所述节点设备的系统资源,包括以下示出的一个或者多个的组合:
191.处理所述智能合约创建交易所消耗的节点设备的存储资源,所述存储资源包括所述目标数据在所述区块链维护的备份数据库中所消耗的存储资源;
192.处理所述智能合约创建交易所消耗的节点设备的计算资源;
193.处理所述智能合约创建交易所消耗的节点设备的网络资源。
194.在又一示出的实施方式中,所述区块链部署了资源计算合约,所述资源计算合约的合约代码对应的执行逻辑包括计算逻辑;
195.所述计算单元606,进一步用于:
196.调用所述资源计算合约,执行所述计算逻辑,计算处理所述数据删除交易所消耗的所述节点设备的系统资源的第一数量,并确定与所述第二数量的系统资源价值锚定的所述虚拟资源的第二数量。
197.在又一示出的实施方式中,所述的装置60还包括分配单元610,将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,分配至所述区块链的节点设备对应的虚拟资源账户进行持有,并在分配完毕后进一步执行所述智能合约创建交易。
198.在又一示出的实施方式中,所述分配单元610进一步用于:
199.将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,平均分配至所述区块链的各个节点设备对应的虚拟资源账户分别进行持有;
200.或者,基于所述区块链的各个节点设备为所述智能合约分配的账户存储资源的存储介质性能属性,将从所述用户的虚拟资源账户持有的虚拟资源中扣除的所述第二数量的虚拟资源,分配至所述区块链的各个节点设备对应的虚拟资源账户分别进行持有。
201.在又一示出的实施方式中,所述管理平台中维护了节点设备为所述目标智能合约分配的账户存储资源的剩余存储容量;
202.所述装置60还包括更新单元612,在所述目标数据被删除后,更新所述管理平台维护的节点设备为所述目标智能合约分配的账户存储资源的剩余存储容量。
203.在又一示出的实施方式中,所述管理平台包括云计算管理平台;所述区块链的节点设备包括在云计算管理平台管理的物理主机上创建的虚拟机。
204.上述装置60中各个单元的功能和作用的实现过程具体详见上述数据删除交易被区块链的节点设备执行之后、从用户的虚拟资源账户中扣除第二数量的虚拟资源的实施方式中,管理平台所执行的区块链数据的删除方法中对应步骤的实现过程,相关之处参见方法实施例的部分说明即可,在此不再赘述。
205.以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部单元或模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
206.上述实施例阐明的装置、单元、模块,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航
设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
207.与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备,如图7所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行图5所示的装置所在的管理平台所执行的区块链数据的删除方法的各个步骤。对上述管理平台所执行的区块链数据的删除方法的各个步骤的详细描述请参见之前的内容,不再重复。
208.与上述方法实施例相对应,本说明书的实施例还提供了一种计算机设备,如图7所示,该计算机设备包括存储器和处理器。其中,存储器上存储有能够由处理器运行的计算机程序;处理器在运行存储的计算机程序时,执行图6所示的装置所在的管理平台所执行的区块链数据的删除方法的各个步骤。对上述管理平台所执行的区块链数据的删除方法的各个步骤的详细描述请参见之前的内容,不再重复。
209.以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
210.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
211.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
212.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。
213.计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd

rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
214.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
215.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书的实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书的实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜