CN114721832A - 一种区块链节点的初始化方法及装置 - Google Patents

一种区块链节点的初始化方法及装置 Download PDF

Info

Publication number
CN114721832A
CN114721832A CN202210513644.5A CN202210513644A CN114721832A CN 114721832 A CN114721832 A CN 114721832A CN 202210513644 A CN202210513644 A CN 202210513644A CN 114721832 A CN114721832 A CN 114721832A
Authority
CN
China
Prior art keywords
computer
blockchain
block chain
computing
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210513644.5A
Other languages
English (en)
Inventor
王晓亮
宁志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Xita Technology Co ltd
Original Assignee
Beijing Xita Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Xita Technology Co ltd filed Critical Beijing Xita Technology Co ltd
Priority to CN202210513644.5A priority Critical patent/CN114721832A/zh
Publication of CN114721832A publication Critical patent/CN114721832A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

一种区块链节点的初始化方法及装置,所述方法包括:于第一计算机中,部署区块链节点的分布式账本;于第二计算机中,部署区块链节点的智能合约运行环境;于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。应用以上方案,既可以满足性能和存储两种资源灵活变动的需求,又能够提高区块链的可扩展性和迁移便利性。

Description

一种区块链节点的初始化方法及装置
技术领域
本说明书涉及区块链技术领域,尤其涉及一种区块链节点的初始化方法及装置。
背景技术
通常认为,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式。
一般而言,区块链网络作为一个分布式***,其实际工作能力通常取决于区块链节点的运算、存储等性能指标;由于链上数据的可信程度不同于传统的本地数据,为了在处理过程中延续数据的可信程度,链上数据处理(合约)及其结果也必须经过共识,因此区块链节点通常被设计为一个存储与计算紧密绑定的综合节点。
在实际应用中,由于区块链业务对计算资源和存储资源需求的多变性,传统设计的区块链节点的计算资源与存储资源往往其中一者先达到瓶颈,导致另一者得不到充分利用,出现资源浪费的情况。
发明内容
有鉴于此,本说明书公开了一种区块链节点的初始化方法和装置。
根据本说明书实施例的第一方面,公开了一种区块链节点的初始化方法,包括:
于第一计算机中,部署区块链节点的分布式账本;
于第二计算机中,部署区块链节点的智能合约运行环境;
于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
可选的,在所述目标区块链节点加入区块链网络之前,所述方法还包括:
于所述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;
所述使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络,包括:
使所述第一计算机在与所述第二计算机建立网络连接后,基于所述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过所述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于所述第一计算机中部署的共识算法代码参与所述区块链网络的共识。
可选的,所述方法还包括:
于第三计算机中,部署区块链节点的用户交互接口,并建立所述第三计算机与所述第一计算机、第二计算机之间的网络连接,以使所述用户交互接口具备响应于用户指令对所述目标区块链节点执行对应的交互操作的功能。
可选的,所述第一计算机包括第一计算集群,所述第二计算机包括第二计算集群。
可选的,所述方法还包括:
接收存储类资源调整请求;
基于所述存储类资源扩充请求中携带的储量调整参数,增加或减少所述第一计算集群中用于支持所述区块链节点的分布式账本的存储类资源。
可选的,所述方法还包括:
接收计算类资源调整请求;
基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。
根据本说明书实施例的第二方面,公开了一种区块链节点的初始化装置,包括:
第一部署模块,于第一计算机中,部署区块链节点的分布式账本;
第二部署模块,于第二计算机中,部署区块链节点的智能合约运行环境;
网络连接模块,于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
可选的,所述装置还包括:
第三部署模块,在所述目标区块链节点加入区块链网络之前,于所述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;
所述网络连接模块进一步:
使所述第一计算机在与所述第二计算机建立网络连接后,基于所述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过所述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于所述第一计算机中部署的共识算法代码参与所述区块链网络的共识。
可选的,所述装置还包括:
第四部署模块,于第三计算机中,部署区块链节点的用户交互接口,并建立所述第三计算机与所述第一计算机、第二计算机之间的网络连接,以使所述用户交互接口具备响应于用户指令对所述目标区块链节点执行对应的交互操作的功能。
可选的,所述第一计算机包括第一计算集群,所述第二计算机包括第二计算集群。
可选的,所述装置还包括第一调整模块,用于:
接收存储类资源调整请求;
基于所述存储类资源扩充请求中携带的储量调整参数,增加或减少所述第一计算集群中用于支持所述区块链节点的分布式账本的存储类资源。
可选的,所述装置还包括第二调整模块,用于:
接收计算类资源调整请求;
基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。
根据本说明书实施例的第三方面,公开了一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现上述任一方面实施例所述的方法。
根据本说明书实施例的第四方面,公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方面实施例所述的方法。
以上技术方案中,由于在初始化区块链节点时,将区块链节点的智能合约运行环境与分布式账本分离在两台计算机中部署,再通过网络连接的方式将上述两台计算机联合作为一个目标区块链节点加入区块链网络,使得区块链节点对内实现了计算与存储的分离,使得可以对区块链节点的存储资源或计算资源分别进行调整,避免传统初始化方案中存储资源与计算资源二者总有一者有浪费现象的情况;
除此之外,由于上述方案可以令区块链节点内部计算资源与存储资源分离,因此区块链节点的存储资源的扩展和迁移可以更加灵活,能够更好适应复杂的区块链业务变化。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书文本一同用于解释原理。
图1是本说明书示出的一种相关技术中区块链节点的结构与交互示例图;
图2是本说明书示出的一种区块链节点的初始化方法的流程示例图;
图3是本说明书示出的一种区块链节点的结构与交互示例图;
图4是本说明书示出的一种一个第一计算机可以与多个第二计算机相连接的区块链节点结构交互示例图;
图5即为本说明书示出的一种一个第二计算机可以与多个第一计算机相连接的区块链节点结构交互示例图;
图6是本说明书示出的一种区块链节点的初始化装置的结构示例图;
图7是本说明书示出的一种用于区块链节点的初始化的计算机设备的结构示例图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书一个或多个实施例中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是一部分实施例,而不是全部的实施例。基于本说明书一个或多个实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与本说明书的一些方面相一致的***和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
通常认为,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种分布式的基础架构与计算范式。
一般而言,区块链网络作为一个分布式***,其实际工作能力通常取决于区块链节点的运算、存储等性能指标;由于链上数据的可信程度不同于传统的本地数据,为了在处理过程中延续数据的可信程度,链上数据处理(合约)及其结果也必须经过共识,因此区块链节点通常被设计为一个存储与计算紧密绑定的综合节点。
请参见图1,图1为本说明书示出的一种相关技术中的区块链节点结构与交互示意图;在该示例中,区块链节点中可以存在有一消息总线,区块链节点中的用户接口、鉴权、共识、链存储、执行器、网络等等功能模块均可以通过该消息总线进行数据交互,其中,用户接口可以用于对接操作该节点的用户,而网络模块则可以用于与区块链网络中的其他节点(节点2、节点3、节点4)之间进行数据沟通。
在上述典型结构下,由于区块链业务对计算资源和存储资源需求的多变性,区块链节点的计算资源与存储资源往往其中一者先达到瓶颈,导致另一者得不到充分利用,出现资源浪费的情况。例如,假设某个智能合约中存在大量的计算步骤,可能导致区块链节点的计算资源被大量消耗,达到计算瓶颈之后,节点就无法接手其他的智能合约的业务,这时即使区块链节点的存储资源仍有余裕,也无法得到利用;又例如,假设某个存证业务会消耗大量存储资源,导致某个区块链节点搭载的存储设备接近满载,这时将无法为新出的区块提供存储空间,导致区块链业务暂停,即使区块链节点的计算资源仍有闲置,也无法得到利用。
基于此,本说明书提出一种将区块链节点的存储资源与计算资源分离管理部署,以避免两者之一提前达到瓶颈导致另一者出现资源闲置、被浪费的技术方案。
在实现时,在初始化区块链节点的过程中,可以将区块链节点的智能合约运行环境与分布式账本分离在两台计算机中部署,再通过网络连接的方式,将上述两台计算机联合作为一个目标区块链节点加入区块链网络。
在以上技术方案中,由于在初始化区块链节点时,将区块链节点的智能合约运行环境与分布式账本分离在两台计算机中部署,再通过网络连接的方式将上述两台计算机联合作为一个目标区块链节点加入区块链网络,使得区块链节点对内实现了计算与存储的分离,使得可以对区块链节点的存储资源或计算资源分别进行调整,避免传统初始化方案中存储资源与计算资源二者总有一者有浪费现象的情况;
除此之外,由于上述方案可以令区块链节点内部计算资源与存储资源分离,因此区块链节点的存储资源的扩展和迁移可以更加灵活,能够更好适应复杂的区块链业务变化。
下面通过具体实施例并结合具体的应用场景对本说明书进行描述。
请参考图2,图2是本说明书一实施例提供的一种区块链节点的初始化方法,该方法可以包括以下步骤:
S201,于第一计算机中,部署区块链节点的分布式账本;
S202,于第二计算机中,部署区块链节点的智能合约运行环境;
S203,于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
上述区块链,则可以指任意形态和类别的区块链;在本说明书中,区块链也被称之为分布式账本技术,是一种由若干台计算设备共同参与“记账”,共同维护一份完整的分布式数据库的技术;通常,区块链具有去中心化、公开透明、每台计算设备可以参与数据库记录、并且各计算设备之间可以快速的进行数据同步的性质。区块链一般被划分为三种类型:公有链(Public Blockchain),私有链(Private Blockchain)和联盟链(ConsortiumBlockchain)。此外,还可以有上述多种类型的结合,比如私有链+联盟链、联盟链+公有链等。通常各种类型的区块链性质可能存在差异,进而可以用于满足不同的技术需求;例如,如果希望获得最高的去中心化程度,则可以选用公有链;如果希望兼顾去中心化程度和性能,则可以选用联盟链等等。在实施中,如果上述区块链采用联盟链的形式,那么组成上述区块链的区块链节点则可以由相关管理部门、普通用户、网络运营商等等多种类型的实体各自提供,以保证区块链记账权的相对公正合理;又例如,如果上述区块链采用通用的可编程区块链形式,则可以使用对应的、通用的智能合约构建相关功能,并取得更高的可信度;可见,各种形式的区块链各有优势,本领域技术人员可以根据具体的需求自行选择上述区块链的类型,本说明书不限定上述区块链的具体类型。
上述第一计算机与第二计算机,可以指任意形式和种类的计算机,例如常规的单台服务器、或者服务器集群、或者个人计算机、或者智能手机等等;例如,如果某服务节点拥有两台计算机,其中一台计算机A具有较高的计算性能,而另一台计算机B则具有较好的存储扩展性能,则可以将上述计算机A作为第二计算机,将上述计算机B作为第一计算机,实现上述方案,以实现对于资源的充分利用。
可以理解的是,除了传统意义上的物理计算机以外,还可以是通过虚拟化技术,将虚拟机或者与计算机资源绑定的容器作为上述第一计算机和第二计算机。具体而言,在计算机集群中,往往可以通过容器管理引擎对计算机集群的计算和存储资源进行调度,以获得性能指标符合业务需求的虚拟机;例如,在基于Kubernetes的计算集群中,可以设计出存储资源较为充裕的Pod作为上述第一计算机,而设计出计算资源较为充裕的Pod作为上述第二计算机。
在本说明书中,可以于第一计算机中,部署区块链节点的分布式账本,而于第二计算机中,部署区块链节点的智能合约运行环境;具体而言,由于区块链节点理论上可以被分为用于执行软件代码的计算机硬件、以及被执行后提供区块链节点功能的计算机软件代码;在实现上述步骤时,可以将偏重于区块链节点的计算功能的智能合约运行环境软件代码部署在第二计算机中,而将偏重于区块链节点的存储功能的分布式账本软件代码部署在第一计算机中,使得原本运行在一处的区块链节点软件代码被分离运行,并各自具有各自的硬件资源支持。
当然可以理解的是,如果上述第一计算机与第二计算机并非物理计算机,而是基于虚拟化技术分割出的虚拟机或者容器,那么实际上上述第一计算机与第二计算机可能仍然运行在同一物理硬件(例如计算机集群)上;但是,由于计算机集群在使用虚拟化技术分割出虚拟机或者容器时,会通过管理引擎对于计算、存储等资源进行分配调度,因而上述第一计算机与第二计算机依然可以被视为硬件资源相对分离的两台计算机。
需要明确的是,在本说明书中,上述步骤S201与步骤S202没有严格的顺序限制,即,既可以先执行上述步骤S201,再执行上述步骤S202,也可以先执行上述步骤S202,再执行上述步骤S201,或者两者并行执行等等;上述两个步骤的具体执行时序的改变不会影响本说明书所公开方案的最终技术效果。
在本说明书中,可以在上述步骤S201与步骤S202执行完毕之后,于上述第一计算机与上述第二计算机之间建立网络连接,以使上述第一计算机与上述第二计算机联合作为一个目标区块链节点加入区块链网络。具体而言,由于区块链节点的区块链账本以及区块链节点的智能合约运行环境分别被部署在了第一计算机与第二计算机中,因此可以通过网络连接的方式,将上述两台计算机连接起来,使得部署在上述第一计算机中的区块链分布式账本可以为部署在第二计算机中的智能合约运行环境提供数据存取服务,而第二计算机中的智能合约运行环境也可以向第一计算机中部署的区块链分布式账本提供计算服务,因此,在上述两者通过网络连接成功后,上述两台计算机可以联合完成作为一个区块链节点所需要完成的任务,故,可以将上述两台计算机联合,作为一个目标区块链节点加入区块链网络。
从上述目标区块链节点的外部视角看上述过程,即为一个目标区块链节点的初始化以及加入区块链网络的过程,与常规组网方式并无特殊差异,因此,本说明书公开的、在区块链节点内部进行分划设计的方案几乎可以与现有的任意区块链组网技术相兼容。
值得一提的是,虽然相关技术中存在Rollup技术,亦提到将区块链的计算任务与存储任务分离完成,但在典型的Rollup技术场景下,通常的做法是新建另一条子链用于支撑被分离出的计算任务,将该子链作为主链的智能合约执行器进行调用,并仅在主链上存证上述计算任务的输入和输出。该方案下,虽然理论上如果用于计算的子链作恶,可以被主链中的存证内容查证,但毕竟计算过程的共识范围从主链缩小到了子链,实质上降低了区块链计算的可信度。
与上述Rollup技术相比较,本申请则并非新建了另外一条子链,而是直接在区块链节点内部进行了切分和重组,没有影响区块链节点加入区块链网络的过程,区块链计算的可信度仍然能够由整个区块链网络的共识机制保证;因此区块链计算的可信性不会如传统Rollup技术方案一般受到影响。
在示出的一种实施方式中,上述第一计算机中还可以包括区块链节点软件代码中用于实现其他功能的代码;具体而言,在上述目标区块链节点加入区块链网络之前,还可以于上述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;而在需要使上述第一计算机与上述第二计算机联合作为一个目标区块链节点加入区块链网络时,则可以在上述第一计算机在与上述第二计算机建立网络连接后,基于上述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过上述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于上述第一计算机中部署的共识算法代码参与上述区块链网络的共识。
当然可以理解的是,上述于上述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码的过程,与前述步骤S201、步骤S202之间的先后关系亦无需进行严格限定;本说明书只需要求在使第一计算机与第二计算机联合作为一个目标区块链节点加入区块链网络之前,将上述区块链节点软件代码部署完毕即可。
一般认为,上述区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码与区块链节点的分布式账本功能较为贴近,故将上述代码部署在第一计算机中,可以一定程度上充分利用第一计算机的性能并提高区块链节点整体的运行效率;但可以理解的是,上述区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码并非只能部署在第一计算机中,其也可以部署在第二计算机中,或者,部署在另外的第三计算机中,或者,分离部署在上述多台计算机中;只需保证上述区块链节点软件代码在被执行时能够实现彼此通信交流,可实现区块链节点功能即可。
在示出的另一实施方式中,上述目标区块链节点可以是能够由用户通过用户指令控制的区块链节点;为实现该目的,可以于第三计算机中,部署区块链节点的用户交互接口,并建立上述第三计算机与上述第一计算机、第二计算机之间的网络连接,以使上述用户交互接口具备响应于用户指令对上述目标区块链节点执行对应的交互操作的功能。
应用该方案,由于用户交互接口被独立在第三计算机中部署设置,因而可以减少监听用户操作对于第一计算机和第二计算机的性能浪费,并在用户交互接口出现导致宕机的故障时,可以通过断开第三计算机的方式避免对第一计算机和第二计算机造成负面影响,保障目标区块链节点的链上业务可用性。
可以理解的是,聚合器作为将用户的业务整理发往区块链节点的功能模块,由于其与用户接口的功能存在较强关联,因此也可以被部署在上述第三计算机中。请参见图3,图3是本说明书示出的一种区块链节点的结构和交互示例图;在该示例中,聚合器与用户接口被部署在第三计算机中,即图3中的椭圆部分,用于执行智能合约的运行环境又可以被称为执行器,被部署在第二计算机中,即图3中的圆角矩形部分,而共识、鉴权、链存储(分布式账本)、网络等功能模块可以被部署在第一计算机中,即图3中的大圆形部分;由于用户接口部署在第三计算机中,因此用户可以通过第三计算机(椭圆部分)与目标区块链节点进行交互;由于网络功能模块部署在第一计算机(大圆形部分),因此区块链网络中的其他节点可以通过该第一计算机与该目标区块链节点进行交互。
可以理解的是,由于第二计算机负责的智能合约执行环境部分,与第一计算机负责的链存储部分,两者在业务功能上具有相对分离的性质,因此上述第一计算机部分可以被称为目标区块链节点的L1即第一层,而上述第二计算机部分则可以被称为目标区块链节点的L2即第二层。
在示出的一种实施方式中,上述第一计算机与第二计算机,各自亦可以是计算集群;即,上述第一计算机可以是第一计算集群,上述第二计算机可以是第二计算集群。采用此方案,可以将一个目标区块链节点的不同功能模块分设在两个计算集群中,虽然可能导致节点内信息交流的延迟增高,但亦可以利用两个计算集群各自不同的配置特性,取得更好的资源调度效果。举例而言,第一计算集群是供应商X提供的高存储容量服务集群,而第二计算机群则是供应商Y提供的高算力服务集群,两者报价之和仍低于提供高存储容量、高算力的高端服务集群的供应商Z的报价,这就可以将上述是供应商X提供的高存储容量服务集群作为第一计算集群,将上述供应商Y提供的高算力服务集群作为第二计算集群,部署本说明书所述的方案,从而实现降低成本、改善资源利用率的效果。
在示出的一种实施方式中,上述目标区块链节点还可以根据资源调整请求,对其存储类资源进行调整;可以理解的是,在本说明书中,上述目标区块链节点的存储类资源主要由上述第一计算机提供,因此,可以首先接收存储类资源调整请求;再基于上述存储类资源扩充请求中携带的储量调整参数,增加或减少上述第一计算集群中用于支持上述区块链节点的分布式账本的存储类资源。
例如,如果上述第一计算集群是基于Kubernetes的计算集群,那么,可以通过对Pod的可用资源的调配,增加或减少上述第一计算集群中用于支持上述区块链节点的分布式账本的存储类资源。
类似的,在另一种实施方式中,上述目标区块链节点还可以根据资源调整请求,对其计算类资源进行调整;可以理解的是,在本说明书中,上述目标区块链节点的计算类资源主要由上述第二计算机提供,因此,可以首先接收计算类资源调整请求;基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。同样类似的,如果上述第二计算集群是基于Kubernetes的计算集群,那么,可以通过对Pod的可用资源的调配,增加或减少第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。
可以理解的是,上述调整用于支持所述区块链节点的智能合约运行环境的计算类资源、和/或用于支持上述区块链节点的分布式账本的存储类资源时,既可以对现有的容器或者虚拟机的可用资源属性进行调整,也可以直接通过对用于实现上述功能的容器/虚拟机的数量进行调整。
例如,请参见图4,图4即为本说明书示出的一种一个第一计算机可以与多个第二计算机相连接的区块链节点结构交互示例图;在该示例中,对于临时增加的高算力需求,可以增添若干第二计算机的副本,将计算任务分片完成,例如,按计算任务的App归属进行分片,这可以使得一个第一计算机可以与多个第二计算机相连接;即,目标区块链节点的一个L1可以对接多个L2。
又例如,请参见图5,图5即为本说明书示出的一种一个第二计算机可以与多个第一计算机相连接的区块链节点结构交互示例图;在该示例中,对于临时增加的高存储量需求,可以增添若干第一计算机的副本,将存储任务分流完成,从而使得一个第二计算机可以与多个第一计算机相连接,即,目标区块链节点的一个L2可以对接多个L1。
当然可以理解的是,如果业务复杂,上述两种示例也能可同时实现,即,目标区块链节点的多个L2可以对接多个L1,等等,本说明书无需进行更多列举。基于以上资源调整的示例可见,将本说明书所述的方案应用在计算集群环境下,由于计算机群中针对划分出的容器或者虚拟机的可用资源可以灵活调整,因而能够以更高效的方式调整用于支持所述区块链节点的智能合约运行环境的计算类资源、和/或用于支持上述区块链节点的分布式账本的存储类资源。
上述内容即为本说明书针对所述区块链节点的初始化方法的全部实施例。基于以上实施例可知,本方案使得区块链节点对内实现了计算与存储的分离,初始化后形成的架构允许对区块链节点的存储资源或计算资源分别进行调整,避免传统初始化方案中存储资源与计算资源二者总有一者有浪费现象的情况;而且,由于上述方案可以令区块链节点内部计算资源与存储资源分离,因此区块链节点的存储资源的扩展和迁移可以更加灵活,能够更好适应复杂的区块链业务变化。
本说明书还提供了对应的区块链节点的初始化装置的实施例如下:
本说明书提出一种区块链节点的初始化装置,该区块链节点的初始化装置的结构示例如图6所示,包括:
第一部署模块601,于第一计算机中,部署区块链节点的分布式账本;
第二部署模块602,于第二计算机中,部署区块链节点的智能合约运行环境;
网络连接模块603,于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
在示出的一种实施方式中,所述装置还可以包括:
第三部署模块,在所述目标区块链节点加入区块链网络之前,于所述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;所述网络连接模块进一步:使所述第一计算机在与所述第二计算机建立网络连接后,基于所述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过所述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于所述第一计算机中部署的共识算法代码参与所述区块链网络的共识。
在示出的一种实施方式中,所述装置还可以包括:第四部署模块,于第三计算机中,部署区块链节点的用户交互接口,并建立所述第三计算机与所述第一计算机、第二计算机之间的网络连接,以使所述用户交互接口具备响应于用户指令对所述目标区块链节点执行对应的交互操作的功能。
在示出的一种实施方式中,所述第一计算机可以包括第一计算集群,所述第二计算机可以包括第二计算集群。
在示出的一种实施方式中,所述装置还可以包括第一调整模块,可以用于:接收存储类资源调整请求;基于所述存储类资源扩充请求中携带的储量调整参数,增加或减少所述第一计算集群中可以用于支持所述区块链节点的分布式账本的存储类资源。
在示出的一种实施方式中,所述装置还可以包括第二调整模块,可以用于:接收计算类资源调整请求;基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中可以用于支持所述区块链节点的智能合约运行环境的计算类资源。
本说明书实施例还提供一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现前述的区块链节点的初始化方法。
图7示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作***和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的区块链节点的初始化方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的***、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

