CN109903161A - 基于区块链的对象处理方法、装置、设备及介质 - Google Patents

基于区块链的对象处理方法、装置、设备及介质 Download PDF

Info

Publication number
CN109903161A
CN109903161A CN201910151843.4A CN201910151843A CN109903161A CN 109903161 A CN109903161 A CN 109903161A CN 201910151843 A CN201910151843 A CN 201910151843A CN 109903161 A CN109903161 A CN 109903161A
Authority
CN
China
Prior art keywords
data object
output
transactions requests
input data
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.)
Granted
Application number
CN201910151843.4A
Other languages
English (en)
Other versions
CN109903161B (zh
Inventor
孙君意
肖伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201910151843.4A priority Critical patent/CN109903161B/zh
Publication of CN109903161A publication Critical patent/CN109903161A/zh
Application granted granted Critical
Publication of CN109903161B publication Critical patent/CN109903161B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明实施例公开了一种基于区块链的对象处理方法、装置、设备及介质。该方法应用于区块链节点,包括:获取针对数据对象进行设定操作的事务请求,事务请求中至少包括输入字段用于记录至少一个输入数据对象的对象标识及输入数据对象的前次输出地址,还包括输出字段用于记录输出数据对象的对象标识;根据事务请求的设定操作要求,对输入数据对象进行处理,确定输出数据对象的处理后内容,写入输出字段,以形成事务数据添加到区块中。本发明实施例的技术方案通过在事务请求中设定记录输入数据对象的对象标识及输入数据对象的前次输出地址的输入字段,以及设定记录输出数据对象的对象标识输出字段,实现对链上存储的各数据对象的处理历史的追踪溯源。

Description

基于区块链的对象处理方法、装置、设备及介质
技术领域
本发明实施例涉及区块链的数据处理技术,尤其涉及一种基于区块链的对象处理方法、装置、设备及介质。
背景技术
区块链网络中包括多个区块链节点,通过区块链节点可发起事务请求,以请求各个区块链节点对该事务请求进行处理,并将事务请求的事务数据进行上链存储,以使得上链存储的事务数据难以被篡改,提高了事务处理的可靠性。
随着区块链应用技术的推广,区块链网络可承载的业务功能越来越丰富,相应的,用于实现业务功能所使用的各种事务请求也越来越丰富。最初期的事务请求,就是进行数字货币转移的交易请求,而现在已经演变为通过执行智能合约的程序代码来处理各种复杂的业务功能了。
但是,现有技术执行各种业务功能的事务请求时,存在一定缺陷。即,业务功能所涉及的一些数据对象,如要保存的版权信息、销售的数字商品等,难以溯源,只能通过链上查询来获知数据对象被处理后的最新状态,而无法追踪这些数据对象在链上的处理历史。
发明内容
本发明实施例提供了一种基于区块链的对象处理方法、装置、设备及介质,以实现对链上存储的数据对象的处理历史的追踪溯源。
第一方面,本发明实施例提供了一种基于区块链的对象处理方法,由区块链节点执行,所述方法包括:
获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;
根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
第二方面,本发明实施例还提供了一种基于区块链的对象处理装置,配置于区块链节点,所述装置包括:
事务请求获取模块,用于获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;
事务请求处理模块,用于根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
第三方面,本发明实施例还提供了一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面实施例所提供的一种基于区块链的对象处理方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面实施例所提供的一种基于区块链的对象处理方法。
本发明实施例通过获取针对数据对象进行设定操作的事务请求,其中事务请求中至少包括输入字段和输出字段,输入字段用于记录至少一个输入数据对象的对象标识及输入数据对象的前次输出地址,输出字段用于记录输出数据对象的对象标识;根据事务请求的设定操作要求,对输入数据对象进行处理,确定输出数据对象的处理后内容并写入输出字段,以形成事务数据添加到区块中。本发明实施例的技术方案通过在事务请求中设定输入字段,以记录输入数据对象的对象标识及输入数据对象的前次输出地址,在事务请求中设定输出字段以记录输出数据对象的对象标识,使得在对该事务请求的事务数据的进行上链存储后,区块链节点能够通过输入字段以及输出字段中记录的内容,对已存储的输入数据对象和/或输出数据对象,进行前次输出地址的追踪,进而实现对链上存储的各数据对象的处理历史的追踪溯源。同时由于各数据对象仅依赖于与自身有关的事务请求的处理结果,因此对多个不同的数据对象进行处理的各事务请求可以基于数据对象的处理历史,形成不同的有向无环图网络,从而为多个事务请求的并行处理提供可能。
附图说明
图1是本发明实施例一中的一种基于区块链的对象处理方法的流程图;
图2A是本发明实施例二中的一种基于区块链的对象处理方法的流程图;
图2B是本发明实施例二中的文本编辑事务请求的结构图;
图2C是本发明实施例二中的进行版权登记时文本编辑事务请求的结构图;
图3是本发明实施例三中的一种基于区块链的对象处理方法的流程图;
图4是本发明实施例四中的一种基于区块链的对象处理方法的流程图;
图5是本发明实施例五中的一种基于区块链的对象处理装置的结构图;
图6是本发明实施例六中的一种电子设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。
实施例一
图1是本发明实施例一中的一种基于区块链的对象处理方法的流程图。本发明实施例适用于对区块链中存储的数据对象的处理历史进行追踪溯源的情况,该方法由基于区块链的对象处理装置执行,该装置由软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。
如图1所示的一种基于区块链的对象处理方法,应用于区块链节点,包括:
S110、获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识。
目前常见的区块链网络中所处理的事务请求类型,一种是可读字段事务请求,典型代表就是UTXO(Unspent Transaction Output,未花费交易输出)的交易事务请求,另一种是可执行代码的事务请求,典型的是以太坊虚拟机(Ethereum Virtual Machine,EVM)所执行的智能合约;当然,也存在两种形式结合的事务请求,如在可读字段事务请求中的某个字段中携带可执行代码段。本发明实施例所涉及的事务请求可以是单纯的可读字段事务请求,还可以是结合有可执行代码段的可读字段事务请求,从而能够在可读字段事务请求中至少设置输入字段和输出字段。
其中,数据对象可以理解为通过区块链网络承载的某种业务功能中,所需处理的对象。因业务功能不同,数据对象随之变化。数据对象例如可以为版权文件、文本字符串、数字商品等。可以通过某种机制发布产生数据对象,如发行数字货币、上线待销售的数字商品等。一旦在区块链网络中确认成为数据对象,则各个用户或区块链节点,可通过发起事务请求来对这些数据对象的内容进行处理,如对价格进行更改、通过交易变更商品所有者等。
事务请求中包括其内容将被处理的数据对象,作为输入数据对象,还包括内容被处理后的数据对象,作为输出数据对象。其中,一个事务请求中输入数据对象的数量为一个或多个,输出数据对象的数量为一个或多个。输入的数据对象和输出的数据对象,可以相同或不同,可以一对一、一对多、多对一、或多对多,具体对应关系由事务请求本身所需执行的功能来确定。一个事务请求中的所述输出数据对象可选的与输入数据对象中的至少一个相同。
其中,对象标识用于作为数据对象的唯一标识,对不同的数据对象加以区分,例如可以是数据对象的名称。在数据对象在区块链网络中被发布产生时就分配有对象标识。
其中,前次输出地址可以理解为输入数据对象上一次作为输出数据对象时所对应的输出地址,或者输入数据对象被发布时的初始输出地址。示例性地,数据对象的发布,可以是在创世区块中预先发布的数据对象,并将预先发布的各数据对象设定对象标识和初始输出地址;还可以是在区块链网络中的任一区块链节点在具备数据对象发布需求时,依照区块链网络所遵循的共识机制发起数据对象的发布事务请求,以产生新的数据对象,并对应存储新数据对象的对象标识和初始输出地址。
其中,输入数据对象的前次输出地址包括:前一次处理所述输入数据对象的事务请求的事务标识。可以理解的是,当前一次事务请求中包含多个输出的数据对象时,为了对输出数据对象进行有效区分,前次输出地址还可以包括:输入数据对象在前次事务请求中输出字段的偏移位置。输出字段的偏移地址具体可以表征在前次事务请求中是第几个输出字段。
S120、根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
当区块链节点获取到针对数据对象进行设定操作的事务请求后,获取该事务请求中的输入数据对象以及设定操作要求;根据事务请求的设定操作要求对输入数据对象进行处理,得到输出数据对象的处理结果,并将处理结果写入输出字段中;将事务请求的处理过程及处理结果形成事务数据,并将所形成的事务数据上链存储,便于其他区块链节点进行数据验证或查询等。
上述操作中,设定操作是由事务请求所要执行功能决定的功能操作。例如,数据对象是数字商品,其内容中包括商品所有者,当事务请求用于进行商品交易时,则设定操作是将商品所有者从A用户变更为B用户。B用户这一内容就作为数据对象的处理后内容,写入输出字段,形成事务数据。
本发明实施例通过获取针对数据对象进行设定操作的事务请求,其中事务请求中至少包括输入字段和输出字段,输入字段用于记录至少一个输入数据对象的对象标识及输入数据对象的前次输出地址,输出字段用于记录输出数据对象的对象标识;根据事务请求的设定操作要求,对输入数据对象进行处理,确定输出数据对象的处理后内容并写入输出字段,以形成事务数据添加到区块中。本发明实施例的技术方案通过在事务请求中设定输入字段,以记录输入数据对象的对象标识及输入数据对象的前次输出地址,在事务请求中设定输出字段以记录输出数据对象的对象标识,使得在对该事务请求的事务数据的进行上链存储后,区块链节点能够通过输入字段以及输出字段中记录的内容,对已存储的输入数据对象和/或输出数据对象,进行前次输出地址的追踪,进而实现对链上存储的各数据对象的处理历史的追踪溯源。同时由于各数据对象仅依赖于与自身有关的事务请求的处理结果,因此对多个不同的数据对象进行处理的各事务请求可以基于数据对象的处理历史,形成不同的有向无环图网络,从而为多个事务请求的并行处理提供可能。
实施例二
图2A是本发明实施例二中的一种基于区块链的对象处理方法的流程图。本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将事务请求限定为文本编辑事务请求;相应的,将操作“根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容”细化为“根据所述文本编辑事务请求的文本编辑操作要求,对至少一个输入数据对象所对应的文本进行编辑处理,将编辑处理后的文本,作为所述输出数据对象所对应的文本”,以基于文本编辑事务请求对输入数据对象进行文本编辑处理。
如图2A所示的一种基于区块链的对象处理方法,包括:
S210、获取针对数据对象进行文本编辑操作的文本编辑事务请求,其中,所述文本编辑事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识。
以图2B所示的文本编辑事务请求的结构图为例进行示例性说明。
区块链节点获取到针对数据对象a进行文本编辑操作的文本编辑事务请求,该文本编辑事务请求的事务标识为T2。其中,文本编辑事务请求T2中包括输入字段InputExt和输出字段OutputExt。其中,输入字段InputExt记录有输入数据对象a和输入数据对象b。其中,输入数据对象a的前次输出地址中的事务请求的事务标识为T1,在前次事务请求T1中的输出字段OutputExt的偏移位置为0;输入数据对象b的前次输出地址中的事务请求事务标识为T1,在前次事务请求T1中的输出字段OutputExt的偏移位置为1。文本编辑事务请求T2的输出字段OutputExt记录有输出数据对象a。其中,文本编辑操作为文本拼接操作。
S220、根据所述文本编辑事务请求的文本编辑操作要求,对至少一个输入数据对象所对应的文本进行编辑处理,将编辑处理后的文本,作为所述输出数据对象所对应的文本,写入所述输出字段,以形成事务数据,添加到区块中。
当通过对输入数据对象a中的文本“Hello”和输入数据对象b的文本“World”进行文本拼接操作后,得到输出数据对象a的处理结果“HelloWorld”,并将输出数据对象a的处理结果“HelloWorld”作为输出数据对象对应的文本,写入文本编辑事务请求T2的输出字段OutputExt中,同时形成事务数据添加到区块中。
可以理解的是,采用本发明实施例的事务请求的架构形成文本编辑事务请求,可以应用到版权信息记录、数字商品销售记录以及虚拟货币交易等诸多应用场景。
图2C以版权登记为例进行说明。针对不同的用户账号创建数据对象,用于在各对象账户下记录该用户可使用的版权信息。其中,用户A的用户账号为userA,相应的数据对象为userA;用户B的用户账号为userB,相应的数据对象为userB。用户A通过区块链节点执行版权交易请求TX1后,在TX1的输出字段OutputExt中记录了userA的版权信息为“电影1”。用户B首次发行了“歌曲2”,并通过区块链节点执行版权创建请求TX2后,在TX2的输出字段OutputExt中记录了userB的版权信息为“歌曲2”。
当用户A向用户B购买“歌曲2”的版权时,用户A向区块链网络中发起版权转让请求TX3。其中,版权转让请求TX3中的输入数据对象为userA和userB,输出数据对象为userA;输入数据对象userA的前次输出地址为“TX1,0”;输入数据对象userB的前次输出地址为“TX2,0”;所执行的设定操作为将userB的版权记录在userA中。当区块链节点执行该版权转让请求后,输出数据对象userA的处理结果为“电影1歌曲2”。
本发明实施例通过将事务请求限定为文本编辑事务请求,以将基于区块链的对象处理方法应用到需要对区块链中已记录的文本数据再次进行编辑的应用场景中,对数据对象进行溯源追踪。
实施例三
图3是本发明实施例三中的一种基于区块链的对象处理方法的流程图。本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,将事务请求限定为数字物品处理事务请求;相应的,将操作“根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容”细化为“根据所述数字物品处理事务请求,对输入数据对象所对应的数字物品的描述信息进行处理,将处理后的数字物品的描述信息,作为所述输出数据对象所对应的文本”,以基于数字物品处理事务请求对输入数据对象的描述信息进行处理。
如图3所示的一种基于区块链的对象处理方法,包括:
S310、获取针对数据对象进行设定操作的数字物品处理事务请求,其中,所述数字物品处理事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识。
其中,数字物品可以是能够在不同账号主体之间进行流通的元素,例如实体商品的数字标识、虚拟货币、积分、星钻、或者能量等。其中,数据对象可以与账号主体相对应,数据对象中对应记录有数字物品的描述信息。其中,数字物品的描述信息可以包括下述至少一项:当前所有者、物品名称、物品产地、生产时间、价格以及经销商。其中,设定操作可以是对数字物品的描述信息进行处理,例如可以是对当前所有者的变更、价格变更等。
S320、根据所述数字物品处理事务请求,对输入数据对象所对应的数字物品的描述信息进行处理,将处理后的数字物品的描述信息,作为所述输出数据对象所对应的文本,写入所述输出字段,以形成事务数据,添加到区块中。
具体的,当区块链节点获取到针对数据对象进行设定操作的数字物品处理事务请求后,区块链节点获取数字物品处理事务请求中的输入数据对象、输出数据对象以及相应的描述信息处理操作;根据描述信息处理操作对输入数据对象进行处理,并将处理后的结果作为输出数据对应的文本,写入输出字段中,并形成输入数据进行上链存储。
本发明实施例通过将事务请求限定为数字物品处理事务请求,以将基于区块链的对象处理方法应用到需要对区块链中已记录的数字物品的描述信息进行变更的应用场景中,对数据对象进行溯源追踪。相应的应用场景可以是积分兑换、虚拟货币交易、以及实体商品交易等。
实施例四
图4是本发明实施例四中的一种基于区块链的对象处理方法的流程图。本发明实施例在上述各实施例的技术方案的基础上进行了优化改进。
进一步地,在操作“确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中”之后,追加“将当前事务请求的事务标识,以及输出字段在事务请求中的偏移位置,作为输出地址;根据所述输出数据对象的对象标识以及所述输出地址,更新设定索引中数据对象与输出地址的对应关系”,以建立数据对象与输出地址之间的对应关系,便于在区块链中对数据对象的快速查询。
如图4所示的一种基于区块链的对象处理方法,包括:
S410、获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识。
S420、根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
S430、将当前事务请求的事务标识,以及输出字段在事务请求中的偏移位置,作为输出地址。
参见图2B所示的文本编辑事务请求的结构图,将文本编辑事务请求的事务标识T2以及输出字段OutputExt在文本编辑事务请求中的偏移位置0,作为输出地址,也即将“T2,0”作为输出数据对象a的输出地址。
S440、根据所述输出数据对象的对象标识以及所述输出地址,更新设定索引中数据对象与输出地址的对应关系。
建立输出数据对象的对象标识a以及输出地址“T2,0”之间的索引关系,并在设定索引中对输出数据对象a的输出地址由前次输出地址“T1,0”更新为“T2,0”,并保持数据对象b的输出地址不变。
为了便于对数据对象的输出地址的快速查找,优选是将设定索引设置为区块链节点的本地索引。设定索引可以是独立于区块链数据的索引数据,可以由区块链节点存储在本地数据库中,并不需要广播给其他节点。但是,由于区块链网络的运行特点,各个节点通过区块链中的事务数据所产生的本地索引,理论上实质内容是完全一致的。
典型的,可采用键值对存储系统对设定索引进行存储,其中,键值对的键域用于存储输出数据对象的对象标识;键值对的值域用于存储一个最新的输出地址或顺序存储数据对象的各次输出地址。
需要说明的是,当不同的存储空间存储有相同对象标识的数据对象时,为了防止数据对象的混淆,对象标识除了包括数据对象的标识(例如可以是名称)以外,通常还会采用数据对象的存储空间的名称进一步区分。例如,对于数字商品,可能多个线上商家都需要发布“X型手机”这一数据对象,则有可能发布时命名的对象标识是相同的。为了避免区块链全局中的对象标识重复,可进一步将线上商家的标识,与商品标识结合,共同作为对象标识。线上商家就相当于区块链网络中的某个存储空间,可以通过“bucket”方式来区分各个线上商家。
可以理解的是,由于预先在区块链节点本地存储有数据对象与输出地址之间的索引关系,因此,在区块链节点接收到事务请求之后,在处理事务请求之前,还可以预先根据所述设定索引中记录的数据对象与输出地址的对应关系,查询所述事务请求中输入数据对象的前次输出地址是否为最新的输出地址,若否,则确定所述事务请求发生冲突;若是,则直接对事务请求进行处理。
如果当前事务请求要处理的输入数据对象的前次输出地址不是最新的,说明可能有其他区块链节点已经对该数据对象进行了处理,并更新了其内容。所以按照旧输出地址再处理数据对象就会发生错误。通过预先判定事务请求是否发生冲突的方式,可以在不发生冲突的情况下实现事务请求的并行处理,节约了事务请求的处理时间,同时避免了由于交易冲突导致区块链中数据存储错误的情况。
本发明实施例对S430~S440可以在S420之后执行,还可以与S420同时执行,再次对S430~S440与S420的执行顺序不做任何限定。
本发明实施例通过将当前事务请求的事务标识以及输出字段在事务请求中的偏移位置,作为输出地址,并根据输出数据对象的对象标识以及输出地址,更新设定索引中数据对象与输出地址的对应关系,以根据数据对象的处理情况实时更新对应的输出地址,实现了对数据对象的执行情况进行有效监控,便于对在区块链中对数据对象的快速查询,同时为事务请求的并行处理提供了保障。
实施例五
图5是本发明实施例五中的一种基于区块链的对象处理装置的结构图。本发明实施例适用于对区块链中存储的数据对象的处理历史进行追踪溯源的情况,该装置由软件和/或硬件实现,并具体配置于承载有区块链节点的电子设备中。
如图5所示的一种基于区块链的对象处理装置,包括:事务请求获取模块510以及事务请求处理模块520。
事务请求获取模块510,用于获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;
事务请求处理模块520,用于根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
本发明实施例通过事务请求获取模块获取针对数据对象进行设定操作的事务请求,其中事务请求中至少包括输入字段和输出字段,输入字段用于记录至少一个输入数据对象的对象标识及输入数据对象的前次输出地址,输出字段用于记录输出数据对象的对象标识;通过事务请求处理模块根据事务请求的设定操作要求,对输入数据对象进行处理,确定输出数据对象的处理后内容并写入输出字段,以形成事务数据添加到区块中。本发明实施例的技术方案通过在事务请求中设定输入字段,以记录输入数据对象的对象标识及输入数据对象的前次输出地址,在事务请求中设定输出字段以记录输出数据对象的对象标识,使得在对该事务请求的事务数据的进行上链存储后,区块链节点能够通过输入字段以及输出字段中记录的内容,对已存储的输入数据对象和/或输出数据对象,进行前次输出地址的追踪,进而实现对链上存储的各数据对象的处理历史的追踪溯源。同时由于各数据对象仅依赖于与自身有关的事务请求的处理结果,因此对多个不同的数据对象进行处理的各事务请求可以基于数据对象的处理历史,形成不同的有向无环图网络,从而为多个事务请求的并行处理提供可能。
进一步地,所述输入数据对象的前次输出地址包括:前一次处理所述输入数据对象的事务请求的事务标识,以及所述输入数据对象在前次事务请求中输出字段的偏移位置。
进一步地,事务请求处理模块520,在执行以下操作时,根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,包括下述至少一项:
如果所述事务请求为文本编辑事务请求,则根据所述文本编辑事务请求的文本编辑操作要求,对至少一个输入数据对象所对应的文本进行编辑处理,将编辑处理后的文本,作为所述输出数据对象所对应的文本;
如果所述事务请求为数字物品处理事务请求,则根据所述数字物品处理事务请求,对输入数据对象所对应的数字物品的描述信息进行处理,将处理后的数字物品的描述信息,作为所述输出数据对象所对应的文本。
进一步地,所述数字物品的描述信息包括下述至少一项:当前所有者、物品名称、物品产地、生产时间、价格以及经销商;
对所述描述信息的处理包括下述至少一项:当前所有者的变更、以及价格的变更。
进一步地,一个事务请求中输入数据对象的数量为一个或多个,输出数据对象的数量为一个或多个。
进一步地,一个事务请求中的所述输出数据对象与输入数据对象中的至少一个相同。
进一步地,该装置还包括,数据对象产生模块,用于:
发起数据对象的发布事务请求,以产生新的数据对象,并对应存储新数据对象的对象标识和初始输出地址。
进一步地,该装置还包括,设定索引更新模块,用于:
在事务请求处理模块520执行确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中之时,执行以下操作:
将当前事务请求的事务标识,以及输出字段在事务请求中的偏移位置,作为输出地址;
根据所述输出数据对象的对象标识以及所述输出地址,更新设定索引中数据对象与输出地址的对应关系。
进一步地,所述设定索引为区块链节点的本地索引。
进一步地,所述设定索引为键值对存储系统,键值对的键域用于存储所述输出数据对象的对象标识,所述键值对的值域用于存储一个最新的输出地址或顺序存储所述数据对象的各次输出地址。
进一步地,事务请求处理模块520,在执行根据所述事务请求的设定操作要求,对所述输入数据对象进行处理之前,还用于:
根据所述设定索引中记录的数据对象与输出地址的对应关系,查询所述事务请求中输入数据对象的前次输出地址是否为最新的输出地址,若否,则确定所述事务请求发生冲突。
本发明实施例所提供的基于区块链的对象处理装置可执行本发明任意实施例所提供的基于区块链的对象处理方法,具备执行基于区块链的对象处理方法相应的功能模块和有益效果。
实施例六
图6是本发明实施例六提供的一种电子设备的结构示意图。图6示出了适于用来实现本发明实施方式的示例性电子设备612的框图。图6显示的电子设备612仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,电子设备612以通用计算设备的形式表现。电子设备612的组件可以包括但不限于:一个或者多个处理器或者处理单元616,系统存储器628,连接不同系统组件(包括系统存储器628和处理单元616)的总线618。该电子设备可选是承载区块链节点的设备。
总线618表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
电子设备612典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备612访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器628可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)630和/或高速缓存存储器632。电子设备612可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统634可以用于读写不可移动的、非易失性磁介质(图6未显示,通常称为“硬盘驱动器”)。尽管图6中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线618相连。存储器628可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块642的程序/实用工具640,可以存储在例如存储器628中,这样的程序模块642包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块642通常执行本发明所描述的实施例中的功能和/或方法。
电子设备612也可以与一个或多个外部设备614(例如键盘、指向设备、显示器624等)通信,还可与一个或者多个使得用户能与该电子设备612交互的设备通信,和/或与使得该电子设备612能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口622进行。并且,电子设备612还可以通过网络适配器620与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器620通过总线618与电子设备612的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备612使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元616通过运行存储在系统存储器628中的多个程序中的至少一个程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种基于区块链的对象处理方法。
实施例七
本发明实施例七提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的一种基于区块链的对象处理方法,应用于区块链节点,所述方法包括:获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明实施例操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (14)

