首页 / 专利库 / 资料储存系统 / 分布式账本 / 区块链 / 区块链账本 / 区块链网络、部署方法及存储介质

链网络、部署方法及存储介质

阅读:1028发布:2020-10-02

专利汇可以提供链网络、部署方法及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 提供一种 区 块 链 网络,部署方法及存储介质,区块链网络包括:共识 节点 ,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;账本 数据库 节点,用于将所述账本中的账本数据解构为键值对并存储;以及,根据所存储的键值对,响应所述终端针对所述账本数据的链下查询 请求 。,下面是链网络、部署方法及存储介质专利的具体信息内容。

1.一种链网络,其特征在于,所述区块链网络包括:
共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
账本数据库节点,用于将所述账本解构为键值对并存储;以及,根据所存储的键值对,响应所述终端针对所述账本的链下查询请求
2.根据权利要求1所述的区块链网络,其特征在于,
所述账本数据库节点,还用于连接所述共识节点,从所述共识节点处同步获取所述账本。
3.根据权利要求1所述的区块链网络,其特征在于,
所述账本数据库节点,还用于将所述键值对形式的数据集合存储至非结构化数据库中;
或者,将解构得到的每个键值对数据分别打包形成对应的文件,以文件的方式存储形成的所述文件。
4.根据权利要求1所述的区块链网络,其特征在于,所述区块链网络还包括:
备份节点,对应在业务中的色为备案业务主体而部署,用于将所维护的账本与所述共识节点所维护的账本进行同步,以更新所述备份节点维护的账本。
5.根据权利要求4所述的区块链网络,其特征在于,
所述账本数据库节点,还用于连接所述备份节点,从所述备份节点处同步获取所述备份节点维护的所述账本。
6.根据权利要求4所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
7.根据权利要求4所述的区块链网络,其特征在于,
所述备份节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证账本数据,并形成所述待验证账本数据是否存储于所述账本的存在性查询结果。
8.根据权利要求4所述的区块链网络,其特征在于,
所述备份节点,还用于根据维护的账本来响应账本验证请求,在账本数据的存在性证明中查询待验证账本数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
9.根据权利要求4所述的区块链网络,其特征在于,
所述备份节点,还用于根据所绑定的业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证。
10.根据权利要求1所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点。
11.根据权利要求1所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为交易方时,在所述区块链网络中对应相应业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点。
12.根据权利要求1所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
13.根据权利要求1所述的区块链网络,其特征在于,
当所述共识节点对应参与业务的业务主体的角色为备案方时,在所述区块链网络中部署与其他业务主体共同接入的共识节点。
14.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于与其他的共识节点进行账本的同步。
15.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
16.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证账本数据,并形成所述待验证账本数据是否存储于所述账本的存在性查询结果。
17.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于根据维护的账本提供账本验证请求,在账本数据的存在性证明中查询待验证账本数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
18.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
19.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他共识节点根据所接收到的交易进行排序并封装形成区块。
20.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
21.根据权利要求1所述的区块链网络,其特征在于,
所述共识节点,还用于当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成所述账本数据中包括所述交易的存在性证明。
22.根据权利要求1至21任一项所述的区块链网络,其特征在于,所述区块链网络还包括:
网关节点,对应不同业务主体而部署、并与对应相应业务主体而部署的共识节点连接,用于根据所绑定的相应业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证;以及,对接入的终端进行管理。
23.根据权利要求22所述的区块链网络,其特征在于,
所述网关节点,还用于接收所述终端提交的交易,并在所述区块链网络中进行广播,以使所述区块链网络中的其他共识节点根据所接收到的交易进行排序并封装形成区块。
24.根据权利要求1所述的区块链网络,其特征在于,所述区块链网络还包括:
合约引擎节点,用于当所述共识节点执行所述交易时,通过部署的智能合约引擎组件执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
25.一种区块链网络部署方法,其特征在于,所述方法包括:
通过共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;
对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
通过账本数据库节点将所述账本解构为键值对并存储;
根据所存储的键值对,响应所述终端针对所述账本的链下查询请求。
26.一种存储介质,其特征在于,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行权利要求25所述的区块链网络部署方法。
27.一种区块链网络,其特征在于,所述区块链网络包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令,实现如权利要求25所述的区块链网络部署方法。

说明书全文

链网络、部署方法及存储介质

技术领域

[0001] 本发明涉及通信技术,尤其涉及一种区块链网络、部署方法及存储介质。

背景技术

[0002] 在实现本发明过程中,发明人发现相关技术提供的区块链网络,查询交易时需要通过调用智能合约中关于交易查询的代码来完成,由于涉及到区块链内的操作,查询效率受到区块链网络自身实时性的制约。

发明内容

[0003] 本发明实施例提供一种区块链网络、部署方法及存储介质,能够实现区块链网络的账本的链下访问,提高账本的查询效率。
[0004] 本发明实施例的技术方案是这样实现的:
[0005] 第一方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
[0006] 共识节点,用于对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;对所述交易结果执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
[0007] 账本数据库节点,用于将所述账本解构为键值对并存储;以及,根据所存储的键值对,响应所述终端针对所述账本的链下查询请求
[0008] 第二方面,本发明实施例提供一种区块链网络的部署方法,所述方法包括:
[0009] 通过共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果;
[0010] 对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新所述共识节点维护的账本;
[0011] 通过账本数据库节点将所述账本解构为键值对并存储;
[0012] 根据所存储的键值对,响应所述终端针对所述账本的链下查询请求。
[0013] 第三方面,本发明实施例提供一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于实现本发明实施例提供的区块链网络部署方法。
[0014] 第四方面,本发明实施例提供一种区块链网络,所述区块链网络包括:
[0015] 存储器,用于存储可执行指令;
[0016] 处理器,用于执行所述存储器中存储的可执行指令,实现本发明实施例提供的所述区块链网络部署方法。
[0017] 本发明实施例具有以下有益效果:
[0018] 1)、账本数据库节点将区块链网络的账本解构为键值对并存储,以形成统一的键值对形式的数据集合,使得数据访问具备通用性;
[0019] 2)、区块链网络的账本存储于区块链网络中独立的账本数据库节点中,使得终端可以采用链下访问的方式直接与账本数据库节点通信进行账本查询,提高了账本的查询效率。附图说明
[0020] 图1是本发明实施例提供的是本发明实施例提供的区块链网络的功能架构示意图;
[0021] 图2是本发明实施例提供的区块链网络的组织架构示意图;
[0022] 图3是本发明实施例提供的共识节点一个可选的结构示意图;
[0023] 图4是本发明实施例提供的区块链网络的部署结构示意图一;
[0024] 图5是本发明实施例提供的区块链网络的部署结构示意图二;
[0025] 图6是本发明实施例提供的区块链网络的部署结构示意图三;
[0026] 图7是本发明实施例提供的区块链网络的部署结构示意图四;
[0027] 图8是本发明实施例提供的区块链网络的部署结构示意图五;
[0028] 图9是本发明实施例提供的区块链网络的部署结构示意图六;
[0029] 图10是本发明实施例提供的区块链网络的部署结构示意图七;
[0030] 图11是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的示意图;
[0031] 图12是本发明实施例提供的应用于账本数据库节点解构账本的示意图;
[0032] 图13是发明实施例提供的账本数据库组件的部署示意图;
[0033] 图14是本发明实施例提供的在区块链网络中部署智能合约引擎组件的部署示意图;
[0034] 图15是本发明实施例提供的开发环境中部署智能合约引擎组件的部署示意图;
[0035] 图16是本发明实施例提供的智能合约引擎组件的部署示意图;
[0036] 图17是本发明实施例提供的区块链网络的部署流程示意图。

