CN112104517B - 一种基于区块链网络的数据处理方法及相关装置 - Google Patents
一种基于区块链网络的数据处理方法及相关装置 Download PDFInfo
- Publication number
- CN112104517B CN112104517B CN202011316889.6A CN202011316889A CN112104517B CN 112104517 B CN112104517 B CN 112104517B CN 202011316889 A CN202011316889 A CN 202011316889A CN 112104517 B CN112104517 B CN 112104517B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- network
- nodes
- target
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0871—Allocation or management of cache space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/044—Network management architectures or arrangements comprising hierarchical management structures
-
- 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
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- 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
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于区块链网络的数据处理方法及相关装置,其中方法包括:接收目标业务节点发送的数据获取请求;根据数据获取请求携带的目标业务节点需要获取的数据的数据类型和数据标识集合以及记录的区块链网络中的节点的数据存储信息,从区块链网络包括的节点中确定目标节点集合;将携带目标节点集合包括的节点信息的反馈信息发送给目标业务节点,反馈信息用于指示目标业务节点根据目标节点集合包括的节点信息从相应的节点中获取所需数据。采用此方式,可以合理的为业务节点建议访问节点,以有效提高数据获取效率。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链网络的数据处理方法、一种基于区块链网络的数据处理装置、一种计算机设备及一种计算机可读存储介质。
背景技术
随着科技时代的到来和移动互联网的发展,网络变革的步伐也愈来愈快,实现同一领域或多个领域的信息融合,为客户提供全方位信息化方案的过程亦面临着体系结构的改进、支撑重心转移等新的挑战。因此,区块链技术作为分布式账本的一种特定实现,凭借其存储和管理数据的天然优势,逐渐成为各个领域存储数据和交易数据的首选方式。
区块链网络是一种分布式系统,由多个节点形成,节点之间形成点对点(P2P,PeerTo Peer)网络。
目前,区块链产品的P2P方案均为单层、统一的P2P,即节点对等,处于同一个网络中。但当区块链产品被用于诸如政府或者商业机构的一些应用场景中时,并非所有的区块链参与节点都有足够的资源和必要性成为参与区块链共识的节点;而出于对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不宜采用普遍的数据对等式的区块链部署方式。可见,单层(即节点对等)的P2P方案并不适用于上述多种应用场景。另外,对于采用节点对等的P2P方案的区块链网络,节点通常是随机向其他节点获取其想要的数据,但这个过程通常需要消耗较长的时间,严重影响数据获取的效率。
发明内容
本申请实施例提供了一种基于区块链网络的数据处理方法及相关装置,可以合理的为业务节点建议访问节点,以有效提高数据获取效率。
一方面,本申请实施例提供了一种基于区块链网络的数据处理方法,所述区块链网络包括见证网络和共识网络,所述见证网络由多个业务节点组网构成,所述共识网络由多个共识节点组网构成,所述见证网络和所述共识网络通过网关设备连接,所述方法包括:
接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;
根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;
将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
一方面,本申请实施例提供了一种基于区块链网络的数据处理装置,所述区块链网络包括见证网络和共识网络,所述见证网络由多个业务节点组网构成,所述共识网络由多个共识节点组网构成,所述见证网络和所述共识网络通过网关设备连接,所述装置包括:
收发单元,用于接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;
处理单元,用于根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;
所述收发单元,还用于将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
在一实施例中,所述数据存储信息包括数据缓存信息,所述处理单元具体用于:当所述数据类型为第一数据类型时,根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息。
在一实施例中,所述处理单元具体用于:根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息和网络性能参数,从所述见证网络包括的多个业务节点中确定目标节点集合。
在一实施例中,所述处理单元具体用于:当所述数据类型为第二数据类型时,根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合,所述目标节点集合包括从所述共识网络的共识节点中确定的节点信息。
在一实施例中,当所述数据类型为第二数据类型时,所述数据获取请求还携带所述目标业务节点的身份认证信息;所述装置还包括检验单元,用于:
根据所述身份认证信息对所述目标业务节点进行身份认证;当身份认证结果指示所述目标业务节点身份认证通过时,根据所述数据标识集合以及记录的关于所述目标业务节点的数据授权信息确定所述目标业务节点是否具备获取其所需数据的权限;若具备权限,则触发所述处理单元根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合。
在一实施例中,所述处理单元,还用于确定关于所述共识网络中的共识节点的数据缓存策略,并根据所述数据缓存策略生成数据缓存请求;
所述收发单元,还用于将所述数据缓存请求发送给所述共识网络中的共识节点,以使所述共识网络中的共识节点按照所述数据缓存策略的指示缓存与所述见证网络中的部分业务节点相关的数据。
在一实施例中,所述装置还包括检测单元,用于:
检测分配管理模块是否正常运行;若所述分配管理模块运行正常,则触发所述分配管理模块根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合;
若所述分配管理模块运行异常,则触发所述处理单元按照点对点路由表轮询策略响应所述目标业务节点发送的数据获取请求。
在一实施例中,所述收发单元,还用于接收所述目标业务节点发送的数据同步请求,所述数据同步请求携带所述目标业务节点的存储数据更新信息;
所述处理单元,还用于基于所述存储数据更新信息更新记录的所述目标业务节点的数据存储信息。
在一实施例中,所述处理单元,还用于当所述数据同步请求携带所述目标业务节点的网络性能参数时,基于所述数据同步请求携带的网络性能参数更新记录的所述目标业务节点的网络性能参数;和/或,每隔预设时间间隔获取所述目标业务节点的当前网络性能参数,并基于获取的所述当前网络性能参数更新记录的所述目标业务节点的网络性能参数。
一方面,本申请实施例提供了一种计算机设备,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行上述基于区块链网络的数据处理方法。
相应地,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述基于区块链网络的数据处理方法。
相应地,本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行上述基于区块链网络的数据处理方法。
本申请实施例中,通过将区块链网络划分成见证网络和共识网络,可以将各节点按照功能的不同进行区分,一方面可以实现分层区块链网络,并且只需将区块链网络中的部分节点作为共识节点,有利于提高共识效率;另一方面可以使得处于不同网络的节点存储不同的数据,实现数据不对等的区块链部署方式,可以提高数据的安全性和保密性。另外,在业务节点获取数据时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议(或者说分配)访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,有效提高数据获取效率。基于上述各方面,本申请实施例实现了一种分层区块链网络中基于分配管理的P2P方案,可以适用于单层的P2P方案不适用于的多种应用场景。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种分布式系统的架构示意图;
图2是本申请实施例提供的一种区块的结构示意图;
图3示出了Hyperledger Fabric的交易流程;
图4是本申请实施例提供的一种分层区块链网络的网络架构图;
图5是本申请实施例提供的一种基于区块链网络的数据处理方法的流程示意图;
图6是图5所示的步骤S503的子流程图;
图7是本申请实施例提供的另一种分层区块链网络的网络架构图;
图8是本申请实施例提供的一种基于区块链网络的数据处理装置的结构示意图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为更好的理解本申请实施例,下面先对本申请实施例所涉及的一些术语以及区块链技术进行介绍。
证书:指公钥证书体系(PKI,Public Key Infrastructure),在证书体系中,证书是一个公钥拥有者的身份证明,由权威机构进行颁发(CA)。基于公钥证书体系可以实现非对称加密和对于信息的数字签名。
PKI:公钥证书体系,主要包括了公私钥密码,X509证书,CA证书签发中心等等。
P2P网络:点对点连接的网络,基于一类特定的网络协议,网络节点之间不需要一个中心节点来维护网络状态,而是每个节点通过和相邻节点的广播交互来维护全网的节点状态或者是其相邻的节点连接状态。
区块链网络是一种分布式系统,分布式系统可以由多个节点(接入网络中的任意形式的计算设备,如服务器、用户终端)通过网络通信的形式连接形成。参见图1,是本申请实施例提供的分布式系统应用于区块链网络的一个可选的架构示意图。区块链网络由多个节点形成,节点之间形成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol )协议之上的应用层协议。在区块链网络中,任何机器如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。
参见图1示出的区块链网络中各节点的功能,涉及的功能包括:
1)路由,节点具有的基本功能,用于支持节点之间的通信。
节点除具有路由功能外,还可以具有以下功能:
2)区块链,包括一系列按照产生的先后时间顺序相互接续的区块(Block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链网络中节点提交的记录数据,例如交易数据等。
参见图2,是本申请实施例提供的区块结构(Block Structure)的一个可选的示意图,每个区块中包括本区块存储数据记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链(Blockchain)。另外,区块中还可以包括有区块生成时的时间戳等信息。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。
3)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字签名以表示任务数据的来源,将记录数据发送到区块链网络中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。
例如,应用实现的业务包括:
3.1)钱包,用于提供进行虚拟资源的交易的功能,包括发起交易,即将当前交易的交易记录发送给区块链网络中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中。当然,钱包还支持查询电子货币地址中剩余的电子货币。
3.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链网络中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。
3.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的虚拟资源转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。
4)共识,用于解决并保证每一笔交易或者数据在所有记账节点上的一致性和正确性问题。区块链的共识机制就是确定达成某种共识和维护共识的方式。区块链的共识机制使其在不依靠中心化组织的情况下,依然大规模高效协作完成运转。
如图1所示,区块链网络中的节点包括共识节点(即运行区块链共识协议的记账节点)和其他类型的节点。共识节点是区块链网络中具备出块功能以及共识功能的节点,可以是区块链网络中存储完整区块链的全节点。区块链网络中的共识节点可分为主节点和从节点,所谓的主节点是指当前阶段负责出块(即生成区块)的共识节点,所谓的从节点是指区块链网络中除主节点以外的共识节点。当前阶段可以是指当前区块高度。共识节点和其他类型的节点可以是终端或者服务器等计算机设备。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基于云计算服务的云服务器。终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。节点之间可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
目前,区块链产品的P2P方案均为单层、统一的P2P,即节点对等,处于同一个网络中(如图1所示)。下面对几种应用场景中的P2P方案进行介绍。
1、比特币,以太坊等公有链的区块链技术中的P2P方案:
比特币网络中的节点主要有四大功能:钱包、挖矿、区块链数据库、网络路由。每个节点都会有路由的功能,但是其他功能并不一定全部具备,一般之后比特币核心节点才会全部包含四种功能。包含所有功能的节点也叫全节点。除了比特币核心钱包是全节点外,其他大部分都是轻节点(SPV节点)。用户可以通过这些轻节点钱包查看自己的账户余额、管理钱包地址和私钥、发起交易等。还有一种节点是挖矿节点,如果该节点存储着区块的所有数据,那他也是全节点,一般都是独立矿工。
有一种挖矿节点不是独立挖矿的,会和其他节点一起连接形成矿池,进行集体挖矿,这种叫集体矿工。这也会形成一个矿池网络,这是一种有中心化的网络,中心节点是矿池服务器,其他挖矿矿工和中心节点相连,挖矿矿工和挖矿服务器之间的通信不是采用比特币协议,而是自己的矿池协议,主流的矿池协议是Stratum 协议。另外,矿工创建新的区块后,还需要广播给全网所有节点,全网接受区块后,给矿工的奖励才是有效的,才会再开始进行下一个区块的Hash(哈希)计算。所以矿工必须最大限度的缩短新区块的广播和下一块区块计算的时间。所以需要一个专门广播的网络用来加快区块的传播,这个传播网络也叫比特币中继网络(Bitcoin Relay NetWork)。
在比特币网络中,一个节点可以将自己维护的对等节点列表(peer list)发送给临近节点。所以在初始节点发现之后,需要从临近节点复制一份节点列表。和比特币一样,以太坊也具备钱包、挖矿、区块链数据库、区块路由四大功能,也存在不同类型的节点,与比特币P2P网络结构最大的不同,以太坊的P2P是有结构的。其网络采用Kademlia(Kad)算法实现,使用该算法可以快速而又准确的路由、定位数据的问题。
Kad的路由表是通过称为K桶的数据构造而成,K桶记录了节点NodeId,distance,endpoint,ip等信息。K桶按照与target节点距离进行排序,共256个K桶,每个K桶包含16个节点。Kad网络中节点间通信基于UDP(用户数据报协议),主要由以下几个命令构成,若两个节点间PING-PONG握手通过,则认为相应节点在线。ping命令:探测一个节点,判断其是否在线。PONG:ping的响应。FIND_NODE:向节点查询某个与目标节点ID距离接近的节点。NEIGHBORS:FIND_NODE命令响应,发送与目标节点ID距离接近的K桶中的节点。
邻居节点的发现流程说明:
系统第一次启动随机生成本机节点NodeId,记为LocalId,生成后将固定不变,本地节点记为local-eth。系统读取公共节点信息,PING-PONG握手完成后,将其写入K桶。系统每隔7200ms刷新一次K桶。
刷新K桶的流程如下:
a、随机生成目标节点Id,记为TargetId,从1开始记录发现次数和刷新时间。b、计算TargetId与LocalId的距离,记为Dlt。c、K桶中节点的NodeId记为KadId,计算KadId与TargetId的距离,记为Dkt。d、找出K桶中Dlt大于Dkt的节点,记为k桶节点,向k桶节点发送FIND_NODE命令,FIND_NODE命令包含TargetId。e、K桶节点收到FIND_NODE命令后,同样执行步骤b-d的过程,将从K桶中找到的节点使用NEIGHBORS命令发回给本机节点。f、本机节点收到NEIGHBORS命令后,将收到的节点写入到K桶中。g、若搜索次数不超过预设次数(如8),刷新时间不超过预设时长(如600ms),则返回到步骤b循环执行。
2、Fabric,Terdermint等联盟链的P2P方案:
Fabric的P2P网络是基于Gossip协议的数据封法网络,Gossip过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。
Gossip协议的类型:
传播协议/谣言协议(Dissemination Protocol/Rumor-Mongering Protocol):通过网络中的泛洪代理来工作,节点收到广播的数据后直接转发给所有的邻居节点。此方式可以提高网络的健壮性,但是容易造成广播风暴。
反熵协议(Anti-Entropy Protocol):用于修复复制数据,通过比较复制和协调差异进行操作。Hyperledger Fabric中的数据同步就是使用此方式实现的。
计算聚合的协议:对网络中节点的信息进行采样,并将这些值组合起来得到系统范围内的值,从而计算出网络范围内的集合;之后将建立一种全面的信息流模式。
Gossip数据分发协议的两种数据传输方式:
(1)、推送方式(Push-based):
网络中的某个节点随机选择N个节点作为数据接收对象,该节点向其选中的N个节点传输相应的信息;接收到信息的节点处理所接收的数据,接收到数据的节点再从第一步开始重复执行。
(2)、拉取方式(Pull-based):
某个节点周期性地随机选择N个节点询问有没有最新的信息,收到请求的节点回复请求节点其最近未收到的信息。
在Hyperledger Fabric的交易流程中,Peer 节点作为参与交易的主体,主要负责存储完整的区块链数据、执行智能合约,Peer 节点之间可以通过 Gossip 协议来完成区块分发、状态同步等问题。
在每个Peer节点上都维护了其它Peer节点的信息,通过随机的与其它Peer节点通信来交换信息,达到最终一致性。主要过程为通过GossipClient客户端的Gossip Stream双向流进行通信,发送Signed Gossip Message消息结构。Peer节点组成了一个P2P的网络,客户端会提交请求给Peer节点,Peer节点处理后会提交交易提案(Transaction Proposal)给背书节点(Endorser),然后进行背书签名(Endorsement),最后经过排序服务达成共识后广播给Peer节点,如图3所示。Gossip负责连接排序服务和Peer节点上,实现从单个源节点到所有节点高效的数据分发,在后台实现不同节点间的状态同步,并且可以处理拜占庭问题、动态的节点增加和网络分区。
Gossip 缺陷:
消息的延迟,由于Gossip协议中,节点只会随机向少数几个节点发送消息,消息最终是通过多个轮次的散播而到达全网的,因此使用Gossip 协议会造成不可避免的消息延迟。不适合用在对实时性要求较高的场景。
消息冗余,Gossip 协议规定,节点会定期随机选择周围节点发送消息,而收到消息的节点也会重复该步骤,因此就不可避免的存在消息重复发送给同一节点的情况,造成了消息的冗余,同时也增加了收到消息的节点的处理压力。而且,由于是定期发送,因此,即使收到了消息的节点还会反复收到重复消息,加重了消息的冗余。
以上介绍的相关区块链产品的P2P方案均为单层,统一的P2P,即节点对等,处于同一个网络中。但当区块链产品被用于诸如政府或者商业机构的一些应用场景中时,并非所有的区块链参与节点都有足够的资源和必要性成为参与区块链共识的节点;而出于对数据的安全性考虑,在区块链体系中涉及个人隐私或者国家安全的相关数据时,也不宜采用普遍的数据对等式的区块链部署方式。可见,单层(即节点对等)的P2P方案并不适用于上述多种应用场景。另外,对于采用节点对等的P2P方案的区块链网络,节点通常是采用P2P路由表轮询机制,随机向其他节点获取其想要的数据,但这个过程通常需要消耗较长的时间,严重影响数据获取的效率。
为解决上述问题,本申请实施例提供了一种分层区块链网络中基于分配管理的P2P方案。通过将区块链网络划分成见证网络和共识网络,可以将各节点按照功能的不同进行区分,一方面可以实现分层区块链网络,并且只需将区块链网络中的部分节点作为共识节点,有利于提高共识效率;另一方面可以使得处于不同网络的节点存储不同的数据,实现数据不对等的区块链部署方式,可以提高数据的安全性和保密性。另外,在业务节点获取数据时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,有效提高数据获取效率。基于上述有益效果,本申请实施例提供的一种分层区块链网络中基于分配管理的P2P方案,可以适用于单层的P2P方案所不适用于的多种应用场景。
以下对申请实施例提供的一种分层区块链网络中基于分配管理的P2P方案进行详细介绍。如图4所示,示出了本方案所适用的区块链网络的架构示意图。所述区块链网络为分层区块链网络,被分成见证网络和共识网络,见证网络由多个业务节点组网构成,共识网络由多个共识节点组网构成,见证网络和共识网络通过网关设备连接,网关设备还可以配置分配管理模块。其中,见证网络中的业务节点为轻节点,共识网络中的共识节点为全节点。
见证网络中的业务节点可以将获取到的数据中的至少部分数据存入缓存中,该至少部分数据可以是在缓存和内存中同时存储,也可以是优先存入缓存中,在达到一定条件(如达到缓存时间、存储空间不够需要清除)时再存入内存中。共识网络中的共识节点在内存中存储完整的区块链(即存储有区块链网络中的公共数据和与各业务节点相关的个人数据),并可以根据数据缓存策略的指示在缓存中缓存与见证网络中的部分业务节点相关的个人数据,还可以使用最近最少使用(LRU)算法来更新自身缓存中的数据。分层区块链网络实现的是数据不对等部署方式,即:见证网络中的业务节点所存储的数据包括其获取到的区块链网络中的公共数据,共识网络中的共识节点所存储的数据包括区块链网络中的公共数据和与各业务节点相关的个人数据。这样的数据不对等部署方式可以提高数据的安全性和保密性。
网关设备记录有区块链网络中的至少部分节点(包括见证网络中的业务节点和共识网络中的共识节点)的数据存储信息。该数据存储信息包括数据内存信息和/或数据缓存信息,数据内存信息用于指示节点的内存中的数据存储情况,数据缓存信息用于指示节点的缓存中的数据缓存情况。网关设备在响应业务节点的数据获取请求时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,这样可以有效提高数据获取的效率。
请参阅图5,为本申请实施例提供的一种基于区块链网络的数据处理方法的流程示意图。本申请实施例中所描述的基于区块链网络的数据处理方法由图4所示的网关设备执行,由网关设备执行的全部或者部分步骤具体可以由网关设备配置的分配管理模块执行,所述方法包括:
S501、目标业务节点向网关设备发送数据获取请求,其中,目标业务节点为见证网络中的任一业务节点,数据获取请求携带目标业务节点需要获取的数据的数据类型和数据标识集合。
本申请实施例中,数据类型包括第一数据类型、第二数据类型。第一数据类型为公共数据类型,公共数据为公开的或者说任一节点都能访问的数据,如区块头数据,等等。第二数据类型为个人数据类型,个人数据即某节点的私有数据,为未公开的或者说需要相应访问权限才能访问的数据,包括区块体中的交易数据,等等。数据标识集合包括一个或者多个数据标识,数据标识用于区分数据,包括数据所属区块的高度(如交易数据存储在区块高度100的区块中,则将“区块高度100”作为该交易数据的数据标识)、数据的拥有者的标识(如业务节点M产生的交易数据,则将“业务节点M”作为该交易数据的数据标识)、数据的生成时间或者上链时间等中的一种或者多种。
S502、网关设备接收目标业务节点发送的数据获取请求。
S503、网关设备响应所述数据获取请求,根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合。
本申请实施例中,见证网络中的业务节点可以将获取到的数据中的至少部分数据存入缓存中,该至少部分数据可以是在缓存和内存中同时存储,也可以是优先存入缓存中,在达到一定条件时再存入内存中。共识网络中的共识节点在内存中存储完整的区块链,并可以根据数据缓存策略的指示在缓存中缓存与见证网络中的部分业务节点相关的个人数据。网关设备记录有区块链网络中的至少部分节点的数据存储信息。该数据存储信息包括数据内存信息和/或数据缓存信息,数据内存信息用于指示节点的内存中的数据存储情况,数据缓存信息用于指示节点的缓存中的数据缓存情况。
网关设备根据该数据类型、该数据标识集合以及记录的区块链网络中的节点的数据存储信息,从区块链网络包括的节点中确定出的目标节点集合包括:从见证网络的业务节点中确定的节点信息、从共识网络的共识节点中确定的节点信息中的一种或者多种。节点信息包括节点的标识(如节点的编号、节点的网络地址,等等)。在可行的实施方式中,节点信息还可以包括节点的数据存储信息(包括数据缓存信息和/或数据内存信息)、被建议为某些数据的获取节点的频率,等等。目标节点集合包括的节点信息所对应的节点即为网关设备建议的能够从其中获取到目标业务节点所需全部数据的一个或者多个节点,该一个或者多个节点可以全是见证网络中的业务节点,也可以全是共识网络中的共识节点,也可以是业务节点和共识节点的组合。
本申请实施例中,步骤S503具体包括如图6所示的以下步骤:
S5031、网关设备获取所述数据获取请求携带的目标业务节点需要获取的数据的数据类型。
S5032、当所述数据类型为第一数据类型时,根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息。
具体地,当目标业务节点需要获取的数据的数据类型为第一数据类型时,表明目标业务节点请求的是公共数据,此时网关设备根据该数据标识集合以及记录的见证网络中的业务节点的数据缓存信息,从见证网络包括的多个业务节点中确定至少一个建议节点(均为业务节点)。该至少一个建议节点的缓存中缓存有目标业务节点所需的全部数据,即:可以是每一个建议节点的缓存中均缓存有目标业务节点所需的全部数据;也可以是各建议节点的缓存中均只缓存目标业务节点所需的部分数据,但各建议节点缓存的目标业务节点所需的部分数据组合起来可以得到目标业务节点所需的全部数据;还可以是部分建议节点的缓存中均缓存有目标业务节点所需的全部数据,另一部分建议节点的缓存中均只缓存目标业务节点所需的部分数据。
进一步地,获取该至少一个建议节点(即业务节点)的节点信息,该节点信息包括业务节点的标识(如业务节点的编号、业务节点的网络地址,等等);在可行的实施方式中,该节点信息还可以包括业务节点的数据存储信息(包括数据缓存信息和/或数据内存信息)、被建议为某些数据的获取节点的频率,等等。最后根据该至少一个建议节点的节点信息生成目标节点集合。
例如,见证网络中包括业务节点1、2和3,业务节点1的缓存中缓存有区块高度1-1700的区块头数据;业务节点2的缓存中缓存有区块高度500-1500的区块头数据;业务节点3的缓存中缓存有区块高度3000-4500的区块头数据。假设目标业务节点需要获取区块高度1-200的区块头数据,则可以将业务节点1确定为建议节点,并根据业务节点1的节点信息生成目标节点集合。假设目标业务节点需要获取区块高度500-1000的区块头数据,则可以将业务节点1、2确定为建议节点,并根据业务节点1、2的节点信息生成目标节点集合。
在一实施例中,如果网关设备根据该数据标识集合以及记录的见证网络中的业务节点的数据缓存信息,确定出见证网络包括的多个业务节点的缓存中未缓存目标业务节点所需的全部数据,则可以根据该数据标识集合以及记录的见证网络中的业务节点的数据内存信息,从见证网络包括的多个业务节点中确定至少一个建议节点,该至少一个建议节点的内存中存储有目标业务节点所需的全部数据,此处所包括的多种情况和前文所描述的情况类似,此处不再赘述。
例如,见证网络中包括业务节点1、2和3,业务节点1的缓存中缓存有区块高度1-1700的区块头数据,内存中存储有区块高度1-2000的区块头数据;业务节点2的缓存中缓存有区块高度500-1500的区块头数据,内存中存储有区块高度1600-2500的区块头数据;业务节点3的缓存中缓存有区块高度3000-4500的区块头数据,内存中存储有区块高度3500-6000的区块头数据。假设目标业务节点需要获取区块高度1600-2000的区块头数据,可以发现,业务节点1的缓存中缓存有区块高度1600-1700的区块头数据,但未缓存区块高度1701-2000的区块头数据,业务节点2和3的缓存中未缓存区块高度1600-2000的区块头数据;而业务节点1和2的内存中存储有区块高度1600-2000的区块头数据,则可以将业务节点1和/或业务节点2确定为建议节点,并根据业务节点1和/或业务节点2的节点信息生成目标节点集合。
在一实施方式中,在将业务节点1和/或业务节点2确定为建议节点,并根据业务节点1和/或业务节点2的节点信息生成目标节点集合之后,可以将区块高度1600-2000的区块头数据存入业务节点1和/或业务节点2的缓存中,并相应更新记录的业务节点1和/或业务节点2的数据缓存信息。这样一方面使得后续见证网络中的业务节点需要获取区块高度1600-2000的区块头数据时,可以基于业务节点1和/或业务节点2的缓存信息直接将业务节点1和/或业务节点2确定为建议节点,提高建议节点和目标节点集合的确定效率,另一方面可以使得见证网络中的业务节点从业务节点1和/或业务节点2获取区块高度1600-2000的区块头数据时,业务节点1和/或业务节点2可以直接从缓存中提取区块高度1600-2000的区块头数据,相对于从内存中提取数据,速度更快,这样有利于节省网络和计算机资源。
在另一实施例中,如果网关设备根据该数据标识集合以及记录的见证网络中的业务节点的数据缓存信息,确定出见证网络包括的多个业务节点的缓存中未缓存目标业务节点所需的全部数据,则可以根据该数据标识集合以及记录的见证网络中的业务节点的数据缓存信息和数据内存信息,从见证网络包括的多个业务节点中确定至少一个第一建议节点和至少一个第二建议节点。该至少一个第一建议节点的缓存中缓存的目标业务节点所需的数据,与该至少一个第二建议节点的内存中存储的目标业务节点所需的数据,组合起来可以得到目标业务节点所需的全部数据。进一步地,根据该至少一个第一建议节点和该至少一个第二建议节点的节点信息生成目标节点集合。
例如,见证网络中包括业务节点1、2和3,业务节点1的缓存中缓存有区块高度1-1700的区块头数据,内存中存储有区块高度2001-3000的区块头数据;业务节点2的缓存中缓存有区块高度500-1500的区块头数据,内存中存储有区块高度1700-2500的区块头数据;业务节点3的缓存中缓存有区块高度3000-4500的区块头数据,内存中存储有区块高度3500-6000的区块头数据。假设目标业务节点需要获取区块高度1600-2000的区块头数据,可以发现,业务节点1的缓存中缓存有区块高度1600-1700的区块头数据,但未缓存区块高度1701-2000的区块头数据,业务节点2和3的缓存中未缓存区块高度1600-2000的区块头数据;而业务节点2的内存中存储有区块高度1701-2000的区块头数据,则可以将业务节点1和业务节点2确定为建议节点,并根据业务节点1和业务节点2的节点信息生成目标节点集合。
本申请实施例中,当目标业务节点所需获取的数据为公共数据时,网关设备会优先分配见证网络中其他存储有该部分数据的业务节点给数据请求者(即目标业务节点),以使目标业务节点直接从见证网络中的其他业务节点获取该部分数据,而无需从共识网络中去获取,这样一方面可以提高数据获取速度,另一方面可以以缓解共识网络的压力。
在可行的实施例中,如果网关设备根据该数据标识集合以及记录的见证网络中的业务节点的数据存储信息,确定出见证网络包括的多个业务节点的缓存和内存中未存储目标业务节点所需的全部数据,则可以根据该数据标识集合、记录的见证网络中的业务节点的数据存储信息、以及记录的共识网络中的共识节点的数据存储信息,从见证网络包括的多个业务节点中确定第一建议节点集合和第二建议节点集合,以及从共识网络包括的多个共识节点中确定第三建议节点集合。该第一建议节点集合中的第一建议节点的缓存中缓存的目标业务节点所需的数据、该第二建议节点集合中的第二建议节点的内存中存储的目标业务节点所需的数据、以及该第三建议节点集合中的至少一个第三建议节点的内存和/或缓存中存储的目标业务节点所需的数据,组合起来可以得到目标业务节点所需的全部数据。进一步地,根据该第一建议节点集合中的第一建议节点、该第二建议节点集合中的第二建议节点和该第三建议节点集合中的至少一个第三建议节点的节点信息生成目标节点集合。该节点信息除了包括节点标识之外,还可以包括节点的数据存储信息。需要说明的是,第一建议节点集合和/或第二建议节点集合可以为空集。
在可行的实施例中,网关设备可以在根据该数据标识集合以及记录的见证网络中的业务节点的数据存储信息,从见证网络包括的多个业务节点中确定目标节点集合时,可以进一步结合记录的见证网络中的业务节点的网络性能参数、和/或被建议为某些数据的获取节点的频率来确定目标节点集合。网络性能参数包括速率、带宽、时延(包括发送时延、传播时延、处理时延、排队时延)、带宽时延积、利用率(包括信道利用率和网络利用率)、吞吐量、负载情况中的一种或者多种。
例如,见证网络中包括业务节点1和2,业务节点1的缓存中缓存有区块高度1-1700的区块头数据,业务节点2的缓存中缓存有区块高度500-1500的区块头数据。假设目标业务节点需要获取区块高度1000-1500的区块头数据,可以发现,业务节点1和2的缓存中均缓存有区块高度1000-1500的区块头数据;如果基于业务节点1和2的网络性能参数确定出业务节点1的网络性能好于业务节点2的网络性能,则可以将业务节点1确定为建议节点,并根据业务节点1的节点信息生成目标节点集合。
S5033、当所述数据类型为第二数据类型时,根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合,所述目标节点集合包括从所述共识网络的共识节点中确定的节点信息。
具体地,当目标业务节点需要获取的数据的数据类型为第二数据类型时,表明目标业务节点请求的是个人数据,网关设备根据该数据标识集合以及记录的共识网络中的共识节点的数据缓存信息,从共识网络包括的多个共识节点中确定至少一个建议节点(均为共识节点)。该至少一个建议节点的缓存中缓存有目标业务节点所需的全部数据,此处所包括的多种情况和前文所描述的情况类似,此处不再赘述。
进一步地,获取该至少一个建议节点(即共识节点)的节点信息,该节点信息包括共识节点的标识(如共识节点的编号、共识节点的网络地址,等等);在可行的实施方式中,该节点信息还可以包括共识节点的数据缓存信息。最后根据该至少一个建议节点的节点信息生成目标节点集合。
例如,共识网络中包括共识节点1、2和3,共识节点1的缓存中缓存有业务节点1在第一时间段内产生的交易数据;共识节点2的缓存中缓存有业务节点2在第一时间段内产生的交易数据;共识节点3的缓存中缓存有业务节点1和2在第二时间段内产生的交易数据。假设目标业务节点为业务节点1,需要获取其在第一时间段内产生的交易数据(业务节点1的个人数据),则可以将共识节点1确定为建议节点,并根据共识节点1的节点信息生成目标节点集合。
其中,如果网关设备根据该数据标识集合以及记录的共识网络中的共识节点的数据缓存信息,确定出共识网络包括的多个业务共识节点的缓存中未缓存目标业务节点所需的全部个人数据,由于共识网络中的共识节点在内存中均存储完整的区块链,则可以随机选取至少一个共识节点添加到建议节点集合中,以使得目标业务节点从该至少一个共识节点中获取其所需的全部数据或者获取其所需的但未缓存在共识节点的缓存中的数据。在可行的实施方式中,网关设备也可以结合记录的共识网络中的共识节点的网络性能参数来选取至少一个共识节点添加到建议节点集合中。例如,将网络性能最佳的共识节点也作为建议节点,以使得目标业务节点从该网络性能最佳的共识节点中获取其所需的全部数据或者获取其所需的但未缓存在共识节点的缓存中的数据。
在一实施例中,当目标业务节点需要获取个人数据时,可以将目标业务节点的身份认证信息携带在数据获取请求中发送给网关设备,该身份认证信息可以包括节点标识、公钥密码、公钥证书等中的一种或者多种。网关设备检测到目标业务节点需要获取的是个人数据时,可以先根据数据获取请求携带的目标业务节点的身份认证信息对目标业务节点进行身份认证,包括根据该节点标识验证目标业务节点是否是见证网络中的业务节点、验证公钥密码的准确性、验证公钥证书的准确性等中的一种或者多种。当身份认证结果指示目标业务节点身份认证通过时,进一步根据该数据标识集合以及记录的关于目标业务节点的数据授权信息确目标业务节点是否具备获取其所需个人数据的权限;若具备权限,则根据该数据标识集合以及记录的共识网络中的共识节点的数据缓存信息,从共识网络包括的多个共识节点中确定目标节点集合。反之,若不具备权限,则拒绝目标业务节点的数据获取请求。这样可以在一定程度上提高从共识网络中获取数据的安全性。
需要说明的是,S103中的各步骤,具体可以是由网关设备配置的分配管理模块执行实现的。
在一实施例中,网关设备接收到目标业务节点发送的数据获取请求之后,先检测其配置的分配管理模块是否正常运行,若分配管理模块运行正常,则触发分配管理模块执行S103,即:根据该数据类型、该数据标识集合以及记录的区块链网络中的节点的数据存储信息,从区块链网络包括的节点中确定目标节点集合;若分配管理模块运行异常,则按照P2P路由表轮询策略响应目标业务节点发送的数据获取请求,以使得目标业务节点随机向其他节点获取其需要的数据。
S504、网关设备将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点。
本申请实施例中,该反馈信息用于指示目标业务节点根据目标节点集合包括的节点信息从相应的节点中获取所需数据。
在一实施例中,当目标节点集合包括多个节点的节点信息,该反馈信息还可以携带数据获取策略,该数据获取策略用于指示目标业务节点从哪一个节点获取哪一部分数据。该数据获取策略可以是网关设备根据区块链网络中的节点的数据存储信息和网络性能参数确定的。
S505、目标业务节点接收网关设备发送的反馈信息。
S506、目标业务节点根据所述反馈信息携带的所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
本申请实施例中,目标业务节点根据目标节点集合包括的节点信息,从目标节点集合包括的节点信息对应的至少一个建议节点中确定出访问节点(可以是一个或者多个),以及确定需要从各访问节点获取的相应至少部分数据,并访问各访问节点获取相应至少部分数据,以得到目标业务节点所需的全部数据。其中,目标业务节点还可以结合目标节点集合包括的节点信息、以及目标节点集合包括的节点信息对应的各建议节点的网络性能参数、地理位置参数和被建议为某些数据的获取节点的频率中的一种或者多种,来确定访问节点以及需要从各访问节点获取的相应至少部分数据。
在一实施例中,如果目标节点集合包括多个节点的节点信息,且该反馈信息还携带数据获取策略,则目标业务节点可以根据该数据获取策略的指示将相应节点确定为访问节点,并根据数据获取策略的指示从相应访问节点获取相应部分的数据。
采用上述方式,当目标节点集合包括的节点信息对应多个节点时,如果该多个节点只包括目标业务节点所需的部分数据,则确定多个访问节点可以保证获取到所需的全部数据;如果该多个节点均包括目标业务节点所需的全部数据,则确定多个访问节点,并从各访问节点获取部分数据,可以在保证获取到所需的全部数据的基础上,降低各访问节点的负载,以将网络负载均衡化,提高数据传输的成功率,以及提高数据获取的速率。
在可行的实施例中,如果目标节点集合包括的节点信息还包括各建议节点的数据存储信息,则根据目标节点集合包括的节点信息从相应的节点中获取所需数据之前,先根据各建议节点的数据存储信息确定各建议节点是否存储有目标业务节点所需的数据,如果包括,则根据目标节点集合包括的节点信息从相应的节点中获取所需数据;反之,如果不包括,则表明很有可能数据获取请求中的数据被恶意篡改,此时可以向网关设备重新发送加密(如利用业务节点的私钥进行加密,网关设备利用存储的相应公钥进行解密)后的数据获取请求,以获取新的建议节点,这样就不用去错误的节点尝试获取数据,可以节省时间和网络资源。
以上对本申请实施例提供的基于区块链网络的数据处理方法所涉及的数据获取过程进行了详细介绍,下面对所述基于区块链网络的数据处理方法所涉及的其他数据处理过程进行介绍。
1、共识节点的数据缓存:
共识节点可以是基于数据缓存策略在缓存中缓存数据。具体地,网关设备确定关于共识网络中的共识节点的数据缓存策略,该数据缓存策略用于指示共识网络中的共识节点缓存与见证网络中的部分业务节点相关的至少部分数据。该数据缓存策略可以是基于共识网络中的共识节点的数目、网络性能参数、被建议为某些数据的获取节点的频率等确定的。网关设备根据该数据缓存策略生成数据缓存请求,并将该数据缓存请求发送给共识网络中的共识节点。共识网络中的共识节点在接收到该数据缓存请求后,响应该数据缓存请求按照数据缓存策略的指示缓存与见证网络中的部分业务节点相关的至少部分数据,以供见证网络中的业务节点从中访问个人数据。
其中,共识节点在更新自身的缓存过程中,可以使用最近最少使用(LRU)模式来更新自身缓存中的数据,也可以根据网关设备确定的新的数据缓存策略的指示来更新自身缓存中的数据。
需要说明的是,上述过程中所涉及的确定数据缓存策略和根据该数据缓存策略生成数据缓存请求的步骤,具体可以是由网关设备配置的分配管理模块执行实现的。
2、业务节点的数据同步:
业务节点的数据同步,包括向网关设备同步自身的数据存储信息,还可以包括向网关设备同步自身的网络性能参数,等等。具体地,见证网络中的业务节点确定存储数据更新信息,该存储数据更新信息可以包括:当前内存中存储的数据的相关信息、当前缓存中缓存的数据的相关信息、内存中的数据调整信息、缓存中的数据调整信息中的一种或者多种。其中,数据调整信息包括增加的数据的相关信息、清除的数据的相关信息。该相关信息可以是数据本身,也可以是数据的标识等特征信息。
见证网络中的业务节点将携带该存储数据更新信息的数据同步请求发送给网关设备,网关设备响应该数据同步请求,基于该存储数据更新信息更新记录的该业务节点的数据存储信息。
在一实施例中,见证网络中的业务节点可以将其当前的网络性能参数携带在数据同步请求中一并发送给网关设备,网关设备可以基于该数据同步请求携带的网络性能参数对记录的相应业务节点的网络性能参数进行更新。网关设备也可以每隔预设时间间隔获取见证网络中的业务节点的当前网络性能参数,并基于获取的所述当前网络性能参数对记录的相应业务节点的网络性能参数进行更新。
其中,更新后的各业务节点的数据存储信息和网络性能参数,用于作为网关设备在后续响应业务节点的数据获取请求为其建议数据访问节点时的重要参考依据。需要说明的是,上述过程中所涉及的网关设备执行的步骤,具体可以是网关设备配置的分配管理模块执行实现的。
3、业务节点的数据上链:
见证网络中的业务节点在产生交易数据后,生成携带该交易数据的数据上链请求,并将该数据上链请求发送给网关设备。网关设备响应该数据上链请求,将该交易数据发送给共识网络中的当前阶段的主节点。该主节点根据该交易数据生成区块,并将该区块广播给共识网络中的共识节点,以使共识网络中的共识节点对该区块中的交易数据进行共识,并在共识通过之后将该区块上链。
在可行的实施例中,网关设备可以响应该数据上链请求,根据该交易数据生成区块,并将该区块广播给共识网络中的各共识节点,以使共识网络中的共识节点对该区块中的交易数据进行共识,并在共识通过之后将该区块上链。这样可以将网关设备作为交易数据上链过程中的出块节点,而无需从共识网络中的共识节点选举出块节点(即主节点),这样可以减少共识节点的数据处理量,还可以避免由于出块节点选取失败、错误等原因造成共识错误或者失败的问题。
另外需要说明的是,本申请实施例提供的基于区块链网络的数据处理方法的具体实现中,节点和网关设备进行各种数据的交互时,均可以对需要交互的数据进行加密后发送给对方,这样可以提高数据交互的安全性。其中,可以利用自身的私钥或者对方的公钥进行加密,对方用相应的公钥或者私钥进行解密。
基于前文的介绍,本申请实施例提供的一种分层区块链网络中基于分配管理的P2P方案的主要实现方式为:
将区块链分为见证网络和共识网络,见证网络由多个业务节点组网构成,共识网络由多个共识节点组网构成。见证网络中的业务节点主要进行业务执行,不参与记账共识,可以通过身份认证的方式从共识网络中获得区块头数据和部分授权可见的区块数据,等等。如图4所示,示出了分层区块链网络的整体网络架构。见证网络和共识网络通过网关设备连接(即业务节点和共识节点通过网关设备进行交互),网关设备设置有分配管理模块(或者说P2P tracker,一种分配管理工具)。见证网络和共识网络处在不同网络环境下,见证网络处于公有网络中,而共识网络处于私有网络中。由于共识网络处于相对安全的私有网络中,共识节点之间互相访问有共识机制保证安全,则通常不需要额外加入身份管理和网络控制。而业务节点处于公有网络中,可能会被其他不确定的网络终端访问,因此业务节点以及其他可能的节点接入共识网络中的行为需要被严格控制。
如图7所示,示出了分层区块链网络应用于电子发票业务应用场景中的具体网络架构。业务层处于见证网络中,会向核心共识网络层提交业务操作交互。业务层,路由代理层,核心共识网络层组成了完整的区块链业务体系。其中,路由代理层起到对业务层和核心共识网络层的隔离作用,分层区块链网络中的网关设备可以设置于路由代理层中,可以是图7中所示的代理节点,或者是设置于图7中所示的代理节点中。
上述分层区块链网络中,见证网络中的业务节点从其他节点获取的数据的包括:区块链网络中的公共数据(如区块头数据等)、业务节点的个人数据(如业务节点的交易数据)。
见证网络中的业务节点获取公共数据时,P2P tracker会优先分配其他拥有该部分公共数据的业务节点给数据请求者,以缓解共识网络的压力。P2P Tracker中记录了每个业务节点目前拥有哪一部分数据,而业务节点在获得某一部分数据后,会将其优先放入缓存里。
这样,假设业务节点A需要请求区块高度1-1000的区块头数据,这时优先从P2Ptracker中申请,如果P2P tracker为其建议了业务节点B,则业务节点 A从业务节点B中获取其所需的区块高度1-1000的区块头数据,然后P2P tracker会标记业务节点A目前拥有区块高度1-1000的区块头数据的缓存。假设后面业务节点C需要请求区块高度500-1000的区块头数据,P2P tracker则可以为其建议A、B两个业务节点。假设后续有更多业务节点请求区块高度500-1000的区块头数据,则P2P tracker会为数据请求者均匀地建议A、B、C三个业务节点,以保证网络流量均衡。
假设出现业务节点X需要请求的是区块高度3000-4000的区块头数据,如果所有业务节点都没有缓存该部分数据,P2P tracker则可以为其随机建议一个内存中存储有该部分数据的业务节点B,业务节点X则从业务节点B中获取其所需的区块高度3000-4000的区块头数据,之后业务节点X、B都缓存了区块高度3000-4000的区块头数据,则后续可以增加业务节点B被建议从中获取区块高度3000-4000的区块头数据的频率,降低业务节点B被建议从中获取区块高度1-1000的区块头数据的频率。
见证网络中的业务节点获取个人数据时,由于其他业务节点未存储该部分个人数据,P2P tracker则会分配缓存有该部分个人数据的共识节点给数据请求者,以使数据请求者从分配的共识节点的缓存中直接获取其所需的个人数据,相对于从内存中获取数据,速度更快,数据的获取效率更高。其中,共识网络中的共识节点会根据P2P tracker分配的请求来使用LRU模式更新自己的缓存,最终达到每个共识节点用更少的缓存实现更高效的数据提供。P2P tracker可以根据共识节点的数目来动态调整分配频率。
见证网络中的业务节点和/或共识网络中的共识节点可以向P2P tracker上报其当拥有的数据的情况和当前网络性能,以使P2P tracker更新记录的节点的数据存储信息,这样有利于保证为数据请求者分配的访问节点的准确性。其中,P2P tracker在为数据请求者分配访问节点时可以综合各节点的数据存储情况、网络性能、以及被建议为某些数据的获取节点的频率等参数进行访问节点的分配。
另外,分层区块链网络同样可以脱离P2P tracker运行,在没有设置P2P tracker或者P2P tracker出现故障时,则可以采用P2P路由表轮询机制,数据请求者随机向其他节点其所需数据,这样虽然性能会下降,但仍然可以保证分层区块链网络中的数据安全。其中,也可以设置多个P2P tracker,当默认的P2P tracker故障时,可以按照预设设置的优先级顺序进行P2P trackerP的切换,以保证正常运行。
本申请实施例提供了一种适用于分层区块链网络的P2P方案,相比于原本的点对点自主连接模式,在分层区块链网络中加入了P2P tracker,并实现了一种基于分层区块链网络的数据缓存和流量统筹方法。本申请实施例提供的一种分层区块链网络中基于分配管理的P2P方案,不仅实现了数据不对等的区块链部署方式,提高了数据的安全性和保密性;还实现了在业务节点获取数据时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,有效提高数据获取效率。基于上述有益效果,本申请实施例提供的一种分层区块链网络中基于分配管理的P2P方案,可以适用于单层的P2P方案所不适用于的多种应用场景。
需要说明的是,用于执行上述方法实施例中各步骤的执行主体可以是由硬件构成,也可以是由软件构成,还可以是由软硬件结合构成。
请参阅图8,为本申请实施例提供的一种基于区块链网络的数据处理装置的结构示意图。本申请实施例中所描述的基于区块链网络的数据处理装置,对应于前文所述的网关设备,其中,所述区块链网络包括见证网络和共识网络,见证网络由多个业务节点组网构成,共识网络由多个共识节点组网构成,见证网络和共识网络通过网关设备连接。所述装置包括:
收发单元801,用于接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;
处理单元802,用于根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;
所述收发单元801,还用于将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
在一实施例中,所述数据存储信息包括数据缓存信息,所述处理单元802具体用于:当所述数据类型为第一数据类型时,根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息。
在一实施例中,所述处理单元802具体用于:根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息和网络性能参数,从所述见证网络包括的多个业务节点中确定目标节点集合。
在一实施例中,所述处理单元802具体用于:当所述数据类型为第二数据类型时,根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合,所述目标节点集合包括从所述共识网络的共识节点中确定的节点信息。
在一实施例中,当所述数据类型为第二数据类型时,所述数据获取请求还携带所述目标业务节点的身份认证信息;所述装置还包括检验单元803,用于:
根据所述身份认证信息对所述目标业务节点进行身份认证;当身份认证结果指示所述目标业务节点身份认证通过时,根据所述数据标识集合以及记录的关于所述目标业务节点的数据授权信息确定所述目标业务节点是否具备获取其所需数据的权限;若具备权限,则触发所述处理单元802根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合。
在一实施例中,所述处理单元802,还用于确定关于所述共识网络中的共识节点的数据缓存策略,并根据所述数据缓存策略生成数据缓存请求;
所述收发单元801,还用于将所述数据缓存请求发送给所述共识网络中的共识节点,以使所述共识网络中的共识节点按照所述数据缓存策略的指示缓存与所述见证网络中的部分业务节点相关的数据。
在一实施例中,所述装置还包括检测单元804,用于:
检测分配管理模块是否正常运行;若所述分配管理模块运行正常,则触发所述分配管理模块根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合;
若所述分配管理模块运行异常,则触发所述处理单元802按照点对点路由表轮询策略响应所述目标业务节点发送的数据获取请求。
在一实施例中,所述收发单元801,还用于接收所述目标业务节点发送的数据同步请求,所述数据同步请求携带所述目标业务节点的存储数据更新信息;
所述处理单元802,还用于基于所述存储数据更新信息更新记录的所述目标业务节点的数据存储信息。
在一实施例中,所述处理单元802,还用于当所述数据同步请求携带所述目标业务节点的网络性能参数时,基于所述数据同步请求携带的网络性能参数更新记录的所述目标业务节点的网络性能参数;和/或,每隔预设时间间隔获取所述目标业务节点的当前网络性能参数,并基于获取的所述当前网络性能参数更新记录的所述目标业务节点的网络性能参数。
可以理解的是,本申请实施例的数据处理装置的各功能单元的功能可根据上述方法实施例中的方法具体实现,其具体实现过程可以参照上述方法实施例的相关描述,此处不再赘述。
在可行的实施方式中,本申请实施例提供的基于区块链网络的数据处理装置可以采用软件方式实现,基于区块链网络的数据处理装置可以存储在存储器中,其可以是程序和插件等形式的软件,并包括一系列的单元,包括收发单元、处理单元、检验单元和检测单元;其中,收发单元、处理单元、检验单元和检测单元用于实现本申请实施例提供的基于区块链网络的数据处理方法。
在其它可行的实施例中,本申请实施例提供的基于区块链网络的数据处理装置也可以采用软硬件结合的方式实现,作为示例,本发明实施例提供的基于区块链网络的数据处理装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的基于区块链网络的数据处理方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
本申请实施例中,通过将区块链网络划分成见证网络和共识网络,可以将各节点按照功能的不同进行区分,一方面可以实现分层区块链网络,并且只需将区块链网络中的部分节点作为共识节点,有利于提高共识效率;另一方面可以使得处于不同网络的节点存储不同的数据,实现数据不对等的区块链部署方式,可以提高数据的安全性和保密性。另外,在业务节点获取数据时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,有效提高数据获取效率。基于上述各方面,本申请实施例实现了一种分层区块链网络中基于分配管理的P2P方案,可以适用于单层的P2P方案不适用于的多种应用场景。
请参阅图9,为本申请实施例提供的一种计算机设备的结构示意图。本申请实施例中所描述的计算机设备对应前文所述的网关设备,包括:处理器901、通信接口902存储器903及分配管理模块904。其中,处理器901、通信接口902存储器903及分配管理模块904可通过总线或其他方式连接,本申请实施例以通过总线连接为例。
其中,处理器901(或称CPU(Central Processing Unit,中央处理器))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析诸如用户向计算机设备所发送的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口902可选的可以包括标准的有线接口、无线接口(如Wi-Fi、移动通信接口等),受处理器901的控制用于收发数据。存储器903(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器903既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器903提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。分配管理模块904用于执行所述计算机设备的某些特定功能。
在本申请实施例中,所述计算机设备设置于区块链网络中,所述区块链网络包括见证网络和共识网络,所述见证网络由多个业务节点组网构成,所述共识网络由多个共识节点组网构成,所述见证网络和所述共识网络通过网关设备连接。处理器901通过运行存储器903中的可执行程序代码,执行如下操作:
通过通信接口902接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;通过通信接口902将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
在一实施例中,所述数据存储信息包括数据缓存信息,所述处理器901根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合时,具体用于:
当所述数据类型为第一数据类型时,根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息;
当所述数据类型为第二数据类型时,根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合,所述目标节点集合包括从所述共识网络的共识节点中确定的节点信息。
在一实施例中,所述处理器901根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合时,具体用于:根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息和网络性能参数,从所述见证网络包括的多个业务节点中确定目标节点集合。
在一实施例中,当所述数据类型为第二数据类型时,所述数据获取请求还携带所述目标业务节点的身份认证信息;所述处理器901根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合之前,还用于:
根据所述身份认证信息对所述目标业务节点进行身份认证;当身份认证结果指示所述目标业务节点身份认证通过时,根据所述数据标识集合以及记录的关于所述目标业务节点的数据授权信息确定所述目标业务节点是否具备获取其所需数据的权限;若具备权限,则根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合。
在一实施例中,所述处理器901还用于:确定关于所述共识网络中的共识节点的数据缓存策略,并根据所述数据缓存策略生成数据缓存请求;通过所述通信接口902将所述数据缓存请求发送给所述共识网络中的共识节点,以使所述共识网络中的共识节点按照所述数据缓存策略的指示缓存与所述见证网络中的部分业务节点相关的数据。
在一实施例中,所述处理器901根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合之前,还用于:
检测分配管理模块904是否正常运行;若所述分配管理模块904运行正常,则触发所述分配管理模块904根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合;若所述分配管理模块运行异常,则按照点对点路由表轮询策略响应所述目标业务节点发送的数据获取请求。
在一实施例中,所述处理器901还用于:通过所述通信接口902接收所述目标业务节点发送的数据同步请求,所述数据同步请求携带所述目标业务节点的存储数据更新信息;基于所述存储数据更新信息更新记录的所述目标业务节点的数据存储信息。
在一实施例中,所述处理器901还用于:当所述数据同步请求携带所述目标业务节点的网络性能参数时,基于所述数据同步请求携带的网络性能参数更新记录的所述目标业务节点的网络性能参数;和/或,每隔预设时间间隔获取所述目标业务节点的当前网络性能参数,并基于获取的所述当前网络性能参数更新记录的所述目标业务节点的网络性能参数。
具体实现中,本申请实施例中所描述的处理器901、通信接口902、存储器903、及分配管理模块904可执行本申请实施例提供的一种基于区块链网络的数据处理方法中所描述网关设备的实现方式,也可执行本申请实施例提供的一种基于区块链网络的数据处理装置中所描述的实现方式,在此不再赘述。
本申请实施例中,通过将区块链网络划分成见证网络和共识网络,可以将各节点按照功能的不同进行区分,一方面可以实现分层区块链网络,并且只需将区块链网络中的部分节点作为共识节点,有利于提高共识效率;另一方面可以使得处于不同网络的节点存储不同的数据,实现数据不对等的区块链部署方式,可以提高数据的安全性和保密性。另外,在业务节点获取数据时,可以基于记录的各节点的数据存储信息,合理的为业务节点建议访问节点,以使业务节点有目的的从建议的访问节点中获取其所需数据,有效提高数据获取效率。基于上述各方面,本申请实施例实现了一种分层区块链网络中基于分配管理的P2P方案,可以适用于单层的P2P方案不适用于的多种应用场景。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如本申请实施例所述的基于区块链网络的数据处理方法。其具体实现方式可参考前文描述,此处不再赘述。
本申请实施例还提供了一种计算机程序产品或计算机程序,所述计算机程序产品或计算机程序包括计算机指令,所述计算机指令存储在计算机可读存储介质中。计算机设备的处理器从所述计算机可读存储介质读取所述计算机指令,处理器执行所述计算机指令,使得所述计算机设备执行如本申请实施例所述的基于区块链网络的数据处理方法。其具体实现方式可参考前文描述,此处不再赘述。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory ,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请部分实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (12)
1.一种基于区块链网络的数据处理方法,其特征在于,所述区块链网络包括见证网络和共识网络,所述见证网络由多个业务节点组网构成,所述共识网络由多个共识节点组网构成,所述见证网络和所述共识网络通过网关设备连接,所述方法包括:
接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;
根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;
将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
2.如权利要求1所述的方法,其特征在于,所述数据存储信息包括数据缓存信息,所述根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,包括:
当所述数据类型为第一数据类型时,根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息。
3.如权利要求2所述的方法,其特征在于,所述根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息,从所述见证网络包括的多个业务节点中确定目标节点集合,包括:
根据所述数据标识集合以及记录的所述见证网络中的业务节点的数据缓存信息和网络性能参数,从所述见证网络包括的多个业务节点中确定目标节点集合。
4.如权利要求1所述的方法,其特征在于,所述数据存储信息包括数据缓存信息,所述根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,包括:
当所述数据类型为第二数据类型时,根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合,所述目标节点集合包括从所述共识网络的共识节点中确定的节点信息。
5.如权利要求4所述的方法,其特征在于,当所述数据类型为第二数据类型时,所述数据获取请求还携带所述目标业务节点的身份认证信息;
所述根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合之前,所述方法还包括:
根据所述身份认证信息对所述目标业务节点进行身份认证;
当身份认证结果指示所述目标业务节点身份认证通过时,根据所述数据标识集合以及记录的关于所述目标业务节点的数据授权信息确定所述目标业务节点是否具备获取其所需数据的权限;
若具备权限,则执行所述根据所述数据标识集合以及记录的所述共识网络中的共识节点的数据缓存信息,从所述共识网络包括的多个共识节点中确定目标节点集合的步骤。
6.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
确定关于所述共识网络中的共识节点的数据缓存策略,并根据所述数据缓存策略生成数据缓存请求;
将所述数据缓存请求发送给所述共识网络中的共识节点,以使所述共识网络中的共识节点按照所述数据缓存策略的指示缓存与所述见证网络中的部分业务节点相关的数据。
7.如权利要求1-5任一项所述的方法,其特征在于,所述根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合之前,所述方法还包括:
检测分配管理模块是否正常运行;
若所述分配管理模块运行正常,则触发所述分配管理模块执行所述根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合的步骤;
若所述分配管理模块运行异常,则按照点对点路由表轮询策略响应所述目标业务节点发送的数据获取请求。
8.如权利要求1-5任一项所述的方法,其特征在于,所述方法还包括:
接收所述目标业务节点发送的数据同步请求,所述数据同步请求携带所述目标业务节点的存储数据更新信息;
基于所述存储数据更新信息更新记录的所述目标业务节点的数据存储信息。
9.如权利要求8所述的方法,其特征在于,所述方法还包括:
当所述数据同步请求携带所述目标业务节点的网络性能参数时,基于所述数据同步请求携带的网络性能参数更新记录的所述目标业务节点的网络性能参数;
和/或,每隔预设时间间隔获取所述目标业务节点的当前网络性能参数,并基于获取的所述当前网络性能参数更新记录的所述目标业务节点的网络性能参数。
10.一种基于区块链网络的数据处理装置,其特征在于,所述区块链网络包括见证网络和共识网络,所述见证网络由多个业务节点组网构成,所述共识网络由多个共识节点组网构成,所述见证网络和所述共识网络通过网关设备连接,所述装置包括:
收发单元,用于接收目标业务节点发送的数据获取请求,所述数据获取请求携带所述目标业务节点需要获取的数据的数据类型和数据标识集合;
处理单元,用于根据所述数据类型、所述数据标识集合以及记录的所述区块链网络中的节点的数据存储信息,从所述区块链网络包括的节点中确定目标节点集合,所述目标节点集合包括从所述见证网络的业务节点中确定的节点信息、从所述共识网络的共识节点中确定的节点信息中的一种或者多种;
所述收发单元,还用于将携带所述目标节点集合包括的节点信息的反馈信息发送给所述目标业务节点,所述反馈信息用于指示所述目标业务节点根据所述目标节点集合包括的节点信息从相应的节点中获取所需数据。
11.一种计算机设备,其特征在于,包括:处理器、通信接口和存储器,所述处理器、所述通信接口和所述存储器相互连接,其中,所述存储器存储有可执行程序代码,所述处理器用于调用所述可执行程序代码,执行如权利要求1-9中任一项所述的基于区块链网络的数据处理方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-9中任一项所述的基于区块链网络的数据处理方法。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011316889.6A CN112104517B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
CN202110110424.3A CN112737916B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
PCT/CN2021/123946 WO2022105498A1 (zh) | 2020-11-23 | 2021-10-15 | 一种基于区块链网络的数据处理方法、装置、计算机设备以及计算机可读存储介质 |
EP21893647.4A EP4195605A4 (en) | 2020-11-23 | 2021-10-15 | BLOCKCHAIN NETWORK-BASED DATA PROCESSING METHOD AND APPARATUS, COMPUTER DEVICE AND COMPUTER-READABLE STORAGE MEDIUM |
US17/940,154 US20230006846A1 (en) | 2020-11-23 | 2022-09-08 | Data processing method and apparatus based on blockchain network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011316889.6A CN112104517B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110110424.3A Division CN112737916B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112104517A CN112104517A (zh) | 2020-12-18 |
CN112104517B true CN112104517B (zh) | 2021-02-05 |
Family
ID=73785928
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011316889.6A Active CN112104517B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
CN202110110424.3A Active CN112737916B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110110424.3A Active CN112737916B (zh) | 2020-11-23 | 2020-11-23 | 一种基于区块链网络的数据处理方法及相关装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230006846A1 (zh) |
EP (1) | EP4195605A4 (zh) |
CN (2) | CN112104517B (zh) |
WO (1) | WO2022105498A1 (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11605059B2 (en) * | 2018-08-03 | 2023-03-14 | Sap Se | Software system utilizing blockchain for transactions |
JP7420147B2 (ja) * | 2019-11-28 | 2024-01-23 | 日本電気株式会社 | シャッフルシステム、シャッフル方法及びプログラム |
JP7334798B2 (ja) * | 2019-11-28 | 2023-08-29 | 日本電気株式会社 | シャッフルシステム、シャッフル方法及びプログラム |
CN112104517B (zh) * | 2020-11-23 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据处理方法及相关装置 |
CN112738172B (zh) * | 2020-12-23 | 2022-03-08 | 平安科技(深圳)有限公司 | 区块链节点的管理方法、装置、计算机设备和存储介质 |
CN114697350B (zh) * | 2020-12-31 | 2023-06-27 | 福建凯米网络科技有限公司 | 一种基于区块链的数据存储方法及存储介质 |
CN112734586A (zh) * | 2021-01-27 | 2021-04-30 | 国网信息通信产业集团有限公司 | 基于区块链的数据处理方法及系统 |
CN113190622B (zh) * | 2021-03-16 | 2022-08-09 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
CN113114761B (zh) * | 2021-04-12 | 2022-09-20 | 中共陕西省委党校 | 基于分布式服务的数据共享交换激励系统及方法 |
CN112995211B (zh) * | 2021-04-21 | 2021-07-23 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据处理方法、装置、设备及存储介质 |
CN112988852B (zh) * | 2021-05-11 | 2021-08-03 | 腾讯科技(深圳)有限公司 | 基于区块链的数据管理方法、设备以及介质 |
CN113342418B (zh) * | 2021-06-24 | 2022-11-22 | 国网黑龙江省电力有限公司 | 基于区块链的分布式机器学习任务卸载方法 |
CN113821549B (zh) * | 2021-09-23 | 2023-08-08 | 广东科学技术职业学院 | 一种基于云存储的区块链数据检索系统及方法 |
CN114189524A (zh) * | 2021-10-19 | 2022-03-15 | 中山大学 | 一种区块链可靠对等点的筛选方法和装置 |
CN114221801A (zh) * | 2021-12-08 | 2022-03-22 | 山东浪潮工业互联网产业股份有限公司 | 一种网络安全通信方法及装置 |
CN115514638B (zh) * | 2022-11-23 | 2023-04-07 | 湖南天河国云科技有限公司 | 供应链共识节点的信任值更新方法及装置 |
CN115865673B (zh) * | 2022-11-30 | 2024-05-24 | 上海佰贝网络工程技术有限公司 | 区块链数据分发加速方法、装置、设备及可读存储介质 |
CN115865538A (zh) * | 2023-02-24 | 2023-03-28 | 中国信息通信研究院 | 区块链数据上链方法、装置、电子设备、存储介质 |
CN116403671B (zh) * | 2023-06-08 | 2023-09-22 | 武汉大学人民医院(湖北省人民医院) | 一种应用于医疗场景下的数据风险识别方法 |
CN117014445B (zh) * | 2023-10-07 | 2024-03-01 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据处理方法、装置、设备及存储介质 |
CN117689227B (zh) * | 2023-12-11 | 2024-06-04 | 广州智业节能科技有限公司 | 一种数字化运营管理平台、数据标准化方法及装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106452785B (zh) * | 2016-09-29 | 2019-05-17 | 财付通支付科技有限公司 | 区块链网络、分支节点及区块链网络应用方法 |
WO2018112940A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳前海达闼云端智能科技有限公司 | 区块链节点的业务执行方法、装置及节点设备 |
WO2018209543A1 (zh) * | 2017-05-16 | 2018-11-22 | 北京大学深圳研究生院 | 一种多层级区块链系统之间索引与链拓扑结构的维护方法 |
CN107231299A (zh) * | 2017-06-07 | 2017-10-03 | 众安信息技术服务有限公司 | 一种链路由及实现区块链跨链通信的系统 |
US10783272B2 (en) * | 2017-12-08 | 2020-09-22 | Nec Corporation | Method and system of preserving privacy for usage of lightweight blockchain clients |
WO2019227225A1 (en) * | 2018-05-30 | 2019-12-05 | Skrumble Technologies Inc. | Systems and methods for establishing communications via blockchain |
CN110619520B (zh) * | 2018-06-20 | 2023-05-02 | 深圳市红砖坊技术有限公司 | 区块链系统和应用于区块链系统的路由节点的路由方法 |
CN109376552A (zh) * | 2018-08-21 | 2019-02-22 | 阿里巴巴集团控股有限公司 | 一种基于区块链存证的证据采集方法及系统 |
CN110851496B (zh) * | 2018-12-07 | 2023-03-14 | 深圳市智税链科技有限公司 | 在区块链网络中查询交易信息的方法、装置、记账节点和介质 |
CN110930149B (zh) * | 2018-12-07 | 2023-09-26 | 深圳市智税链科技有限公司 | 在区块链网络中确定记账节点的方法、代理节点和介质 |
CN109981750B (zh) * | 2019-03-06 | 2021-09-17 | 北京百度网讯科技有限公司 | 业务流程系统、业务数据处理方法和装置 |
CN110535872B (zh) * | 2019-09-12 | 2021-06-01 | 腾讯科技(深圳)有限公司 | 在区块链网络中处理数据请求的方法和装置 |
CN110944004B (zh) * | 2019-09-12 | 2021-09-10 | 腾讯科技(深圳)有限公司 | 区块链网络中的数据处理方法、装置、存储介质和设备 |
CN110602108B (zh) * | 2019-09-16 | 2021-08-10 | 腾讯科技(深圳)有限公司 | 基于区块链网络的数据通信方法、装置、设备及存储介质 |
CN110647559B (zh) * | 2019-09-24 | 2024-08-23 | 腾讯科技(深圳)有限公司 | 数据处理方法、相关节点及系统 |
CN111010372A (zh) * | 2019-11-20 | 2020-04-14 | 国家信息中心 | 区块链网络身份认证系统、数据处理方法及网关设备 |
CN110708170B (zh) * | 2019-12-13 | 2020-03-27 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置以及计算机可读存储介质 |
CN111461852A (zh) * | 2020-03-27 | 2020-07-28 | 财付通支付科技有限公司 | 一种基于区块链的数据处理方法、装置及可读存储介质 |
CN111597567B (zh) * | 2020-05-14 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 数据处理方法、装置、节点设备及存储介质 |
CN111835570B (zh) * | 2020-07-20 | 2022-11-11 | 中国银行股份有限公司 | 全局状态存续去中心化区块链网络节点装置和工作方法 |
CN112104517B (zh) * | 2020-11-23 | 2021-02-05 | 腾讯科技(深圳)有限公司 | 一种基于区块链网络的数据处理方法及相关装置 |
-
2020
- 2020-11-23 CN CN202011316889.6A patent/CN112104517B/zh active Active
- 2020-11-23 CN CN202110110424.3A patent/CN112737916B/zh active Active
-
2021
- 2021-10-15 EP EP21893647.4A patent/EP4195605A4/en active Pending
- 2021-10-15 WO PCT/CN2021/123946 patent/WO2022105498A1/zh unknown
-
2022
- 2022-09-08 US US17/940,154 patent/US20230006846A1/en active Pending
Non-Patent Citations (1)
Title |
---|
Blocks" Network: Redesign Architecture Based on Blockchain Technology;Moataz Hanif等;《IEEE Xplore》;20200519;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112737916A (zh) | 2021-04-30 |
WO2022105498A1 (zh) | 2022-05-27 |
CN112104517A (zh) | 2020-12-18 |
US20230006846A1 (en) | 2023-01-05 |
EP4195605A4 (en) | 2024-02-21 |
EP4195605A1 (en) | 2023-06-14 |
CN112737916B (zh) | 2022-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112104517B (zh) | 一种基于区块链网络的数据处理方法及相关装置 | |
US11108856B2 (en) | Methods and apparatus for performing distributed computing using blockchain | |
CN110535872B (zh) | 在区块链网络中处理数据请求的方法和装置 | |
CN111771390B (zh) | 自组织网络 | |
WO2022193985A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN112995211B (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
CN112417001B (zh) | 基于区块链网络的数据处理方法及相关设备 | |
CN112200681B (zh) | 区块链网络的业务处理方法、信息处理方法及节点设备 | |
CN111740966B (zh) | 一种基于区块链网络的数据处理方法及相关设备 | |
WO2022121538A1 (zh) | 基于区块链的数据同步方法、系统及相关设备 | |
US20130173747A1 (en) | System, method and apparatus providing address invisibility to content provider/subscriber | |
CN110855760A (zh) | 一种基于区块链的分布式安全存储系统部署方法 | |
CN109493051B (zh) | 可动态进行账户分配及迁移的主链加并行多子链系统架构 | |
US11922074B1 (en) | Systems and methods for a content-addressable peer-to-peer storage network | |
US20220182243A1 (en) | Method and Apparatus for Distributed Ledger | |
CN117675216A (zh) | 一种数据处理方法及相关设备 | |
CN110956463B (zh) | 基于可扩展分布式查询系统的可信存证方法与系统 | |
Fu et al. | Resource allocation for blockchain-enabled distributed network function virtualization (NFV) with mobile edge cloud (MEC) | |
Kandi et al. | A blockchain-based key management protocol for secure device-to-device communication in the Internet of Things | |
CN112988903A (zh) | 基于区块链网络的数据处理方法、装置、设备及存储介质 | |
US20230353394A1 (en) | Cross-blockchain transaction processing method and apparatus, computer device, computer storage medium, and computer program product | |
CN112702337A (zh) | 一种区块节点数据的授权处理方法、装置和计算机设备 | |
US11943211B2 (en) | Device monitoring in accessing network | |
KR102542063B1 (ko) | 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법 | |
Paul et al. | Lilliput: A storage service for lightweight peer-to-peer online social networks |
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: 40036284 Country of ref document: HK |