CN112988903B - 基于区块链网络的数据处理方法、装置、设备及存储介质 - Google Patents
基于区块链网络的数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112988903B CN112988903B CN202110433061.7A CN202110433061A CN112988903B CN 112988903 B CN112988903 B CN 112988903B CN 202110433061 A CN202110433061 A CN 202110433061A CN 112988903 B CN112988903 B CN 112988903B
- Authority
- CN
- China
- Prior art keywords
- node
- target
- network
- evidence
- bill
- 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.)
- Active
Links
Images
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
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Finance (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种基于区块链网络的数据处理方法、装置、设备及计算机可读存储介质。其中方法包括:在核心子网络中对存证票据进行共识,若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,该区块包含存证票据的映射值,根据存证票据的映射值在核心子网络中确定目标节点,并在目标节点中存储存证票据。通过上述方案,仅将存证票据的映射值存储至区块链上,而具体的存证票据则存储在核心子网络的目标节点中,这样既可以有效地保护全量的存证票据,同时又可保证区块链账本的轻量级,使得区块链能够快速运行、快速传播,保障区块链网络中各节点的运行效率及稳定性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种基于区块链网络的数据处理方法、一种基于区块链网络的数据处理装置、一种基于区块链网络的数据处理设备及一种计算机可读存储介质。
背景技术
随着计算机技术的不断发展,区块链以其去中心化的特点被广泛应用在互联网交易、票据存储等领域。以票据存储为例,为了确保区块链上的数据是可追溯、可验证的,区块链网络中的各个节点均存储有共识通过后的存证票据,以便在追溯的过程中提供存证票据进行验证。在实际应用中,随着存证票据的不断增加,区块链网络中各个节点的数据冗余量也会随之增大,导致节点的运行效率和稳定性降低。
发明内容
本发明实施例提供了一种基于区块链网络的数据处理方法、装置、设备及存储介质,可以提高节点的运行效率和稳定性。
一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;该数据处理方法由目标共识节点执行,目标共识节点为至少一个共识节点中的任一个;该数据处理方法包括:
在核心子网络中对存证票据进行共识;
若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值;
根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围;
在目标节点中存储存证票据。
一方面,本申请实施例提供了一种基于区块链网络的数据处理装置,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;该数据处理装置搭载在目标共识节点上,目标共识节点为至少一个共识节点中的任一个;该数据处理装置包括:
处理单元,用于在核心子网络中对存证票据进行共识;以及用于若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值;以及用于根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围;以及用于在目标节点中存储存证票据。
在一种实施方式中,目标节点是核心子网络中除目标共识节点之外的任一个;处理单元用于,根据存证票据的映射值在核心子网络中确定目标节点,具体用于:
获取通信地址表,通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有核心子网络中的K个候选节点的标识和通信地址,M、K均为正整数;
根据存证票据的映射值与目标共识节点的标识之间的距离所属的距离范围,在M个通信层中确定目标通信层;
将目标通信层中标识与存证票据的映射值之间的距离属于第一目标范围的候选节点确定为目标节点。
在一种实施方式中,处理单元还用于:
若目标通信层中的K个候选节点的标识与存证票据的映射值之间的距离均不属于第一目标范围,则从目标通信层的K个候选节点选取至少一个候选节点;
向选取的至少一个候选节点发送查询请求,查询请求用于请求选取的至少一个候选节点查询并确定目标节点。
在一种实施方式中,处理单元用于,在目标节点中存储存证票据,具体用于:
获取目标节点的通信地址;
根据目标节点的通信地址向目标节点发送存证票据,以使目标节点存储存证票据。
在一种实施方式中,目标节点是目标共识节点;处理单元还用于:
在核心子网络中确定目标节点的备份节点;
向备份节点发送同步信息,同步信息包括存证票据,以将存证票据备份存储至备份节点。
在一种实施方式中,处理单元用于,在核心子网络中确定目标节点的备份节点,具体用于:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第一备份节点,第一备份节点的标识的数值大于目标共识节点的标识的数值,且第一备份节点的标识与目标节点的标识之间的距离属于第二目标范围。
在一种实施方式中,处理单元用于,在核心子网络中确定目标节点的备份节点,具体用于:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第二备份节点,第二备份节点的标识的数值小于目标共识节点的标识的数值,且第二备份节点的标识与目标节点的标识之间的距离属于第三目标范围。
在一种实施方式中,处理单元还用于:
接收针对存证票据的提取请求,提取请求包括存证票据的映射值;
根据存证票据的映射值在核心子网络中确定目标节点;
从目标节点获取存证票据,并向提取请求的发送方返回存证票据。
在一种实施方式中,处理单元还用于:
若目标节点不存在或故障,则从目标节点的备份节点中获取存证票据,并向提取请求的发送方返回存证票据。
在一种实施方式中,处理单元还用于:
获取存证票据的存储结果信息;
若存储结果信息指示存证票据存储成功,则向存证票据的发送方返回通知信息,通知信息包括存证票据的映射值。
在一种实施方式中,目标共识节点对应一个或多个存储节点,对应的一个或多个存储节点同步存储有目标共识节点中的存证票据;
当目标共识节点满足替换条件时,采用对应的一个或多个存储节点中的任一个替换目标共识节点;替换条件包括目标共识节点离线,或者目标共识节点的存储空间小于存储阈值。
一方面,本申请提供了一种基于区块链网络的数据处理设备,该设备包括:
处理器,用于加载并执行计算机程序;
计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,该计算机程序被处理器执行时,实现上述基于区块链网络的数据处理方法。
一方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述基于区块链网络的数据处理方法。
一方面,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链网络的数据处理方法。
本申请实施例中,在核心子网络中对存证票据进行共识,若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,该区块包含存证票据的映射值,根据存证票据的映射值在核心子网络中确定目标节点,并在目标节点中存储存证票据。通过上述方案,仅将存证票据的映射值存储至区块链上,而具体的存证票据则存储在核心子网络的目标节点中,这样既可以有效地保护全量的存证票据,同时又可保证区块链账本的轻量级,使得区块链能够快速运行、快速传播,保障区块链网络中各节点的运行效率及稳定性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1a示出了本申请一个示例性实施例提供的一种数据共享系统的架构图;
图1b示出了本申请一个示例性实施例提供的一种区块链的结构示意图;
图1c示出了本申请一个示例性实施例提供的一种区块产生流程示意图;
图1d示出了本申请一个示例性实施例提供的一种区块链网络的架构图;
图1e示出了本申请一个示例性实施例提供的一种双层网络的架构图;
图1f示出了本申请一个示例性实施例提供的一种基于双层网络的场景架构图;
图1g示出了本申请一个示例性实施例提供的另一种双层网络的架构图;
图2示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的流程图;
图3示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的流程图;
图4示出了本申请一个示例性实施例提供的一种拆分流程示意图;
图5示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理装置的结构示意图;
图6示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
下面对本申请实施例涉及的各术语进行阐述:
区块链(Blockchain):
区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
参见图1a所示的数据共享系统,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其它节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。
对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其它节点的节点标识,以便后续根据其它节点的节点标识,将生成的区块广播至数据共享系统中的其它节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其它任一种能够用于标识该节点的信息;例如,节点的标识还可以是二进制序列码(如110001110),表1中仅以IP地址为例进行说明:
表1
节点名称 | 节点标识 |
节点1 | 117.114.151.174 |
节点2 | 117.116.189.145 |
… | … |
节点N | 119.123.789.258 |
数据共享系统中的每个节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。
在生成区块链中的各个区块时,参见图1c,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:
SHA256(SHA256(version+prev_hash+merkle_root+ntime+nbits+x))<TARGET
其中,SHA256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;TARGET为特征值阈值,该特征值阈值可以根据nbits确定得到。
这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据数据共享系统中其它节点的节点标识,将新生成的区块分别发送给其所在的数据共享系统中的其它节点,由其它节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。区块链的实际应用方案包括但不限于:
1)比特币网络:
比特币网络中的节点主要有四大功能:钱包、挖矿、区块链数据库、网络路由。比特币网络中的每个节点都具有网络路由的功能,除网络路由功能外的钱包功能、挖矿功能和区块链数据库功能为各个节点的可选功能,通常比特币网络中的核心节点才会全部包含上述四种功能。包含上述四种功能的节点也叫全节点。除了比特币网络中的核心节点是全节点外,其它大部分节点都是轻节点(即包含上述四种功能中部分功能的节点)。用户可以通过具有钱包功能的轻(simplified payment verification,SPV)节点查看自己的账户余额、管理钱包地址和私钥、发起交易等。具有挖矿功能的节点又称为挖矿节点,如果挖矿节点存储着区块链中所有区块的数据,那该挖矿节点也是全节点,一般来说每个挖矿节点都是独立矿工(即独立挖矿的节点)。若某个挖矿节点不是独立矿工,且该挖矿节点和其它挖矿节点一起连接矿池,进行集体挖矿,则该挖矿节点是集体矿工;这也会形成一个矿池网络,这是一种有中心化的网络,中心节点是矿池服务器,其它挖矿矿工(即集体矿工)和矿池服务器相连,挖矿矿工和矿池服务器之间的通信一般采用矿池(Stratum)协议。另外,矿工创建新的区块后,还需要广播给比特币网络中的所有节点,比特币网络接受区块后,给矿工的奖励才是有效的;比特币网络中的矿工才会开始进行下一个区块哈希的计算。所以矿工必须最大的限度缩短新区块的广播时间和下一块区块的计算时间。因此需要一个专门广播的网络用来加快区块的传播,这个传播网络也叫比特币中继网络(Bitcoin RelayNetWork)。在比特币网络中,一个节点可以将自己维护的对等节点列表 (peer list) 发送给相邻节点。所以在初始节点发现之后,需要从相邻节点复制一份节点列表。
2)以太坊网络:
和比特币网络一样,以太坊网络中的节点也主要具有钱包、挖矿、区块链数据库、区块路由四大功能,且按照各个节点具有的功能进行划分也可以将以太坊网络中的节点划分为轻节点,全节点等。以太坊网络与比特币网络的区别在于网络结构不同,以太坊网络中的网络可采用Kademlia(Kad)算法构建,基于该算法,以太坊网络可以快速而又准确的进行路由和数据定位。Kad的路由表是通过称为K桶的数据构造而成,K桶记录了节点标识、节点距离、末尾节点、节点通信地址等信息。K桶按照以太坊网络中除目标节点外的其它节点与目标节点距离进行排序,共256个K桶,每个K桶包含16个节点。此处的目标节点可以是指以太坊网络中的任一个节点。
3)联盟链(如Fabric,Terdermint)网络:
联盟链网络是基于流言(Gossip)协议的数据分发网络,信息(“流言”)的传播是由种子节点发起的,当一个种子节点有状态需要更新到联盟链网络中的其它节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程(即随机的选择周围几个节点散播消息),直至联盟链网络中所有的节点都收到了消息。这个过程可能需要一定的时间,虽然理论上最终所有节点都会收到消息,但是由于不能保证某个时刻联盟链网络中所有节点都收到消息,因此Gossip协议是一个最终一致性协议。Gossip协议包括:
传播协议/流言协议(Dissemination Protocol/Rumor-Mongering Protocol):通过网络中的泛洪代理来工作,节点收到广播的数据后直接转发给所有的邻居节点。此方式可以提高网络的健壮性,但是容易造成广播风暴。
反熵协议(Anti-Entropy Protocol):用于修复复制数据,通过比较复制和协调差异进行操作。Hyperledger Fabric(一种账本平台)中的数据同步就是使用此方式实现的。
计算聚合的协议:对网络中节点的信息进行采样,并将这些值组合起来得到系统范围内的值,从而计算出网络范围内的集合;之后将建立一种全面的信息流模式。
Gossip协议包括两种数据传输方式,一种数据传输方式为推送方式(Push-based):①网络中的某个节点随机选择N个节点作为数据接收对象;②该节点向其选中的N个节点传输相应的信息;③接收到信息的节点处理所接收的数据;④接收到数据的节点再按照步骤①和步骤②传播接收的数据。另一种数据传输方式为拉取方式(Pull-based):某个节点周期性地随机选择N个节点询问有没有最新(预设时间范围内)的信息,收到请求的节点回复请求节点其最近新收到的信息。
以Hyperledger Fabric为例,在Hyperledger Fabric 的交易流程中,对等(Peer)节点作为参与交易的主体,主要负责存储完整的区块链数据、执行智能合约,Peer 节点之间可以通过 Gossip 协议来完成区块分发、状态同步等问题。
在每个 Peer 节点上都维护了其它 Peer 节点的信息,通过随机的与其它 Peer节点通信来交换信息(发送SignedGossipMessage),达到最终一致性。主要过程为通过GossipClient客户端的GossipStream双向流进行通信。Peer节点组成了一个P2P的网络,P2P网络是一种点对点连接的网络,P2P网络基于一类特定的网络协议,网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻的节点连接状态。客户端会提交请求给Peer节点,Peer节点处理后会提交交易提案(Transaction Proposal)给背书节点(Endorser),然后进行背书签名(Endorsement),最后经过排序服务达成共识后广播给Peer节点。图1d示出了本申请一个示例性实施例提供的一种区块链网络的架构图。如图1d所示。Gossip负责连接排序服务和Peer节点上,实现从单个源节点到所有节点高效的数据分发,在后台实现不同节点间的状态同步,并且可以处理拜占庭问题、动态的节点增加和网络分区。
在实际应用中发现,当区块链被用于政府或者商业机构的一些场景(如开发票场景)中时,并非所有的区块链参与节点都有足够的资源和必要性成为参与区块链共识的节点。而出于对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不适用普遍的数据对等的区块链部署方式。为了适应业务需求(如内外网,业务网,办公网分隔等),并进一步提高数据的安全性和保密性,本申请实施例提供了一种双层链,通过P2P网络形成“见证子网络-核心子网络”的双层网络架构。图1e示出了本申请一个示例性实施例提供的一种双层网络的架构图。如图1e所示,业务节点部署在处于公网的见证子网络中,而运行区块链共识协议的记账节点(即共识节点)则部署在私有的核心子网络中,二者通过路由边界进行交互。也就是说,见证子网络中的节点主要进行业务执行,不参与记账共识,而是通过身份认证的方式从核心子网络中获得区块头数据和部分授权可见的区块数据。见证子网络和核心子网络处在不同网络环境下,通常来说见证子网络处于公有网络中而核心子网络处于私有网络中。
由于核心子网络处于相对安全的私有网络中,其互相访问本就有共识机制保证安全,不需要额外加入身份管理和网络控制。而业务节点处于公共网络中,可能会被其它不确定的网络终端访问,因此业务节点以及其它可能的节点接入核心子网络中的行为需要被严格控制。
以电子发票业务为例,图1f示出了本申请一个示例性实施例提供的一种基于双层网络的场景架构图。如图1f所示,业务层、路由代理层、核心共识网络层组成了整个完整区块链业务体系。业务层处于见证子网络中,业务层包括至少一个业务节点,业务节点可以处理(地方税局)税务、票据(企业开票)、支付(企业资金流动)等业务。核心共识网络层处于核心子网络层中,共识节点具体可以是可信(计算)节点,每个共识节点中存储有权限合约以及区块链中的区块。业务层通过路由代理层向核心共识网络层提交业务操作交互,即路由代理层对于业务层和核心共识网络层起到了隔离的作用,代理层中包括至少一个代理节点,代理节点可以提供路由服务、认证服务、证书缓存服务、点对点(P2P)服务等。
图1g示出了本申请一个示例性实施例提供的另一种双层网络的架构图,如图1g所示,区块链网络包括见证子网络和核心子网络,见证子网络由至少一个业务节点组成,该业务节点具体可以是SPV节点,SPV节点维持正常的无结构P2P网络,负责业务上链和清分数据;核心子网络由至少一个共识节点和至少一个存储节点构成,共识节点可以用于对存证票据进行共识和存储,存储节点用于同步共识节点中存储的数据(如存证票据),共识节点和存储节点在核心子网络中组成基于Kad的分布式哈希表(Distributed Hash Table,DHT)网络。具体地,核心子网络可以划分为两组网络,第一组是共识节点组成的共识网络,第二组是存储节点和共识节点一起组成的存证票据存储网络。在实际上链的交易中存证票据首先在共识网络中被共识,然后在共识节点中将存证票据的映射值(如哈希值)上链。存证票据的映射值上链成功后,将存证票据发送到存储存证票据的存储网络中,以使存储网络将发票存储起来,在需要获取存证票据时根据存证票据的映射值来从存储网络中查找并获得存证票据。具体的处理流程包括:(1)目标共识节点在核心子网络中对存证票据进行共识,即目标共识节点在获取存证票据后,与核心网络中的一个或多个共识节点对存证票据进行共识;该共识过程例如可包括:核对存证票据的金额、交易方等参数是否正确等等。此处,目标共识节点可以是核心子网络中的任一个共识节点。(2)若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值。此处,存证票据的映射值可以是该存证票据对应的哈希值;在区块链上的区块中存储该存储票据的映射值,即是对存证票据的映射值进行上链处理的过程。需要说明的是,区块链网络中的每个节点均维护同一条区块链,那么,每个共识节点中均存储有成功共识后的该存证票据的映射值。(3)目标共识节点根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围;其中,第一目标范围可以根据实际情况进行设定。目标节点的标识与存证票据的映射值之间的距离,可以通过对目标节点的标识与存证票据的映射值进行异或计算得到;例如,目标节点可以是指核心子网络中,标识与存证票据的映射值之间的距离最小的节点;该目标节点可以是共识节点,也可以是存储节点。(4)在目标节点中存储存证票据,在一种实现中,若目标节点是目标共识节点本身,则该目标共识节点存储存证票据;在另一种实现中,若目标节点是核心子网络中除目标共识节点外的其它节点,则目标共识节点可向目标节点发送存证票据,以使目标节点存储该存证票据。
本申请实施例中,在核心子网络中对存证票据进行共识,若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,该区块包含存证票据的映射值,根据存证票据的映射值在核心子网络中确定目标节点,并在目标节点中存储存证票据。通过上述方案,仅将存证票据的映射值存储至区块链上,而具体的存证票据则存储在核心子网络的目标节点中,这样既可以有效地保护全量的存证票据,同时又可保证区块链账本的轻量级,使得区块链能够快速运行、快速传播,保障区块链网络中各节点的运行效率及稳定性。
基于上述描述,下面将结合附图,对本申请实施例提出的基于区块链网络的数据处理方法进行详细介绍。
图2示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理方法的流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;本申请实施例提供的基于区块链网络的数据处理方法可以由目标共识节点执行,目标共识节点为核心子网络中的共识节点中的任一个;如图2所示,数据处理方法包括但不限于如下步骤S201-步骤S204:
S201:在核心子网络中对存证票据进行共识。
目标共识节点在获取存证票据后,与核心子网络中的一个或多个共识节点对存证票据进行共识。其中,共识算法可以包括但不限于工作量证明(Proof-of-Work,PoW)算法、权益证明(Proof of Stake,PoS)算法、委托权益证明(Delegated Proof of Stake,DPoS)算法等。
S202:若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值。
存证票据的映射值是对存证票据进行映射处理后得到的,映射处理的映射函数可以包括但不限于哈希函数、线性函数、非线性函数等等。以映射函数为哈希函数为例,存证票据的映射值是对存证票据进行哈希计算后得到的。可以理解的是,当包含该存证票据的映射值的区块上链完成后,核心子网络中的各个节点均会同步存储该区块,即各个节点均会存储存证票据的映射值。
S203:根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围。
区块链网络中,每个节点均对应一个唯一的标识,该标识可以为节点的ID、节点的哈希值。以节点的标识为节点的哈希值为例,目标节点的标识与存证票据的映射值之间的距离,可以通过对目标节点的标识与存证票据的映射值进行异或计算得到;例如,设目标节点的标识为1101,存证票据的映射值为1001,则目标节点的标识与存证票据的映射值之间的距离为0100=4。需要说明的是,当第一目标范围设定得足够小时,例如第一目标范围设为[0,1)时,表示目标节点的标识与存证票据的映射值相同。
S204:在目标节点中存储存证票据。
步骤S203-S204中,在一种实施方式中,目标共识节点的标识与存证票据的映射值之间的距离属于第一目标范围(如目标共识节点的标识与存证票据的映射值相同),即目标共识节点就是目标节点。在此实施方式下,目标共识节点则直接存储该存证票据。
在另一种实施方式中,目标共识节点的标识与存证票据的映射值之间的距离不属于第一目标范围,即目标共识节点并不是目标节点。那么,目标共识节点需要找到目标节点,并获取目标节点的共识地址,根据目标节点的通信地址向目标节点发送存证票据,以使目标节点存储存证票据。可以理解的是,当目标共识节点不是目标节点时,目标共识节点不会存储存证票据,即存证票据是目标共识节点中的清分数据(广播交易前在目标共识节点中缓存,在完成区块同步时,从目标共识节点中清除)。
在此实施方式下,目标共识节点获取通信地址表,该通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有K个候选节点的标识和通信地址,M、K均为正整数。在一个实施例中,候选节点可以是核心子网络中的共识节点,也可以是核心子网络中的存储节点。表2为本申请实施例提供的一种目标共识节点的标识为11111110时的通信地址表:
表2
通信层标识 | 候选节点 | 距离 |
1 | 11111101的地址,11111100的地址 | [1,8) |
2 | 11110100的地址,11110011的地址 | [8,16) |
3 | 11100111的地址,11100100的地址 | [16,32) |
… | … | … |
M | 00100111的地址,01010011的地址 | [a,b) |
由表2可知,该通信地址表包括M个通信层,通信层标识具有索引功能,每个通信层对应一个距离范围,如通信层2对应的距离范围为[8,16),每个通信层记录有属于该通信层对应的距离范围的2个候选节点的标识和通信地址;如通信层3记录有标识为11100111的候选节点和标识为11100100的候选节点的通信地址(11100111与11111110的距离为11001=25,11100100与11111110的距离为11010=26,均属于通信层3对应的距离范围[16,32))。
进一步地,目标共识节点根据存证票据的映射值与目标共识节点的标识之间的距离所属的距离范围,在M个通信层中确定目标通信层;设存证票据1的映射值为11100111,目标共识节点的标识为11111110,且目标共识节点的通信地址表如表1所示,由于11100111与11111110的距离为11001=25属于通信层3对应的距离范围[16,32),因此目标共识节点将通信层3确定为目标通信层。
在一个实施例中,若目标通信层中的K个候选节点中存在标识与存证票据的映射值之间的距离属于第一目标范围的候选节点,则目标共识节点将该共识节点确定为目标节点;设第一目标范围为[0,1),由于通信层3中标识为11100111的候选节点与存证票据1的距离为0(相匹配),属于第一目标范围,因此目标共识节点将标识为11100111的候选节点确定为目标节点,并继续执行步骤S204。
在另一个实施例中,若目标通信层中的K个候选节点的标识与存证票据的映射值之间的距离均不属于第一目标范围,则从目标通信层的K个候选节点选取至少一个候选节点;设存证票据2的映射值为11100001,目标共识节点的标识为11111110,且目标共识节点的通信地址表如表1所示,由于11100001与11111110的距离为11111=31属于通信层3对应的距离范围[16,32),因此目标共识节点将通信层3确定为目标通信层;设第一目标范围为[0,2),由于11100001与11100111的距离为11110=30,11100001与11100100的距离为101=5,均不属于第一目标范围,则目标共识节点从标识为11100111的候选节点和标识为11100100的候选节点中选取至少一个候选节点,具体地,目标共识节点可以随机选取一个候选节点,也可以选取与存证票据距离最近的候选节点(即标识为11100111的候选节点),还可以选取通信层3中的所有候选节点(即标识为11100111的候选节点和标识为11100100的候选节点),对此本申请不作限制。
进一步地,目标共识节点向选取的至少一个候选节点发送查询请求,查询请求用于请求选取的至少一个候选节点查询并确定目标节点,查询请求包括存证票据的映射值。候选节点根据存证票据的映射值查询并确定目标节点的实施方式与目标共识节点根据存证票据的映射值在核心子网络中确定目标节点的实施方式类似,在此不再赘述。
需要说明的是,目标节点可以为一个或多个;例如,目标节点可以是核心子网络中距离目标共识节点距离最近的候选节点1,同时还可以是核心子网络中除共识节点1以外距离目标共识节点距离最近的候选节点2。也就是说,目标共识节点可以将核心子网络中的一个或多个候选节点确定为目标节点。
可选的,若存在多个标识与存证票据的映射值之间的距离属于第一目标范围的候选节点,则将多个候选节点确定为目标节点;或者将多个候选节点中标识距离存证票据的映射值最近的候选节点确定为目标节点,又或者将最先获取到通信地址的候选节点确定为目标节点。
本申请实施例中,目标共识节点在核心子网络中对存证票据进行共识,若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,该区块包含存证票据的映射值,根据存证票据的映射值在核心子网络中确定目标节点,并在目标节点中存储存证票据。通过上述方案,仅将存证票据的映射值存储至区块链上,而具体的存证票据则存储在核心子网络的目标节点中,这样既可以有效地保护全量的存证票据,同时又可保证区块链账本的轻量级,使得区块链能够快速运行、快速传播,保障区块链网络中各节点的运行效率及稳定性。
图3示出了本申请一个示例性实施例提供的另一种基于区块链网络的数据处理方法的流程图。区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;本申请实施例提供的基于区块链网络的数据处理方法可以由目标共识节点执行,目标共识节点为核心子网络中的共识节点中的任一个;如图3所示,数据处理方法包括但不限于如下步骤S301-步骤S312:
S301:在核心子网络中对存证票据进行共识。
S302:若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上。
步骤S301和步骤S302的具体实施方式可参考图2中步骤S201和步骤S202的实施方式,在此不再赘述。
S303:目标共识节点判断自身的标识与存证票据的映射值之间的距离是否属于第一目标范围。
目标共识节点的标识与存证票据的映射值之间的距离,可以通过对目标节点的标识与存证票据的映射值进行异或计算得到。若目标共识节点的标识与存证票据的映射值之间的距离不属于第一目标范围(即目标节点是核心子网络中除目标共识节点外的其它共识节点),则继续执行步骤S304;若目标共识节点的标识与存证票据的映射值之间的距离属于第一目标范围(即目标共识节点就是目标节点),则继续执行步骤S306。
S304:根据存证票据的映射值在核心子网络中确定目标节点。
在一种实施方式中,目标共识节点获取通信地址表,通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有K个候选节点的标识和通信地址,M、K均为正整数。在一个实施例中,该通信地址表是通过称为K桶的数据构造而成,K桶记录了节点标识(NodeId),距离范围(distance),终止点(endpoint),通信地址(ip)等信息。K桶按照与目标共识节点的距离进行排序,核心子网络中候选节点可以用户数据报协议(User Datagram Protocol,UDP)进行通信,可以通过ping命令探测候选节点是否在线,并通过pong命令对ping命令进行响应,可以通过FindNODE命令查询核心子网络中与目标共识节点的标识距离最近的候选节点,并通过neighbors命令对FindNODE命令进行响应(发送核心子网络中与目标共识节点的标识距离最近的候选节点的节点信息(如节点标识,节点通信地址等)),K桶中的每个节点都是平等的,可以设置并发度(alpha)因子指定向一个桶(bucket)去路由的并发度。
在构建核心子网络时,将核心子网络中各个节点(共识节点和存储节点)的标识预处理为二进制,且缩短为最短唯一前缀(字段树),并把字段树的叶子节点的数量上限设置为X个,进而控制字段树的膨胀,X为正整数。在构建通信地址表时,从根节点开始拆分出不包含目标共识节点自身的子树,直至将字段树拆分到只剩目标共识节点,每个拆出来的子树,维护里面的K个候选节点作为通信地址表。图4示出了本申请一个示例性实施例提供的一种拆分流程示意图。如图4所示,设目标共识节点的标识为101,则从根节点开始对字段树进行拆分可以得到不包含目标共识节点的子树1;同理,对剩余字段树进行拆分可以得到不包含目标共识节点的子树2和子树3。目标共识节点根据子树1,子树2和子树3生成的通信地址表如表3所示:
表3
通信层标识 | 候选节点 | 距离 |
1 | 100的地址 | [1,2) |
2 | 111的地址,110的地址 | [2,4) |
3 | 010的地址,001的地址 | [4,8) |
由表3可知,该通信地址表包括3个通信层,通信层标识具有索引功能,每个通信层对应一个距离范围,如通信层2对应的距离范围为[2,4),通信层2和通信层3记录有属于该通信层对应的距离范围的2个候选节点的标识和通信地址;如通信层3记录有标识为010的候选节点和标识为001的候选节点的通信地址(010与101的距离为110=6,001与101的距离为100=4,均属于通信层3对应的距离范围[4,8))。
在核心子网络的维护过程中,当有新的节点加入时,向已存在与核心子网络中的节点获取自己所在的K桶,拿到k桶之后再通过迭代,获得自身详细路由表,具体实施方式可参考图4生成通信地址表的流程。当核心子网络中的节点需要退出时,可以直接离开。
在核心子网络的更新过程中,当探测到有新接入的节点,如果K桶没满,则直接将新接入的节点添加至K桶中;如果K桶已满,则用新接入的节点替换失效节点。在核心子网络的查找过程中,向k个与待查找的对象(如存证票据的哈希值)距离比较近的节点发送查询信息,这k个节点中没有待查找的对象的信息,则这k个节点会他们返回他们认为较大概率存储有待查找的对象的信息的对等节点(如各个节点中存储的距离待查找的对象最近的对等节点),再继续向返回的这些对等节点查找待查找的对象的信息,按照上述方法进行迭代,直至找到待查找的对象的信息,查找复杂度是klogk,k为正整数。
在一个实施例中,各个候选节点的标识的长度(位数)与通信地址表中通信层的层数相同(如候选节点的长度为3,通信地址表中的通信层数也为3);每次查找候选节点时,会返回该候选节点的标识与目标共识节点的标识之间的距离所属通信层中的至少一个候选节点的节点信息(如节点的标识,节点的通信地址等),每个存证票据会被存储在距离该存证票据的映射值最近的P个候选节点(这P个候选节点即是目标节点)中,P为正整数。
其中,相邻节点的探测流程为:系统第一次启动时随机生成本机节点(目标共识节点)的标识(NodeId),记为LocalId,目标共识节点的标识生成后将固定不变。目标共识节点读取核心子网络中节点的信息,ping-pong握手完成后,将其写入K桶。目标共识节点每隔一段时间(如7200ms)刷新一次K桶。具体的刷新K桶的流程如下:
(1)随机生成目标共识节点的标识,记为TargetId,从1开始记录发现次数和刷新时间。
(2)计算TargetId与LocalId的距离,记为Dlt。
(3)核心子网络中共识节点的标识(NodeId)记为KadId,计算KadId与TargetId的距离,记为Dkt。
(4)找出核心子网络中Dlt大于Dkt的节点,记为k桶节点(共识节点或者存储节点),向k桶节点发送FindNODE命令,FindNODE命令包含TargetId。
(5)K桶节点收到FindNODE命令后,同样执行(2)-(4)的过程,将从K桶中找到的节点使用Neighbours命令发回给目标共识节点。
目标共识节点收到Neighbours后,将收到的节点写入到K桶中。
若搜索次数不超过8次,刷新时间不超过搜索阈值(如600ms),则返回到(2)步骤循环执行。
进一步地,目标共识节点根据存证票据的映射值与目标共识节点的标识之间的距离所属的距离范围,在M个通信层中确定目标通信层;将目标通信层中标识与存证票据的映射值之间的距离属于第一目标范围的候选节点确定为目标节点,具体实施方式可参考图2中步骤S203,在此不再赘述。
S305:在目标节点中存储存证票据。
在一种实施方式中,目标共识节点在确定目标节点的过程中获取目标节点的共识地址,根据目标节点的通信地址向目标节点发送存证票据,以使目标节点存储存证票据。
S306:在目标共识节点中存储存证票据。
S307:在核心子网络中确定目标节点的备份节点。
目标节点的备份节点用于备份存储目标节点中存储的存证票据。在一种实施方式中,当备份事件被触发时(如当前时间与备份时间匹配、目标节点中存储的存证票据的数量达到存储阈值等),目标节点获取通信地址表(通信地址表是根据目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离构建的)。在一个实施例中,目标节点根据通信地址表确定标识的数值大于目标节点的标识的数值,且与目标节点的距离属于第二目标范围的第一备份节点;例如,第一备份节点是标识的数值大于目标节点的标识的数值的共识节点中距离目标节点最近的共识节点,如目标节点的标识为11100110,第一备份节点的标识为11100111。在另一个实施例中,目标节点根据通信地址表确定标识的数值小于目标节点的标识的数值,且与目标节点的距离属于第三目标范围的第二备份节点,第一目标范围,第二目标范围和第三目标范围可以相同,也可以不同,对此本申请不作限制;例如,第二备份节点是标识的数值小于目标节点的标识的数值的共识节点中距离目标节点最近的共识节点,如目标节点的标识为11100110,第二备份节点的标识为11100101。
可选的,目标节点对应至少一个存储节点(如核心子网络中距离目标节点最近的存储节点),目标节点将对应的至少一个存储节点确定为备份节点。
S308:向备份节点发送同步信息。
同步信息包括存证票据。在一种实施方式中,目标共识节点向备份节点发送同步信息,以使备份节点备份存储存证票据。备份节点可以是核心子网络中的存储节点,也可以是核心子网络中的共识节点。在一个实施例中,目标共识节点对应一个或多个备份节点,每个备份节点均同步存储有目标共识节点中的存证票据,当目标共识节点满足替换条件时,采用对应的一个或多个备份节点中的任一个替换目标共识节点。其中,替换条件包括目标共识节点离线,或者目标共识节点的存储空间小于存储阈值。具体地,核心子网络中除目标共识节点外的其它共识节点根据备份节点的计算能力(性能),参数配置等信息,对目标共识节点对应的一个或多个备份节点进行筛选,得到目标备份节点,并采用目标备份节点对目标共识节点进行替换。
S309:向存证票据的发送方返回通知信息。
在一种实施方式中,目标共识节点获取存证票据的存储结果信息,若存储结果信息指示存证票据存储成功,则目标共识节点向存证票据的发送方返回通知信息,通知信息包括存证票据的映射值,存证票据的发送方可以根据存证票据对存证票据的映射值进行验证;此外,存证票据的映射值还可以用于从核心子网络中获取存证票据的映射值所对应的存证票据。相应地,若存储结果信息指示存证票据存储失败,则目标共识节点向存证票据的发送方返回提示信息,提示信息用于提示存证票据存储失败的原因(如存证票据共识失败)。
S310:接收针对存证票据的提取请求。
存证票据的提取请求包括存证票据的映射值。在一种实施方式中,提取请求还包括提取请求的发送方的标识,该标识用于证明提取请求的发送方是否具有获取存证票据的权限。
S311:根据存证票据的映射值在核心子网络中确定目标节点。
步骤S311的具体的实施方式可参考图2中步骤S203,在此不再赘述。
S312:从目标节点获取存证票据,并向提取请求的发送方返回存证票据。
在一种实施方式中,若目标节点不存在或故障,则查找目标节点的备份节点(如查找核心子网络中距离目标节点最近的共识节点或者存储节点),查找目标节点的备份节点的具体实施方式可参考步骤S307中的实施方式,在此不再赘述。在确定目标节点的备份节点后,从目标节点的备份节点中获取存证票据,并向提取请求的发送方返回存证票据。
本申请实施例在图2实施例的基础上,通过备份节点对目标节点中的存证票据进行备份(如将目标节点中的存证票据存在目标节点相邻节点中),使得核心子网络中除目标节点外的其它节点在需要获取目标节点中存储的存证票据时,可以从目标节点的备份节点中获取,进而改善了因目标节点掉线等因素导致部分存证票据丢失(无法获取)的情况;并在核心子网络中的共识节点满足替换条件(如掉线时)时,采用备份节点对共识节点进行替换,进一步地保障区块链网络的稳定性。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图5,图5示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理装置的结构示意图。图5所示的基于区块链网络的数据处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。其中,区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;数据处理装置可以搭载在目标共识节点上,目标共识节点为至少一个共识节点中的任一个;该数据处理装置的各个单元的详细描述如下:
处理单元501,用于在核心子网络中对存证票据进行共识;以及用于若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值;以及用于根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围;以及用于在目标节点中存储存证票据。
在一种实施方式中,目标节点是核心子网络中除目标共识节点之外的任一个;处理单元501用于,根据存证票据的映射值在核心子网络中确定目标节点,具体用于:
获取通信地址表,通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有核心子网络中的K个候选节点的标识和通信地址,M、K均为正整数;
根据存证票据的映射值与目标共识节点的标识之间的距离所属的距离范围,在M个通信层中确定目标通信层;
将目标通信层中标识与存证票据的映射值之间的距离属于第一目标范围的候选节点确定为目标节点。
在一种实施方式中,处理单元501还用于:
若目标通信层中的K个候选节点的标识与存证票据的映射值之间的距离均不属于第一目标范围,则从目标通信层的K个候选节点选取至少一个候选节点;
向选取的至少一个候选节点发送查询请求,查询请求用于请求选取的至少一个候选节点查询并确定目标节点。
在一种实施方式中,处理单元501用于,在目标节点中存储存证票据,具体用于:
获取目标节点的通信地址;
根据目标节点的通信地址向目标节点发送存证票据,以使目标节点存储存证票据。
在一种实施方式中,目标节点是目标共识节点;处理单元501还用于:
在核心子网络中确定目标节点的备份节点;
向备份节点发送同步信息,同步信息包括存证票据,以将存证票据备份存储至备份节点。
在一种实施方式中,处理单元501用于,在核心子网络中确定目标节点的备份节点,具体用于:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第一备份节点,第一备份节点的标识的数值大于目标共识节点的标识的数值,且第一备份节点的标识与目标节点的标识之间的距离属于第二目标范围。
在一种实施方式中,处理单元501用于,在核心子网络中确定目标节点的备份节点,具体用于:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第二备份节点,第二备份节点的标识的数值小于目标共识节点的标识的数值,且第二备份节点的标识与目标节点的标识之间的距离属于第三目标范围。
在一种实施方式中,处理单元501还用于:
接收针对存证票据的提取请求,提取请求包括存证票据的映射值;
根据存证票据的映射值在核心子网络中确定目标节点;
从目标节点获取存证票据,并向提取请求的发送方返回存证票据。
在一种实施方式中,处理单元501还用于:
若目标节点不存在或故障,则从目标节点的备份节点中获取存证票据,并向提取请求的发送方返回存证票据。
在一种实施方式中,处理单元501还用于:
获取存证票据的存储结果信息;
若存储结果信息指示存证票据存储成功,则向存证票据的发送方返回通知信息,通知信息包括存证票据的映射值。
在一种实施方式中,目标共识节点对应一个或多个存储节点,对应的一个或多个存储节点同步存储有目标共识节点中的存证票据;
当目标共识节点满足替换条件时,采用对应的一个或多个存储节点中的任一个替换目标共识节点;替换条件包括目标共识节点离线,或者目标共识节点的存储空间小于存储阈值。
根据本申请的一个实施例,图2和图3所示的基于区块链网络的数据处理方法所涉及的部分步骤可由图5所示的基于区块链网络的数据处理装置中的各个单元来执行。例如,图2中所示的步骤S201-步骤S204可由图5所示的处理单元501执行。图3中所示的步骤S301-步骤S312可由图5所示的处理单元501执行。图5所示的基于区块链网络的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于区块链网络的数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的基于区块链网络的数据处理装置,以及来实现本申请实施例的基于区块链网络的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理装置解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图6,图6示出了本申请一个示例性实施例提供的一种基于区块链网络的数据处理设备的结构示意图,该基于区块链网络的数据处理设备至少包括处理器601、通信接口602和存储器603。其中,处理器601、通信接口602和存储器603可通过总线或其它方式连接,本申请实施例以通过总线连接为例。其中,处理器601(或称中央处理器(CentralProcessing Unit,CPU))是基于区块链网络的数据处理设备的计算核心以及控制核心,其可以解析基于区块链网络的数据处理设备内的各类指令以及处理数据处理设备的各类数据,例如:CPU可以用于解析用户向基于区块链网络的数据处理设备所发送的开关机指令,并控制数据处理设备进行开关机操作;再如:CPU可以在数据处理设备内部结构之间传输各类交互数据,等等。通信接口602可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器601的控制可以用于收发数据;通信接口602还可以用于基于区块链网络的数据处理设备内部数据的传输以及交互。存储器603(Memory)是基于区块链网络的数据处理设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器603既可以包括基于区块链网络的数据处理设备的内置存储器,当然也可以包括基于区块链网络的数据处理设备所支持的扩展存储器。存储器603提供存储空间,该存储空间存储了数据处理设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。其中:
区块链网络包括见证子网络和核心子网络,见证子网络中设有至少一个业务节点,核心子网络中设有至少一个共识节点及至少一个存储节点;数据处理设备搭载在目标共识节点上,目标共识节点为至少一个共识节点中的任一个;
在本申请实施例中,处理器601通过运行存储器603中的可执行程序代码,执行如下操作:
通过处理器601在核心子网络中对存证票据进行共识;以及用于若共识成功则获取存证票据的映射值,生成区块且将区块添加至区块链网络中的区块链上,区块包含存证票据的映射值;以及用于根据存证票据的映射值在核心子网络中确定目标节点,目标节点的标识与存证票据的映射值之间的距离属于第一目标范围;以及用于在目标节点中存储存证票据。
作为一种可选的实施方式,目标节点是核心子网络中除目标共识节点之外的任一个;处理器601根据存证票据的映射值在核心子网络中确定目标节点的具体实施方式为:
获取通信地址表,通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有核心子网络中的K个候选节点的标识和通信地址,M、K均为正整数;
根据存证票据的映射值与目标共识节点的标识之间的距离所属的距离范围,在M个通信层中确定目标通信层;
将目标通信层中标识与存证票据的映射值之间的距离属于第一目标范围的候选节点确定为目标节点。
作为一种可选的实施方式,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
若目标通信层中的K个候选节点的标识与存证票据的映射值之间的距离均不属于第一目标范围,则从目标通信层的K个候选节点选取至少一个候选节点;
向选取的至少一个候选节点发送查询请求,查询请求用于请求选取的至少一个候选节点查询并确定目标节点。
作为一种可选的实施方式,处理器601在目标节点中存储存证票据的具体实施方式为:
获取目标节点的通信地址;
根据目标节点的通信地址向目标节点发送存证票据,以使目标节点存储存证票据。
作为一种可选的实施方式,目标节点是目标共识节点;处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
在核心子网络中确定目标节点的备份节点;
向备份节点发送同步信息,同步信息包括存证票据,以将存证票据备份存储至备份节点。
作为一种可选的实施方式,处理器601在核心子网络中确定目标节点的备份节点的具体实施方式为:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第一备份节点,第一备份节点的标识的数值大于目标共识节点的标识的数值,且第一备份节点的标识与目标节点的标识之间的距离属于第二目标范围。
作为一种可选的实施方式,处理器601在核心子网络中确定目标节点的备份节点的具体实施方式为:
分别获取目标节点的标识与核心子网络中除目标节点之外的其它节点的标识之间的距离;
从其它节点中确定第二备份节点,第二备份节点的标识的数值小于目标共识节点的标识的数值,且第二备份节点的标识与目标节点的标识之间的距离属于第三目标范围。
作为一种可选的实施方式,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
接收针对存证票据的提取请求,提取请求包括存证票据的映射值;
根据存证票据的映射值在核心子网络中确定目标节点;
从目标节点获取存证票据,并向提取请求的发送方返回存证票据。
作为一种可选的实施方式,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
若目标节点不存在或故障,则从目标节点的备份节点中获取存证票据,并向提取请求的发送方返回存证票据。
作为一种可选的实施方式,处理器601通过运行存储器603中的可执行程序代码,还执行如下操作:
获取存证票据的存储结果信息;
若存储结果信息指示存证票据存储成功,则向存证票据的发送方返回通知信息,通知信息包括存证票据的映射值。
作为一种可选的实施方式,目标共识节点对应一个或多个存储节点,对应的一个或多个存储节点同步存储有目标共识节点中的存证票据;
当目标共识节点满足替换条件时,采用对应的一个或多个存储节点中的任一个替换目标共识节点;替换条件包括目标共识节点离线,或者目标共识节点的存储空间小于存储阈值。
基于同一发明构思,本申请实施例中提供的基于区块链网络的数据处理设备解决问题的原理与有益效果与本申请方法实施例中基于区块链网络的数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,该计算机程序适于由处理器加载并执行上述方法实施例的基于区块链网络的数据处理方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述基于区块链网络的数据处理方法。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory ,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。
Claims (13)
1.一种基于区块链网络的数据处理方法,其特征在于,所述区块链网络包括见证子网络和核心子网络,所述见证子网络中设有至少一个业务节点,所述核心子网络中设有至少一个共识节点及至少一个存储节点;所述方法由目标共识节点执行,所述目标共识节点为所述至少一个共识节点中的任一个;所述方法包括:
在所述核心子网络中对存证票据进行共识;
若共识成功则获取所述存证票据的映射值,生成区块且将所述区块添加至所述区块链网络中的区块链上,所述区块包含所述存证票据的映射值;
若所述目标共识节点的标识与所述存证票据的映射值之间的距离属于第一目标范围,则将所述目标共识节点确定为目标节点;
若所述目标共识节点的标识与所述存证票据的映射值之间的距离不属于第一目标范围,则获取通信地址表,所述通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有所述核心子网络中的K个候选节点的标识和通信地址,M、K均为正整数;
根据所述存证票据的映射值与所述目标共识节点的标识之间的距离所属的距离范围,在所述M个通信层中确定目标通信层;
将所述目标通信层中标识与所述存证票据的映射值之间的距离属于所述第一目标范围的候选节点确定为目标节点;
在所述目标节点中存储所述存证票据。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标通信层中的K个候选节点的标识与所述存证票据的映射值之间的距离均不属于所述第一目标范围,则从所述目标通信层的K个候选节点选取至少一个候选节点;
向所述选取的至少一个候选节点发送查询请求,所述查询请求用于请求所述选取的至少一个候选节点查询并确定所述目标节点。
3.如权利要求1或2所述的方法,其特征在于,所述在所述目标节点中存储所述存证票据,包括:
获取所述目标节点的通信地址;
根据所述目标节点的通信地址向所述目标节点发送所述存证票据,以使所述目标节点存储所述存证票据。
4.如权利要求1所述的方法,其特征在于,所述目标节点是所述目标共识节点;所述方法还包括:
在所述核心子网络中确定所述目标节点的备份节点;
向所述备份节点发送同步信息,所述同步信息包括所述存证票据,以将所述存证票据备份存储至所述备份节点。
5.如权利要求4所述的方法,其特征在于,所述在所述核心子网络中确定所述目标节点的备份节点,包括:
分别获取所述目标节点的标识与所述核心子网络中除所述目标节点之外的其它节点的标识之间的距离;
从所述其它节点中确定第一备份节点,所述第一备份节点的标识的数值大于所述目标共识节点的标识的数值,且所述第一备份节点的标识与所述目标节点的标识之间的距离属于第二目标范围。
6.如权利要求4所述的方法,其特征在于,所述在所述核心子网络中确定所述目标节点的备份节点,包括:
分别获取所述目标节点的标识与所述核心子网络中除所述目标节点之外的其它节点的标识之间的距离;
从所述其它节点中确定第二备份节点,所述第二备份节点的标识的数值小于所述目标共识节点的标识的数值,且所述第二备份节点的标识与所述目标节点的标识之间的距离属于第三目标范围。
7.如权利要求1所述的方法,其特征在于,所述方法还包括:
接收针对所述存证票据的提取请求,所述提取请求包括所述存证票据的映射值;
根据所述存证票据的映射值在所述核心子网络中确定所述目标节点;
从所述目标节点获取所述存证票据,并向所述提取请求的发送方返回所述存证票据。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
若目标节点不存在或故障,则从所述目标节点的备份节点中获取所述存证票据,并向所述提取请求的发送方返回所述存证票据。
9.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述存证票据的存储结果信息;
若所述存储结果信息指示所述存证票据存储成功,则向所述存证票据的发送方返回通知信息,所述通知信息包括所述存证票据的映射值。
10.如权利要求1所述的方法,其特征在于,所述目标共识节点对应一个或多个存储节点,所述对应的一个或多个存储节点同步存储有所述目标共识节点中的存证票据;
当所述目标共识节点满足替换条件时,采用所述对应的一个或多个存储节点中的任一个替换所述目标共识节点;所述替换条件包括所述目标共识节点离线,或者所述目标共识节点的存储空间小于存储阈值。
11.一种基于区块链网络的数据处理装置,其特征在于,所述区块链网络包括见证子网络和核心子网络,所述见证子网络中设有至少一个业务节点,所述核心子网络中设有至少一个共识节点及至少一个存储节点;所述数据处理装置搭载在目标共识节点上,所述目标共识节点为所述至少一个共识节点中的任一个;所述数据处理装置包括:
处理单元,用于在所述核心子网络中对存证票据进行共识;以及用于若共识成功则获取所述存证票据的映射值,生成区块且将所述区块添加至所述区块链网络中的区块链上,所述区块包含所述存证票据的映射值;以及用于若所述目标共识节点的标识与所述存证票据的映射值之间的距离属于第一目标范围,则将所述目标共识节点确定为目标节点;若所述目标共识节点的标识与所述存证票据的映射值之间的距离不属于第一目标范围,则获取通信地址表,所述通信地址表包括M个通信层,每个通信层分别对应一个距离范围,且每个通信层均记录有所述核心子网络中的K个候选节点的标识和通信地址,M、K均为正整数;根据所述存证票据的映射值与所述目标共识节点的标识之间的距离所属的距离范围,在所述M个通信层中确定目标通信层;将所述目标通信层中标识与所述存证票据的映射值之间的距离属于所述第一目标范围的候选节点确定为目标节点;以及用于在所述目标节点中存储所述存证票据。
12.一种基于区块链网络的数据处理设备,其特征在于,包括:存储装置和处理器;
所述存储装置中存储有计算机程序;
处理器,用于加载并执行所述计算机程序,以实现如权利要求1-10任一项所述的基于区块链网络的数据处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-10任一项所述的基于区块链网络的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110433061.7A CN112988903B (zh) | 2021-04-22 | 2021-04-22 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110433061.7A CN112988903B (zh) | 2021-04-22 | 2021-04-22 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112988903A CN112988903A (zh) | 2021-06-18 |
CN112988903B true CN112988903B (zh) | 2021-08-03 |
Family
ID=76341611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110433061.7A Active CN112988903B (zh) | 2021-04-22 | 2021-04-22 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112988903B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115550251B (zh) * | 2022-12-01 | 2023-03-10 | 杭州蚂蚁酷爱科技有限公司 | 区块链网络、节点集合的维护方法及装置 |
CN115952220A (zh) * | 2023-03-10 | 2023-04-11 | 布比(北京)网络技术有限公司 | 基于区块链的票据处理方法、装置、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819777A (zh) * | 2017-11-17 | 2018-03-20 | 北京亿生生网络科技有限公司 | 一种基于区块链技术的数据存证方法及系统 |
CN110602096A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111339089B (zh) * | 2020-02-21 | 2023-09-22 | 联动优势科技有限公司 | 一种应用于区块链的数据存储与获取方法及装置 |
-
2021
- 2021-04-22 CN CN202110433061.7A patent/CN112988903B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107819777A (zh) * | 2017-11-17 | 2018-03-20 | 北京亿生生网络科技有限公司 | 一种基于区块链技术的数据存证方法及系统 |
CN110602096A (zh) * | 2019-09-12 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112988903A (zh) | 2021-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104517B (zh) | 一种基于区块链网络的数据处理方法及相关装置 | |
CN110061838B (zh) | 一种dns资源记录的去中心化存储系统及其实现方法 | |
CN109462587B (zh) | 区块链分层共识方法、区块链网络系统及区块链节点 | |
CN112926982B (zh) | 一种交易数据处理方法、装置、设备及存储介质 | |
CN112995211B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
CN112200681B (zh) | 区块链网络的业务处理方法、信息处理方法及节点设备 | |
US20230316273A1 (en) | Data processing method and apparatus, computer device, and storage medium | |
CN1574840B (zh) | 对等名称解析电信协议及在此使用的消息格式数据结构 | |
CN111771390A (zh) | 自组织网络 | |
CN112988903B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
KR20210057149A (ko) | 스마트 계약 기반 데이터 처리 방법, 기기 및 저장 매체 | |
CN110945853A (zh) | 基于联盟链投票共识算法产生及管理多模标识网络的方法 | |
US7336623B2 (en) | Peer-to-peer cloud-split detection and repair methods | |
CN109218391B (zh) | 一种基于区块链的分布式存储系统审计与去中心化的方法 | |
CN112417001B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
WO2022100679A1 (zh) | 一种数据通信方法、装置、计算机设备及存储介质 | |
CN110597922B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN113765675B (zh) | 一种交易数据处理方法、装置、设备以及介质 | |
CN111798234B (zh) | 一种轻量级区块链系统及构造方法 | |
CN113411376A (zh) | 基于区块链分片存储的传感器数据处理方法及装置 | |
Fan et al. | Secure time synchronization scheme in iot based on blockchain | |
CN116827957B (zh) | 基于多区块链的信息处理方法、装置、设备以及介质 | |
CN117407437A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
CN111831743A (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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40046831 Country of ref document: HK |