具体实施方式

[0037] 为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0038] 除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
[0039] 对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
[0040] 1)交易(Transaction),等同于计算机术语“事务”,包括对智能合约的调用,以实现对账本中的目标账户的相关数据的操作,包括增、查、改的操作修改账户中的键值(Key-Value)对形式的数据,或者在账本中增加新的账户,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
[0041] 2)区块(Block),记录一段时间内交易所更新的账本数据的数据结构,被标记上时间戳和之前一个区块的独特标记(例如数字指纹),区块经过区块链网络中节点的共识验证后,会被追加到区块链的末尾成为新的区块。
[0042] 3)区块链(Block chain),区块以顺序相连的方式组合成的一种链式数据结构,在每个区块中引用前一个区块或者其子集的哈希值,从而以密码学的方式保证所记录交易的防篡改和防伪造。
[0043] 4)区块链网络,通过共识的方式将新区块纳入区块链的一系列的、无中心的节点的集合。
[0044] 5)账本(Ledger),区块链网络中以账户为维度所记录的数据的总和,包括账本数据、账本状态、账本状态证明和区块索引等元素。
[0045] 6)账本数据,实际区块数据存储,即区块链中记录的一系列有序的、不可篡改的交易的记录,可以表现为文件系统的文件的形式,交易中调用的智能合约被执行时,实现对账户/账户中数据的更新。
[0046] 7)账本状态,也称为状态数据,即账本数据的状态,可以表现为数据库终中的键值对的形式,其中实时账本状态用于表示共识的交易所更新的键值对的最新记录,历史账本状态用于表示键值对的历史记录。
[0047] 8)存在性证明,是对账本数据以加密学方式实现的存在真实性的证明,例对账本数据计算默克尔(Merkle)树的方式证明。
[0048] 9)共识(Consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对交易结果达成一致,实现共识的机制包括工作量证明(PoW)、权益证明(PoS,Proof of Stake)、股份授权证明(DPoS,Delegated Proof-of-Stake)、消逝时间量证明(PoET,Proof of Elapsed Time)等。
[0049] 10)智能合约(Smart Contracts),也称为链码(Chaincode),部署在区块链网络中的根据条件而触发执行的程序,用于通过查询、增加、修改来操作账本,以实现对账本的查询或更新。
[0050] 11)响应于,用于表示所执行的操作所依赖的条件或者状态,当满足所依赖的条件或状态时,所执行的一个或多个操作可以是实时的,也可以具有设定的延迟;在没有特别说明的情况下,所执行的多个操作不存在执行先后顺序的限制。
[0051] 下面说明实现本发明实施例的区块链网络的示例性的功能架构,参见图1,图1本发明实施例提供的区块链网络的功能架构示意图,包括应用层101、共识层102、网络层103、数据层104和资源层105,下面分别进行说明。
[0052] 资源层105封装各种可用的计算资源和存储资源,例如计算机、服务器/集群和中的计算资源和存储资源,进行抽象并向数据层104提供统一的接口以屏蔽实现资源层105的底层硬件的差异性。
[0053] 计算资源包括各种形式的处理器,例如中央处理器(CPU)、应用专用集成电路(ASIC,Application Specific Integrated Circuit)、专用集成电路和现场可编程阵列(FPGA,Field-Programmable Gate Array)的各种形式的处理器。
[0054] 存储资源包括各种易失性存储器和非易失性存储器等各种类型的存储介质。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)。易失性存储器可以是随机存取存储器(RAM,Random Access Memory),其用作外部高速缓存。
[0055] 资源层105的计算资源和存储资源可以被映射为区块链网络中各种类型的节点,实现本发明实施例的存储介质存储了用于实现本发明实施例的区块链网络部署方法的可执行指令,一旦被部署到节点的可执行指令被执行,实现节点的底层资源(例如各种类型的处理器)将实现区块链网络中各种类型的节点的部署、以及执行各种类型节点的功能,从而实现针对业务过程中的交易的账本、以及基于账本的各种应用。
[0056] 作为示例,可执行指令可以采用软件(包括系统程序和应用程序)、软件模块、脚本、插件等的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件或者适合在计算环境中使用的其它单元。
[0057] 数据层104封装了实现账本的各种数据结构,包括以文件系统实现的账本数据,以数据库形式实现的账本数据和存在性证明。
[0058] 网络层103封装了点对点(P2P)网络协议、数据传播机制和数据验证机制、接入和认证机制和业务主体身份。P2P网络协议实现区块链网络中节点之间的通信,数据传播机制保证了交易/交易结果在区块链网络中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点之间传输数据的可靠性;接入和认证机制用于基于业务主体身份对终端的接入和认证进行管理。
[0059] 共识层102封装了区块链中传播的交易结果达成一致性的机制,包括POS、POW和DPOS等,支持共识机制的可插拔。
[0060] 应用层101封装了区块链网络能够实现的各种业务,包括交易结算、溯源和存证等。
[0061] 下面说明实现本发明实施例的区块链网络的示例性的组织架构,参见图2,图2本发明实施例提供的区块链网络的组织架构示意图,包括至少两个共识节点110,以及账本数据库节点140,作为示例,图2中仅示出了共识节点110-1、共识节点110-2,以及账本数据库节点140-1;共识节点110-1和共识节点110-2是针对参与业务的两个不同业务实体在业务中所实现的色而对应部署;网关节点130-1和网关节点130-2对应不同业务主体而部署、并与对应相应业务主体而部署的共识节点连接。共识节点110响应通过终端300提交的交易以更新账本,并在终端300的用户界面310显示各种中间结果或最终结果。账本数据库节点140-1连接共识节点110-1,从所述共识节点110-1处同步获取共识节点110-1所维护的账本,将所述账本解构为键值对并存储;以及,根据所存储的键值对,响应终端300针对所述账本的链下查询请求。
[0062] 下面以共识节点为例,说明实现本发明实施例的区块链网络中节点的示例性结构,可以理解地,区块链网络100中的备份节点120及其他节点的硬件结构可以根据共识节点的硬件结构而对应实施。
[0063] 参见图3,图3是本发明实施例提供的共识节点110一个可选的结构示意图,共识节点110可以是一个或多个服务器,根据共识节点110的结构,可以预见共识节点110的其他的示例性结构,因此这里所描述的结构不应视为限制,例如可以省略下文所描述的部分组件,或者,增设下文所未记载的组件以适应某些应用场景的特殊需求。
[0064] 图3所示的共识节点110包括:至少一个处理器1101、存储器1104、至少一个网络接口1102。共识节点110中的各个组件通过总线系统1103耦合在一起。可理解,总线系统1103用于实现这些组件之间的连接通信。总线系统1103除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统1103。
[0065] 存储器1104可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。本发明实施例描述的存储器1104旨在包括这些和任意其它适合类型的存储器。
[0066] 处理器1101可以是一种集成电路芯片,具有信号的处理能,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0067] 存储器1104能够存储可执行指令以支持共识节点110的操作,这些可执行指令的示例包括:用于在共识节点110上操作的程序、插件和脚本等各种形式的软件模块,程序例如可以包括操作系统和应用程序,其中,操作系统包含各种系统程序和驱动程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含实现共识节点110各种功能的程序。
[0068] 结合上文可知,实现本发明实施例的区块链网络通过提供为一系列的存储器和处理器的形式,在存储器中存储有可执行指令,当可执行指令被处理器执行时,在运行处理器和存储器的多个机器部署有与业务主体的角色相适配的共识节点,当然还可以部署有其他类型的节点。
[0069] 作为本发明实施例提供的区块链部署方法采用软硬件结合实施的示例,本发明实施例所提供的区块链部署方法可以直接体现为由处理器1101执行的上述不同形式的软件模块,软件模块可以位于存储介质中,存储介质位于存储器1104,处理器1101读取存储器1104中软件模块包括的可执行指令,结合必要的硬件(例如,包括处理器1101以及连接到总线系统1103的其他组件)完成共识节点110的功能。
[0070] 下面说明实现本发明实施例的区块链网络支撑多个业务主体参与业务的示例性应用,参与业务的业务主体在所参与业务中所实现的角色根据业务主体的业务诉求而定。
[0071] 在一个示例性的业务中,业务主体的角色至少可以包括交易方,还可以包括协作方、监管方、认证方和备案方,下面分别进行说明。
[0072] 交易方是业务中的主要角色,交易方彼此之间就开展的一项或多项业务具有在维护共同的账本中记录交易的日志的业务诉求,例如,在账本中记录交易方之间的数字资产、商品库存的状态的变化。
[0073] 协作方,在业务中与交易方协同完成交易过程的业务主体,向交易方提供必要的业务支持,或者用于完成交易方在业务中所实现的部分业务环节的业务实体。
[0074] 监管方,是对交易方的交易结果具有监管诉求的业务主体,不参与交易方的具体交易过程,例如,对交易有监管权限/责任的相关职能部门。
[0075] 认证方,是对交易方、或对交易方所交易的对象(例如实体商品、虚拟商品、数字资产等)具有行业认证资质的业务主体,账本中可以包括认证方针对对象所签发的认证信息(例如产品质量认证、产地认证等),以供在后续的交易/使用过程中证明交易方的合法资质、以及交易对象的质量等。
[0076] 备案方,是对业务的账本有备份诉求的业务实体,不参与交易方的具体交易过程,例如,对账本有监察权限的智能部门,对账本提供验证服务的第三方机构等。
[0077] 下面说明实现本发明实施例的区块链网络中根据业务主体的角色节点的示例性部署结构,区块链网络中除了根据参与方的角色而部署共识节点(例如针对部分角色而部署共识节点,或者针对全部角色而部署共识节点,针对业务主体是否部署共识节点、以及部署共识节点的数量,根据业务主体在业务中所实现的角色而确定)、账本数据库节点,还可以部署网关节点、合约引擎节点和备份节点。
[0078] 参见图4,图4是本发明实施例提供的区块链网络100的部署结构示意图,区块链网络100中部署有共识节点110、账本数据库节点140。在图4中示例性示出了共识节点110-1至共识节点110-5,以及账本数据库节点140-1。账本数据库节点140-1连接共识节点110-4。
[0079] 需要指出,区块链网络100中部署共识节点110的数量不仅限于图4所示,例如,可以部署更多的共识节点,或者,在区块链网络中仅针对业务的两个角色为交易方的业务主体而部署对应的共识节点;可以理解地,一个业务至少有两个交易方,因此区块链网络中部署的共识节点的数量至少为两个。
[0080] 在一些实施例中,区块链网络100中的共识节点110通过对计算设备(例如,计算机、服务器/集群、云)进行如图1所示的资源层105的计算资源和存储资源进的抽象,并在此基础上部署数据层104的账本、网络层103的协议/机制、共识层102的共识机制以及应用层101的应用而实现。
[0081] 可以理解,对于下文中所记载的区块链网络100中的其他类型的节点,可以通过对资源抽象并进行相应的部署而实现。
[0082] 在一些实施例中,在区块链网络中对应所述业务主体是否部署共识节点、以及部署的共识节点的数量,与所述业务主体在所述业务中实现的角色相适配,下面结合图1中不同角色业务主体而部署节点的示例进行说明。
[0083] 示例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连接的终端(图中未示出)。
[0084] 共识节点110-4连接账本数据库节点140-1,当共识节点110-4对自身维护的账本更新后,账本数据库节点140-1从共识节点110-4处同步获取账本,将所述账本解构为键值对并存储;并根据所存储的键值对,响应终端针对所述账本的链下查询请求。
[0085] 在一个业务中通常至少有两个共识节点参与,因此在区块链网络中部署有至少两个共识节点。其中,针对不同角色的业务主体而部署的共识节点的数量可以根据相应业务主体的业务负荷确定,从而保证交易的处理效率;当然,针对业务主体部署的共识节点的数量也可以为设定值。
[0086] 以角色为交易方的业务主体为例,业务负荷可以从以下至少一个方面确定:接入业务主体的终端的总量;窗口时间(如一小时)接入业务主体的终端数量峰值;窗口时间内接入业务主体的终端提交交易的总量,等等。
[0087] 示例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外部的终端(图中未示出)。
[0088] 业务主体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的外部的终端(图中未示出)。
[0089] 示例3)参见图4,业务主体200-4在业务中的角色为监管方时,在区块链网络100中对应业务主体200-4部署有至少一个共识节点,即共识节点110-4,共识节点110-4向来自监管方的终端300-7提供接入。
[0090] 示例4)参见图4,业务主体200-5在业务中的角色为认证方时,在区块链网络100中对应相应业务主体200-5部署有至少一个共识节点,即共识节点110-5。
[0091] 继续说明实现本发明实施例的区块链网络还部署有备份节点的示例性部署结构。在一些实施例中,参见图5,图5是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署与共识节点110连接的备份节点
120,其中,备份节点120针对角色为备案方的业务主体200-6对应部署。账本数据库节点
140-1,与共识节点110-4相连接,由于与共识节点110-4相连,使得账本数据库节点140-1可以从共识节点110-4处进行账本同步至账本数据库节点140的本地。
[0092] 继续说明实现本发明实施例的区块链网络还部署有备份节点的示例性部署结构。在一些实施例中,参见图6,图6是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署与共识节点110连接的备份节点
120,其中,备份节点120针对角色为备案方的业务主体200-6对应部署。业务主体200-6作为备案方,在区块链网络100中对应业务主体200-6部署有一个备份节点120,图6中还示例性的示出了账本数据库节点140-2,账本数据库节点140-2连接备份节点120。账本数据库节点
140-2从备份节点120处同步获取账本,将所述账本解构为键值对并存储;并根据所存储的键值对,响应终端针对所述账本的链下查询请求。
[0093] 继续说明实现本发明实施例的区块链网络还部署有备份节点的示例性部署结构。在一些实施例中,参见图7,图7是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署与共识节点110连接的备份节点
120,在图7中示例性的示出了账本数据库节点140-1及账本数据库节点140-2,其中,包括与共识节点110-4连接的账本数据库节点140,以及与备份节点120连接的账本数据库节点
140-2,从而不论是以哪种方式部署的账本数据库节点140不管采用那种连接方式,都能够用于同步账本到账本数据库节点140的本地。
[0094] 继续说明实现本发明实施例的区块链网络还部署有合约引擎节点的示例性部署结构。在一些实施例中,参见图8,图8是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署合约引擎节点150,连接对应角色为交易方的业务主体200-2而部署的共识节点110-3,用于当共识节点110-3需要执行交易时,代替共识节点110-3执行交易中所调用的智能合约,将执行得到的交易结果返回共识节点110-3。
[0095] 通过在区块链网络中部署合约引擎节点,将执行智能合约的负荷从共识节点转移,能够解除对共识节点执行智能合约的IT能力的限制,尤其适用于IT能力受限的业务主体,以及由于接入过多终端而导致执行合约的高负荷的共识节点,例如针对交易方部署的共识节点。
[0096] 继续说明实现本发明实施例的区块链网络还部署有网关节点的示例性部署结构。在一些实施例中,针对每个业务主体可以部署一个或多个网关节点,用于向来自所归属的业务主体的终端提供接入,网关节点可以分为公共网关节点和私有网关节点,其中公共网关节点不仅可以向业务主体内部的终端提供接入,还可以向业务主体外部的终端提供接入;而私有网关节点限制接入的终端为业务主体内部(例如企业局域网内);通过对网关节点的进行公共/私有类型的划分,可以适应不同业务主体网络环境和对接的终端的差异性需求而部署相应类型的网关节点,节约业务主体的IT能力。
[0097] 在一些实施例中,针对每个业务主体而部署的网关节点的数据可以根据其负荷确定,例如网关节点归属的业务主体的终端(即业务主体后端的终端)的总量;窗口时间(如一小时)接入业务主体的终端数量峰值;窗口时间内来自业务主体的终端所提交交易的总量,等等。
[0098] 参见图9,图9是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署与共识节点110连接的网关节点130,在图9中示例性示出了网关节点130-1至网关节点130-6。
[0099] 其中,网关节点130-1为针对角色为交易方的业务主体200-1部署,向来自业务主体200-1的终端(包括手机终端300-1和桌面终端300-2)提供接入;网关节点130-2为针对角色为交易方的业务主体200-2部署,向来自业务主体200-2的终端(包括物联网终端300-3)提供接入;
[0100] 网关节点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提供接入;网关节点130-6对应业务主体200-3-2部署,向来自业务主体200-3-2的终端300-8提供接入。网关节点根据所绑定的相应业务主体的身份,对请求接入的终端所归属的业务主体进行身份认证、以及,对接入的终端进行管理。
[0101] 实现本发明实施例的区块链网络中针对角色为交易方的主体对应部署有至少一个网关节点,由于一个业务中的交易方的数量至少为两个,因此区块链网络中至少部署有两个网关节点。
[0102] 继续说明实现本发明实施例的区块链网络还部署有其它节点的示例性部署结构。在一些实施例中,参见图10,图10是本发明实施例提供的区块链网络的部署结构示意图,基于图4示出的区块链网络100,区块链网络100中还可以部署与共识节点110连接的网关节点
130、与共识节点110连接的备份节点120、以及与共识节点110连接的合约引擎节点150。
[0103] 需要说明的是,本发明实施例的区块链网络的部署结构并不限于以上组合,可以是(共识节点+合约引擎节点)与网关节点、账本数据库节点、备份节点的任意组合,例如区块链网络可以包括共识节点、合约引擎节点、网关节点及账本数据库节点;或者,共识节点、合约引擎节点、网关节点及备份引擎节点等。
[0104] 在上述的区块链网络的部署结构方案中,对于交易方部署与其业务负荷相适配的共识节点以支撑业务的开展效率,对于协作方则提供与所协同的交易方共用共识节点的部署方案,有利于交易方与协作方的业务耦合;针对备案方则鉴于其IT能力的限制,采用与其他角色的业务主体共用共识节点的部署方案,备案方的IT能力不再受到限制;从而实现了适配据业务主体的角色的多样性,以及适配IT能力的差异性的技术效果。
[0105] 接下来对区块链网络中部署的各个节点的功能进行说明。接下来基于表1及图10对区块链网络中共识节点110、备份节点120、网关节点130、账本数据库节点140、合约引擎节点150以及接入到区块链网络100的终端300的示例性功能,可以理解地,以下关于功能的说明同样适用于本发明实施例其他附图提供的区块链网络的部署结构。
[0106] 以下以终端300-1为例说明终端300的功能,其他终端实现的功能可以根据下文而理解。在一些实施例中,终端300用于实现以下两种功能,分别进行说明。
[0107] 功能1)绑定终端用户身份
[0108] 终端300-1用于绑定用户的身份信息,实现基于用户身份的管理和认证。例如,根据绑定的用户身份信息对用户进行身份验证,以限制未通过身份验证的用户的业务行为,例如发起交易的权限。
[0109] 功能2)签署交易
[0110] 终端300-1签署一笔交易,例如可以包括以下字段:Tx(clientID,chaincodeID,txPayload,timestamp,clientSig)。
[0111] 其中,clientID指明了终端300-1的ID,对应的IP地址等信息;chaincode ID是需要调用的智能合约的ID,明确了需要调用智能合约的版本信息等;调用智能合约的业务数据与参数封装在txPayload中;clientSig是对整个交易携带的数据的数字签名,用于供共识节点110接收到交易时对交易数据进行验证。
[0112] 以下以共识节点110-1为例说明终端共识节点的功能,其他共识节点实现的功能可以根据下文而理解。在一些实施例中,共识节点110-1用于有选择性地实现以下十种功能,分别进行说明。
[0113] 功能1)绑定业务主体身份
[0114] 共识节点110-1用于绑定归属的业务主体即角色为交易方的业务主体200-1的身份,以表明是针对业务主体200-1所部署,服务于对应来自业务主体200-1、以及通过业务主体200-1的终端,包括终端300-1和终端300-2。
[0115] 功能2)广播交易
[0116] 共识节点110-1用于当终端300-1和终端300-2归属于角色为交易方的业务主体200-1,当终端300-1和终端300-2提交的交易被共识节点110-1接收时,将交易广播到区块链网络100中其他的任一共识节点,包括共识节点110-2至共识节点110-5,共识节点110-2至共识节点110-5将通过运行排序服务对接收的交易进行一致性地排序(由排序算法保证排序的一致性),并对排序后的交易进行封装形成新区块。
[0117] 功能3)执行交易
[0118] 共识节点110-1用于根据接收的交易进行排序并封装形成新区块,执行新区块中交易所调用的智能合约,得到交易结果,例如对账本中目标账户的数据的查询结果,对账本中目标账户的数据的更新(增加和修改)的结果。
[0119] 功能4)执行共识
[0120] 共识节点110-1用于将执行新区块中的交易所得到的交易结果与其他任一共识节点(包括共识节点110-2至共识节点110-5)进行共识的过程,当在共识节点110-1至共识节点110-5之间取得关于交易结果的一致性的确认时,共识节点110-1至共识节点110-5会将新区块追加到所维护的区块链的尾部,以更新账本数据。
[0121] 功能5)写入账本状态
[0122] 共识节点110-1用于当执行新区块中的交易所得到的交易结果在共识节点110-1至共识节点110-5之间取得共识时,利用交易结果更新共识节点110-1维护的账本中的账本状态,即将交易所更新的键值对添加到账本状态中,例如交易结果是修改目标账户的数字资产,则在账本状态中增加以键值对形式记录的相应账户的数字资产,账本状态的数据库属性能够支持对账本的快速查询。
[0123] 功能6)写入存在性证明数据
[0124] 共识节点110-1用于当执行新区块中交易所得到的交易结果取得共识时,在共识节点110-1所维护的账本中生成表示交易存在于账本数据中的存在性证明,以作为账本的快照。
[0125] 功能7)同步账本
[0126] 共识节点110-1用于与区块链网络100中的其他的任一共识节点(例如共识节点110-2至共识节点110-5)进行账本的同步,以维护区块链网络100中最新的账本。
[0127] 功能8)查询账本状态
[0128] 共识节点110-1用于响应来自于共识节点所归属的业务主体200-1的终端300(例如,终端300-1和终端300-2)的账本状态查询请求,根据账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果并返回终端300。
[0129] 功能9)查询存在性证明数据
[0130] 共识节点110-1用于:当来自业务主体200-1的终端300提交用于进行待验证数据的查询的交易(交易调用智能合约在存在性证明中进行查询)时,将响应归属于业务主体200-1的终端300(例如,终端300-1和终端300-2)的存在性查询请求,根据共识节点110-1所维护的账本数据的存在性证明,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果返回终端300。
[0131] 以图11为例,区块3的默克尔树路径可以唯一表达在区块3的生成期间存在某个特定的交易,共识节点110-1计算待验证数据的哈希值,并根据默克尔树路径计算默克尔树径的根哈希,如果计算的根哈希与账本快照中的根哈希一致则确定待验证数据存在于区块3中。
[0132] 功能10)验证账本
[0133] 共识节点110-1根据维护的所述账本响应归属于业务主体200-1的终端300(例如,终端300-1和终端300-2)的账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
[0134] 以下以图10中示出的备份节点120为例说明实现本发明实施例的备份节点的功能。在一些实施例中,备份节点120用于有选择性地实现以下六种功能,分别进行说明。
[0135] 功能1)广播交易
[0136] 备份节点120用于当接收到区块链网络100中某一共识节点110-1广播的交易,将交易继续在区块链网络100中进行广播以实现交易在区块链网络100中的快速扩散。
[0137] 功能2)同步账本
[0138] 备份节点120用于将所维护的账本与所连接的共识节点110-1维护的账本进行同步,以维护区块链网络100中最新的账本。
[0139] 功能3)查询账本状态
[0140] 备份节点120用于响应的终端(例如由备份节点120所归属的业务主体200-6授权的终端、或者是来自任一业务主体的终端)的查询请求,根据备份节点120所维护的账本状态,查询请求携带的键查询实时账本状态或历史账本状态,根据所查询到的值形成账本状态查询结果并返回终端。
[0141] 功能4)查询存在性证明
[0142] 备份节点120用于响应终端(例如由业务主体200-6授权的终端、或者是来自任一业务主体的终端)的存在性查询请求,根据所维护的账本数据的存在性证明,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果,返回终端。
[0143] 功能5)验证账本
[0144] 备份节点120用于根据维护的账本向终端(例如由业务主体200-6授权的终端、或者是来自任一业务主体的终端)响应账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据账本验证请求携带的键查询账本状态,形成验证结果并返回终端300。
[0145] 功能6)绑定业务主体身份
[0146] 备份节点120用于绑定归属的业务主体(即角色为交易方的业务主体200-1)的身份信息,以表明是对应所归属的业务主体200-1而在区块链网络100中部署,从而服务于相应业务主体200-1以执行备份节点120的功能,例如账本同步,即,备份节点120连接区块链网络100中归属于所绑定的业务主体200-1的共识节点(即共识节点110-1和共识节点110-2),并进行账本的同步。
[0147] 以下以图10中网关节点130-1为例说明实现本发明实施例的网关节点的功能。在一些实施例中,网关节点实现以下三种功能,分别进行说明。
[0148] 功能1)广播交易
[0149] 网关节点130-1用于当接收到来自所归属的业务主体200-1的终端300(包括终端300-1和终端300-2)发送的交易时,将交易广播到附近的共识节点,例如共识节点110-1,使交易在区块链网络100中快速扩散。
[0150] 功能2)绑定业务主体身份
[0151] 网关节点130-1用于绑定归属的业务主体即角色为交易方的业务主体200-1的身份,以表明是对应所归属的业务主体200-1而在区块链网络100中部署。
[0152] 功能3)管理终端接入和认证
[0153] 网关节点130-1用于基于用户身份的管理和认证。由于网关节点130-1属于公共网关节点,因此可以向业务200-1内部以及接入业务主体200-1的终端同时基于用户身份的管理和认证。例如,根据绑定的用户身份信息对请求登陆的用户进行身份验证,以限制未通过身份验证的用户的业务行为,例如发起交易和查询交易的行为。
[0154] 接下来对本发明实施例的账本数据库节点的功能进行说明。参见图12,图12是本发明实施例提供的应用于账本数据库节点解构账本的一个示意图,账本数据库节点将文件系统方式存储的账本数据(按照时间轴顺序排列形成的区块)进行多个维度的解构(包括账本、区块、交易、账户、存在性证明和元数据)形成键值对的集合,这些键值对记录的数据的示例包括:区块头中的数据摘要&时间戳;默克尔树中记录的默克尔树路径(交易数据的存在性证明);交易的数据内容;键值对集合可以采用非结构化数据库在存储集群中,例如主从(M aster-Slaver)、副本集(Replica Set)、切片(Sharding)等类型的存储集群。从而能够实现快速查询,当然不局限于非结构化存储方式,例如还可以将解构的每个键值对存储为单独的文件(以键对文件进行命名),同样能够实现键值对的快速查询。
[0155] 继续说明将账本数据解构形成键值对,并形成键值对的存在性证明的方式,参见图11,图11是本发明实施例提供的账本数据解构为键值对数据,并计算存在性证明的一个示意图,各个区块的账本数据被解构多个键值对的结合,以任意两个键值对为叶子节点计算哈希值作为新的叶子节点,并迭代计算哈希值,直至计算得到叶子节点的哈希值,形成对应区块的默克尔树路径,一个示例如:Block3-hash/hash1/hash2/hash3。区块的默克尔树路径能够作为从区块结构得到的键值对数据的存在性进行证明,区块连同对应的默克尔树路径构成区块的快照,通过从多个维度的解构,即使是非结构化的数据最终也能够形成非结构化的形式,从而实现了兼容结构化/非结构化数据可直接上链的技术效果。
[0156] 在一些实施例中,账本数据库节点通过部署账本数据库组件的方式实现上文所述的功能,参见图13,图13是发明实施例提供的账本数据库组件600的部署示意图,账本数据库组件600采用如图11示出的方式来解构和存储账本数据。
[0157] 在图13中示出了账本数据库组件600的不同部署方式,例如,可以部署为区块链独立功能节点(如图10示出的区块链网络100中的账本数据库节点140)。账本数据库组件还可以部署在区块链网络的任一节点,例如,账本数据库组件600部署在如图10示出的共识节点110中,或者,可以部署为独立于区块链网络的存储集群。
[0158] 账本数据协议(Ledger Data Contract)组件610用于实现一个标准的、与外部访问一致的存储管理方式,定义和管理了数据结构以组织账本数据、针对账本数据的操作,解构并存储账本数据的方式;从多个维度解构账本数据形成的键值对集合。
[0159] 账本存储组件620用于将解构的键值对数据存储到非结构性数据库/单个的文件中,从而能够向终端300提供账本的链下访问服务(即不通过共识节点110即可查询账本的服务),这种查询服务不依赖于区块链网络100的内部的交易处理逻辑完成,并提供键值对的方式提供查询服务,查询的数据的维度包括:账本(一条区块链)、交易、账户、元数据、区块和Merkle树。
[0160] 由于这种存储结构具有良好的扩展性,因此即使是单区块大小无限制、账户数量无限制、区块增长无限制的情况,通过解构形成的键值对数据来响应查询请求,相较于查询文件形式的账本数据能够实现更快速地查询。
[0161] 账本数据库组件600还可以用于支持键值对数据的写入,例如,以实施为独立于区块链网络部署的存储集群时,支持终端300以链下的方式写入键值对数据;又例如,实施为账本数据库节点或共识节点时,将写入请求封装为交易提交到区块链中,在链上完成写入。
[0162] 继续说明实现本发明实施例的区块链网络执行智能合约的方式。
[0163] 在一些实施例中,实现本发明实施例的执行智能合约的功能通过运行智能合约组件;例如图4至图10的共识节点110中可以部署智能合约引擎组件来实现执行智能合约的功能。
[0164] 在另一些实施例中,实现本发明实施例的区块链网络中可以部署一类独立的用于运行智能合约引擎组件的合约引擎节点,用以代替区块链网络中的共识节点执行交易中所调用的智能合约,并向共识节点返回执行智能合约得到的交易结果。接下来对本发明实施例的合约引擎节点的功能进行说明。
[0165] 通过在区块链网络中部署合约引擎节点,将执行智能合约的负荷从共识节点转移,能够解除对共识节点执行智能合约的IT能力的限制,尤其适用于IT能力受限的业务主体,以及由于接入过多终端而导致执行合约的高负荷的共识节点,例如针对交易方部署的共识节点。
[0166] 实现本发明实施例的智能合约引擎组件具有智能合约的编译/模拟运行功能(利用模拟的账本)、以及智能合约的执行功能(执行结果应用于区块链网络的真实账本),能够根据所部署的环境(例如自动检测所部署的环境,或者接收开发者的关于部署环境的设置),自动设置其中的子模块的工作状态和离线状态,从而在智能合约的编译/模拟测试功能、以及智能合约的执行功能之间自动切换。例如,在部署于区块链网络中时实现智能合约的执行功能,而在部署于开发环境中时实现智能合约的编译/模拟运行功能。
[0167] 当然,智能合约引擎组件也可以根据预设置而自动调整其中的子模块的在线状态(即,与外部的连接被激活的状态)和离线状态(即,与外部的连接被旁路的状态),下面结合智能合约引擎组件处于不同部署环境时设置不同模块的工作/离线状态,以自动切换智能合约的编译/模拟测试功能、以及智能合约的执行功能的示例进行说明。
[0168] 结合图6、图10,并参见图14,图14是本发明实施例提供的在区块链网络中部署智能合约引擎组件700的部署示意图,智能合约引擎组件700被部署为如图6、图10示出的区块链网络中的独立的合约引擎节点150。
[0169] 智能合约模块710用于实现的功能包括:智能合约的编译(由编译器711实现)/模拟测试功能(编译器711和执行器712协同实现),以及智能合约的执行功能(由执行器712实现);账本访问适配器720用于实现的功能包括:根据部署环境而提供本地数据源形式的模拟的账本供测试智能合约,或通过远程代理的方式提供区块链网络100中的真实的账本以供执行器712执行智能合约。
[0170] 根据部署于区块链网络的环境,智能合约模块710中的执行器712处于在线状态,账本访问适配器720中的账本远程代理模块722用于根据区块链网络中的部署环境而处于在线状态,而智能合约模块710中的编译器711则处于离线状态。
[0171] 在智能合约引擎组件700部署于区块链网络100的环境中,一个示例性的交易处理过程如下。
[0172] 共识节点110中的交易处理模块1102用于对终端300提交的交易进行封装形成新区块,并通过调用合约引擎节点150中的合约引擎组件700,合约引擎组件700中的执行器712用于代替共识节点执行交易中所调用的智能合约来读/写账本,账本远程代理模块722用于实现执行器712和账本之间的通信代理功能,从账本读取智能合约需要读/写的账本数据,执行器712将接收的账本数据执行智能合约得到交易结果,然后由执行器712将交易结果返回共识节点110。
[0173] 共识节点110中的共识模块1101针对交易结果与区块链网络100中的其他共识节点取得共识时,将会触发执行器712进行读/写账本,执行器712将通过账本远程代理模块722来读/写账本,对于写入账本来说,包括将交易结果存储到账本状态,以及将包含交易的新区块存储到账本数据。
[0174] 参见图15,图15是本发明实施例提供的开发环境中部署智能合约引擎组件700的部署示意图,智能合约引擎组件700以嵌入的方式部署到开发者的开发环境中,与开发环境中的开发组件(图15中以Maven编译插件为例)和测试组件(图15中以Junit测试组件为例)适配。
[0175] 根据智能合约引擎组件700部署在开发环境,智能合约模块710中的编译器711、执行器712、集成开发环境(IDE,Integrated Development Environme nt)模拟器721处于在线状态,以支持开发者使用智能合约的编译(由编译器711实现)/模拟测试功能(编译器711和执行器712协同实现),而智能合约模块710中的账本远程代理模块722则处于离线状态。
[0176] 在智能合约引擎组件700部署于开发环境中,如图15所示的一个示例性的交易处理过程如下。
[0177] 在编译智能合约(项目)的阶段,开发环境中的编译插件调用编译器711进行智能合约的编译;在测试智能合约的阶段,开发环境中的测试组件调用执行器712执行智能合约,IDE模拟器721基于本地数据源模拟区块链网络的完备账本,向执行器712提供本地数据源形式的账本数据,以由执行器712对模拟的账本数据执行智能合约中的读/写操作,形成交易结果;通过执行智能合约的中间结果和最终结果用以定位出错代码。
[0178] 参见图16,图16是本发明实施例提供的智能合约引擎组件的部署示意图,贯穿智能合约的开发和链上部署阶段。
[0179] 在智能合约的项目管理和开发测试阶段,在集成开发环境(如Eclipse)中进行定义智能合约编译的各种依赖关系以及编译插件;编译插件编译、打包智能合约的代码,包括智能合约的打包文件(CONTRACT.jar)以及开发者针对打包文件的数字签名(Signature.cert),以根据智能合约源代码进行智能合约代码的编译;智能合约的测试用例完全依赖于本地数据源的账本,不依赖于区块链网络中的节点维护的账本数据,[0180] 在智能合约的部署阶段,签署数字签名的智能合约被部署到如图10所示的共识节点110中,从而共识节点110能够执行终端300提交的交易中所引用的智能合约并形成交易结果。
[0181] 智能合约引擎组件提供的智能合约的工程化环境:开发语言成熟、工具链完整、可重用、可分发、可验证、可管理;通过与开发环境的测试组件和编译组件的适配,能够延续业务系统的开发模式,并直接利用现有的持续集成设施,降低了智能合约开发的学习成本;可以进行完全本地化的单元测试。
[0182] 继续结合图10,说明在实现发明实施例的区块链网络在一个企业级的应用场景中的示例性应用。在企业级的应用场景中,涉及如下几个业务主体:大企业,对应角色为交易方的业务主体200-1和业务主体200-2;伙伴企业,对应角色为协作方的业务主体200-3-1和业务主体200-3-2;监管机构,对应角色为监管方的业务主体200-4;备案中心,对应角色为备案方的业务主体200-4;认证中心,对应角色为认证方的业务主体200-5。
[0183] 区块链网络100中根据业务主体的角色部署共识节点110,还可以部署备份节点120、网关节点130、账本数据库节点140和合约引擎节点150;终端300以及各种类型的节点的示例性功能分配如下表1所示。
[0184]
[0185]
[0186] 表1
[0187] 在上述的区块链网络针对各方的角色进行适配部署节点,对于大企业部署具有大多数功能的共识节点以支撑区块链系统的主要/全功能,包括交易的执行、共识、各种查询和验证等;同时通过公/私有网关节点的方式满足大企业对接终端的来源的差异性的现状,有利于大企业业务系统的简化;对于伙伴企业则提供与大企业共用共识节点的部署方案,有利于大企业与伙伴企业的业务耦合;针对备案中心则鉴于其IT能力的限制,采用共识节点的部署方案,备案中心不需要提升IT能力以参与交易的执行、共识和记账过程;针对认证中心/监管机构则对应部署共识节点以满足认证产品/监管业的诉求;实现了区块链网络的部署结构适配业务主体的角色的多样性,以及适配IT能力的差异性的技术效果。
[0188] 至此,已经说明实现本发明实施例的区块链网络的各种示例性部署结构及其各类型节点的功能,下面,以图10示出的区块链网络100说明实现本发明实施例的区块链网络支撑业务运行的示例性部署方案。
[0189] 参见图17,图17是本发明实施例提供的区块链网络的部署流程示意图,结合步骤201至步骤203进行说明。
[0190] 步骤201,通过共识节点对终端提交的交易排序后打包为新区块,执行所述新区块中的交易得到交易结果。
[0191] 这里,在区块链网络中部署至少两个共识节点,所述共识节点对应参与业务的不同业务主体而部署。
[0192] 步骤202,对所述交易结果在所述区块链网络中共识节点之间执行共识,并根据执行共识后的交易结果更新共识节点维护的账本。
[0193] 步骤203,通过账本数据库节点将所述账本解构为键值对并存储。
[0194] 这里,在实际应用中,账本数据库节点可以与共识节点连接,从共识节点处同步获取所述账本,然后进行解构并存储解构得到的键值对。终端可直接建立与账本数据库节点的通信连接,发送账本状态或账本数据的查询请求,账本数据库节点根据所存储的键值对,响应终端针对所述账本的链下查询请求。
[0195] 在一些实施例中,提供根据参与方的角色是否部署对应的共识节点的部署方案,包括:当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体部署有至少一个共识节点;当所述业务主体在所述业务中的角色为交易方时,在所述区块链网络中对应相应的业务主体、以及相应业务主体的协作方部署有共同的至少一个共识节点;当所述业务主体在所述业务中的角色为监管方或认证方时,在所述区块链网络中对应相应业务主体部署有至少一个共识节点。
[0196] 在一些实施例中,还提供在区块链网络中部署有角色为备案方的部署方案,包括:当对应所述业务主体在所述业务中的角色为备案方,在所述区块链网络中部署与其他任一业务主体共同接入的共识节点。
[0197] 在一些实施例中,还提供在共识节点部署“绑定业务主体身份”功能的部署方案,包括:在共识节点中绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
[0198] 在一些实施例中,还提供在共识节点部署“同步账本”功能的部署方案,包括:共识节点与所述区块链网络中的其他任一共识节点进行账本的同步。
[0199] 在一些实施例中,还提供在共识节点部署“检索账本数据”功能的部署方案,包括:共识节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
[0200] 在一些实施例中,还提供在共识节点部署“检索存在性证明”功能的部署方案,包括:共识节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在所述存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
[0201] 在一些实施例中,还提供在共识节点部署“写入账本状态”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,利用所述交易结果更新账本状态中的键值对。
[0202] 在一些实施例中,还提供在共识节点部署“写入存在性证明”功能的部署方案,包括:共识节点当执行所述新区块中交易所得到的交易结果取得共识时,在所述账本中生成表明所述账本数据中包括所述交易的存在性证明。
[0203] 在一些实施例中,还提供在共识节点部署“验证账本”功能的部署方案,包括:共识节点根据维护的所述账本提供账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
[0204] 在一些实施例中,还提供在共识节点部署“广播交易”功能的部署方案,包括:共识节点当接收到所述终端提交的交易时,在所述区块链网络中广播所述交易,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序并封装形成区块。
[0205] 在一些实施例中,还提供在区块链网络部署网关节点并部署“绑定业务主体身份信息”功能的部署方案,网关节点数量至少为两个,对应参与业务的不同业务主体而部署,并与归属于相应业务主体的共识节点连接,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署。
[0206] 在一些实施例中,还提供在网关节点部署“管理终端接入和认证”功能的部署方案,包括:网关节点对请求接入的终端进行身份认证、以及,对接入的终端进行管理。
[0207] 在一些实施例中,还提供在网关节点部署“广播交易”功能的部署方案,包括:网关节点当接收到所述终端向所述网关节点提交的交易时,在所述区块链网络中进行广播,以使所述区块链网络中的其他任一共识节点根据所接收到的交易进行排序并封装形成区块。
[0208] 在一些实施例中,还提供在区块链网络部署备份节点并部署“同步账本”功能的部署方案,网关节点为对应在所述业务中的角色为备案方的业务主体而部署,用于绑定所归属的业务主体的身份信息,以表明是对应所归属的业务主体而在所述区块链网络中部署;将所维护的账本与所连接的共识节点所维护的账本进行同步,以更新所维护的账本。
[0209] 在一些实施例中,还提供在备份节点部署“检索账本数据”功能的部署方案,包括:所述备份节点根据维护的账本状态来响应账本状态查询请求,根据所述账本状态查询请求携带的键查询实时账本状态或历史账本状态,并根据所查询到的值形成账本状态查询结果。
[0210] 在一些实施例中,还提供在备份节点部署“检索存在性证明”功能的部署方案,包括:备份节点根据所维护的账本数据的存在性证明,响应待验证账本数据的存在性查询请求,在实时存在性证明和历史存在性证明中查询所述待验证数据,并形成所述待验证数据是否存储于所述账本的存在性查询结果。
[0211] 在一些实施例中,还提供在备份节点部署“验证账本”功能的部署方案,包括:所述备份节点根据维护的账本响应账本验证请求,在账本数据的存在性证明中查询待验证数据,以及,根据所述账本验证请求携带的键查询账本状态,形成验证结果。
[0212] 在一些实施例中,还提供在区块链网络部署合约引擎节点的部署方案,包括:将合约引擎节点连接区块链网络中的共识节点或备份节点,当所述共识节点需要执行所述交易时,通过合约引擎节点部署的智能合约引擎组件执行所述交易中所调用的智能合约,将得到的交易结果返回所述共识节点。
[0213] 综上所述,本发明实施例具有以下有益效果:
[0214] 1)根据业务主体在业务中所实现的角色来部署各类型节点及其数量,如共识节点、网关节点和备份节点,实现了根据业务主体灵活部署的技术效果,简化了业务主体的业务系统的复杂度,降低了部分业务主体的IT能力的要求;
[0215] 2)通过在交易的处理流程采用对交易进行共识(而不是现有技术对区块进行共识),在保证共识的效率基础上,相较于现有技术提供的交易提案和交易提交两个阶段交易处理方案,简化了交易处理流程,并且能够通过共识节点来获得完备的账本。
[0216] 3)部署合约引擎节点能够减轻共识节点在执行交易过程中的负荷,其计算能力可以直接耦合到业务主体用于执行共识的资源上,从而不需要对已有业务系统进行升级,降低了业务主体的业务系统的复杂度。
[0217] 4)部署数据库节点提供账本的链下形式的数据库访问,减轻共识节点响应查询的负荷,并且能够支持多版本、并发地高效查询的效果。
[0218] 本发明实施例还提供了一种存储介质,存储有可执行指令,当所述可执行指令被执行时,用于引起处理器执行本发明实施例所述的区块链网络部署方法。
[0219] 本发明实施例还提供了一种区块链网络,所述区块链网络包括:
[0220] 存储器,用于存储可执行指令;
[0221] 处理器,用于执行所述存储器中存储的可执行指令,实现本发明实施例提供的所述的区块链网络部署方法。
[0222] 以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