CN109218079A - 一种区块链网络、部署方法及存储介质 - Google Patents
一种区块链网络、部署方法及存储介质 Download PDFInfo
- Publication number
- CN109218079A CN109218079A CN201810942160.6A CN201810942160A CN109218079A CN 109218079 A CN109218079 A CN 109218079A CN 201810942160 A CN201810942160 A CN 201810942160A CN 109218079 A CN109218079 A CN 109218079A
- Authority
- CN
- China
- Prior art keywords
- node
- blockchain network
- ledger
- transaction
- business
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- 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/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
- H04L41/0826—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability for reduction of network costs
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Technology Law (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Power Engineering (AREA)
- Computing Systems (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供一种区块链网络、部署方法及存储介质;区块链网络包括:共识节点,数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;所述共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
Description
技术领域
本发明涉及通信技术,尤其涉及一种区块链网络、部署方法及存储介质。
背景技术
现有技术提供的区块链网络,节点(例如共识节点)是在参与业务的不同业务主体之间以功能对等的方式部署。
发明人在实施本发明的过程中发现,现有技术提供的区块链网络在提供企业级应用时,在一个典型行业的业务过程中,需要有多种不同角色的业务主体参与,因此需要针对每个业务主体部署在区块链网络中相应的节点。
然而,由于不同角色的业务主体会有不同的功能诉求,同时不同角色业务主体的信息(IT,Information)能力也有差异,使得现有技术提供的区块链网络解决方案无法适应业务主体角色导致的多样性/差异性的问题。
发明内容
本发明实施例提供一种区块链网络、部署方法及存储介质,能够使区块链网络的部署与业务主体参与业务的角色相适配。
本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
共识节点,数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;
所述共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
第二方面,本发明实施例提供一种区块链网络的部署方法,所述方法包括:
在区块链网络中部署至少两个共识节点,所述共识节点对应参与业务的不同业务主体而部署;
通过所述共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;
对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
第三方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
合约引擎节点,用于当所述共识节点执行所述交易时,执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
第四方面,本发明实施例提供一种区块链网络的部署方法,所述方法包括:
通过共识节点对终端提交的交易排序后打包为新区块;
通过合约引擎节点部署的智能合约引擎执行所述交易中所调用的智能合约,并将得到的交易结果返回所述共识节点;
对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
第五方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现本发明实施例提供的区块链网络部署方法。
第六方面,本发明实施例提供一种存储介质,所述存储介质中存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行本发明实施例提供的区块链网络部署方法。
本发明实施例具有以下有益效果:
在区块链网络中适配业务主体在业务中所实现的角色来部署节点,简化了业务主体的业务系统的复杂度,并实现业务主体的IT能力的节约;
通过对交易结果共识的业务处理方式,在简化了业务处理流程的基础上,能够通过共识节点来获得完备的账本。
附图说明
图1本发明实施例提供的区块链网络的功能架构示意图;
图2本发明实施例提供的区块链网络的组织架构示意图;
图3是本发明实施例提供的共识节点一个可选的结构示意图;
图4是本发明实施例提供的区块链网络的部署结构示意图;
图5是本发明实施例提供的区块链网络的部署结构示意图;
图6是本发明实施例提供的区块链网络的部署结构示意图;
图7是本发明实施例提供的区块链网络的一个可选的部署结构示意图;
图8是本发明实施例提供的区块链网络的部署结构示意图;
图9是本发明实施例提供的区块链网络的部署结构示意图;
图10是本发明实施例提供的区块链网络的部署结构示意图;
图11是本发明实施例提供的区块链网络的部署结构示意图;
图12是本发明实施例提供的区块链网络的部署结构示意图;
图13是本发明实施例提供的区块链网络的部署结构示意图;
图14是本发明实施例提供的应用于账本数据库节点解构账本的一个示意图;
图15是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的一个示意图;
图16是发明实施例提供的账本数据库组件600的部署示意图;
图17是本发明实施例提供的在区块链网络中部署智能合约引擎组件700的部署示意图;
图18是本发明实施例提供的开发环境中部署智能合约引擎组件700的部署示意图;
图19是本发明实施例提供的智能合约引擎组件的部署示意图;
图20是本发明实施例提供的区块链网络的部署流程示意图;
图21是本发明实施例提供的区块链网络的组织架构示意图;
图22是本发明实施例提供的区块链网络的部署结构示意图;
图23是本发明实施例提供的区块链网络的部署结构示意图;
图24是本发明实施例提供的区块链网络的部署结构示意图;
图25是本发明实施例提供的区块链网络的部署结构示意图;
图26是本发明实施例提供的区块链网络的部署结构示意图;
图27是本发明实施例提供的区块链网络的部署流程示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
1)交易(Transaction),等同于计算机术语“事务”,包括对智能合约的调用,以实现对账本中的目标账户的相关数据的操作,包括增、查、改的操作修改账户中的键值(Key-Value)对形式的数据,或者在账本中增加新的账户,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
3)区块链(Blockchain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。
4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
5)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件系统的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(Merkle)树的方式证明。
9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof ofStake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proofof Elapsed Time)等。
10)智能合约(Smart Contracts),也称为链码(Chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。
11)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和云中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程门阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
数据层104封装了实现账本的各种数据结构,包括以文件系统实现的账本数据,以数据库形式实现的账本状态和存在性证明。
网络层103封装了点对点(P2P)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。P2P网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
共识层102封装了区块链中传播的交易结果达成一致性的机制,包括POS、POW和DPOS等,支持共识机制的可插拔。
应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
下面说明实现本发明实施例的区块链网络的示例性的组织架构,参见图2,图2本发明实施例提供的区块链网络的组织架构示意图,包括至少两个共识节点110,作为示例,图2中仅示出了共识节点110-1和共识节点110-2;共识节点110-1和共识节点110-2是针对参与业务的两个不同业务实体在业务中所实现的角色而对应部署。区块链网络100响应来自业务主体的终端300提交的交易以更新账本或者查询账本,并在终端300的用户界面310显示各种中间结果或最终结果。
下面以共识节点为例,说明实现本发明实施例的区块链网络中节点的示例性结构,可以理解地,区块链网络100中的其他节点的硬件结构可以根据共识节点的硬件结构而对应实施。
参见图3,图3是本发明实施例提供的共识节点110一个可选的结构示意图,共识节点110可以是一个或多个服务器,根据共识节点110的结构,可以预见共识节点110的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。
图3所示的共识节点110包括:至少一个处理器1101、存储器1104和至少一个网络接口1102。共识节点110中的各个组件通过总线系统1103耦合在一起。可理解,总线系统1103用于实现这些组件之间的连接通信。总线系统1103除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统1103。
存储器1104可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例描述的存储器1104旨在包括这些和任意其它适合类型的存储器。
处理器1101可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器1104能够存储可执行指令以支持共识节点110的操作,这些可执行指令的示例包括:用于在共识节点110上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作系统和应用程序,其中,操作系统包含各种系统程序和驱动程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含实现共识节点110各种功能的程序。
结合上文可知,实现本发明实施例的区块链网络通过提供为一系列的存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个机器部署有与业务主体的角色相适配的共识节点,当然还可以部署有其他类型的节点。
作为本发明实施例提供的区块链部署方法采用软硬件结合实施的示例,本发明实施例所提供的区块链部署方法可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1104,处理器1101读取存储器1104中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器1101以及连接到总线系统1103的其他组件)完成共识节点110的功能。
下面说明实现本发明实施例的区块链网络支撑多个业务主体参与业务的示例性应用,参与业务的业务主体在所参与业务中所实现的角色根据业务主体的业务诉求而定。
在一个示例性的业务中,业务主体的角色至少可以包括交易方;还可以包括协作方、监管方、认证方和备案方,下面分别进行说明。
交易方是业务中的主要角色,交易方彼此之间就开展的一项或多项业务具有在维护共同的账本中记录交易的日志的业务诉求,例如,在账本中记录交易方之间的数字资产、商品库存的状态的变化。
协作方,在业务中与交易方协同完成交易过程的业务主体,向交易方提供必要的业务支持,或者用于完成交易方在业务中所实现的部分业务环节的业务实体。
监管方,是对交易方的交易结果具有监管诉求的业务主体,不参与交易方的具体交易过程,例如,对交易有监管权限/责任的相关职能部门。
认证方,是对交易方、或对交易方所交易的对象(例如实体商品、虚拟商品、数字资产等)具有行业认证资质的业务主体,账本中可以包括认证方针对对象所签发的认证信息(例如产品质量认证、产地认证等),以供在后续的交易/使用过程中证明交易方的合法资质、以及交易对象的质量等。
备案方,是对业务的账本有备份诉求的业务实体,不参与交易方的具体交易过程,例如,对账本有监察权限的智能部门,对账本提供验证服务的第三方机构等。
下面说明实现本发明实施例的区块链网络中根据业务主体的角色节点的示例性部署结构,区块链网络中除了根据参与方的至少部分角色而部署共识节点(例如针对部分角色而部署共识节点,或者针对全部角色而部署共识节点),针对业务主体是否部署共识节点、以及部署共识节点的数量,根据业务主体在业务中所实现的角色而确定;还可以根据参与方的角色而部署备份节点、网关节点、账本数据库节点和合约引擎节点;在节点中通过绑定所归属的业务主体的身份信息,表明节点是对应所归属的业务主体而部署。
参见图4,图4是本发明实施例提供的区块链网络100的部署结构示意图,区块链网络100中对应参与业务的不同业务主体200而部署有共识节点110(本文中也称为共识节点110归属用于业务主体200),在图4中示例性示出了共识节点110-1至共识节点110-5。
需要指出,区块链网络100中部署共识节点110的数量不仅限于图4所示,例如,可以部署更多的共识节点,或者,在区块链网络中仅针对业务的两个角色为交易方的业务主体而部署对应的共识节点;可以理解地,一个业务至少有两个交易方,因此区块链网络中针对交易方而部署的共识节点的数量至少为两个。
在一些实施例中,区块链网络100中的共识节点110通过对计算设备(例如,计算机、服务器/集群、云)进行如图1所示的资源层105的计算资源和存储资源进的抽象,并在此基础上部署数据层104的账本、网络层103的协议/机制、共识层102的共识机制以及应用层101的应用而实现。
可以理解,对于下文中所记载的区块链网络100中的其他类型的节点,可以通过对资源抽象并进行相应的部署而实现。
在一些实施例中,在区块链网络中对应所述业务主体是否部署共识节点、以及部署的共识节点的数量,与所述业务主体在所述业务中实现的角色相适配,下面结合图4对不同角色的业务主体而部署节点的示例进行说明。
示例1)参见图4,当业务主体200-1和业务主体200-2在业务中的角色为交易方时,在区块链网络100中对应相应的业务主体200-1部署有至少一个共识节点即共识节点110-1和共识节点110-2,向来自业务主体200-1的终端提供接入,包括业务主体外部并与业务主体200-1连接的终端(包括终端300-1至终端300-3,其中终端300-1为手机、终端300-2为桌面设备,终端300-3为物联网设备)、以及业务主体内部的终端(图中未示出,例如通过内部专用网络而接入业务主体的终端);在区块链网络100中对应相应的业务主体200-2部署有至少一个共识节点即共识节点110-3,向来自业务主体200-2的终端提供接入,包括业务主体200-2内部的终端(包括终端300-4和终端300-5,均为桌面设备)、以及位于业务主体200-2外部、并与业务主体200-2连接的终端(图中未示出)。
在一个业务中通常至少有两个共识节点参与,因此在区块链网络中部署有至少两个共识节点。其中,针对不同角色的业务主体而部署的共识节点的数量可以根据相应业务主体的业务负荷确定,从而保证交易的处理效率;当然,针对业务主体部署的共识节点的数量也可以为设定值。
以角色为交易方的业务主体为例,业务负荷可以从以下至少一个方面确定:在业务主体内部和外部需要接入共识节点的终端的总量;窗口时间(如一小时)来自业务主体的终端(包括业务主体内部的终端、以及通过业务主体而接入共识节点的终端)提交交易的总量,等等。
示例2)参见图4,当业务主体200-1在业务中的角色为交易方时,在区块链网络100中对应业务主体200-1、以及角色为相应业务主体200-1的协作方的业务主体200-3-1部署有共同的至少一个共识节点,即共识节点110-2,共识节点110-2向来自业务主体200-3-1的终端提供接入,包括业务主体200-3-1内部的终端300-6(例如是用户终端),以及业务主体200-3-1外部的终端(图中未示出)。
业务主体200-2在业务中的角色为交易方时,在区块链网络100中对应业务主体200-2、以及角色为相应业务主体200-2的协作方的业务主体200-3-2部署有共同的至少一个共识节点即共识节点110-3,共识节点110-3为来自业务主体200-3-2的终端,包括业务主体200-3-2内部的终端300-4和终端300-5(例如是物联网终端),以及业务主体200-3-2的外部的终端(图中未示出)。
示例3)参见图4,当业务主体200-4在业务中的角色为监管方时,在区块链网络100中对应业务主体200-4部署有至少一个共识节点,即共识节点110-4,共识节点110-4向来自监管方的终端300-7提供接入。
示例4)参见图4,业务主体200-5在业务中的角色为认证方时,在区块链网络100中对应相应业务主体200-5部署有至少一个共识节点,即共识节点110-5。
继续说明实现本发明实施例的区块链网络部署有备份节点的示例性部署结构。在一些实施例中,参见图5,图5是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,还可以针对角色为备案方的业务主体200-6对应部署备份节点120。
继续说明实现本发明实施例的区块链网络部署有网关节点的示例性部署结构。在一些实施例中,针对每个业务主体可以部署一个或多个网关节点,用于向来自所归属的业务主体的终端提供接入,网关节点的类型包括公共网关节点和私有网关节点,其中公共网关节点不仅可以向业务主体内部的终端提供接入,还可以向业务主体外部的终端提供接入;而私有网关节点限制接入的终端为业务主体内部(例如企业局域网内);通过对网关节点的进行公共/私有类型的划分,可以适应不同业务主体网络环境和对接的终端的差异性需求而部署相应类型的网关节点,节约业务主体的IT能力。
在一些实施例中,针对每个业务主体而部署的网关节点的数据可以根据其负荷确定,例如网关节点归属的业务主体的终端(即业务主体后端的终端)的总量;窗口时间(如一小时)接入业务主体的终端数量峰值;窗口时间内来自业务主体的终端所提交交易的总量,等等。
参见图6,图6是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署有与共识节点110连接的网关节点130,在图6中示例性示出了网关节点130-1至网关节点130-6。
其中,网关节点130-1为针对角色为交易方的业务主体200-1部署,向来自业务主体200-1的终端(包括手机终端300-1和桌面终端300-2)提供接入;网关节点130-2为针对角色为交易方的业务主体200-2部署,向来自业务主体200-2的终端(包括物联网终端300-3)提供接入;网关节点130-3为针对业务主体200-2而部署,向来自业务主体200-2的终端(包括桌面终端300-4和300-5)提供接入;网关节点130-4为对应业务主体300-7而部署,向来自业务主体100-4的终端300-7提供接入;网关节点130-5为对应业务主体300-6部署,向来自业务主体300-6的终端提供接入。
可以理解地,实现本发明实施例的网关节点也可以在图5示出的区块链网络100中部署,从而实现区块链网络中同时部署有共识节点、备份节点和网关节点的部署结构。
实现本发明实施例的区块链网络中针对角色为交易方的主体对应部署有至少一个网关节点,由于一个业务中的交易方的数量至少为两个,因此区块链网络中至少部署有两个网关节点。
需要指出,基于图6提供的区块链网络100的部署结构,参见图7,图7是本发明实施例提供的区块链网络的一个可选的部署结构示意图,区块链网络100中也可以同时部署网关节点130和备份节点120。
在上述的区块链网络的部署结构方案中,对于交易方部署与其业务负荷相适配的共识节点以支撑交易、记账、查询和验证等实现区块链网络的核心功能,对于协作方则提供与所协同的交易方共用共识节点的部署方案,有利于交易方与协作方的业务耦合;针对备案方则鉴于其IT能力的限制,采用与其他角色的业务主体共用共识节点的部署方案,以节约IT能力;不同角色的IT能力不再受到部署实现区块链网络全部功能的节点的制约,业务主体的业务系统可以根据实现的角色进行部署,业务主体的业务系统在整体上资源利用效率得到提升。
下面结合表1以及图7,说明区块链网络100中的共识节点110、备份节点120和网关节点130、以及接入到区块链网络100的终端300的示例性功能,可以理解地,以下关于功能的说明同样适用于本发明实施例其他附图提供的区块链网络的部署结构。
以下以终端300-1为例说明终端300的功能,其他终端实现的功能可以根据下文而理解。在一些实施例中,终端300用于实现以下两种功能,分别进行说明。
功能1)绑定终端用户身份
终端300-1用于绑定用户的身份信息,实现基于用户身份的管理和认证。例如,根据绑定的用户身份信息对用户进行身份验证,以限制未通过身份验证的用户的业务行为,例如发起交易的权限。
功能2)签署交易
终端300-1签署一笔交易,例如可以包括以下字段:Tx(clientID,chainc odeID,txPayload,timestamp,clientSig)。
其中,clientID指明了终端300-1的ID,对应的IP地址等信息;chaincode ID是需要调用的智能合约的ID,明确了需要调用智能合约的版本信息等;调用智能合约的业务数据与参数封装在txPayload中;clientSig是对整个交易携带的数据的数字签名,用于供共识节点110接收到交易时对交易数据进行验证。
以下以共识节点110-1为例说明终端共识节点的功能,其他共识节点实现的功能可以根据下文而理解。在一些实施例中,共识节点110-1用于有选择性地实现以下十种功能,分别进行说明。
功能1)绑定业务主体身份
共识节点110-1用于绑定归属的业务主体即角色为交易方的业务主体200-1的身份,以表明是针对业务主体200-1所部署,服务于对应来自业务主体200-1、以及通过业务主体200-1的终端,包括终端300-1和终端300-2。
功能2)广播交易
共识节点110-1用于当终端300-1和终端300-2归属于角色为交易方的业务主体200-1,且接收到终端300-1和终端300-2提交的交易时,将交易广播到区块链网络100中其他的任一共识节点,包括共识节点110-2至共识节点110-5,共识节点110-2至共识节点110-5将通过运行排序服务对接收的交易进行一致性地排序(由排序算法保证排序的一致性),并对排序后的交易进行封装形成新区块。
功能3)执行交易
共识节点110-1用于根据接收的交易进行排序并封装形成新区块,执行新区块中交易所调用的智能合约,得到交易结果,例如对账本中目标账户的数据的查询结果,对账本中目标账户的数据的更新(增加和修改)的结果。
功能4)执行共识
共识节点110-1用于将执行新区块中的交易所得到的交易结果与其他任一共识节点(包括共识节点110-2至共识节点110-5)进行共识的过程,当在共识节点110-1至共识节点110-5之间取得关于交易结果的一致性的确认时,共识节点110-1至共识节点110-5会将新区块追加到所维护的区块链的尾部,以更新账本数据。
功能5)写入账本状态
共识节点110-1用于当执行新区块中的交易所得到的交易结果在共识节点110-1至共识节点110-5之间取得共识时,利用交易结果更新共识节点110-1维护的账本中的账本状态,即将交易所更新的键值对添加到账本状态中,例如交易结果是修改目标账户的数字资产,则在账本状态中增加以键值对形式记录的相应账户的数字资产,账本状态的数据库属性能够支持对账本的快速查询。
功能6)写入存在性证明数据
共识节点110-1用于当执行新区块中交易所得到的交易结果取得共识时,在共识节点110-1所维护的账本中生成表示交易存在于账本数据中的存在性证明,以作为账本的快照。
功能7)同步账本
共识节点110-1用于与区块链网络100中的其他的任一共识节点(例如共识节点110-2至共识节点110-5)进行账本的同步,以维护区块链网络100中最新的账本。
功能8)查询账本状态
共识节点110-1用于响应来自于共识节点所归属的业务主体200-1的终端300(例如,终端300-1和终端300-2)的查询请求,根据账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果并返回终端300。
功能9)查询存在性证明数据
共识节点110-1用于当来自业务主体200-1的终端300提交用于进行待验证数据的查询的交易(交易调用智能合约在存在性证明中进行查询)时,将响应归属于业务主体200-1的终端300(例如,终端300-1和终端300-2)的存在性查询请求,根据共识节点110-1所维护的账本数据的存在性证明,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果返回终端300。
以图15为例,区块3的默克尔树路径可以唯一表达在区块3的生成期间存在某个特定的交易,共识节点110-1计算待验证数据的哈希值,并根据默克尔树路径计算默克尔树径的根哈希,如果计算的根哈希与账本快照中的根哈希一致则确定待验证数据存在于区块3中。
功能10)验证账本
共识节点110-1用于响应归属于业务主体200-1的终端300(例如,终端300-1和终端300-2)的账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果返回终端300。
以下以图13中示出的备份节点120为例说明实现本发明实施例的备份节点的功能。在一些实施例中,备份节点120用于有选择性地实现以下六种功能的部分或者全部功能,分别进行说明。
功能1)广播交易
备份节点120用于当接收到区块链网络100中某一共识节点110-1广播的交易,将交易继续在区块链网络100中进行广播以实现交易在区块链网络100中的快速扩散。
功能2)同步账本
备份节点120用于将所维护的账本与所连接的共识节点110-1维护的账本进行同步,以维护区块链网络100中最新的账本。
功能3)查询账本状态
备份节点120用于响应的终端(例如由备份节点120所归属的业务主体200-6授权的终端、或者是来自任一业务主体的终端)的查询请求,根据备份节点120所维护的账本状态查询请求携带的键查询实时账本状态或历史账本状态,根据所查询到的值形成账本状态查询结果并返回终端。
功能4)查询存在性证明
备份节点120用于响应终端(例如由业务主体200-6授权的终端、或者是来自任一业务主体的终端)的存在性查询请求,根据所维护的账本数据的存在性证明,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果,返回终端。
功能5)验证账本
备份节点120用于根据维护的账本向终端(例如由业务主体200-6授权的终端、或者是来自任一业务主体的终端)提供账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据账本验证请求携带的键查询账本状态,形成验证结果并返回终端300。
功能6)绑定业务主体身份
备份节点120用于绑定归属的业务主体(即角色为交易方的业务主体200-1)的身份信息,以表明是对应所归属的业务主体200-1而在区块链网络100中部署,从而服务于相应业务主体200-1以执行备份节点120的功能,例如账本同步,即,备份节点120连接区块链网络100中归属于所绑定的业务主体200-1的共识节点(即共识节点110-1和共识节点110-2),并进行账本的同步。
以下以图13中示出的网关节点130-1为例说明实现本发明实施例的网关节点的功能。在一些实施例中,网关节点实现以下三种功能,分别进行说明。
功能1)广播交易
网关节点130-1用于当接收到来自所归属的业务主体200-1的终端300(包括终端300-1和终端300-2)发送的交易时,将交易广播到附近的共识节点,例如共识节点110-1,使交易在区块链网络100中快速扩散。
功能2)绑定业务主体身份
网关节点130-1用于绑定归属的业务主体即角色为交易方的业务主体200-1的身份,以表明是对应所归属的业务主体200-1而在区块链网络100中部署。
功能3)管理终端接入和认证
网关节点130-1用于基于用户身份的管理和认证。由于网关节点130-1属于公共网关节点,因此可以向业务200-1内部以及接入业务主体200-1的终端同时基于用户身份的管理和认证。例如,根据绑定的用户身份信息对请求登陆的用户进行身份验证,以限制未通过身份验证的用户的业务行为,例如发起交易和查询交易的行为。
继续说明区块链网络部署有账本数据库节点的部署结构,在一些实施例中,实现本发明实施例的区块链网络中还可以部署有与共识节点连接的账本数据库节点,或者是备份节点连接的账本数据库节点,或者部署以上的两者,以下分别进行说明。
可以理解地,账本数据库节点可以在图4至图7任一附图示出的区块链网络100中部署,下面示例性说明。
参见图8,图8是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中部署有与共识节点110-4连接的账本数据库节点140-1,用于同步共识节点维护的账本到账本数据库节点140的本地。
参见图9,图9是本发明实施例提供的区块链网络的部署结构示意图,基于图5示出的区块链网络100,区块链网络100中部署有与备份节点120连接的账本数据库节点140-2,能够用于同步账本到账本数据库节点140的本地。
参见图10,图10是本发明实施例提供的区块链网络的部署结构示意图,基于图7示出的区块链网络100,区块链网络100中部署有与共识节点110-4连接的账本数据库节点140-1,以及与备份节点120连接的账本数据库节点140-2,从而不论是以哪种方式部署的账本数据库节点140不管采用那种连接方式,都能够同步账本到账本数据库节点140的本地。
此外,参见图11,图11是本发明实施例提供的区块链网络的部署结构示意图,区块链网络100中同时部署有共识节点、网关节点和备份节点和账本数据节点140,其中示出了与共识节点110-4连接的账本数据库节点140-1,以及与备份节点120连接的账本数据库节点140-2,从而不论是以哪种方式部署的账本数据库节点140不管采用那种连接方式,都能够同步账本到账本数据库节点140的本地。
参见图14,图14是本发明实施例提供的应用于账本数据库节点解构账本的一个示意图,账本数据库节点将文件系统方式存储的账本数据(按照时间轴顺序排列形成的区块)进行多个维度的解构(包括账本、区块、交易、账户、存在性证明和元数据)形成键值对的集合,这些键值对记录的数据的示例包括:区块头中的数据摘要&时间戳;默克尔树中记录的默克尔树路径(交易数据的存在性证明);交易的数据内容;键值对集合可以采用非结构化数据库在存储集群中,例如主从(Master-Slaver)、副本集(Replica Set)、切片(Sharding)等类型的存储集群。从而能够实现快速查询,当然不局限于非结构化存储方式,例如还可以将解构的每个键值对存储为单独的文件(以键对文件进行命名),同样能够实现键值对的快速查询。
继续说明将账本数据解构形成键值对,并形成键值对的存在性证明的方式,参见图15,图15是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的一个示意图,各个区块的账本数据被解构多个键值对的结合,以任意两个键值对为叶子节点计算哈希值作为新的叶子节点,并迭代计算哈希值,直至计算得到叶子节点的哈希值,形成对应区块的默克尔树路径,一个示例如:Block3-hash/hash1/hash2/hash3。区块的默克尔树路径能够作为从区块结构得到的键值对数据的存在性进行证明,区块连同对应的默克尔树路径构成区块的快照,通过从多个维度的解构,即使是非结构化的数据最终也能够形成非结构化的形式,从而实现了兼容结构化/非结构化数据可直接上链的技术效果。
在一些实施例中,账本数据库节点通过部署账本数据库组件的方式实现上文所述的功能,参见图16,图16是发明实施例提供的账本数据库组件600的部署示意图,账本数据库组件600采用如图15示出的方式来解构和存储账本数据。
在图16中示出了账本数据库组件600的不同部署方式,例如,可以部署为区块链独立功能节点(如图13示出的区块链网络100中的账本数据库节点140)。账本数据库组件还可以部署在区块链网络的任一节点,例如,账本数据库组件600部署在如图13示出的共识节点100中,或者,可以部署为独立于区块链网络的存储集群。
账本数据协议(Ledger Data Contract)组件610用于实现一个标准的、与外部访问一致的存储管理方式,定义和管理了数据结构以组织账本数据、针对账本数据的操作,解构并存储账本数据的方式;从多个维度解构账本数据形成的键值对集合。
账本存储组件620用于将解构的键值对数据存储到非结构性数据库/单个的文件中,从而能够向终端300提供账本的链下访问服务(即不通过共识节点110即可查询账本的服务),这种查询服务不依赖于区块链网络100的内部的交易处理逻辑完成,并提供键值对的方式提供查询服务,查询的数据的维度包括:账本(一条区块链)、交易、账户、元数据、区块和Merkle树。
由于这种存储结构具有良好的扩展性,即使是单区块大小无限制、账户数量无限制、区块增长无限制的情况,通过解构形成的键值对数据来响应查询请求,相较于查询文件形式的账本数据也能够实现更快速地查询。
账本数据库组件600还可以用于支持键值对数据的写入,例如,以实施为独立于区块链网络部署的存储集群时,支持终端300以链下的方式写入键值对数据;又例如,实施为账本数据库节点或共识节点时,将写入请求封装为交易提交到区块链中,在链上完成写入。
继续说明实现本发明实施例的区块链网络执行智能合约的方式。
在一些实施例中,实现本发明实施例的执行智能合约的功能通过运行智能合约组件;例如图4至图11的共识节点110中可以部署智能合约引擎组件来实现执行智能合约的功能。
在另一些实施例中,实现本发明实施例的区块链网络中可以部署一类独立的用于运行智能合约引擎组件的合约引擎节点,用以代替区块链网络中的共识节点执行交易中所调用的智能合约,并向共识节点返回执行智能合约得到的交易结果。
例如,可以在区块链网络中部署与全部共识节点连接(一对一连接或一对多地连接)的合约引擎节点,以降低全网的共识节点的负荷;或者,部署与部分业务主体的共识节点连接的合约引擎节点以定向降低业务主体的IT能力负荷,可以理解,合约引擎节点可以在图4至图11任一附图示出的区块链网络100中部署,下面示例性说明。
参见图12,图12是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署有合约引擎节点150,连接对应角色为交易方的业务主体200-2而部署的共识节点110-3,用于当共识节点110-3需要执行交易时,代替共识节点110-3执行交易中所调用的智能合约,将执行得到的交易结果返回共识节点110-3。
参见图13,图13是本发明实施例提供的区块链网络的部署结构示意图,基于图11示出的区块链网络100,区块链网络100中还可以部署有合约引擎节点150,连接对应角色为交易方的业务主体200-2而部署的共识节点110-3,用于当共识节点110-3需要执行交易时,代替共识节点110-3执行交易中所调用的智能合约,将执行得到的交易结果返回共识节点110-3。
通过在区块链网络中部署合约引擎节点,将执行智能合约的负荷从共识节点转移,能够解除对共识节点执行智能合约的IT能力的限制,尤其适用于IT能力受限的业务主体,以及由于接入过多终端而导致执行合约的高负荷的共识节点,例如针对交易方部署的共识节点。
实现本发明实施例的智能合约引擎组件具有智能合约的编译/模拟运行功能(利用模拟的账本)、以及智能合约的执行功能(执行结果应用于区块链网络的真实账本),能够根据所部署的环境(例如自动检测所部署的环境,或者接收开发者的关于部署环境的设置),自动设置其中的子模块的工作状态和离线状态,从而在智能合约的编译/模拟测试功能、以及智能合约的执行功能之间自动切换。例如,在部署于区块链网络中时实现智能合约的执行功能,而在部署于开发环境中时实现智能合约的编译/模拟运行功能。
当然,智能合约引擎组件也可以根据预设置而自动调整其中的子模块的在线状态(即,与外部的连接被激活的状态)和离线状态(即,与外部的连接被旁路的状态),下面结合智能合约引擎组件处于不同部署环境时设置不同模块的工作/离线状态,以自动切换智能合约的编译/模拟测试功能、以及智能合约的执行功能的示例进行说明。
结合图12、图13,并参见图17,图17是本发明实施例提供的在区块链网络中部署智能合约引擎组件700的部署示意图,智能合约引擎组件700被部署为如图12、图13示出的区块链网络中的独立的合约引擎节点150,与共识节点110-3连接。
智能合约模块710用于实现的功能包括:智能合约的编译(由编译器711实现)/模拟测试功能(编译器711和执行器712协同实现),以及智能合约的执行功能(由执行器712实现);账本访问适配器720用于实现的功能包括:根据部署环境而提供本地数据源形式的模拟的账本供测试智能合约,或通过远程代理的方式提供区块链网络100中的真实的账本以供执行器712执行智能合约。
根据部署于区块链网络的环境,智能合约模块710中的执行器712处于在线状态,账本访问适配器720中的账本远程代理722用于根据区块链网络中的部署环境而处于在线状态,而智能合约模块710中的编译器711则处于离线状态。
在智能合约引擎组件700部署于区块链网络100的环境中,一个示例性的交易处理过程如下。
共识节点110中的交易处理模块1102用于对终端300提交的交易进行封装形成新区块,并通过调用合约引擎节点150中的合约引擎组件700,合约引擎组件700中的执行器712用于代替共识节点执行交易中所调用的智能合约来读/写账本,账本远程代理722用于实现执行器712和账本之间的通信代理功能,从账本读取智能合约需要读/写的账本数据,执行器712将接收的账本数据执行智能合约得到交易结果,然后由执行器712将交易结果返回共识节点110。
共识节点110中的共识模块1101针对交易结果与区块链网络100中的其他共识节点取得共识时,将会触发执行器712进行读/写账本,执行器712将通过账本远程代理模块722来读/写账本,对于写入账本来说,包括将交易结果存储到账本状态,以及将包含交易的新区块存储到账本数据。
参见图18,图18是本发明实施例提供的开发环境中部署智能合约引擎组件700的部署示意图,智能合约引擎组件700以嵌入的方式部署到开发者的开发环境中,与开发环境中的开发组件(图17中以Maven编译插件为例)和测试组件(图17中以Junit测试组件为例)适配。
根据智能合约引擎组件700部署在开发环境,智能合约模块710中的编译器711、执行器712、IDE模拟器721处于在线状态,以支持开发者使用智能合约的编译(由编译器711实现)/模拟测试功能(编译器711和执行器712协同实现),而账本访问适配器720中的账本远程代理722处于则处于离线状态。
在智能合约引擎组件700部署于开发环境中,如图18所示的一个示例性的交易处理过程如下。
在编译智能合约(项目)的阶段,开发环境中的编译插件调用编译器711进行智能合约的编译;在测试智能合约的阶段,开发环境中的测试组件调用执行器712执行智能合约,IDE模拟器721基于本地数据源模拟区块链网络的完备账本,向执行器712提供本地数据源形式的账本数据,以由执行器712对模拟的账本数据执行智能合约中的读/写操作,形成交易结果;通过执行智能合约的中间结果和最终结果用以定位出错代码。
参见图19,图19是本发明实施例提供的智能合约引擎组件的部署示意图,贯穿智能合约的开发和链上部署阶段。
在智能合约的项目管理和开发测试阶段,在集成开发环境(如Eclipse)中进行定义智能合约编译的各种依赖关系以及编译插件;编译插件编译、打包智能合约的代码,包括智能合约的打包文件(记为CONTRACT.jar)以及开发者针对打包文件的数字签名(记为Signature.cert),以根据智能合约源代码进行智能合约代码的编译;智能合约的测试用例完全依赖于本地数据源的账本,不依赖于区块链网络中的节点维护的账本数据,
在智能合约的部署阶段,签署数字签名的智能合约被部署到如图13所示的共识节点110中,从而共识节点110能够执行终端300提交的交易中所引用的智能合约并形成交易结果。
智能合约引擎组件提供的智能合约的工程化环境:开发语言成熟、工具链完整、可重用、可分发、可验证、可管理;通过与开发环境的测试组件和编译组件的适配,能够延续业务系统的开发模式,并直接利用现有的持续集成设施,降低了智能合约开发的学习成本;可以进行完全本地化的单元测试。
继续结合图13,说明在实现发明实施例的区块链网络在一个企业级的应用场景中的示例性应用。在企业级的应用场景中,涉及如下几个业务主体:大企业,对应角色为交易方的业务主体200-1和业务主体200-2;伙伴企业,对应角色为协作方的业务主体200-3-1和业务主体200-3-2;监管机构,对应角色为监管方的业务主体200-4;备案中心,对应角色为备案方的业务主体200-6;认证中心,对应角色为认证方的业务主体200-5。
区块链网络100中根据业务主体的角色部署共识节点110,还可以部署备份节点120、网关节点130、账本数据库节点140和合约引擎节点150;终端300以及各种类型的节点的示例性功能分配如下表1所示。
表1
在上述的区块链网络针对各方的角色进行适配部署节点,对于大企业部署具有大多数功能的共识节点以支撑区块链网络的主要/全功能,包括交易的执行、共识、各种查询和验证等;同时通过公共/私有网关节点的方式满足大企业对接终端的来源的差异性的现状,有利于大企业业务系统的简化;对于伙伴企业则提供与大企业共用共识节点的部署方案,有利于大企业与伙伴企业的业务耦合;针对备案中心则鉴于其IT能力的限制,采用共识节点的部署方案,备案中心不需要提升IT能力以参与交易的执行、共识和记账过程;针对认证中心/监管机构则对应部署共识节点以满足认证产品/监管业的诉求;实现了区块链网络的部署结构适配业务主体的角色的多样性,以及适配IT能力的差异性的技术效果。
至此,已经说明实现本发明实施例的区块链网络的各种示例性部署结构及其各类型节点的功能,下面,以图13示出的区块链网络100说明实现本发明实施例的区块链网络支撑业务运行的示例性部署方案。
参见图20,图20是本发明实施例提供的区块链网络的部署流程示意图,结合步骤201至步骤203进行说明。
步骤201,在区块链网络中部署至少两个共识节点,所述共识节点对应参与业务的不同业务主体而部署。
步骤202,通过所述共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果。
步骤203,对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
在一些实施例中,提供根据参与方的角色是否部署对应的共识节点的部署方案,包括:当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点;当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点;当所述业务主体在所述业务中的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
在一些实施例中,还提供在区块链网络中部署有角色为备案方的部署方案,包括:当对应所述业务主体在所述业务中的角色为备案方,在所述区块链网络中部署与其他任一业务主体共同接入的共识节点。
在一些实施例中,还提供在共识节点部署“绑定业务主体身份”功能的部署方案,包括:在共识节点中绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
在一些实施例中,还提供在共识节点部署“同步账本”功能的部署方案,包括:共识节点与所述区块链网络中的其他任一共识节点进行账本的同步。
在一些实施例中,还提供在共识节点部署“检索账本数据”功能的部署方案,包括:共识节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
在一些实施例中,还提供在共识节点部署“检索存在性证明”功能的部署方案,包括:共识节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在所述存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
在一些实施例中,还提供在共识节点部署“写入账本状态”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
在一些实施例中,还提供在共识节点部署“写入存在性证明”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成表明所述账本数据中包括所述交易的存在性证明。
在一些实施例中,还提供在共识节点部署“验证账本”功能的部署方案,包括:共识节点根据维护的所述账本提供账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
在一些实施例中,还提供在共识节点部署“广播交易”功能的部署方案,包括:共识节点当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序并封装形成区块。
在一些实施例中,还提供在区块链网络部署网关节点并部署“绑定业务主体身份信息”功能的部署方案,网关节点数量至少为两个,对应参与业务的不同业务主体而部署,并与归属于相应业务主体的共识节点连接,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署、。
在一些实施例中,还提供在网关节点部署“管理终端接入和认证”功能的部署方案,包括:网关节点对请求接入的终端进行身份认证、以及,对接入的终端进行管理。
在一些实施例中,还提供在网关节点部署“广播交易”功能的部署方案,包括:网关节点当接收到所述终端向所述网关节点提交的交易时,在所述区块链网络中进行广播,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序,并封装形成新区块。
在一些实施例中,还提供在区块链网络部署备份节点并部署“同步账本”功能的部署方案,备份节点为对应在所述业务中的角色为备案方的业务主体而部署,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署;将所维护的账本与所连接的共识节点所维护的账本进行同步,以更新所维护的账本。
在一些实施例中,还提供在备份节点部署“检索账本数据”功能的部署方案,包括:所述备份节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
在一些实施例中,还提供在备份节点部署“检索存在性证明”功能的部署方案,包括:备份节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
在一些实施例中,还提供在备份节点部署“验证账本”功能的部署方案,包括:所述备份节点根据维护的账本响应账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
在一些实施例中,还提供在区块链网络部署合约引擎节点的部署方案,包括:将合约引擎节点连接区块链网络中的共识节点或备份节点,当所述共识节点需要执行所述交易时,通过合约引擎节点部署的智能合约引擎组件执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
在一些实施例中,还提供在区块链网络部署账本数据库节点的部署方案,包括:将账本数据库节点与共识节点连接,通过账本数据库节点将所述账本解构为键值对并存储,根据所存储的键值对响应所述终端针对所述账本的链下查询请求。
综上所述,本发明实施例具有以下有益效果:
1)根据业务主体在业务中所实现的角色来部署各类型节点及其数量,如共识节点、网关节点和备份节点,实现了根据业务主体灵活部署的技术效果,简化了业务主体的业务系统的复杂度,降低了部分业务主体的IT能力的要求;
2)通过在交易的处理流程采用对交易进行共识(而不是现有技术对区块进行共识),在保证共识的效率基础上,相较于现有技术提供的交易提案和交易提交两个阶段交易处理方案,简化了交易处理流程,并且能够通过共识节点来获得完备的账本。
3)部署合约引擎节点能够减轻共识节点在执行交易过程中的负荷,其计算能力可以直接耦合到业务主体用于执行共识的资源上,从而不需要对已有业务系统进行升级,降低了业务主体的业务系统的复杂度。
4)部署数据库节点提供账本的链下形式的数据库访问,减轻共识节点响应查询的负荷,并且能够支持多版本、并发地高效查询的效果。
如上所述,区块链网络100中的其他类型的节点,可以通过对资源抽象并进行相应的部署而实现,且可以根据参与方的角色而部署备份节点、网关节点、账本数据库节点和合约引擎节点,接下来继续对区块链网络100的不同的部署情况进行说明。
参见图21,图21是本发明实施例提供的区块链网络的组织架构示意图,包括至少两个共识节点110及合约引擎节点150,作为示例,图21中仅示出了共识节点110-1、共识节点110-2,以及合约引擎节点150-1、合约引擎节点150-2;共识节点110-1和共识节点110-2是针对参与业务的两个不同业务实体在业务中所实现的角色而对应部署。合约引擎节点连接共识节点,与共识节点可以为如图21中所示的一一对应的关系,也可是多个共识节点共用一个合约引擎节点,即共识节点与合约引擎节点为多对一的关系。共识节点响应来自业务主体的终端300提交的交易,通过调用合约引擎节点执行智能合约,以更新账本或者查询账本,并在终端300的用户界面310显示各种中间结果或最终结果。
参见图22,图22是本发明实施例提供的区块链网络的部署结构示意图,基于图12示出的区块链网络100,区块链网络100中除了部署有与共识节点110-3相连接的合约引擎节点150外,还可以部署与共识节点110连接的网关节点130,在图22中示例性示出了网关节点130-1至网关节点130-6。
其中,网关节点130-1为针对角色为交易方的业务主体200-1部署,向来自业务主体200-1的终端(包括手机终端300-1和桌面终端300-2)提供接入;网关节点130-2为针对角色为交易方的业务主体200-1部署,向来自业务主体200-1的终端(包括物联网终端300-3)提供接入;网关节点130-3为针对业务主体200-2而部署,向来自业务主体200-2的终端(包括桌面终端300-4和300-5)提供接入;网关节点130-4为对应业务主体200-4而部署,向来自业务主体200-4的终端300-7提供接入;网关节点130-5为对应业务主体200-3-1部署,向来自业务主体200-3-1的终端300-6提供接入。网关节点根据所绑定的相应业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证、以及,对接入的终端进行管理。
实现本发明实施例的区块链网络中针对角色为交易方的主体对应部署有至少一个网关节点,由于一个业务中的交易方的数量至少为两个,因此区块链网络中至少部署有两个网关节点。
参见图23,图23是本发明实施例提供的区块链网络的部署结构示意图,基于图12示出的区块链网络100,区块链网络100中除了部署有与共识节点110-3相连接的合约引擎节点150外,还可以部署与共识节点110连接的备份节点120,其中,备份节点针对角色为备案方的业务主体200-6对应部署。业务主体200-6作为备案方,在区块链网络100中对应业务主体200-6部署有一个备份节点120,备份节点120连接共识节点110,终端300-1或终端300-2向共识节点110-1提交交易,共识节点110-1对终端300-1或终端300-2提交的交易排序后打包为新区块,调用合约引擎节点150执行智能合约,得到交易结果;对交易结果执行共识,并根据执行共识后的交易结果更新共识节点110-1维护的账本,备份节点120将自身所维护的账本与共识节点110-1所维护的账本进行同步,以更新备份节点120维护的账本。
参见图24,图24是本发明实施例提供的区块链网络的部署结构示意图,基于图12示出的区块链网络100,区块链网络100中除了部署有与共识节点110-3相连接的合约引擎节点150外,还可以部署与共识节点相连接的账本数据库节点,图中示例性的示出了与共识节点110-4连接的账本数据库节点140,在图24中示例性的示出了账本数据库节点140-1,由于与共识节点110-4相连,使得账本数据库节点140-1可以从共识节点110-4处进行账本同步至账本数据库节点140的本地,进而使得终端可以从账本数据库节点处实现区块链网络中账本的链下访问。
参见图25,图25是本发明实施例提供的区块链网络的部署结构示意图,基于图23示出的区块链网络100,区块链网络100中还可以部署与备份节点120连接的账本数据库节点140,在图25中示例性的示出了账本数据库节点140-2,由于备份节点120处同步了共识节点所维护的账本,账本数据库节点140-2与备份节点120相连,使得账本数据库节点140-2能够从备份节点120处同步其维护的账本到账本数据库节点140的本地,进而使得终端可以从账本数据库节点处实现区块链网络中账本的链下访问。
参见图26,图26是本发明实施例提供的区块链网络的部署结构示意图,基于图12示出的区块链网络100,区块链网络100中除了部署有与共识节点110-3相连接的合约引擎节点150外,还可以部署账本数据库节点140及备份节点120,在图26中示例性的示出了账本数据库节点140-1及账本数据库节点140-2,其中,包括与共识节点110-4连接的账本数据库节点140,以及与备份节点120连接的账本数据库节点140-2,从而不论是以哪种方式部署的账本数据库节点140不管采用那种连接方式,都能够用于同步账本到账本数据库节点140的本地,进而使得终端可以从账本数据库节点处实现区块链网络中账本的链下访问。
至此,已经说明实现本发明实施例的区块链网络的各种示例性部署结构及其各类型节点的功能,下面,以图21示出的区块链网络100说明实现本发明实施例的区块链网络支撑业务运行的示例性部署方案。
参见图27,图27是本发明实施例提供的区块链网络的部署流程示意图,结合步骤301至步骤303进行说明。
步骤301,通过共识节点对终端提交的交易排序后打包为新区块。
这里,所述共识节点对应参与业务的不同业务主体而部署,且区块链网络的共识节点的数量至少为两个。
步骤302,当共识节点执行新区块中的交易时,通过合约引擎节点执行所述交易中所调用的智能合约,得到交易结果。
这里,在实际实施时,通过合约引擎节点中部署的智能合约引擎组件执行所述交易中所调用的智能合约,并将得到的交易结果返回所述共识节点。
步骤303,对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
在一些实施例中,提供根据参与方的角色是否部署对应的共识节点的部署方案,包括:当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点;当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点;当所述业务主体在所述业务中的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
在一些实施例中,还提供在区块链网络中部署有角色为备案方的部署方案,包括:当对应所述业务主体在所述业务中的角色为备案方,在所述区块链网络中部署与其他任一业务主体共同接入的共识节点。
在一些实施例中,还提供在共识节点部署“绑定业务主体身份”功能的部署方案,包括:在共识节点中绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
在一些实施例中,还提供在共识节点部署“同步账本”功能的部署方案,包括:共识节点与所述区块链网络中的其他任一共识节点进行账本的同步。
在一些实施例中,还提供在共识节点部署“检索账本数据”功能的部署方案,包括:共识节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
在一些实施例中,还提供在共识节点部署“检索存在性证明”功能的部署方案,包括:共识节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在所述存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
在一些实施例中,还提供在共识节点部署“写入账本状态”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
在一些实施例中,还提供在共识节点部署“写入存在性证明”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成表明所述账本数据中包括所述交易的存在性证明。
在一些实施例中,还提供在共识节点部署“验证账本”功能的部署方案,包括:共识节点根据维护的所述账本提供账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
在一些实施例中,还提供在共识节点部署“广播交易”功能的部署方案,包括:共识节点当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序并封装形成区块。
在一些实施例中,还提供在区块链网络部署网关节点并部署“绑定业务主体身份信息”功能的部署方案,网关节点数量至少为两个,对应参与业务的不同业务主体而部署,并与归属于相应业务主体的共识节点连接,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署、。
在一些实施例中,还提供在网关节点部署“管理终端接入和认证”功能的部署方案,包括:网关节点对请求接入的终端进行身份认证、以及,对接入的终端进行管理。
在一些实施例中,还提供在网关节点部署“广播交易”功能的部署方案,包括:网关节点当接收到所述终端向所述网关节点提交的交易时,在所述区块链网络中进行广播,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序并封装形成区块。
在一些实施例中,还提供在区块链网络部署备份节点并部署“同步账本”功能的部署方案,备份节点为对应在所述业务中的角色为备案方的业务主体而部署,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署;将所维护的账本与所连接的共识节点所维护的账本进行同步,以更新所维护的账本。
在一些实施例中,还提供在备份节点部署“检索账本数据”功能的部署方案,包括:所述备份节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
在一些实施例中,还提供在备份节点部署“检索存在性证明”功能的部署方案,包括:备份节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
在一些实施例中,还提供在备份节点部署“验证账本”功能的部署方案,包括:所述备份节点根据维护的账本响应账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
在一些实施例中,还提供在区块链网络部署账本数据库节点的部署方案,包括:将账本数据库节点与共识节点连接,通过账本数据库节点将所述账本解构为键值对并存储,根据所存储的键值对响应向所述终端提供所述账本的链下查询请求。
以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
Claims (49)
1.一种区块链网络,其特征在于,所述区块链网络包括:
共识节点,数量为至少两个,对应参与业务的业务主体在所述业务中所实现的角色而部署;
所述共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
2.根据权利要求1所述的区块链网络,其特征在于,
当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点。
3.根据权利要求1所述的区块链网络,其特征在于,
当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点。
4.根据权利要求1所述的区块链网络,其特征在于,
当所述业务主体在所述业务中的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
5.根据权利要求1所述的区块链网络,其特征在于,
当对应所述业务主体在所述业务中的角色为备案方时,在所述区块链网络中部署与其他任一业务主体共同接入的共识节点。
6.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
7.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于与所述区块链网络中的其他任一共识节点进行账本的同步。
8.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
9.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在所述存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
10.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
11.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成表明所述账本数据中包括所述交易的存在性证明。
12.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的所述账本提供账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
13.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序,并封装形成所述新区块。
14.根据权利要求1至13任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
网关节点,数量至少为两个,对应参与业务的不同业务主体而部署,并与归属于相应业务主体的共识节点连接,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署、。
15.根据权利要求14所述的区块链网络,其特征在于,
所述网关节点,还用于对请求接入的终端进行身份认证、以及,对接入的终端进行管理。
16.根据权利要求14所述的区块链网络,其特征在于,
所述网关节点,还用于当接收到所述终端向所述网关节点提交的交易时,在所述区块链网络中进行广播,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序,并封装形成所述新区块。
17.根据权利要求1至13任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
备份节点,对应在所述业务中的角色为备案方的业务主体而部署,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署;将所维护的账本与所连接的共识节点所维护的账本进行同步,以更新所维护的账本。
18.根据权利要求17所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键,查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
19.根据权利要求17所述的区块链网络,其特征在于,
所述备份节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
20.根据权利要求17所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本响应账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
21.根据权利要求1至13任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
合约引擎节点,用于当所述共识节点需要执行所述交易时,通过所述合约引擎节点部署的智能合约引擎组件,执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
22.根据权利要求1至13任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
账本数据库节点,与所述共识节点连接,用于将所述账本解构为键值对并存储,根据所存储的键值对响应所述终端针对所述账本的链下查询请求。
23.一种区块链网络部署方法,其特征在于,所述方法包括:
在区块链网络中部署至少两个共识节点,所述共识节点对应参与业务的不同业务主体而部署;
通过所述共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;
对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
24.一种区块链网络,其特征在于,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求23所述的区块链网络部署方法。
25.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求23所述的区块链网络部署方法。
26.一种区块链网络,其特征在于,所述区块链网络包括:
共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
合约引擎节点,用于当所述共识节点执行所述交易时,执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
27.根据权利要求26所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点。
28.根据权利要求26所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为交易方时,在所述区块链网络中对应相应业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点。
29.根据权利要求26所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
30.根据权利要求26所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为备案方时,在所述区块链网络中部署与其他业务主体共同接入的共识节点。
31.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于与其他的共识节点进行账本的同步。
32.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
33.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证账本数据,并形成所述待验证账本数据是否存储于所述账本的存在性查询结果。
34.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的账本提供账本验证请求,在账本数据的存在性证明中查询待验证账本数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
35.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
36.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他共识节点根据所接收到的交易进行排序并封装形成区块。
37.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
38.根据权利要求26所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成所述账本数据中包括所述交易的存在性证明。
39.根据权利要求26至38任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
网关节点,对应不同业务主体而部署、并与对应相应业务主体而部署的共识节点连接,用于根据所绑定的相应业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证;以及,对接入的终端进行管理。
40.根据权利要求39所述的区块链网络,其特征在于,
所述网关节点,还用于接收所述终端提交的交易,并在所述区块链网络中进行广播,以使所述区块链网络中的其他共识节点根据所接收到的交易进行排序并封装形成区块。
41.根据权利要求26至38任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
备份节点,对应在业务中的角色为备案业务主体而部署,用于将所维护的账本与所述共识节点所维护的账本进行同步,以更新所述备份节点维护的账本。
42.根据权利要求41所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
43.根据权利要求41所述的区块链网络,其特征在于,
所述备份节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证账本数据,并形成所述待验证账本数据是否存储于所述账本的存在性查询结果。
44.根据权利要求41所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本响应账本验证请求,在账本数据的存在性证明中查询待验证账本数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
45.根据权利要求41所述的区块链网络,其特征在于,
所述备份节点,还用于根据所绑定的业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证。
46.根据权利要求26至38任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
账本数据库节点,用于将所述账本中的账本解构为键值对并存储;以及,根据所存储的键值对,响应所述终端针对所述账本的链下查询请求。
47.一种区块链网络部署方法,其特征在于,所述方法包括:
通过共识节点对终端提交的交易排序后打包为新区块;
通过合约引擎节点执行所述交易中所调用的智能合约,并将得到的交易结果返回所述共识节点;
对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本。
48.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求47所述的区块链网络部署方法。
49.一种区块链网络,其特征在于,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求47所述的区块链网络部署方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN201810936294 | 2018-08-16 | ||
| CN2018109362947 | 2018-08-16 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN109218079A true CN109218079A (zh) | 2019-01-15 |
| CN109218079B CN109218079B (zh) | 2021-09-10 |
Family
ID=64989161
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201810942160.6A Active CN109218079B (zh) | 2018-08-16 | 2018-08-17 | 一种区块链网络、部署方法及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN109218079B (zh) |
Cited By (25)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN109636427A (zh) * | 2019-01-29 | 2019-04-16 | 深圳市智税链科技有限公司 | 基于区块链系统的业务处理方法、装置、介质及电子设备 |
| CN109886043A (zh) * | 2019-02-11 | 2019-06-14 | 上海点融信息科技有限责任公司 | 用于生成区块链参与方的组织凭证的方法和装置 |
| CN109981416A (zh) * | 2019-04-04 | 2019-07-05 | 中山大学 | 一种区块链性能检测方法与系统 |
| CN110162470A (zh) * | 2019-04-28 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 一种区块链的测试方法和装置 |
| CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
| CN110308903A (zh) * | 2019-07-04 | 2019-10-08 | 明链科技(深圳)有限公司 | 创建区块链网络的方法、电子设备及介质 |
| CN110688261A (zh) * | 2019-11-13 | 2020-01-14 | 杭州新链科技有限公司 | 一种基于区块链的数字档案异构电子文件云灾备系统 |
| CN110769035A (zh) * | 2019-09-23 | 2020-02-07 | 北京海益同展信息科技有限公司 | 一种区块链资产发行方法、平台、业务节点及存储介质 |
| CN111062497A (zh) * | 2019-11-21 | 2020-04-24 | 北京海益同展信息科技有限公司 | 基于区块链网络的物业管理方法、平台及存储介质 |
| CN111177107A (zh) * | 2019-12-31 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
| CN111368343A (zh) * | 2020-03-31 | 2020-07-03 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
| CN111417946A (zh) * | 2020-02-24 | 2020-07-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
| CN111432009A (zh) * | 2020-03-30 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 一种区块链数据的同步方法、装置及电子设备、存储介质 |
| CN111475692A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 区块链数据的处理方法、装置及存储介质 |
| US10771242B2 (en) | 2019-07-09 | 2020-09-08 | Alibaba Group Holding Limited | Blockchain-based data processing |
| WO2020182430A1 (en) * | 2019-03-13 | 2020-09-17 | NEC Laboratories Europe GmbH | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol |
| WO2020224238A1 (zh) * | 2019-05-06 | 2020-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点的部署方法、装置、设备及存储介质 |
| CN112037053A (zh) * | 2019-06-03 | 2020-12-04 | 厦门本能管家科技有限公司 | 一种用于区块链的通用交易解释器及其解释方法 |
| WO2021004058A1 (zh) * | 2019-07-09 | 2021-01-14 | 创新先进技术有限公司 | 基于区块链的数据处理方法和装置 |
| CN112235429A (zh) * | 2020-12-17 | 2021-01-15 | 暗链科技(深圳)有限公司 | 一种中心记账式去中心化分布式数据处理方法及系统 |
| CN112287034A (zh) * | 2020-12-24 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
| CN113268408A (zh) * | 2020-12-28 | 2021-08-17 | 上海能链众合科技有限公司 | 一种面向开放许可链的自动化测试方法 |
| CN116094720A (zh) * | 2022-11-28 | 2023-05-09 | 中国联合网络通信集团有限公司 | 区块链多平台治理方法、装置、服务器及存储介质 |
| CN116226149A (zh) * | 2023-03-02 | 2023-06-06 | 北京理工大学 | 区块链下的支持多种数据类型的统一表达与发布方法 |
| WO2024066010A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易处理方法、装置及区块链系统 |
Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
| CN107169765A (zh) * | 2017-05-11 | 2017-09-15 | 电子科技大学 | 一种基于业务信任度对区块链共识进行动态调整的方法 |
| CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
| CN108111604A (zh) * | 2017-12-21 | 2018-06-01 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
-
2018
- 2018-08-17 CN CN201810942160.6A patent/CN109218079B/zh active Active
Patent Citations (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN106789095A (zh) * | 2017-03-30 | 2017-05-31 | 腾讯科技(深圳)有限公司 | 分布式系统及消息处理方法 |
| CN107169765A (zh) * | 2017-05-11 | 2017-09-15 | 电子科技大学 | 一种基于业务信任度对区块链共识进行动态调整的方法 |
| CN107704269A (zh) * | 2017-10-16 | 2018-02-16 | 中国银行股份有限公司 | 一种基于区块链生成区块的方法以及系统 |
| CN108111604A (zh) * | 2017-12-21 | 2018-06-01 | 广州广电运通金融电子股份有限公司 | 区块链共识方法、装置和系统、标识信息处理方法和装置 |
Cited By (40)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN111475692A (zh) * | 2019-01-24 | 2020-07-31 | 北京京东尚科信息技术有限公司 | 区块链数据的处理方法、装置及存储介质 |
| CN109636427B (zh) * | 2019-01-29 | 2024-03-01 | 深圳市智税链科技有限公司 | 基于区块链系统的业务处理方法、装置、介质及电子设备 |
| CN109636427A (zh) * | 2019-01-29 | 2019-04-16 | 深圳市智税链科技有限公司 | 基于区块链系统的业务处理方法、装置、介质及电子设备 |
| CN109886043A (zh) * | 2019-02-11 | 2019-06-14 | 上海点融信息科技有限责任公司 | 用于生成区块链参与方的组织凭证的方法和装置 |
| WO2020182430A1 (en) * | 2019-03-13 | 2020-09-17 | NEC Laboratories Europe GmbH | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol |
| CN109981416A (zh) * | 2019-04-04 | 2019-07-05 | 中山大学 | 一种区块链性能检测方法与系统 |
| CN109981416B (zh) * | 2019-04-04 | 2022-07-12 | 中山大学 | 一种区块链性能检测方法与系统 |
| CN110162470A (zh) * | 2019-04-28 | 2019-08-23 | 阿里巴巴集团控股有限公司 | 一种区块链的测试方法和装置 |
| CN110162470B (zh) * | 2019-04-28 | 2023-08-18 | 创新先进技术有限公司 | 一种区块链的测试方法和装置 |
| WO2020224238A1 (zh) * | 2019-05-06 | 2020-11-12 | 深圳壹账通智能科技有限公司 | 区块链节点的部署方法、装置、设备及存储介质 |
| CN110266765A (zh) * | 2019-05-21 | 2019-09-20 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
| CN110266765B (zh) * | 2019-05-21 | 2022-03-01 | 西安中星测控有限公司 | 一种基于区块链的物联网在线共识节点实时更新方法和装置 |
| CN112037053B (zh) * | 2019-06-03 | 2023-12-22 | 本无链科技(深圳)有限公司 | 一种用于区块链的通用交易解释器及其解释方法 |
| CN112037053A (zh) * | 2019-06-03 | 2020-12-04 | 厦门本能管家科技有限公司 | 一种用于区块链的通用交易解释器及其解释方法 |
| CN110308903B (zh) * | 2019-07-04 | 2023-07-25 | 明链科技(深圳)有限公司 | 创建区块链网络的方法、电子设备及介质 |
| CN110308903A (zh) * | 2019-07-04 | 2019-10-08 | 明链科技(深圳)有限公司 | 创建区块链网络的方法、电子设备及介质 |
| CN112612856B (zh) * | 2019-07-09 | 2024-03-29 | 创新先进技术有限公司 | 基于区块链的数据处理方法和装置 |
| US10771242B2 (en) | 2019-07-09 | 2020-09-08 | Alibaba Group Holding Limited | Blockchain-based data processing |
| WO2021004058A1 (zh) * | 2019-07-09 | 2021-01-14 | 创新先进技术有限公司 | 基于区块链的数据处理方法和装置 |
| CN112612856A (zh) * | 2019-07-09 | 2021-04-06 | 创新先进技术有限公司 | 基于区块链的数据处理方法和装置 |
| CN110769035A (zh) * | 2019-09-23 | 2020-02-07 | 北京海益同展信息科技有限公司 | 一种区块链资产发行方法、平台、业务节点及存储介质 |
| CN110688261A (zh) * | 2019-11-13 | 2020-01-14 | 杭州新链科技有限公司 | 一种基于区块链的数字档案异构电子文件云灾备系统 |
| CN111062497A (zh) * | 2019-11-21 | 2020-04-24 | 北京海益同展信息科技有限公司 | 基于区块链网络的物业管理方法、平台及存储介质 |
| CN111177107A (zh) * | 2019-12-31 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
| CN111177107B (zh) * | 2019-12-31 | 2023-07-25 | 百度在线网络技术(北京)有限公司 | 基于区块链的文件处理方法、装置、设备和存储介质 |
| CN111417946B (zh) * | 2020-02-24 | 2023-08-04 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
| CN111417946A (zh) * | 2020-02-24 | 2020-07-14 | 支付宝(杭州)信息技术有限公司 | 基于区块链的共识处理 |
| CN111432009B (zh) * | 2020-03-30 | 2023-04-07 | 深圳壹账通智能科技有限公司 | 一种区块链数据的同步方法、装置及电子设备、存储介质 |
| CN111432009A (zh) * | 2020-03-30 | 2020-07-17 | 深圳壹账通智能科技有限公司 | 一种区块链数据的同步方法、装置及电子设备、存储介质 |
| CN111368343A (zh) * | 2020-03-31 | 2020-07-03 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
| CN111368343B (zh) * | 2020-03-31 | 2022-11-01 | 北京俩撇科技有限公司 | 一种区块链系统、数据存储方法及装置 |
| CN112235429B (zh) * | 2020-12-17 | 2021-03-30 | 暗链科技(深圳)有限公司 | 一种中心记账式去中心化分布式数据处理方法及系统 |
| CN112235429A (zh) * | 2020-12-17 | 2021-01-15 | 暗链科技(深圳)有限公司 | 一种中心记账式去中心化分布式数据处理方法及系统 |
| CN112287034A (zh) * | 2020-12-24 | 2021-01-29 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
| CN112287034B (zh) * | 2020-12-24 | 2021-04-02 | 腾讯科技(深圳)有限公司 | 一种数据同步方法、设备以及计算机可读存储介质 |
| CN113268408B (zh) * | 2020-12-28 | 2023-11-28 | 上海零数众合信息科技有限公司 | 一种面向开放许可链的自动化测试方法 |
| CN113268408A (zh) * | 2020-12-28 | 2021-08-17 | 上海能链众合科技有限公司 | 一种面向开放许可链的自动化测试方法 |
| WO2024066010A1 (zh) * | 2022-09-30 | 2024-04-04 | 蚂蚁区块链科技(上海)有限公司 | 区块链系统中的交易处理方法、装置及区块链系统 |
| CN116094720A (zh) * | 2022-11-28 | 2023-05-09 | 中国联合网络通信集团有限公司 | 区块链多平台治理方法、装置、服务器及存储介质 |
| CN116226149A (zh) * | 2023-03-02 | 2023-06-06 | 北京理工大学 | 区块链下的支持多种数据类型的统一表达与发布方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN109218079B (zh) | 2021-09-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN109218079A (zh) | 一种区块链网络、部署方法及存储介质 | |
| CN109325855A (zh) | 区块链网络、部署方法及存储介质 | |
| CN109191124A (zh) | 区块链网络、部署方法及存储介质 | |
| CN109325854A (zh) | 区块链网络、部署方法及存储介质 | |
| US11182379B2 (en) | DAG based methods and systems of transaction processing in a distributed ledger | |
| US11556521B2 (en) | System and method for providing an interface for a blockchain cloud service | |
| US11088854B2 (en) | Securing blockchain access through a gateway on behalf of a communication device | |
| CN112527912B (zh) | 基于区块链网络的数据处理方法、装置及计算机设备 | |
| US11853291B2 (en) | Privacy preserving architecture for permissioned blockchains | |
| CN109241032A (zh) | 账本数据库组件、运行方法及存储介质 | |
| CN115701078B (zh) | 跨链交易处理方法、装置、电子设备以及存储介质 | |
| CN109785136A (zh) | 一种区块链的交易处理方法、客户端及区块链网络 | |
| CN111737104B (zh) | 区块链网络服务平台及其测试用例共享方法、存储介质 | |
| CN110490282A (zh) | 溯源方法、溯源装置、溯源系统和存储介质 | |
| CN109189396A (zh) | 智能合约引擎组件、运行方法及存储介质 | |
| WO2022206210A1 (zh) | 基于区块链的资产管理 | |
| US12425249B2 (en) | Dividing data storage and service operations among plural blockchains | |
| Yewale | Study of blockchain-as-a-service systems with a case study of hyperledger fabric implementation on Kubernetes | |
| CN113643032A (zh) | 一种基于区块链的信息处理方法、装置及数据管理系统 | |
| US10839387B2 (en) | Blockchain based action and billing | |
| CN113987071B (zh) | 基于Hyperledger Fabric的外部桥接跨链方法、装置、设备和介质 | |
| Zhang | Interworking Mechanism of Blockchain Platforms for Secure Tourism Service | |
| Ruggeri | Blockchain for Smart Cities: systems, infrastructures and citizens | |
| CN113987566A (zh) | 基于Hyperledger Fabric的内部桥接跨链方法、装置、设备和介质 | |
| HK40092308B (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 |