Claims (14)

1.一种区块链节点的初始化方法,包括:
于第一计算机中,部署区块链节点的分布式账本;
于第二计算机中,部署区块链节点的智能合约运行环境;
于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
2.根据权利要求1所述的方法,在所述目标区块链节点加入区块链网络之前,所述方法还包括:
于所述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;
所述使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络,包括:
使所述第一计算机在与所述第二计算机建立网络连接后,基于所述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过所述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于所述第一计算机中部署的共识算法代码参与所述区块链网络的共识。
3.根据权利要求1所述的方法,所述方法还包括:
于第三计算机中,部署区块链节点的用户交互接口,并建立所述第三计算机与所述第一计算机、第二计算机之间的网络连接,以使所述用户交互接口具备响应于用户指令对所述目标区块链节点执行对应的交互操作的功能。
4.根据权利要求1所述的方法,所述第一计算机包括第一计算集群,所述第二计算机包括第二计算集群。
5.根据权利要求4所述的方法,所述方法还包括:
接收存储类资源调整请求;
基于所述存储类资源扩充请求中携带的储量调整参数,增加或减少所述第一计算集群中用于支持所述区块链节点的分布式账本的存储类资源。
6.根据权利要求4所述的方法,所述方法还包括:
接收计算类资源调整请求;
基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。
7.一种区块链节点的初始化装置,包括:
第一部署模块,于第一计算机中,部署区块链节点的分布式账本;
第二部署模块,于第二计算机中,部署区块链节点的智能合约运行环境;
网络连接模块,于所述第一计算机与所述第二计算机之间建立网络连接,以使所述第一计算机与所述第二计算机联合作为一个目标区块链节点加入区块链网络。
8.根据权利要求7所述的装置,所述装置还包括:
第三部署模块,在所述目标区块链节点加入区块链网络之前,于所述第一计算机中,部署区块链节点的共识算法代码、区块链网络通信代码、以及鉴权代码;
所述网络连接模块进一步:
使所述第一计算机在与所述第二计算机建立网络连接后,基于所述第一计算机中部署的区块链网络通信代码向区块链网络发送加入请求,通过所述第一计算机中部署的鉴权代码进行权限验证,并在权限验证通过后,基于所述第一计算机中部署的共识算法代码参与所述区块链网络的共识。
9.根据权利要求7所述的装置,所述装置还包括:
第四部署模块,于第三计算机中,部署区块链节点的用户交互接口,并建立所述第三计算机与所述第一计算机、第二计算机之间的网络连接,以使所述用户交互接口具备响应于用户指令对所述目标区块链节点执行对应的交互操作的功能。
10.根据权利要求7所述的装置,所述第一计算机包括第一计算集群,所述第二计算机包括第二计算集群。
11.根据权利要求10所述的装置,所述装置还包括第一调整模块,用于:
接收存储类资源调整请求;
基于所述存储类资源扩充请求中携带的储量调整参数,增加或减少所述第一计算集群中用于支持所述区块链节点的分布式账本的存储类资源。
12.根据权利要求10所述的装置,所述装置还包括第二调整模块,用于:
接收计算类资源调整请求;
基于所述计算类资源调整请求中携带的算力调整参数,增加或减少所述第二计算集群中用于支持所述区块链节点的智能合约运行环境的计算类资源。
13.一种计算机设备,其至少包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,处理器执行所述程序时实现权利要求1~6任一所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1~6任一所述的方法。
CN202210513644.5A 2022-05-12 2022-05-12 一种区块链节点的初始化方法及装置 Pending CN114721832A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210513644.5A CN114721832A (zh) 2022-05-12 2022-05-12 一种区块链节点的初始化方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210513644.5A CN114721832A (zh) 2022-05-12 2022-05-12 一种区块链节点的初始化方法及装置

