CN113077259A - 基于区块链的存证方法、装置及电子设备 - Google Patents
基于区块链的存证方法、装置及电子设备 Download PDFInfo
- Publication number
- CN113077259A CN113077259A CN202110395400.7A CN202110395400A CN113077259A CN 113077259 A CN113077259 A CN 113077259A CN 202110395400 A CN202110395400 A CN 202110395400A CN 113077259 A CN113077259 A CN 113077259A
- Authority
- CN
- China
- Prior art keywords
- transaction
- data
- deposit
- target 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.)
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2272—Management thereof
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书一个或多个实施例提供一种基于区块链的存证方法、装置及电子设备,应用于所述区块链中的节点设备,所述区块链支持的原生交易包括用于进行数据存证的存证交易;所述方法包括:获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;以及,与所述目标数据对应的索引数据;响应于所述存证交易,发起针对所述存证交易的共识校验;如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
Description
技术领域
本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种基于区块链的存证方法、装置及电子设备。
背景技术
区块链技术,也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的新兴技术。由于区块链技术具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的特性,使得区块链技术已在众多的领域中广泛的进行应用。在实际应用中,可以将物理世界产生的真实数据,在区块链中进行持久化存证;在这种情况下,如何提高区块链中的数据存证和数据读取的效率,也就成为了亟待解决的问题。
发明内容
本说明书提出一种基于区块链的存证方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述方法包括:
获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;以及,与所述目标数据对应的索引数据;
响应于所述存证交易,发起针对所述存证交易的共识校验;
如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
可选地,所述索引数据包括具有业务语义的非唯一性索引。
可选地,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
可选地,所述存证交易的交易格式中包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段,且:
不包括用于填充交易接收者地址的字段,或包括用于填充交易接收者地址的字段但该字段为空或为存证方自身的地址。
可选地,所述存证交易的交易格式中包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段,且:
不包括用于填充交易发送者转账给交易接收者的转账金额的字段,或包括用于填充交易发送者转账给交易接收者的转账金额的字段但该字段的内容为空。
可选地,所述目标数据;以及,与所述目标数据对应的索引数据中的至少部分索引数据,承载于所述存证交易的交易载荷中。
可选地,所述存证交易包括用于承载索引数据的索引字段;所述目标数据,承载于所述存证交易的交易载荷中;与所述目标数据对应的索引数据,承载于所述索引字段中。
可选地,所述目标数据,包括所述目标数据的数据内容和所述索引数据。
可选地,所述节点设备维护了用于承载所述分布式账本中的区块数据的第一数据库、用于承载所述分布式账本中的元数据的第二数据库;
所述将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储,包括:
将包含所述存证交易的区块数据在本地维护的所述第一数据库中进行存储,并将所述索引数据和所述存证交易之间的映射关系在本地维护的所述第二数据库中进行存储。
可选地,所述映射关系包括所述索引数据和所述存证交易的hash值之间的映射关系。
可选地,所述区块链支持多种原生交易;其中,至少所述多种原生交易中的所述存证交易包括交易类型字段;其中,所述交易类型字段的字段取值,包括指示所述原生交易为所述存证交易的第一预设值。
可选地,所述区块链支持的多种原生交易均包括所述交易类型字段;
其中,当所述区块链为采用UXTO模型的区块链时,所述交易类型字段,包括指示所述原生交易为存证交易的第一预设值,以及指示所述原生交易为转账交易的第二预设值;
当所述区块链为采用账户模型的区块链时,所述交易类型字段,包括指示所述原生交易为存证交易的第一预设值,指示所述原生交易为转账交易的第二预设值、指示所述原生交易为智能合约创建交易的第三预设值,以及指示所述原生交易为智能合约调用交易的第四预设值。
本说明书还提出一种基于区块链的存证方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述方法包括:
获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;所述目标数据包括所述目标数据的数据内容;以及,与所述目标数据对应的索引数据;
响应于所述存证交易,发起针对所述存证交易的共识校验;
如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
可选地,所述索引数据包括具有业务语义的非唯一性索引。
可选地,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
可选地,所述节点设备维护了用于承载所述分布式账本中的区块数据的第一数据库、用于承载所述分布式账本中的元数据的第二数据库;
所述将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储,包括:
将包含所述存证交易的区块数据在本地维护的所述第一数据库中进行存储,并将所述索引数据和所述存证交易之间的映射关系在本地维护的所述第二数据库中进行存储。
本说明书还提出一种基于区块链的数据访问方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;所述区块链的分布式账本中存储了所述索引数据和所述存证交易之间的映射关系;所述方法包括:
接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
可选地,所述索引数据包括具有业务语义的非唯一性索引。
可选地,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
可选地,所述目标数据的数据内容中,包括与所述目标数据对应的索引数据;
所述将读取到的目标数据返回至所述查询方,包括:
获取读取到的所述目标数据的数据内容中的索引数据;
确认获取到的索引数据,与所述查询请求中的索引数据是否匹配;
如果是,进一步将所述目标数据返回至所述查询方。
本说明书还提出一种基于区块链的存证装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述装置包括:
获取模块,获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;以及,与所述目标数据对应的索引数据;
共识模块,响应于所述存证交易,发起针对所述存证交易的共识校验;
存储模块,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
本说明书还提出一种基于区块链的存证装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述装置包括:
获取模块,获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;所述目标数据包括所述目标数据的数据内容;以及,与所述目标数据对应的索引数据;
共识模块,响应于所述存证交易,发起针对所述存证交易的共识校验;
存储模块,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
本说明书还提出一种基于区块链的数据访问装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;所述区块链的分布式账本中存储了所述索引数据和所述存证交易之间的映射关系;所述装置包括:
接收模块,接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
查询模块,响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
读取模块,从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
本说明书还提出一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现上述方法的步骤。
本说明书还提出一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现上述方法的步骤。
在上述技术方案中,通过将待存证的目标数据携带在区块链支持的原生交易的交易载荷中进行存证;一方面,由于可以不再需要通过转账的方式来实现存证;因此,可以实现用户单方面存证的存证需求;另一方面,由于也可以不再需要通过调用智能合约的方式进行存证;因此,可以降低存证的开销,提高存证效率;
此外,通过将与待存证的目标数据对应的索引数据携带在区块链支持的原生交易的交易载荷中,并将该索引数据与该交易的映射关系在该区块链中进行存证,使得在从该区块链中查询该目标数据时,可以利用该索引数据查找到该目标数据;因此,可以提高查询效率。
附图说明
图1是本说明书示出的一种与区块链相关的网络环境的示意图;
图2是本说明书一示例性实施例示出的一种基于区块链的存证方法的流程图;
图3是本说明书一示例性实施例示出的一种原生交易的交易格式;
图4是本说明书一示例性实施例示出的一种基于区块链的数据访问方法的流程图;
图5是本说明书一示例性实施例示出的一种电子设备的硬件结构图;
图6是本说明书一示例性实施例示出的一种基于区块链的存证装置的框图;
图7是本说明书一示例性实施例示出的一种基于区块链的数据访问装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
请参考图1,图1是本说明书示出的一种与区块链相关的网络环境的示意图。
在如图1所示的网络环境中,可以包括客户端侧计算设备101、服务器端102,以及至少一个区块链系统;例如,区块链系统103、区块链系统104和区块链系统105。
在一种实施方式中,客户端侧计算设备101,可以包括各种不同类型的客户端侧计算设备;例如,客户端侧终端设备可以包括诸如PC终端设备、移动终端设备、物联网设备,以及其它形式的具有一定的计算能力的智能设备,等等。
需要说明的是,客户端侧计算设备101并不表示其中的所有客户端侧计算设备在同一个通信网络中,而仅仅是对这些客户端侧计算设备的统称。
在一种实施方式中,客户端侧终端设备101中的至少部分计算设备,可以通过各种通信网络连接到服务器端102;例如,图1中示出的设备1和设备2与服务器端102进行了连接。
不难理解,客户端侧终端设备101中的部分终端设备,也可以不与服务器端102进行连接,而是作为区块链节点通过各种通信网络直接连接到区块链系统;例如,图1中示出的设备4,可以作为区块链节点连接到区块链系统。
其中,上述通信网络可以包括有线和/或无线通信网络;例如,可以是基于运营商提供的有线接入网络或者无线接入网络(比如移动蜂窝网络)实现的局域网(Local AreaNetwork,LAN)、广域网(Wide Area Network,WAN)、因特网或其组合。
在一种实施方式中,客户端侧计算设备101,还可以包括一个或多个用户侧服务器;例如,图1中示出的设备5。客户端侧终端设备101中的至少部分计算设备,可以连接到该用户侧服务器,而该用户侧服务器可以进一步与上述服务端102进行连接;例如,图1中示出的设备1和设备2连接到设备5,设备5进一步连接服务器端102。
在一种实施方式中,上述用户侧服务器可以由搭建了用户账户体系的服务实体来实现;上述服务实体可以包括面向用户提供各种线上和/或线下服务的服务载体的运营实体;
其中,上述服务载体可以包括软件形式的服务载体,也可以包括硬件形式的服务载体。
在一种实施方式中,上述服务载体可以包括提供线上互联网服务的各种客户端软件;例如,网站、网页、APP等。
在一种实施方式中,上述服务载体也可以包括部署在线下的,能够提供线下服务的各种智能设备;例如,部署在居住区、办公区、公共场所的智能快递柜。
相应的,上述运营实体可以包括上述服务载体对应的运营方;例如,上述运营实体可以包括对上述服务载体进行运营和管理的个人、组织、公司和企业,等等。
在一种实施方式中,服务器端102也可以通过各种通信网络连接到一个或者多个区块链系统;例如,图1中示出的服务器端102可以分别连接到区块链系统103、区块链系统104和区块链系统105,等等。
在一种实施方式中,每个区块链系统都可以维护一个或多个区块链(例如,公有区块链、私有区块链、联盟区块链等),并包括用于承载上述一个或多个区块链的多个区块链节点;例如,如图1中示出的区块链节点1、区块链节点2、区块链节点3、区块链节点4、区块链节点i等可以共同承载一个或者多个区块链。各个区块链系统包含的区块链之间,以及各个区块链系统之间,还可以进行跨链的数据访问。
在一种实施方式中,区块链节点可以包括全节点和轻节点。全节点可以全量下载区块链中的每个区块所包含的区块链交易,并可以根据搭载的区块链共识算法,对每个区块链中所包含的区块链交易进行共识验证。
而轻节点可以不下载完整的区块链,而是可以只下载区块链中的每个区块的区块头数据,并将区块头所包含的数据作为验证根,用于以验证区块链交易的真实性。轻节点可以依附于全节点来访问区块链的更多功能。
例如,图1中示出的区块链系统103中的各个区块链节点都可以作为全节点;而图1中示出的直接连接到区块链系统的设备4,就可以作为轻节点,依附于区块链系统103中的各个全节点。
在一种实施方式中,区块链节点可以是物理设备,也可以是在服务器或者服务器集群中实现的虚拟设备;例如,区块链节点设备可以是服务器集群中的一台物理主机,也可以是基于虚拟化技术对服务器或者服务器集群搭载的硬件资源进行虚拟化后,创建的虚拟机。每个区块链节点之间,可以通过各种类型的通信方法(比如TCP/IP)连接在一起形成网络,来承载一个或者多个区块链。
在一种实施方式中,服务器端102可以包括用于提供区块链服务(BaaS,Blockchain as a Service)的BaaS平台(也称之为BaaS云)。BaaS平台可以通过为区块链上发生的活动(诸如订阅和通知、用户验证、数据库管理和远程更新),提供预先编写的软件的方式,面向与BaaS平台连接的客户端侧计算设备,提供简单易用,一键部署,快速验证,灵活可定制的区块链服务,进而可以加速区块链业务应用开发、测试、上线,助力各行业区块链商业应用场景的落地。
例如,在一个例子中,与BaaS平台可以提供诸如MQ(Message Queue,消息队列)服务之类的软件;与BaaS平台连接的客户端侧计算设备,可以订阅BaaS平台连接的区块链系统中某一区块链上部署的智能合约,在触发执行后在区块链上产生的合约事件;而BaaS平台可以监听该智能合约在触发执行后在区块链上产生的事件,再基于MQ服务相关的软件,将该合约事件以通知消息的形式添加到消息队列中,使得订阅该消息队列的客户端侧计算设备,能够得到与上述合约事件相关的通知。
在一种实施方式中,BaaS平台还可以提供基于区块链技术的企业级平台服务,以帮助企业级客户构建安全且稳定的区块链环境,并轻松管理区块链的部署、操作、维护和开发。
例如,在一个例子中,BaaS平台可以基于云技术实现丰富的安全策略和多租户的隔离环境、基于芯片加密技术来提供高级的安全保护、基于高度可靠的数据存储,提供可以快速扩展,而不会中断的端到端的高可用性服务;
在另一个例子中,还可以提供增强的管理功能,以帮助客户构建企业级区块链网络环境;以及,还可以为标准区块链应用和数据提供本地支持,支持例如HyperledgerFabric和Enterprise Ethereum-Quorum的主流开源区块链技术,以构建开放且包容的技术生态系统。
基于区块链的基本特性,区块链通常是由若干个区块构成。在这些区块中分别记录有与该区块的创建时刻对应的时间戳,所有的区块严格按照区块中记录的时间戳,构成一条在时间上有序的数据链条。
对于链外产生的数据,可以将其构建成区块链所支持的标准的交易(transaction)格式,然后发布至区块链,由区块链中的节点设备对该交易进行共识,并在达成共识后,由区块链中作为记账节点的节点设备,将这笔交易打包进区块,在区块链中进行持久化存证。
目前的区块链系统通常包括两种主流的交易模型;其中,一种是以比特币系统为代表的UTXO(Unspent Transaction Output,未花费的交易输出)模型;而另外一种则是以以太坊(Ethereum)系统为代表的账户模型。
其中,以上两类区块链如果想要实现数据存证,通常可以采用如下的存证方式:
对于采用UTXO模型的区块链,支持的原生交易通常只包括转账交易,在基于转账交易进行转账的过程中,用户可以通过在转账交易中的交易附言(即转账附言)中来填充额外的数据,来将该额外的数据在区块链上进行存证。
一方面,虽然通过这种方式,也可以间接的实现数据存证,但通过交易附言来实现数据存证,受到交易附言的存储容量的限制,通过只能存证简短的数据内容;另一方面,这种存证方式是依托于普通的转账交易来实现的,而在实际应用中,很多数据存证的场景是用户单方面的需求,并不需要也并不涉及转账;因此,通过交易附言的方式进行数据存证,显然并不能满足用户实际的存证需求。
对于采用账户模型的区块链,需要存储和维护的区块链数据,通常包括区块数据、区块链中的区块链账户对应的账户状态数据;而区块数据又可以进一步包括区块头数据、区块中的区块交易数据、以及与区块中的区块交易数据对应的交易收据,等等。而在存储以上示出的各种区块链数据时,通常可以将上述各种区块链数据以key-value键值对的形式,组织成Merkle树在数据库中存储。
在这类区块链模型中,可以在区块链上部署用于进行数据存证的智能合约,用户可以通过调用智能合约的方式,将需要存证的数据作为该智能合约对应的合约账户的账户状态,存储到与该智能合约对应的Merkle树中。
例如,以以太坊为例,通常采用一种特殊的称之为MPT树的特殊的Merkle树来存储和维护区块链数据;其中,对于账户状态数据,可以组织成MPT状态树(俗称世界状态)在数据库中存储;MPT状态树上存储了以账户地址为key,以账户状态数据为value的key-value键值对。而智能合约对应的合约账户中存储的数据内容,也会被进一步组织成storage树(一种用于存储数据的MPT存储树)在数据库中存储;storage树的根节点的hash值,会作为与该合约账户对应的账户状态数据的一部分,填充到MPT状态树中;而MPT状态树的根节点的hash会被作为认证根,进一步填充到区块头中。当用户需要进行数据存证时,可以通过调用智能合约的方式,将需要存证的数据作为该智能合约对应的合约账户的账户状态数据,存储到与该智能合约对应的storage树中。
一方面,通过这种方式,虽然可以实现数据的持久化存证,智能合约的执行和存储通常都需要花费一定的代价(比如以太坊中需要支付一定数量的gas),因此对于用户而言要负担一笔额外的花费开销。
另一方面,调用智能合约,通常是通过打包一笔智能合约调用交易,发送至区块链网络进行分布式执行来实现的;区块链中的节点设备在执行智能合约调用交易,通常需要将该交易调用的该智能合约相关的合约代码,加载到节点设备搭载的虚拟机中进行执行;而合约代码的执行显然是需要消耗节点设备的系统资源的;因此,通过这种方式,也会额外的消耗节点设备的系统性能。
第三方面,将存证的数据存储在与该智能合约对应的Merkle树中,还会存在存储空间开销大的问题;例如,以以太坊为例,以太坊中节点设备搭载的虚拟机,通常称之为EVM,EVM所采用的最小的存储单元,通常是32字节大小;如果用户需要存证1M的数据,则需要将存证的数据拆分成30条以上的记录来存入storage树中;而且,在将拆分成30条以上的记录写入storage树的过程中,会涉及对storage树中大量的中间节点进行更新,因此需要消耗大量的系统性能。
有鉴于此,本申请提出一种通过区块链支持的原生交易的交易载荷,来进行数据存证的技术方案;
在实现时,可以对区块链支持的原生交易进行扩展,扩展出一种用于进行数据存证的存证交易;
例如,对于采用UTXO模型的区块链,可以在支持的转账交易的基础上,再扩展出一种专用于数据存证的存证交易;而对于采用账户模型的区块链,则可以在支持的转账交易、智能合约创建交易和智能合约调用交易的基础上,再扩展出一种专用于数据存证的存证交易。
当存证方需要进行数据存证时,可以打包一笔上述存证交易,并将该待存证的目标数据;和与该目标数据对应的索引数据,添加到该存证交易的交易载荷(payload)中,再将该存证交易发布到区块链中。
而区块链中的节点设备,在获取到存证方发起的上述存证交易时,则可以响应该存证交易,对该存证交易进行共识校验,并在该存证交易共识校验通过,与其它节点设备达成共识时,将包含该存证交易的区块数据,以及上述索引数据和上述存证交易之间的映射关系,在本地维护的该区块链的分布式账本中进行存储。
通过以上技术方案,通过将待存证的目标数据携带在区块链支持的原生交易的交易载荷中进行存证;一方面,由于可以不再需要通过转账的方式来实现存证;因此,可以实现用户单方面存证的存证需求;另一方面,由于也可以不再需要通过调用智能合约的方式进行存证;因此,可以降低存证的开销,提高存证效率;
此外,通过将与待存证的目标数据对应的索引数据携带在区块链支持的原生交易的交易载荷中,并将该索引数据与该交易的映射关系在该区块链中进行存证,使得在从该区块链中查询该目标数据时,可以利用该索引数据查找到该目标数据;因此,可以提高查询效率。
请参考图2,图2是本说明书一示例性实施例示出的一种基于区块链的存证方法的流程图。
结合如图1所示的网络环境,上述基于区块链的存证方法可以应用于区块链中的节点设备;该方法可以包括以下步骤:
步骤202,获取存证方发起的存证交易;其中,所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;
步骤204,响应于所述存证交易,发起针对所述存证交易的共识校验;
步骤206,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
在本实施例中,可以对上述区块链支持的原生交易类型进行扩展,以在该区块链中扩展出一种用于进行数据存证的存证交易;其中,需要说明的是,扩展出的上述存证交易,具体可以是独立于转账交易或智能合约调用交易的原生交易。
例如,对于采用UTXO模型的区块链,可以在支持的转账交易的基础上,再扩展出一种专用于数据存证的存证交易;而对于采用账户模型的区块链,则可以在支持的转账交易、智能合约创建交易和智能合约调用交易的基础上,再扩展出一种专用于数据存证的存证交易。
其中,上述存证交易的交易格式,在本说明书中不进行特别限定;在实际应用中,可以采用兼容区块链现有的交易格式,也可以重新定义新的交易格式。
在本说明中,上述存证交易的交易格式中可以包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段;
其中,在示出的一种实施方式中,在上述存证交易的交易格式中,可以不包括用于填充交易接收者地址的字段;当然,如果上述存证交易包括用于填充交易接收者地址的字段,则该接收者地址的字段可以为空,或者该字段中可以默认填充存证方自身的地址。
在示出的另一种实施方式中,在上述存证交易的交易格式中,也可以不包括用于填充交易发送者转账给交易接收者的转账金额的字段;当然,如果上述存证交易的交易格式中包括该转账金额字段,则该字段默认可以为空。
请参考图3,图3是本说明书一示例性实施例示出的一种原生交易的交易格式。
如图3所示,上述原生交易的交易格式中,可以包括from字段、to字段、value字段、data字段等主要字段;
其中,上述from字段,用于填充交易发送者地址;
上述to字段,用于填充交易接收者地址;
上述value字段,用于填充交易发送者转账给交易接收者的转账金额;
而上述data字段,为交易的载荷字段,用于填充该交易的交易载荷。
需要说明的是,不同类型的原生交易的交易载荷可以有所不同;比如,对于转账交易,上述data字段可以为空值;对于智能合约调用交易,上述data字段可以填充要调用的被调用的合约代码对应的代码标识(比如被调用的合约代码中的函数的函数名)和调用参数;对于智能合约创建交易,上述data字段可以填充要创建的智能合约的合约代码。
其中,还需要说明的是,在上述交易格式中,除了以上主要字段以外,在实际应用中,上述交易格式还可以包括若干附加字段,附加字段的具体类型和数量,可以基于实际的需求进行自定义,在本说明书中不再进行一一列举。
请继续参考图3,对于扩展出的上述存证交易的交易格式中,上述from字段,可以用于填充存证方的账户地址;上述to字段可以为空值;或者,在另一种实施方式中,上述to字段也可以默认填充存证方的账户地址;也即,from字段和to字段均填存证方的账户地址,来表示该存证交易为存证方单方面的存证行为。上述value字段可以为空值,表明该存证交易是一笔用于存证数据的原生交易,并不是一笔转账交易;上述data字段,则可以用于填充待存证的目标数据。
当然,在实际应用中,上述原生交易的交易格式中,也可以不包括上述to字段,以及value字段;相应的,上述存证交易的交易格式中,也可以不包括上述to字段,来表明该存证交易是一笔由存证方发起的仅涉及存证一方的用于存证数据的原生交易;相似的,上述存证交易的交易格式中,也可以不包括上述value字段,来表明该存证交易是一笔用于存证数据的原生交易,并不是一笔转账交易,在本说明书中不进行具体的限定。
在本说明书中,为了方便存证数据的查询,在上述存证交易中,除了可以承载待存证的上述目标数据以外,还可以承载与上述目标数据对应的索引数据;
在示出的一种实施方式中,与上述目标数据对应的索引数据可以作为与上述目标数据独立的一部分数据,承载在上述存证交易中;例如,上述目标数据和上述索引数据可以分别填充在上述存证交易的交易格式中的不同的字段中。在这种情况下,上述存证交易承载了上述目标数据和与上述目标数据对应的索引数据两部分数据。
在示出的另一种实施方式中,与上述目标数据对应的索引数据,也可以作为上述目标数据的一部分承载在上述存证交易中;在这种情况下,上述存证交易只承载了上述目标数据;其中,该目标数据又进一步包括上述目标数据的数据内容和上述索引数据两部分内容。
其中,需要说明的是,当与上述目标数据对应的索引数据可以作为与上述目标数据独立的一部分数据,承载在上述存证交易中时,此时对于上述目标数据本身也可以携带上述索引数据;比如,此时该目标数据也可以包括上述目标数据的数据内容和上述索引数据两部分。
在这种情况下,上述存证交易中相当于一共承载了两份索引数据,其中一份索引数据与上述目标数据分别作为独立的一部分数据承载在上述存证交易中;另一份索引数据作为上述目标数据的数据内容的一部分,携带在上述目标数据的数据内容中。
在本说明书中,上述索引数据具体可以包括具有业务语义的非唯一性索引;所谓非唯一性索引,是指一个索引数据可以与多个存证交易中的目标数据相对应。
其中,需要说明的是,上述索引数据的具体内容,在本实施例中不进行特别的限定,在实际应用中,可以包括任意形式的能够作为上述目标数据的查询索引的数据;
在示出的一种实施方式中,上述业务可以包括产品溯源业务。而上述索引数据则可以包括与上述产品溯源业务对应的业务标识;或者,上述索引数据也可以包括与该产品溯源业务对应的业务标识和与该产品溯源业务对应的产品标识;比如,上述索引数据可以是由上述业务标识和产品标识组成的二元组。
举例来说,假设上述存证方为工厂,该工厂需要将由该工厂生产的每件A型产品的相关数据,在上述区块链中进行数据存证,以供购买了A型产品的用户在进行产品溯源时查询使用。
在这种情况下,上述索引数据可以包括与产品溯源业务对应的业务标识(比如业务ID);或者,也可以包括与产品溯源业务对应的业务标识和与A型产品对应的产品标识(比如产品ID)组成的二元组。
在示出的一种实施方式中,上述存证交易的data字段中,可以承载上述目标数据,以及与该目标数据对应的上述索引数据中的至少部分索引数据。
举例来说,假设上述索引数据包括与上述产品溯源业务对应的业务标识和与该产品溯源业务对应的产品标识。在这种情况下,可以仅将上述目标数据,以及与该目标数据对应的上述索引数据中的与该产品溯源业务对应的业务标识,承载于上述存证交易的交易载荷中,而将上述产品标识承载在交易载荷以外的独立的字段中;或者,也可以将该目标数据,以及与该目标数据对应的上述索引数据中的全部数据(即与该产品溯源业务对应的业务标识和与该产品溯源业务对应的产品标识),均承载于该存证交易的交易载荷中。
通过将上述索引数据设计成二元组,使得在进行产品溯源时,如果基于业务标识无法区分产品,还可以进一步基于产品标识来区分产品;例如,上述业务具体可以是商品溯源业务,但商品溯源业务进一步包括A类产品的溯源和B类产品的溯源;如果将索引数据设计成业务标识构成的一元组,可能无法进一步区分出进行溯源的产品;反之,如果将索引数据设计成业务标识和产品标识构成的二元组,则可以在业务溯源业务中,进一步区分出进行溯源的产品。
在示出的一种实施方式中,上述存证交易的交易载荷中也可以仅承载上述目标数据,而并不承载上述索引数据。在这种情况下,在上述存证交易的交易格式中,还可以包括用于承载索引数据的索引字段;上述目标数据可以承载在该data字段中,上述索引数据可以承载于上述索引字段中。
例如,以上述索引数据包括与产品溯源业务对应的业务标识(比如业务ID)为例,在这种情况下,在上述存证交易的交易格式中,还可以包括用于承载业务标识的业务标识字段;
又如,以上述索引数据包括与产品溯源业务对应的业务标识和与A型产品对应的产品标识(比如产品ID)组成的二元组为例,在这种情况下,在上述存证交易的交易格式中,还可以包括用于承载业务标识的业务标识字段和用于承载产品标识的产品标识的产品标识字段。
在本实施例中,上述区块链可以支持多种原生交易类型;例如,对于采用UTXO模型的区块链,可以支持转账交易和存证交易;而对于采用账户模型的区块链,则可以支持转账交易、智能合约创建交易、智能合约调用交易和存证交易。
其中,在示出的一种实施方式,上述区块链支持的多种原生交易类型中的上述存证交易,还可以包括一Type字段;
其中,上述Type字段为用于指示原生交易类型的交易类型字段,该字段的字段取值,可以包括用于指示该交易为存证交易的第一预设值;比如,在实现时,该第一预设值可以是字符串deposit,表明该原生交易为存证交易,以区别于其它类型的原生交易。
而其它类型的原生交易由于可以基于交易内容来区分交易类型,因此可以不包括该Type字段;比如,转账交易可以通过to字段的取值是否与from字段的取值相同来做区分;而智能合约调用交易和智能合约创建交易,可以通过data字段携带的内容来做区分;因此,对于转账交易、智能合约调用交易、智能合约创建交易等原生交易来说,可以不携带上述Type字段。
在示出的另一种实施方式,上述区块链支持的多种原生交易,也可以保持相同的交易格式,在这种情况下,上述多种原生交易可以均包括上述Type字段;
例如,当上述区块链为采用UXTO模型的区块链时,此时区块链支持的原生交易包括转账交易和上述存证交易;则上述Type字段,可以包括指示该原生交易为存证交易的第一预设值,以及指示该原生交易为转账交易的第二预设值;
当上述区块链为采用账户模型的区块链时,此时区块链支持的原生交易包括转账交易、智能合约创建交易、智能合约调用交易和存证交易;则上述Type字段可以包括指示该原生交易为存证交易的第一预设值,指示该原生交易为转账交易的第二预设值、指示该原生交易为智能合约创建交易的第三预设值,以及指示该原生交易为智能合约调用交易的第四预设值。
在本实施例中,存证方可以预先接入上述区块链,与该区块链中的节点设备建立并保持通信连接。当该存证方具有存证需求时,可以打包一笔上述存证交易,并将上述目标数据携带在该存证交易的交易载荷中,再将该存证交易发布至该区块链;当然,在实际应用中,还可以将与该目标数据对应的索引数据也携带在该存证交易的交易载荷中。
例如,存证方可以按照图2示出的交易格式,打包一笔存证交易,将待存证的目标数据;以及与该目标数据对应的索引数据承载在上述data字段中,再将该存证交易发布至该区块链。
在本实施例中,与上述存证方保持了通信连接的上述区块链中的节点设备,在接收到上述存证交易时,可以基于搭载的共识算法,发起对该存证交易的共识校验。
其中,对该存证交易的共识校验,可以包括对存证交易本身的校验(比如对交易本身的合法性校验),以及对包含该存证交易的区块数据的校验,具体的共识校验过程,不同的共识算法通常也存在一定的差异,在本说明书中不再进行详述,本领域技术人员可以参考相关技术中的记载。
例如,节点设备收到连接的客户端发送的存证交易后,需要先对该存证交易进行合法性校验,合法性校验通过后再将该存证交易广播发送至其他节点设备;而该节点设备在收到区块链中的记账节点打包的区块数据后,还需要对该区块数据进行校验,并在校验通过与其他节点设备达成共识后,将该区块数据在本地维护的分布式账本中进行存储。
在本实施例中,在针对上述存证交易的共识校验通过之后,上述区块链中的节点设备可以将包含该存证交易的区块数据,以及上述索引数据和所述存证交易之间的映射关系在维护的该区块链的分布式帐本中进行存储,从而将该存证交易的交易载荷中承载的上述目标数据和对应的索引数据在该区块链中进行持久化存证。
例如,如果该节点设备为当前的该区块链中的记账节点,则可以由该节点设备将该存证交易打包成区块数据,并将包含该存证交易的区块数据发送给该区块链中的其他节点设备进行共识校验,并在共识校验通过后,其他节点设备分别将该区块数据;以及,上述索引数据和上述存证交易之间的映射关系在其本地维护的分布式账本中进行存储。
如果该节点设备不是当前的该区块链中的记账节点,则该节点设备可以将该存证交易发送给当前的该区块链中作为记账节点的节点设备,由作为记账节点的节点设备将该存证交易打包成区块数据,并将包含该存证交易的区块数据发送给该区块链中的其他节点设备进行共识校验,并在共识校验通过后,该节点设备再将该区块数据;以及,上述索引数据和所述存证交易之间的映射关系分别在其本地维护的分布式账本中进行存储。
在示出的一种实施方式中,上述区块链中的节点设备可以同时维护用于承载该区块链的分布式账本中的区块数据的数据库(称为第一数据库),以及用于承载该区块链的分布式账本中的元数据的数据库(称为第二数据库)。
例如,在实际应用中,上述第一数据库通常称之为block数据库;上述第二数据库通常称之为extra数据库其中,extra数据库通常用于存储与区块中的交易对应的元数据;其中,上述元数据可以包括与区块中的交易对应的收据数据,还可以包括区块中的交易的Hash和最大的区块高度和交易所在的区块号之间的映射关系;在本说明书,可以将上述索引数据和所述存证交易之间的映射关系也作为元数据存储在上述extra数据库中。
当然,在实际应用中,节点设备也可以将区块数据;以及,上述索引数据和上述存证交易之间的映射关系存储在同一个数据库中,在本说明书中不进行特别限定。
其中,需要说明的是,上述数据库的具体类型,在本说明书中不进行特别限定;例如,在示出的一种实施方式中,上述数据库可以包括LevelDB数据库。
在示出的一种实施方式中,上述索引数据和上述存证交易之间的映射关系可以包括该索引数据和该存证交易的hash值之间的映射关系;也即,可以针对该存证交易进行hash计算,并将该索引数据和计算得到的hash值之间的映射关系在上述第二数据库中进行存储,以实现针对该索引数据和该存证交易之间的映射关系的存储。
举例来说,假设上述存证方为工厂,该工厂需要将由该工厂生产的3件A型产品和2件B型产品的相关数据在上述区块链中进行数据存证;其中,与3件A型产品对应的存证交易分别为存证交易A1、存证交易A2和存证交易A3,与2件B型产品对应的存证交易分别为存证交易B1、存证交易B2。在这种情况下,对于A型产品的相关数据而言,与A型产品的相关数据对应的索引数据可以包括与产品溯源业务对应的业务标识1和与A型产品对应的产品标识A组成的二元组;对于B型产品的相关数据而言,与B型产品的相关数据对应的索引数据可以包括与产品溯源业务对应的业务标识2和与B型产品对应的产品标识B组成的二元组;也即,上述第二数据库中存储的索引数据和存证交易之间的映射关系可以如下表1所示:
表1
在本说明书中,上述存证交易的交易载荷的具体容量,不进行具体的限定,在实际应用中,可以基于区块链系统实际的情况进行灵活的设置;
例如,在示出的一种实施方式中,出于性能上的考虑,区块链系统支持的网络数据包通常会被设置一个最大的数据容量,而上述存证交易的交易载荷的具体容量,则可以不大于区块链系统支持的网络数据包的最大数据容量。
比如,在一个例子中,上述区块链系统支持的网络数据包的最大数据容量通常可以是64M字节。在这种情况下,上述存证交易的交易载荷可以设置为不大于64M字节。
其中,在示出的一种实施方式中,上述data字段具体也可以用于填充编码后上述目标数据;需要说明的是,上述存证交易中的上述data字段,具体还用于填充编码后上述目标数据;在这种情况下,上述存证方基于存证标识,检索到区块链中存储的上述存证交易并获取到上述目标数据的交易载荷中承载的编码后的上述目标数据后,可以进一步对上述目标数据进行解码,以获取到原始的目标数据;其中,对上述目标数据的编码方式,在本说明书中不进行特别限定,在实际应用中可以灵活的进行选择;例如,仍然可以采用RLP(Recursive Length Prefix,递归的长度前缀)编码方式。
通过以上技术方案,通过将待存证的目标数据携带在区块链支持的原生交易的交易载荷中进行存证;一方面,由于可以不再需要通过转账的方式来实现存证;因此,可以实现用户单方面存证的存证需求;另一方面,由于也可以不再需要通过调用智能合约的方式进行存证;因此,可以降低存证的开销,提高存证效率。
请参考图4,图4是本说明书一示例性实施例示出的一种基于区块链的数据访问方法的流程图。
结合如图1所示的网络环境,上述基于区块链的数据访问方法可以应用于区块链中的节点设备;该方法可以包括以下步骤:
步骤402,接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
步骤404,响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
步骤406,从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
结合如图2所示的实施例,在本实施例中,可以对上述区块链支持的原生交易类型进行扩展,以在该区块链中扩展出一种用于进行数据存证的存证交易;其中,需要说明的是,扩展出的上述存证交易,具体可以是独立于转账交易或智能合约调用交易的原生交易。
在本说明书中,上述存证交易的交易格式中可以包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段;
其中,在示出的一种实施方式中,在上述存证交易的交易格式中,可以不包括用于填充交易接收者地址的字段;当然,如果上述存证交易包括用于填充交易接收者地址的字段,则该字段可以为空,或者该字段中可以默认填充存证方自身的地址。
在示出的另一种实施方式中,在上述存证交易的交易格式中,也可以不包括用于填充交易发送者转账给交易接收者的转账金额的字段;当然,如果上述存证交易的交易格式中包括用于填充交易发送者转账给交易接收者的转账金额的字段,则该字段默认可以为空。
在本说明书中,上述索引数据具体可以包括具有业务语义的非唯一性索引;所谓非唯一性索引,是指一个索引数据可以与多个存证交易中的目标数据相对应。
其中,需要说明的是,上述索引数据的具体内容,在本实施例中不进行特别的限定,在实际应用中,可以包括任意形式的能够作为上述目标数据的查询索引的数据;
在示出的一种实施方式中,上述业务可以包括产品溯源业务。而上述索引数据则可以包括与上述产品溯源业务对应的业务标识;或者,上述索引数据也可以包括与该产品溯源业务对应的业务标识和与该产品溯源业务对应的产品标识;比如,上述索引数据可以是由上述业务标识和产品标识组成的二元组。
在本说明书中,当承载上述目标数据的存证交易在区块链中存证完成后,上述存证方接入的节点设备,可以将上述存证交易的存证标识,返回给上述存证方;
例如,如果上述存证交易还承载了与上述目标数据对应的索引数据,则可以将该索引数据作为上述存证交易的存证标识,返回给上述存证方;如果上述存证交易并未承载与上述目标数据对应的索引数据,此时可以将上述存证交易的hash值作为索引数据,返回给上述存证方。
后续,上述目标数据的查询方(可以是存证方,也可以是存证方指定的第三方查询方)可以基于上述存证标识,来检索区块链中存储的上述存证交易,以获取上述存证交易的交易载荷中承载的上述目标数据;
而区块链中的节点设备,可以接收查询方发起的针对已存证的目标数据的查询请求;其中,该查询请求可以包括与上述存证交易对应的存证标识;节点设备在接收到响应于该查询请求,可以响应该查询请求,从本地维护的区块链的分布式账本中存储的区块数据中,查找与该存证标识对应的存证交易,从查找到的存证交易的交易载荷中读取上述目标数据,并将读取到的上述目标数据返回至上述查询方。
在一种情况下,如果上述存证标识为上述存证交易的hash值,则节点设备可以基于该hash值,遍历本地维护的区块链的分布式账本中存储的区块数据,查找与该hash值对应的存证交易。
在另一种情况下,如果上述存证标识为与上述目标数据对应的索引数据,则节点设备可以通过查询上述索引数据和上述存证交易之间的映射关系,来查找存证交易,再进一步获取上述存证交易的交易载荷中承载的上述目标数据。
在示出的一种实施方式中,上述目标数据的数据内容中,也可以包括与该目标数据对应的索引数据。
在这种情况下,在将读取到的上述目标数据返回至上述查询方之前,可以先获取读取到的该目标数据的数据内容中的索引数据,并确认获取到的该索引数据,与上述查询请求中的索引数据是否匹配。如果两者匹配,则可以进一步将读取到的该目标数据返回至上述查询方。
其中,需要说明的是,由于上述目标数据是携带在上述存证交易的交易载荷中的,并不是作为智能合约的状态数据存储在与该智能合约对应的Merkle树中的;因此,对该目标数据的查询过程,则并不需要调用智能合约,也不产生任何的账户状态,该查询请求也并不需要进行共识。
通过以上技术方案,通过将与待存证的目标数据对应的索引数据携带在区块链支持的原生交易的交易载荷中,并将该索引数据与该交易的映射关系在该区块链中进行存证,使得在从该区块链中查询该目标数据时,可以利用该索引数据查找到该目标数据;因此,可以提高查询效率。
以下结合图1所示的网络环境,通过一个具体的例子对以上描述的存证过程进行详述。
如图1所示,上述区块链可以包括图1示出的网络环境中的区块链系统103;该区块链中的节点设备可以包括区块链系统103中的区块链节点1、区块链节点2、区块链节点3、区块链节点4和区块链节点i等。
上述存证方可以预先通过该网络环境中的客户端侧计算设备101中的设备1至5中的任意一台设备接入区块链系统103。假设上述存证方通过设备4接入区块链系统103;后续,该存证方可以打包一笔上述存证交易,并将上述目标数据以及对应的索引数据携带在该存证交易的交易载荷中,再通过设备4将该存证交易,通过与设备4保持通信连接的区块链节点2,发布至区块链系统103。
在这种情况下,假设区块链系统103中的记账节点为区块链节点1,与设备4保持了通信连接的区块链系统103中的区块链节点2在接收到上述存证交易时,可以将该存证交易发送给区块链节点1,由区块链节点1将该存证交易打包成区块数据,并将包含该存证交易的区块数据发送给区块链系统103中的区块链节点2、区块链节点3、区块链节点4和区块链节点i等其他节点设备,以由区块链系统103中的所有节点设备针对该存证交易进行共识校验。
在针对上述存证交易的共识校验通过之后,区块链系统103中的区块链节点1、区块链节点2、区块链节点3、区块链节点4和区块链节点i等各台节点设备可以分别将包含该存证交易的区块数据,以及上述索引数据和该存证交易之间的映射关系在该节点设备维护的区块链系统103的分布式帐本中进行存储。
上述查询方可以预先通过该网络环境中的客户端侧计算设备101中的设备1至5中的任意一台设备(假设为设备4)接入区块链系统103。后续,该查询方可以通过设备4将针对已存证的上述目标数据的查询请求发送给与设备4保持了通信连接的区块链系统103中的节点设备(假设为区块链节点2);其中,该查询请求可以包括与承载了该目标数据的上述存证交易对应的索引数据。
在这种情况下,区块链节点2可以接收到上述查询请求,并响应于该查询请求,查询区块链系统103的分布式账本中存储的索引数据和存证交易之间的映射关系,以确定与该查询请求中的上述索引数据存证映射关系的上述存证交易,并进一步从区块链系统103的分布式账本中存储的区块数据中查找确定出的该存证交易。
区块链节点2在查找到上述存证交易之后,可以从该存证交易中读取上述目标数据,并将读取到的该目标数据发送给设备4,从而实现将该目标数据返回至上述查询方。
与前述基于区块链的存证方法的实施例相对应,本说明书还提供了基于区块链的存证装置的实施例。
本说明书基于区块链的存证装置的实施例可以应用在电子设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在电子设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书基于区块链的存证装置所在电子设备的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常根据该基于区块链的存证的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图6,图6是本说明书一示例性实施例示出的一种基于区块链的存证装置的框图。该基于区块链的存证装置60可以应用于如图5所示的电子设备;该电子设备可以作为节点设备加入至该区块链,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;该基于区块链的存证装置60可以包括:
获取模块601,获取存证方发起的存证交易;其中,所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;
共识模块602,响应于所述存证交易,发起针对所述存证交易的共识校验;
存储模块603,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
请参考图7,图7是本说明书一示例性实施例示出的一种基于区块链的数据访问装置的框图。该基于区块链的数据访问装置70可以应用于如图5所示的电子设备;该电子设备可以作为节点设备加入至该区块链,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;所述区块链的分布式账本中存储了所述索引数据和所述存证交易之间的映射关系;该基于区块链的数据访问装置70可以包括:
接收模块701,接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
查询模块702,响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
读取模块703,从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
在一个典型的配置中,计算机包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。
Claims (25)
1.一种基于区块链的存证方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述方法包括:
获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;以及,与所述目标数据对应的索引数据;
响应于所述存证交易,发起针对所述存证交易的共识校验;
如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
2.根据权利要求1所述的方法,所述索引数据包括具有业务语义的非唯一性索引。
3.根据权利要求2所述的方法,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
4.根据权利要求1所述的方法,所述存证交易的交易格式中包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段,且:
不包括用于填充交易接收者地址的字段,或包括用于填充交易接收者地址的字段但该字段为空或为存证方自身的地址。
5.根据权利要求1所述的方法,所述存证交易的交易格式中包括用于填充存证方的账户地址的字段和用于填充交易载荷的字段,且:
不包括用于填充交易发送者转账给交易接收者的转账金额的字段,或包括用于填充交易发送者转账给交易接收者的转账金额的字段但该字段的内容为空。
6.根据权利要求4或5所述的方法,所述目标数据;以及,与所述目标数据对应的索引数据中的至少部分索引数据,承载于所述存证交易的交易载荷中。
7.根据权利要求4或5所述的方法,所述存证交易包括用于承载索引数据的索引字段;所述目标数据,承载于所述存证交易的交易载荷中;与所述目标数据对应的索引数据,承载于所述索引字段中。
8.根据权利要求1所述的方法,所述目标数据,包括所述目标数据的数据内容和所述索引数据。
9.根据权利要求1所述的方法,所述节点设备维护了用于承载所述分布式账本中的区块数据的第一数据库、用于承载所述分布式账本中的元数据的第二数据库;
所述将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储,包括:
将包含所述存证交易的区块数据在本地维护的所述第一数据库中进行存储,并将所述索引数据和所述存证交易之间的映射关系在本地维护的所述第二数据库中进行存储。
10.根据权利要求9所述的方法,所述映射关系包括所述索引数据和所述存证交易的hash值之间的映射关系。
11.根据权利要求1所述的方法,所述区块链支持多种原生交易;其中,至少所述多种原生交易中的所述存证交易包括交易类型字段;其中,所述交易类型字段的字段取值,包括指示所述原生交易为所述存证交易的第一预设值。
12.根据权利要求1所述的方法,所述区块链支持的多种原生交易均包括所述交易类型字段;
其中,当所述区块链为采用UXTO模型的区块链时,所述交易类型字段,包括指示所述原生交易为存证交易的第一预设值,以及指示所述原生交易为转账交易的第二预设值;
当所述区块链为采用账户模型的区块链时,所述交易类型字段,包括指示所述原生交易为存证交易的第一预设值,指示所述原生交易为转账交易的第二预设值、指示所述原生交易为智能合约创建交易的第三预设值,以及指示所述原生交易为智能合约调用交易的第四预设值。
13.一种基于区块链的存证方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述方法包括:
获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;所述目标数据包括所述目标数据的数据内容;以及,与所述目标数据对应的索引数据;
响应于所述存证交易,发起针对所述存证交易的共识校验;
如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
14.根据权利要求13所述的方法,所述索引数据包括具有业务语义的非唯一性索引。
15.根据权利要求14所述的方法,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
16.根据权利要求13所述的方法,所述节点设备维护了用于承载所述分布式账本中的区块数据的第一数据库、用于承载所述分布式账本中的元数据的第二数据库;
所述将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储,包括:
将包含所述存证交易的区块数据在本地维护的所述第一数据库中进行存储,并将所述索引数据和所述存证交易之间的映射关系在本地维护的所述第二数据库中进行存储。
17.一种基于区块链的数据访问方法,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;所述区块链的分布式账本中存储了所述索引数据和所述存证交易之间的映射关系;所述方法包括:
接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
18.根据权利要求17所述的方法,所述索引数据包括具有业务语义的非唯一性索引。
19.根据权利要求17所述的方法,所述业务包括产品溯源业务;所述索引数据包括与所述产品溯源业务对应的业务标识;或者,所述索引数据包括与所述产品溯源业务对应的业务标识和与所述产品溯源业务对应的产品标识。
20.根据权利要求17所述的方法,所述目标数据的数据内容中,包括与所述目标数据对应的索引数据;
所述将读取到的目标数据返回至所述查询方,包括:
获取读取到的所述目标数据的数据内容中的索引数据;
确认获取到的索引数据,与所述查询请求中的索引数据是否匹配;
如果是,进一步将所述目标数据返回至所述查询方。
21.一种基于区块链的存证装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述装置包括:
获取模块,获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;以及,与所述目标数据对应的索引数据;
共识模块,响应于所述存证交易,发起针对所述存证交易的共识校验;
存储模块,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
22.一种基于区块链的存证装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述装置包括:
获取模块,获取存证方发起的存证交易;其中,所述存证交易中承载了待存证的目标数据;所述目标数据包括所述目标数据的数据内容;以及,与所述目标数据对应的索引数据;
共识模块,响应于所述存证交易,发起针对所述存证交易的共识校验;
存储模块,如果针对所述存证交易的共识校验通过,将包含所述存证交易的区块数据;以及,所述索引数据和所述存证交易之间的映射关系,分别在本地维护的所述区块链的分布式账本中进行存储。
23.一种基于区块链的数据访问装置,应用于所述区块链中的节点设备,所述区块链支持的原生交易类型包括独立于转账交易或智能合约调用交易的用于进行数据存证的存证交易;所述存证交易中承载了存证的目标数据和与所述目标数据对应的索引数据;或者,所述存证交易中承载了存证的目标数据;所述目标数据包括所述目标数据的数据内容和所述目标数据对应的索引数据;所述区块链的分布式账本中存储了所述索引数据和所述存证交易之间的映射关系;所述装置包括:
接收模块,接收查询方发起的针对所述目标数据的查询请求;其中,所述查询请求包括与所述存证交易对应的索引数据;
查询模块,响应于所述查询请求,查询所述映射关系,以确定与所述索引数据存在映射关系的存证交易,并进一步从所述区块链的分布式账本中存储的区块数据中查找所述存证交易;
读取模块,从查找到的存证交易的交易载荷中读取所述目标数据,并将读取到的目标数据返回至所述查询方。
24.一种电子设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器通过运行所述可执行指令以实现如权利要求1-12或13-16或17-20中任一项所述的方法。
25.一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如权利要求1-12或13-16或17-20中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110395400.7A CN113077259A (zh) | 2021-04-13 | 2021-04-13 | 基于区块链的存证方法、装置及电子设备 |
PCT/CN2022/085848 WO2022218227A1 (zh) | 2021-04-13 | 2022-04-08 | 基于区块链的存证方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110395400.7A CN113077259A (zh) | 2021-04-13 | 2021-04-13 | 基于区块链的存证方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113077259A true CN113077259A (zh) | 2021-07-06 |
Family
ID=76617501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110395400.7A Pending CN113077259A (zh) | 2021-04-13 | 2021-04-13 | 基于区块链的存证方法、装置及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113077259A (zh) |
WO (1) | WO2022218227A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113592495A (zh) * | 2021-08-23 | 2021-11-02 | 中国银行股份有限公司 | 一种基于区块链的存证方法、装置及系统 |
WO2022218227A1 (zh) * | 2021-04-13 | 2022-10-20 | 支付宝(杭州)信息技术有限公司 | 基于区块链的存证方法、装置及电子设备 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115965388B (zh) * | 2022-12-30 | 2023-12-22 | 国网数字科技控股有限公司 | 基于区块链的产业链金融密态溯源方法、装置及相关设备 |
CN116150234A (zh) * | 2023-04-20 | 2023-05-23 | 中国信息通信研究院 | 基于区块链的数据存证方法、装置、设备和介质 |
CN117220947B (zh) * | 2023-09-13 | 2024-06-07 | 中国南方电网有限责任公司 | 基于区块链的数据存证方法、装置、计算机设备、存储介质和程序产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201907801D0 (en) * | 2019-05-31 | 2019-07-17 | British Telecomm | Data-exchange between blockchains |
CN110162527A (zh) * | 2019-04-29 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务溯源方法、装置以及电子设备 |
CN110246005A (zh) * | 2019-05-23 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的租赁方法和装置 |
CN110264354A (zh) * | 2019-05-31 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 创建区块链账户及验证区块链交易的方法及装置 |
CN111708825A (zh) * | 2020-06-11 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108924107B (zh) * | 2018-06-21 | 2020-08-21 | 桂林电子科技大学 | 一种区块链远程医疗数据调用可验证方法 |
CN113077259A (zh) * | 2021-04-13 | 2021-07-06 | 支付宝(杭州)信息技术有限公司 | 基于区块链的存证方法、装置及电子设备 |
-
2021
- 2021-04-13 CN CN202110395400.7A patent/CN113077259A/zh active Pending
-
2022
- 2022-04-08 WO PCT/CN2022/085848 patent/WO2022218227A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162527A (zh) * | 2019-04-29 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 一种基于区块链的业务溯源方法、装置以及电子设备 |
CN110246005A (zh) * | 2019-05-23 | 2019-09-17 | 阿里巴巴集团控股有限公司 | 基于区块链的租赁方法和装置 |
GB201907801D0 (en) * | 2019-05-31 | 2019-07-17 | British Telecomm | Data-exchange between blockchains |
CN110264354A (zh) * | 2019-05-31 | 2019-09-20 | 阿里巴巴集团控股有限公司 | 创建区块链账户及验证区块链交易的方法及装置 |
CN111708825A (zh) * | 2020-06-11 | 2020-09-25 | 腾讯科技(深圳)有限公司 | 基于区块链的数据处理方法、装置、设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022218227A1 (zh) * | 2021-04-13 | 2022-10-20 | 支付宝(杭州)信息技术有限公司 | 基于区块链的存证方法、装置及电子设备 |
CN113592495A (zh) * | 2021-08-23 | 2021-11-02 | 中国银行股份有限公司 | 一种基于区块链的存证方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022218227A1 (zh) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113077259A (zh) | 基于区块链的存证方法、装置及电子设备 | |
CN113094396B (zh) | 基于节点内存的数据处理方法、装置、设备以及介质 | |
TW201820199A (zh) | 資料存取的方法、系統及裝置 | |
CN108572986B (zh) | 一种数据更新的方法及节点设备 | |
CN111736775A (zh) | 多源存储方法、装置、计算机系统及存储介质 | |
US11238402B2 (en) | Information operation | |
CN106878367B (zh) | 服务接口异步调用的实现方法和装置 | |
CN113077260A (zh) | 基于区块链的数据访问方法、装置及电子设备 | |
CN107357557B (zh) | 一种信息更新方法及装置 | |
CN105224541B (zh) | 数据的唯一性控制方法、信息存储方法及装置 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN113095825B (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN113327169B (zh) | 基于区块链的理赔方法及装置、电子设备 | |
CN113095824B (zh) | 基于区块链的资产管理方法、装置及电子设备 | |
CN113077258A (zh) | 基于区块链的存证方法、装置及电子设备 | |
CN115221559A (zh) | 数据账户的访问授权方法及装置 | |
CN115185946A (zh) | 多租户系统、多租户管理方法、计算机设备和存储介质 | |
CN115203746A (zh) | 数据账户的访问授权方法及装置 | |
CN112417508A (zh) | 一种数据脱敏方法、数据存储系统及存储介质和服务器 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
CN118013101A (zh) | 一种存在性查询方法、系统及存储介质和服务器 | |
CN112559460A (zh) | 基于人工智能的文件存储方法、装置、设备及存储介质 | |
CN117439982A (zh) | 资源管理方法、装置、计算机设备和存储介质 | |
CN115640321A (zh) | 数据查询方法和装置 | |
CN116126782A (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 |