1.一种基于区块链的对象处理方法,其特征在于,应用于区块链节点,所述方法包括:
获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;
根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
2.根据权利要求1所述的方法,其特征在于,所述输入数据对象的前次输出地址包括:前一次处理所述输入数据对象的事务请求的事务标识,以及所述输入数据对象在前次事务请求中输出字段的偏移位置。
3.根据权利要求1所述的方法,其特征在于,根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容包括下述至少一项:
如果所述事务请求为文本编辑事务请求,则根据所述文本编辑事务请求的文本编辑操作要求,对至少一个输入数据对象所对应的文本进行编辑处理,将编辑处理后的文本,作为所述输出数据对象所对应的文本;
如果所述事务请求为数字物品处理事务请求,则根据所述数字物品处理事务请求,对输入数据对象所对应的数字物品的描述信息进行处理,将处理后的数字物品的描述信息,作为所述输出数据对象所对应的文本。
4.根据权利要求3所述的方法,其特征在于:
所述数字物品的描述信息包括下述至少一项:当前所有者、物品名称、物品产地、生产时间、价格以及经销商;
对所述描述信息的处理包括下述至少一项:当前所有者的变更、以及价格的变更。
5.根据权利要求1所述的方法,其特征在于,一个事务请求中输入数据对象的数量为一个或多个,输出数据对象的数量为一个或多个。
6.根据权利要求5所述的方法,其特征在于,一个事务请求中的所述输出数据对象与输入数据对象中的至少一个相同。
7.根据权利要求1所述的方法,其特征在于,还包括:
发起数据对象的发布事务请求,以产生新的数据对象,并对应存储新数据对象的对象标识和初始输出地址。
8.根据权利要求1-7任一所述的方法,其特征在于,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中之时,还包括:
将当前事务请求的事务标识,以及输出字段在事务请求中的偏移位置,作为输出地址;
根据所述输出数据对象的对象标识以及所述输出地址,更新设定索引中数据对象与输出地址的对应关系。
9.根据权利要求8所述的方法,其特征在于,所述设定索引为区块链节点的本地索引。
10.根据权利要求8所述的方法,其特征在于,所述设定索引为键值对存储系统,键值对的键域用于存储所述输出数据对象的对象标识,所述键值对的值域用于存储一个最新的输出地址或顺序存储所述数据对象的各次输出地址。
11.根据权利要求8所述的方法,其特征在于,根据所述事务请求的设定操作要求,对所述输入数据对象进行处理之前,还包括:
根据所述设定索引中记录的数据对象与输出地址的对应关系,查询所述事务请求中输入数据对象的前次输出地址是否为最新的输出地址,若否,则确定所述事务请求发生冲突。
12.一种基于区块链的对象处理装置,其特征在于,配置于区块链节点,所述装置包括:
事务请求获取模块,用于获取针对数据对象进行设定操作的事务请求,其中,所述事务请求中至少包括输入字段和输出字段,所述输入字段用于记录至少一个输入数据对象的对象标识及所述输入数据对象的前次输出地址,所述输出字段用于记录输出数据对象的对象标识;
事务请求处理模块,用于根据所述事务请求的设定操作要求,对所述输入数据对象进行处理,确定输出数据对象的处理后内容,写入所述输出字段,以形成事务数据,添加到区块中。
13.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-11任一项所述的一种基于区块链的对象处理方法。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-11任一项所述的一种基于区块链的对象处理方法。
CN201910151843.4A 2019-02-28 2019-02-28 基于区块链的对象处理方法、装置、设备及介质 Active CN109903161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910151843.4A CN109903161B (zh) 2019-02-28 2019-02-28 基于区块链的对象处理方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910151843.4A CN109903161B (zh) 2019-02-28 2019-02-28 基于区块链的对象处理方法、装置、设备及介质