Publications (1)

Publication Number Publication Date
CN114721832A true CN114721832A (zh) 2022-07-08

Family

ID=82232093

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210513644.5A Pending CN114721832A (zh) 2022-05-12 2022-05-12 一种区块链节点的初始化方法及装置

Country Status (1)

Country Link
CN (1) CN114721832A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832139A (zh) * 2017-09-26 2018-03-23 上海点融信息科技有限责任公司 用于管理区块链节点的计算资源的方法、设备和***
CN108846748A (zh) * 2018-05-31 2018-11-20 杭州秘猿科技有限公司 一种独立进程执行合约的方法及装置
CN111966503A (zh) * 2020-10-20 2020-11-20 支付宝(杭州)信息技术有限公司 智能合约账户的存储空间管理方法和装置
CN112380578A (zh) * 2020-11-20 2021-02-19 天翼电子商务有限公司 一种基于区块链和可信执行环境的边缘计算框架
CN112445865A (zh) * 2021-01-29 2021-03-05 支付宝(杭州)信息技术有限公司 自动化部署区块链网络的方法、装置及云计算平台
CN113704361A (zh) * 2021-10-28 2021-11-26 腾讯科技(深圳)有限公司 事务执行方法、装置、计算设备及存储介质
CN113868711A (zh) * 2021-09-02 2021-12-31 广州广电运通金融电子股份有限公司 一种数据联邦存储方法、查询方法及***
CN114328133A (zh) * 2022-03-16 2022-04-12 北京微芯感知科技有限公司 单机构分布式冲突检测方法、***和存算分离架构
CN114416765A (zh) * 2022-03-28 2022-04-29 北京微芯感知科技有限公司 一种区块链交易无级预测执行方法及***

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107832139A (zh) * 2017-09-26 2018-03-23 上海点融信息科技有限责任公司 用于管理区块链节点的计算资源的方法、设备和***
CN108846748A (zh) * 2018-05-31 2018-11-20 杭州秘猿科技有限公司 一种独立进程执行合约的方法及装置
CN111966503A (zh) * 2020-10-20 2020-11-20 支付宝(杭州)信息技术有限公司 智能合约账户的存储空间管理方法和装置
CN112380578A (zh) * 2020-11-20 2021-02-19 天翼电子商务有限公司 一种基于区块链和可信执行环境的边缘计算框架
CN112445865A (zh) * 2021-01-29 2021-03-05 支付宝(杭州)信息技术有限公司 自动化部署区块链网络的方法、装置及云计算平台
CN113868711A (zh) * 2021-09-02 2021-12-31 广州广电运通金融电子股份有限公司 一种数据联邦存储方法、查询方法及***
CN113704361A (zh) * 2021-10-28 2021-11-26 腾讯科技(深圳)有限公司 事务执行方法、装置、计算设备及存储介质
CN114328133A (zh) * 2022-03-16 2022-04-12 北京微芯感知科技有限公司 单机构分布式冲突检测方法、***和存算分离架构
CN114416765A (zh) * 2022-03-28 2022-04-29 北京微芯感知科技有限公司 一种区块链交易无级预测执行方法及***