Publications (2)

Publication Number Publication Date
CN109903161A true CN109903161A (zh) 2019-06-18
CN109903161B CN109903161B (zh) 2021-11-09

Family

ID=66945951

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910151843.4A Active CN109903161B (zh) 2019-02-28 2019-02-28 基于区块链的对象处理方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN109903161B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI749583B (zh) * 2019-12-16 2021-12-11 鄭傑騫 鏈式結構資料儲存、驗證、實現方法、系統、裝置及媒體

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106503053A (zh) * 2016-09-26 2017-03-15 江苏通付盾科技有限公司 Utxo查询方法及装置
CN107145768A (zh) * 2016-03-01 2017-09-08 华为技术有限公司 版权管理方法和系统
CN107660293A (zh) * 2015-04-20 2018-02-02 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
CN108171601A (zh) * 2016-12-07 2018-06-15 中国电信股份有限公司 区块链溯源追踪方法、装置和系统
WO2018116104A1 (en) * 2016-12-21 2018-06-28 nChain Holdings Limited Computer-Implemented Systems and Methods To Enable Complex Functionality On A Blockchain While Preserving Security-Based Restrictions On Script Size and Opcode Limits
WO2018138612A1 (en) * 2017-01-27 2018-08-02 nChain Holdings Limited Computer implemented method and system
CN108647964A (zh) * 2018-05-02 2018-10-12 郑杰骞 一种区块链数据处理方法、装置及计算机可读存储介质
CN109063016A (zh) * 2018-07-11 2018-12-21 物数(上海)信息科技有限公司 区块链数据储存方法、装置、电子设备、存储介质
CN109146518A (zh) * 2018-08-03 2019-01-04 中南大学 一种产品溯源方法
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107660293A (zh) * 2015-04-20 2018-02-02 欧吉达克斯公司 物权电子凭证(edt)的分布式管理方法及其系统
CN107145768A (zh) * 2016-03-01 2017-09-08 华为技术有限公司 版权管理方法和系统
CN106503053A (zh) * 2016-09-26 2017-03-15 江苏通付盾科技有限公司 Utxo查询方法及装置
CN108171601A (zh) * 2016-12-07 2018-06-15 中国电信股份有限公司 区块链溯源追踪方法、装置和系统
WO2018116104A1 (en) * 2016-12-21 2018-06-28 nChain Holdings Limited Computer-Implemented Systems and Methods To Enable Complex Functionality On A Blockchain While Preserving Security-Based Restrictions On Script Size and Opcode Limits
WO2018138612A1 (en) * 2017-01-27 2018-08-02 nChain Holdings Limited Computer implemented method and system
CN108647964A (zh) * 2018-05-02 2018-10-12 郑杰骞 一种区块链数据处理方法、装置及计算机可读存储介质
CN109063016A (zh) * 2018-07-11 2018-12-21 物数(上海)信息科技有限公司 区块链数据储存方法、装置、电子设备、存储介质
CN109146518A (zh) * 2018-08-03 2019-01-04 中南大学 一种产品溯源方法
CN109214823A (zh) * 2018-08-27 2019-01-15 北京京东金融科技控股有限公司 基于区块链的交易验证方法、装置、存储介质及电子设备

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI749583B (zh) * 2019-12-16 2021-12-11 鄭傑騫 鏈式結構資料儲存、驗證、實現方法、系統、裝置及媒體

Also Published As

Publication number Publication date
CN109903161B (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
CN109145205B (zh) 一种基于区块链的跨链数据操作方法和装置
JP7110343B2 (ja) ブロックチェーンネットワークのトランザクション処理方法、装置、機器及び記憶媒体
US20210248605A1 (en) Cross-chain right usage systems, methods, apparatuses, electronic devices, and storage media
CN109167811A (zh) 一种基于区块链的跨链数据访问方法和装置
CN110297689A (zh) 智能合约执行方法、装置、设备及介质
US7630936B2 (en) Order system payment routing
CN107657420A (zh) 一种基于事件的流程处理方法及系统
CN109582473A (zh) 基于区块链的跨链数据访问方法和装置
JP2019153260A (ja) 共有経済のための分散型台帳装置及び分散型台帳方法
CN109542980A (zh) 一种区块链的数据处理方法、装置、设备及介质
CN110020542A (zh) 数据读写方法及装置、电子设备
CN109951547A (zh) 事务请求并行处理方法、装置、设备和介质
CN110689393B (zh) 人机交互方法、设备、系统及存储介质
JPWO2011148874A1 (ja) 仮想マネーの決済及び送金処理方法、決済及び送金処理システム及び決済及び送金処理プログラム
CN106686104B (zh) 用于目标服务器运维的方法与设备
CN108595451A (zh) 业务请求处理方法及装置
CN108920257A (zh) 事务处理方法、装置、设备及存储介质
WO2021208762A1 (zh) 数据存储、查询
CN111626602B (zh) 业务处理方法、业务处理装置、存储介质与电子设备
CN110889263A (zh) 文档的待办事项生成方法、装置、设备及存储介质
CN110322321A (zh) 基于区块链的电子票据转让方法、装置、设备和介质
CN106384255A (zh) 一种创建信息码推广信息的方法和装置
CN110209671A (zh) 一种分布式账本数据的存取系统及其应用
CN113282583A (zh) 一种数据存储方法、装置、设备和存储介质
CN109657167A (zh) 数据采集方法、装置、服务器及存储介质

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
GR01 Patent grant
GR01 Patent grant