Similar Documents

Publication Publication Date Title
CN108809722B (zh) 一种部署Kubernetes集群的方法、装置和存储介质
CN108614726B (zh) 虚拟机创建方法及装置
US20200081731A1 (en) Method, system and apparatus for creating virtual machine
US11128437B1 (en) Distributed ledger for peer-to-peer cloud resource sharing
CN105979007B (zh) 加速资源处理方法、装置及网络功能虚拟化***
US20170070597A1 (en) Client-initiated leader election in distributed client-server systems
US12034608B2 (en) Network resource management method and system, network equipment and readable storage medium
CN112288423A (zh) 一种分布式框架的聚合支付方法和***
US20200052885A1 (en) File storage method and apparatus for blockchain network
CN113645262A (zh) 云计算服务***和方法
EP3813335A1 (en) Service processing method and system based on alliance chain network
CN109104368B (zh) 一种请求连接方法、装置、服务器及计算机可读存储介质
CN111858050B (zh) 服务器集群混合部署方法、集群管理节点及相关***
CN110944067B (zh) 一种负载均衡方法和服务器
CN115086166A (zh) 计算***、容器网络配置方法及存储介质
CN116933886B (zh) 一种量子计算执行方法、***、电子设备及存储介质
CN106576068B (zh) 一种软件安全验证方法、设备及***
CN114721832A (zh) 一种区块链节点的初始化方法及装置
CN115098114A (zh) 一种基于区块链的分布式应用部署方法及装置
CN114661421A (zh) 联盟链中部署链码的方法和***
CN113504981A (zh) 任务调度方法和装置、存储介质及电子设备
CN114625479A (zh) 边缘计算中云边协同应用管理方法及对应的装置
CN115883283A (zh) 一种容器化vnf的部署方法及装置
CN109257201B (zh) 一种License的发送方法和装置
KR20150137766A (ko) 가상머신 스택 생성 시스템 및 방법

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20220708

RJ01 Rejection of invention patent application after publication