CN114157444A - 一种基于容器技术的区块链部署系统及部署方法 - Google Patents

一种基于容器技术的区块链部署系统及部署方法 Download PDF

Info

Publication number
CN114157444A
CN114157444A CN202111061408.6A CN202111061408A CN114157444A CN 114157444 A CN114157444 A CN 114157444A CN 202111061408 A CN202111061408 A CN 202111061408A CN 114157444 A CN114157444 A CN 114157444A
Authority
CN
China
Prior art keywords
node
blockchain
container
software
common
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
CN202111061408.6A
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.)
Tianmin Qingdao International Sandbox Research Institute Co ltd
Zeu Crypto Networks Inc
Original Assignee
Tianmin Qingdao International Sandbox Research Institute Co ltd
Zeu Crypto Networks Inc
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 Tianmin Qingdao International Sandbox Research Institute Co ltd, Zeu Crypto Networks Inc filed Critical Tianmin Qingdao International Sandbox Research Institute Co ltd
Priority to CN202111061408.6A priority Critical patent/CN114157444A/zh
Publication of CN114157444A publication Critical patent/CN114157444A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提供一种基于容器技术的区块链部署系统和方法,系统包括:主节点、远程的普通节点及区块链系统注册中心,主节点为远程的普通节点提供区块链容器内的软件,任何合规的区块链系统需要在区块链系统注册中心报备,区块链容器内的软件经过区块链系统注册中心到达主节点;系统的最外层为区块链容器,区块链容器相当于虚拟机,区块链容器内的软件在区块链容器里运行,区块链容器内包含软件及运行在软件上的智能合约。方法包括:建立区块链系统:主节点将包含区块链系统的区块链容器发送到多个普通节点,普通节点组成区块链系统;启动并运行区块链系统:普通节点运行区块链容器文件并自动部署区块链系统,区块链系统由主节点和多个普通节点构成。

Description

一种基于容器技术的区块链部署系统及部署方法
技术领域
本发明属于区块链、智能合约以及容器(container)和安全通讯协议技术领域,具体特别涉及一种基于容器技术的区块链部署系统及部署方法。
背景技术
现有技术区块链的部署方法分为三类:
(一)传统的区块链数据处理流程。
如图1所示为传统的区块链数据的处理流程。用户要使用区块链系统的存证以及记录功能,需要将用户数据经过网络传输到区块链系统中后,由区块链系统经过共识后存储,具有不可篡改性。但是这样的区块链系统一般是控制在大公司或者大机构里,对于用户数据来说风险较高,用户数据面临被窃取的风险;而且云平台的可靠性的需求低于区块链可靠性的需求,将区块链系统放在云平台上运行,可靠性不足。
(二)发送软件而不发送数据
目前有一种主流的技术方案,核心思想为“发送软件而不发送数据”,即不再由用户上传数据至中央服务器,而是由服务器将软件送至用户端,将处理之后的数据传送回中央服务器,这样原始数据一直在用户手里,那么用户的隐私以及原始数据都得到了保护。发送软件而不发送数据的方法流程如图2所示。这种方案在区块链领域同样可以用到,即“发送区块链软件而不发送数据”,将区块链软件部署在用户端,而不是部署在集中式的多个服务器中(由于这种大型服务器一般掌握在大公司手中)可以保证原始数据不被窃取。这种方式的数据传送效率比较低,在区块链场景下应用会遇到升级的障碍。
(三)使用容器技术输送区块链软件
由于现在大部分区块链软件是一种上层的应用,需要复杂的配置之后才能启动,这对于一般的用户太不友好,所以在此基础上,将区块链软件至于区块链容器中,将这一机制变为“发送容器而不发送数据”,即把包含区块链软件的容器送至用户端,组成区块链系统。
如果传送区块链容器后,却将其中的软件拿出区块链容器,在当地服务器部署。这样容器技术只是一个通讯技术,没有启到容器保护软件和数据的作用。另外这样部署方式,当地区块链软件有可能被更改,而无法控制,存在被篡改的风险。国内外都有使用容器(container)技术来部署区块链系统的研究,但是大多只是停留在将区块链代码存放在容器内,区块链在容器内执行,但是传送过程中可能会出错,例如代码被更改等,总结如下相关问题需要解决:
(1)如何保证区块链容器没有被更改过;
(2)如何保证接收方不会复制软件,到处部署;
(3)区块链代码容器如何存储在系统内;
(4)区块链容器如何在服务区上执行交易;
(5)区块链数据如何在本地存储;
(6)新节点如何加入区块链网络;
(7)原来的主节点如何退出;
其中对于问题(3)-(7)解决难度尤其大,因此需要设计新的基于容器技术的区块链模型以利于区块链部署在用户处的情况下,保护用户的原始数据不被窃取。
发明内容
本发明为了解决现有技术存在的一项或多项技术问题,提出一种基于容器技术的区块链部署方法及部署系统,所使用的基于容器技术的区块链模型,有利于区块链部署在用户处的情况下,保护其原始数据不被窃取。
本发明的目的在于提供一种基于容器技术的区块链部署系统,包括:
主节点、远程的普通节点以及区块链系统注册中心,所述主节点为所述远程的普通节点提供区块链容器内的软件,任何合规的区块链系统需要在所述区块链系统注册中心报备,所述区块链容器内的软件经过所述区块链系统注册中心到达所述主节点,所述区块链系统注册中心具有关联的软件测试中心以及软件提供商,用于开发以及测试所述区块链容器内的软件;所述系统的最外层为所述区块链容器,所述区块链容器相当于一个虚拟机,区块链容器内的软件在区块链容器里运行,所述区块链容器内包含所述软件以及运行在所述软件上的智能合约,其中,所述智能合约由外界提供会包含在所述区块链容器内,所述智能合约是可执行代码,在区块链系统内执行;当所述智能合约由外界提供时,对所述区块链系统进行哈希运算时,由外界提供的所述智能合约不包含在当前所述区块链系统内,否则无法执行防复制机制。这些外来的智能合约依靠一定的机制维持他们的不可更改性以及不能复制性;当所述智能合约包含在所述区块链容器内,即所述区块链容器里存储所述软件,所述软件中再放置一个包含所述智能合约的内含容器,从而使得所述智能合约适配不同的区块链系统。
优选的,所述内含容器具有多个,并且同时并行执行其中的多个所述智能合约,同时所述区块链系统配置投票机制,多个所述智能合约执行完毕后,通过所述投票机制对执行结果进行验证;所述主节点控制普通节点的数目,所述主节点允许讯问节点加入,所述讯问节点使得客户查询区块链系统的资料,但不能参与建块和投票,所述询问节点的部署方式和普通节点部署方式相同。
本发明的目的在于提供一种基于容器技术的区块链部署方法,包括:
步骤1,建立所述区块链系统:所述主节点将包含所述区块链系统的所述区块链容器发送到至少4个普通节点,所述普通节点组成所述区块链系统;
步骤2,启动并运行区块链系统:所述普通节点运行所述区块链容器文件并自动部署所述区块链系统,所述区块链系统由主节点和至少4个普通节点共同构成。
优选的,所述步骤1包括:
步骤11,所述主节点生成区块链容器,然后将所述区块链容器内的软件进行一次哈希运算,将获得的第一哈希值附加在所述软件的文件头后生成所述区块链容器的第二哈希值;
步骤12,将区块链容器以及主节点的数字证书从主节点传送到所述普通节点,所述普通节点收到所述主节点的数字证书以及所述区块链容器后向所述主节点上传每个普通节点的数字证书,用于每个普通节点的身份认证;
步骤13,所述普通节点检验所述软件是否包含恶意代码,如果包含,所述普通节点拒绝所述区块链容器;如果不包含,继续步骤14;
步骤14,所述普通节点在所述区块链容器内部测试所述软件,所述测试由主节点提供的包含所述软件内的测试软件执行;
步骤15,所述普通节点通过签名验证进行身份验证,确保所述软件不能更改,由于在外地部署运行,必须在源头的主节点控制;
步骤16,所述普通节点收到所述区块链容器后进行两次校验,包括校验所述区块链容器以及所述软件是否被篡改过;如果校验没有通过,所述软件启动自动销毁。
优选的,所述步骤2包括:
步骤21,所述主节点确定所述普通节点的身份、数字签名和运行的服务器信息,例如MAC地址等信息;
步骤22,所述主节点和每个所述普通节点确定所述普通节点是否参与新的区块链系统,如果参与,则参与的普通节点发送同意信息给所述主节点;
步骤23,所述主节点收到所述同意信息后,将所述普通节点的公开信息发送给所述参与的普通节点;
步骤24,所述普通节点收到所述公开信息后,开启初始机制,将所述主节点和所有所述普通节点的公开信息置于本地的所述软件内;
步骤25,所述普通节点互相确认并验证每个普通节点的身份和数字签名;
步骤26,由主节点启动第一次共识,所述第一次共识可以使用多种共识协议,共识协议的目的在于建立区块链系统内第一块信息,共识内容是所有参与节点包括主节点和普通节点的公开信息;
步骤27,普通节点收到所述主节点启动第一次共识的信息后,回复所述共识协议,所述共识协议完成后,建立了所述区块链系统内的初始块;
步骤28,重复步骤21-27,从而在所述初始块基础上建立其他区块,从而完成所述区块链系统的启动和运行。
优选的,所述方法还包括在所述区块链系统上存储数据,其中:
(1)数据存储地点:区块链系统产生的数据存在:和区块链系统同一区块链容器内、区块链容器外部的非区块链容器位置或者区块链容器外部的另外一个区块链容器内;如果区块链系统产生的数据放在同一区块链容器内,区块链系统会比较安全,在区块链系统软件升级过程中产生问题;如果置于区块链容器外部的非区块链容器位置,当区块链容器被移除的时候,数据仍然会存留在本地,可以支持区块链系统软件更新,而数据不会遗失,区块链系统更新时,一个新的区块链容器从主节点送来,使用上述同样的流程来安装新的区块链容器即可;如果放在区块链容器外部的另外一个区块链容器内,有点在于数据如果对本地服务器有破坏的行为,由于数据都存在另外一个区块链容器内,不会影响到本地服务器的运行,同时也支持区块链系统软件更新迭代;
(2)数据存储结构:区块链产生的数据可以使用“块中块”的方式,包括在逻辑层或是物理层都可以使用“块中块”方式存储;或者使用其他方式存储,包括传统区块链链条数据结构,然后使用BQL(Blockchain Query Language)语言查询;
(3)数据加密机制:由于区块链系统软件来自主节点提供的区块链容器,区块链系统的行为主要由主节点提供的软件控制,产生的数据需要记载传统区块链系统信息、主节点和区块链容器的信息。
优选的,所述方法还包括软件试运行,其中所述软件试运行需要进行初始化,确保新的区块链系统能够独立进行交易,没有作弊,而且可以被监管;所述软件试运行产生的数据全部保存在区块链系统内,用于以后出错或事故时进行查询;所述软件试运行可以和多个第三方单位合作进行,所述第三方单位包括测试单位、合作单位、数据单位或是监管单位,流程包括:由第三方测试单位提供数据以模拟真实交易场景、区块链系统运行后收集数据、检验所有参与的所述参与节点数据一致、交易是否具备完备性以及交易是否可以被监管;
其中,软件试运行过程中可以连接监管系统。
优选的,所述方法还包括:节点之间的相互认证,普通节点首先存储主节点的数字证书,主节点要保有其他普通节点的数字证书并把所有普通节点的数字证书下发到各个普通节点以便各个普通节点之间相互认证;主节点在传送区块链容器时将主节点的数字证书一起传送,普通节点收到主节点的数字证书后回复确认收到信息并附加自己的普通节点数字证书后将信息发送至主节点;所述主节点将所有所述普通节点的数字证书打包后发送至所有普通节点;所有普通节点都收到其他各个普通节点的数字证书后开始软件试运行工作,在区块链系统交易时,每一次交易都需要验证存储的数字证书进行身份验证以确保没有攻击或恶意节点加入所述区块链系统。
优选的,所述方法还包括:新节点加入所述区块链系统,如果区块链系统有新节点加入,需要先到主节点进行备案,新节点的加入流程如下:
待加入的新节点先向所述主节点发送加入申请以及新节点的信息,数字证书,MAC地址等;
主节点对所述申请以及所述新节点的信息进行审核,如果审核不通过则拒绝所述申请,如果审核通过,则向所述待加入的新节点发送所述区块链容器以及所述主节点的数字证书;
所述待加入的新节点收到所述区块链容器后进行两次哈希验证并部署所述区块链容器;
完成所述部署后发送部署完成信号至主节点,成为已加入的新节点;
所述主节点将所述已加入的新节点的证书下发至各个普通节点,并将所述普通节点的证书发送给所述已加入的新节点;
所述主节点更新自身存储的节点列表以及证书信息,存储已加入的新节点的信息。
所述主节点将所述已加入的新节点的加入报告给区块链系统注册中心。
优选的,所述方法还包括:主节点退出,即实际运行一段时间后,主节点退出区块链系统,并使得其他节点继续运行新的区块链系统,原主节点的退出流程为:
原主节点发送退出信号至各个所述普通节点;
各个所述普通节点投票选择新的主节点;
原主节点和新主节点都以加密方式报备给区块链系统注册中心;
所述区块链系统注册中心同意后,以加密方式通知原主节点和新主节点;
普通节点收到所述退出信号后首先进行身份验证,验证通过后更新其节点列表和节点证书信息,删除原主节点信息,原主节点不再参与任何区块链交易或管理工作;
新主节点主持新的区块链系统的工作并参与新节点加入所述新的区块链系统的审核;
其中,主节点有一个或多个;投票为公平或者非公平投票两种类型,所述非公平投票包括原来主节点权重比较大;当所述区块链系统不在政府监管和管理下,所述区块链系统不报备给注册中心;新主节点可以由原主节点唯一确定,而不是由普通节点投票决定;原主节点可以保留部分权力。
本发明的有益效果:
本发明的方法和系统所使用的协议、区块链软件包括智能合约可以安全传送,提供方可以安全的将软件完整的送给接收方,这样区块链以及智能合约可以高速部署,而不担心软件是否存在安全等问题。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
后文将参照附图以示例性而非限制性的方式详细描述本发明的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分。本领域技术人员应该理解,这些附图未必是按比例绘制的。本发明的目标及特征考虑到如下结合附图的描述将更加明显,附图中:
图1为根据现有技术的传统区块链架构示意图;
图2为根据现有技术的传送软件而不传送数据流程示意图。
图3为根据本发明优选实施例的区块链软件传送原理和流程示意图。
图4为根据本发明优选实施例的容器架构示意图。
图5为根据本发明优选实施例的扩充的容器架构示意图。
图6为根据本发明优选实施例的主节点和普通节点的关系示意图。
图7为根据本发明优选实施例的容器内容示意图。
图8为根据本发明优选实施例的普通节点和主节点相互认证原理示意图。
图9为根据本发明优选实施例的新节点加入流程示意图。
图10为根据本发明优选实施例的原主节点离开系统原理流程示意图。
具体实施方式
为了使得本发明能够针对其发明要点更加明显易懂,下面将结合附图和实例对本发明作进一步的说明。在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
在下面的描述中阐述了很多细节和具体实例,提供这些实例是为了能够更透彻地理解本发明,并且能够将本发明完整形象地传达给本领域的技术人员。虽然本发明能够以很多不同于此描述的其它方式实施,但是本领域技术人员可以在不违背本发明内涵的情况下做相应的推广,因此本发明不受下面公开的具体实例及具体附图所限制。
本实施例中,参与方包括提供方和接收方,负责提供区块链软件或智能合约软件的称为提供方,包括区块链或智能合约软件提供单位,提供方可以是政府监管单位、企业、高校、个人;接收提供方发送地软件的为接收方,接收方预备部署和执行区块链和智能合约应用,可以是政府、企业、高校或个人。所使用的传送机制解决如下技术问题:提供方提供的软件有保障,安全可靠;提供方身份可以被确认;提供方可以确保可以部署的软件数量;接收方接收的软件是提供方提供的,没有更改过;接收方只能部署从提供方来的而没有更改过的软件;接收方身份可以被确认;接收方不能更改从提供方送来的的软件;接收方不能多次部署从提供方送来的的软件;接收方如果在不合规的情形下使用送来的软件,例如多次部署,软件自动销毁。
本实施例提供一种基于容器技术的区块链部署系统,包括:
主节点、远程的普通节点以及区块链系统注册中心,所述主节点为所述远程的普通节点提供区块链容器内的软件,任何合规的区块链系统需要在所述区块链系统注册中心报备,所述区块链容器内的软件经过所述区块链系统注册中心到达所述主节点,所述区块链系统注册中心具有关联的软件测试中心以及软件提供商,用于开发以及测试所述区块链容器内的软件。基于容器技术的区块链部署系统的原理架构以及其中区块链软件的传送流程如图3所示;所述系统的最外层为所述区块链容器,所述区块链容器相当于一个虚拟机,区块链容器内的软件在区块链容器里运行,所述区块链容器内包含所述软件以及运行在所述软件上的智能合约,结构如图4所示。其中,所述智能合约由外界提供会包含在所述区块链容器内,所述智能合约是可执行代码,在区块链系统内执行;当所述智能合约由外界提供时,对所述区块链系统进行哈希运算时,由外界提供的所述智能合约不包含在当前所述区块链系统内,否则无法执行防复制机制。这些外来的智能合约依靠一定的机制维持他们的不可更改性以及不能复制性;当所述智能合约包含在所述区块链容器内,即所述区块链容器里存储所述软件,所述软件中再放置一个包含所述智能合约的内含容器,从而使得所述智能合约适配不同的区块链系统,其结构如图5所示。
作为优选的实施方式,所述内含容器具有多个,并且同时并行执行其中的多个所述智能合约,同时所述区块链系统配置投票机制,多个所述智能合约执行完毕后,通过所述投票机制对执行结果进行验证。
考虑一个最简单的区块链系统,就是具有4个节点的区块链系统,主节点把容器送至至少4个区块链节点上,其结构如图6。一些系统可能想部署更少的节点,例如3个节点,但是在这种情形下,拜占庭问题会很难处理,而系统成为弱化的区块链系统。
作为优选的实施方式,为了性能考虑,主节点会控制普通节点的数目,因为普通节点的数量越多,区块链系统的性能越差。主节点可以允许一些“讯问节点”加入,所述讯问节点使得客户查询区块链系统的资料,但不能参与建块和投票。例如在一定时间,例如一分钟、一小时、或是一天,区块链系统向讯问节点广播区块链上可以公开的数据,而客户可以通过所述讯问节点查询数据。讯问节点的结构类似普通节点,但是由于不参与共识,也不需要交易,没有智能合约,只有普通节点的数据结构和查询软件,询问节点的部署方式和普通节点部署方式相同。
作为优选的实施方式,在中国,区块链系统注册中心为中央网信办,然而目前中央网信办的注册采用线下注册方式,国外是TRISA系统关联的注册中心,是在线上进行注册,而且区块链系统上的交易,每一笔交易都被TRISA系统监管,收集的资料报告到后台监管平台。系统的区块链系统注册中心用于确定某区块链系统存在而且在运行,而且管理区块链软件。
本实施的基于容器技术的区块链部署方法,其基本原理在于:
使用区块链容器的方式从一个主节点到其他远程节点部署区块链系统,在远程节点仍然使用同一区块链容器在当地区块链系统的节点上运行,传送区块链容器而不传送数据,其中主节点作为所述软件的提供方,远程普通节点作为所述软件的接收方。
区块链软件和智能合约可由提供方通过安全协议传送,所述安全协议使用加密计算,多次哈希验证,多次身份认证,反拷贝,反复制,反传送到其他单位;使用这个方法确保:
(1)提供方和接收方同意接收方部署从提供方发送的软件,而且不能更改,只能在接收方特定服务器上执行;
(2)接收方将服务器重要信息,例如MAC地址等传送给提供方,提供方将这些信息置于软件内;
(3)区块链软件可以安全的传送到目标服务器上;
(4)接收方不能更改软件,由于软件内有内置检验机制,例如检验MAC地址,如果发现部署在不同服务器上,软件就会启动自毁的机制;
(5)同样,软件不能复制,如果复制并且部署到另外一个服务器上,部署后软件第一个步骤就是启动自毁机制;
(6)提供方在验证接收方符合上述条件后,软件才能执行。
可以使用传统物理软件传送方式进行,但是这样的传送方式代价高而且慢,并且如果没有以上的机制(4)-(6),从提供方寄来的软件存在很高风险。
本实施例的一种基于容器技术的区块链部署方法,包括:
步骤1,建立所述区块链系统:所述主节点将包含所述区块链系统的所述区块链容器发送到至少4个普通节点,所述普通节点组成所述区块链系统;
步骤2,启动并运行区块链系统:所述普通节点运行所述区块链容器文件并自动部署所述区块链系统,所述区块链系统由主节点和至少4个普通节点共同构成。
作为优选的实施方式,所述步骤1包括:
步骤11,所述主节点生成区块链容器,然后将所述区块链容器内的软件进行一次哈希运算,将获得的第一哈希值附加在所述软件的文件头后生成所述区块链容器的第二哈希值,区块链容器的结构如图7所示。这样的设计方式保障区块链软件没有被更改,接收方不会复制软件,部署到其他服务器中;
步骤12,将区块链容器以及主节点的数字证书从主节点传送到所述普通节点,所述普通节点收到所述主节点的数字证书以及所述区块链容器后向所述主节点上传每个普通节点的数字证书,用于每个普通节点的身份认证;
步骤13,所述普通节点检验所述软件是否包含恶意代码,如果包含,所述普通节点拒绝所述区块链容器;如果不包含,继续步骤14;
步骤14,所述普通节点在所述区块链容器内部测试所述软件,所述测试由主节点提供的包含所述软件内的测试软件执行;
步骤15,所述普通节点通过签名验证进行身份验证,确保所述软件不能更改,由于在外地部署运行,必须在源头的主节点控制;
步骤16,所述普通节点收到所述区块链容器后进行两次校验,包括校验所述区块链容器以及所述软件是否被篡改过;如果校验没有通过,所述软件启动自动销毁。
作为优选的实施方式,所述步骤2包括:
步骤21,所述主节点确定所述普通节点的身份、数字签名和运行的服务器信息,例如MAC地址等信息;
步骤22,所述主节点和每个所述普通节点确定所述普通节点是否参与新的区块链系统,如果参与,则参与的普通节点发送同意信息给所述主节点;
步骤23,所述主节点收到所述同意信息后,将所述普通节点的公开信息发送给所述参与的普通节点;
步骤24,所述普通节点收到所述公开信息后,开启初始机制,将所述主节点和所有所述普通节点的公开信息置于本地的所述软件内;
步骤25,所述普通节点互相确认并验证每个普通节点的身份和数字签名;
步骤26,由主节点启动第一次共识,所述第一次共识可以使用多种共识协议,例如PBFT, CBFT,HotStuff等,共识协议的目的在于建立区块链系统内第一块信息,共识内容是所有参与节点包括主节点和普通节点的公开信息;
步骤27,普通节点收到所述主节点启动第一次共识的信息后,回复所述共识协议,所述共识协议完成后,建立了所述区块链系统内的初始块;
步骤28,重复步骤21-27,从而在所述初始块基础上建立其他区块,从而完成所述区块链系统的启动和运行。
作为优选的实施方式,所述方法还包括在所述区块链系统上存储数据,其中:
(1)数据存储地点:区块链系统产生的数据存在:和区块链系统同一区块链容器内、区块链容器外部的非区块链容器位置或者区块链容器外部的另外一个区块链容器内;本发明所提供的容器技术支持将数据存储在区块链容器内或是区块链容器外。如果区块链系统产生的数据放在同一区块链容器内,由于区块链数据一直增加,所需的容器存储空间会非常大,此外如果区块链容器被移除,内部的数据也会一起消失,因此将软件和产生的数据都存在同一区块链容器内,区块链系统会比较安全,但是这种方法的风险在于数据一直和某区块链软件版本绑在一起,在区块链系统软件升级过程中产生问题。而如果置于区块链容器外部的非区块链容器位置,当区块链容器被移除的时候,数据仍然会存留在本地,可以支持区块链系统软件更新,而数据不会遗失,区块链系统更新时,一个新的区块链容器从主节点送来,使用上述同样的流程来安装新的区块链容器即可。如果放在区块链容器外部的另外一个区块链容器内,有点在于数据如果对本地服务器有破坏的行为,由于数据都存在另外一个区块链容器内,不会影响到本地服务器的运行,同时也支持区块链系统软件更新迭代。
(2)数据存储结构:区块链产生的数据可以使用“块中块”的方式,包括在逻辑层或是物理层都可以使用“块中块”方式存储。当然,区块链产生的数据可以使用其他方式存储,例如传统区块链链条数据结构,然后使用BQL(Blockchain Query Language)语言查询。
(3)数据加密机制:由于区块链系统软件来自主节点提供的区块链容器,区块链系统的行为主要由主节点提供的软件控制。产生的数据需要记载传统区块链系统信息,例如时间戳、哈希等信息,而且需要记录主节点和区块链容器的信息。
作为优选的实施方式,所述方法还包括软件试运行,其中所述软件试运行需要进行初始化,确保新的区块链系统能够独立进行交易,没有作弊,而且可以被监管。虽然软件都是由主节点提供,而且有自毁机制来保证节点诚信,但是由于系统从事金融交易,还需要大量试运行后才能肯定;所述软件试运行产生的数据全部保存在区块链系统内,用于以后出错或事故时进行查询;所述软件试运行可以和多个第三方单位合作进行,所述第三方单位包括测试单位、合作单位、数据单位或是监管单位,流程包括:由第三方测试单位提供数据以模拟真实交易场景、区块链系统运行后收集数据、检验所有参与的所述参与节点数据一致、交易是否具备完备性以及交易是否可以被监管。
作为优选的实施方式,软件试运行过程中可以连接监管系统例如TRISA或是STRISA系统。这些系统会自动处理“了解你的客户”(Know Your Customer, KYC)和反洗钱(Anti-Money Laundering, AML),并且自动报备在监管机构。
作为优选的实施方式,所述方法还包括:节点之间的相互认证,普通节点首先存储主节点的数字证书,主节点要保有其他普通节点的数字证书并把所有普通节点的数字证书下发到各个普通节点以便各个普通节点之间相互认证,身份认证流程如图8所述;主节点在传送区块链容器时将主节点的数字证书一起传送,普通节点收到主节点的数字证书后回复确认收到信息并附加自己的普通节点数字证书后将信息发送至主节点;所述主节点将所有所述普通节点的数字证书打包后发送至所有普通节点;所有普通节点都收到其他各个普通节点的数字证书后开始软件试运行工作,在区块链系统交易时,每一次交易都需要验证存储的数字证书进行身份验证以确保没有攻击或恶意节点加入所述区块链系统。
作为优选的实施方式,所述方法还包括:新节点加入所述区块链系统,如果区块链系统有新节点加入,需要先到主节点进行备案,新节点加入的流程图如图9所示,新节点的加入流程如下:
待加入的新节点先向所述主节点发送加入申请以及新节点的信息,数字证书,MAC地址等;
主节点对所述申请以及所述新节点的信息进行审核,如果审核不通过则拒绝所述申请,如果审核通过,则向所述待加入的新节点发送所述区块链容器以及所述主节点的数字证书;
所述待加入的新节点收到所述区块链容器后进行两次哈希验证并部署所述区块链容器;
完成所述部署后发送部署完成信号至主节点,成为已加入的新节点;
所述主节点将所述已加入的新节点的证书下发至各个普通节点,并将所述普通节点的证书发送给所述已加入的新节点;
所述主节点更新自身存储的节点列表以及证书信息,存储已加入的新节点的信息。
所述主节点将所述已加入的新节点的加入报告给区块链系统注册中心。
作为优选的实施方式,所述方法还包括:主节点退出,即实际运行一段时间后,主节点退出区块链系统,并使得其他节点继续运行新的区块链系统。原主节点离开区块链网络的流程图如图10所示,原主节点的退出流程为:
原主节点发送退出信号至各个所述普通节点;
各个所述普通节点投票选择新的主节点;
原主节点和新主节点都以加密方式报备给区块链系统注册中心;
所述区块链系统注册中心同意后,以加密方式通知原主节点和新主节点;
普通节点收到所述退出信号后首先进行身份验证,验证通过后更新其节点列表和节点证书信息,删除原主节点信息,原主节点不再参与任何区块链交易或管理工作;
新主节点主持新的区块链系统的工作并参与新节点加入所述新的区块链系统的审核。
作为优选的实施方式,可以有多个主节点;投票可以是不一定公平,例如原来主节点权重比较大;系统可以选择不报备给注册中心,这代表该区块链系统不在政府监管和管理下。
作为优选的实施方式,新的主节点可以由原来主节点唯一确定,而不是由普通节点投票决定。
作为优选的实施方式,原主节点可以保留部分权力,例如可以继续控制普通节点的加入。
本发明的有益效果:
本发明的方法和系统所使用的协议、区块链软件包括智能合约可以安全传送,提供方可以安全的将软件完整的送给接收方,这样区块链以及智能合约可以高速部署,而不担心软件是否存在安全等问题。
虽然本发明已经参考特定的说明性实施例进行了描述,但是不会受到这些实施例的限定而仅仅受到附加权利要求的限定。本领域技术人员应当理解可以在不偏离本发明的保护范围和精神的情况下对本发明的实施例能够进行改动和修改。

Claims (10)

1.一种基于容器技术的区块链部署系统,其特征在于包括:
主节点、远程的普通节点以及区块链系统注册中心,所述主节点为所述远程的普通节点提供区块链容器内的软件,任何合规的区块链系统需要在所述区块链系统注册中心报备,所述区块链容器内的软件经过所述区块链系统注册中心到达所述主节点,所述区块链系统注册中心具有关联的软件测试中心以及软件提供商,用于开发以及测试所述区块链容器内的软件;所述系统的最外层为所述区块链容器,所述区块链容器相当于一个虚拟机,区块链容器内的软件在区块链容器里运行,所述区块链容器内包含所述软件以及运行在所述软件上的智能合约,其中,所述智能合约由外界提供会包含在所述区块链容器内,所述智能合约是可执行代码,在区块链系统内执行;当所述智能合约由外界提供时,对所述区块链系统进行哈希运算时,由外界提供的所述智能合约不包含在当前所述区块链系统内,否则无法执行防复制机制;
这些外来的智能合约依靠一定的机制维持他们的不可更改性以及不能复制性;当所述智能合约包含在所述区块链容器内,即所述区块链容器里存储所述软件,所述软件中再放置一个包含所述智能合约的内含容器,从而使得所述智能合约适配不同的区块链系统。
2.根据权利要求1所述的一种基于容器技术的区块链部署系统,其特征在于:所述内含容器具有多个,并且同时并行执行其中的多个所述智能合约,同时所述区块链系统配置投票机制,多个所述智能合约执行完毕后,通过所述投票机制对执行结果进行验证;所述主节点控制普通节点的数目,所述主节点允许讯问节点加入,所述讯问节点使得客户查询区块链系统的资料,但不能参与建块和投票,所述询问节点的部署方式和普通节点部署方式相同。
3.一种根据权利要求1-2任一所述基于容器技术的区块链部署系统的区块链部署方法,其特征在于包括:
步骤1,建立所述区块链系统:所述主节点将包含所述区块链系统的所述区块链容器发送到多个普通节点,所述普通节点组成所述区块链系统;
步骤2,启动并运行区块链系统:所述普通节点运行所述区块链容器文件并自动部署所述区块链系统,所述区块链系统由主节点和多个普通节点共同构成。
4.根据权利要求3所述的部署方法,其特征在于所述步骤1包括:
步骤11,所述主节点生成区块链容器,然后将所述区块链容器内的软件进行一次哈希运算,将获得的第一哈希值附加在所述软件的文件头后生成所述区块链容器的第二哈希值;
步骤12,将区块链容器以及主节点的数字证书从主节点传送到所述普通节点,所述普通节点收到所述主节点的数字证书以及所述区块链容器后向所述主节点上传每个普通节点的数字证书,用于每个普通节点的身份认证;
步骤13,所述普通节点检验所述软件是否包含恶意代码,如果包含,所述普通节点拒绝所述区块链容器;如果不包含,继续步骤14;
步骤14,所述普通节点在所述区块链容器内部测试所述软件,所述测试由主节点提供的包含所述软件内的测试软件执行;
步骤15,所述普通节点通过签名验证进行身份验证,确保所述软件不能更改,由于在外地部署运行,必须在源头的主节点控制;
步骤16,所述普通节点收到所述区块链容器后进行两次校验,包括校验所述区块链容器以及所述软件是否被篡改过;如果校验没有通过,所述软件启动自动销毁。
5.根据权利要求3所述的部署方法,其特征在于所述步骤2包括:
步骤21,所述主节点确定所述普通节点的身份、数字签名和运行的服务器信息,例如MAC地址等信息;
步骤22,所述主节点和每个所述普通节点确定所述普通节点是否参与新的区块链系统,如果参与,则参与的普通节点发送同意信息给所述主节点;
步骤23,所述主节点收到所述同意信息后,将所述普通节点的公开信息发送给所述参与的普通节点;
步骤24,所述普通节点收到所述公开信息后,开启初始机制,将所述主节点和所有所述普通节点的公开信息置于本地的所述软件内;
步骤25,所述普通节点互相确认并验证每个普通节点的身份和数字签名;
步骤26,由主节点启动第一次共识,所述第一次共识可以使用多种共识协议,共识协议的目的在于建立区块链系统内第一块信息,共识内容是所有参与节点包括主节点和普通节点的公开信息;
步骤27,普通节点收到所述主节点启动第一次共识的信息后,回复所述共识协议,所述共识协议完成后,建立了所述区块链系统内的初始块;
步骤28,重复步骤21-27,从而在所述初始块基础上建立其他区块,从而完成所述区块链系统的启动和运行。
6.根据权利要求3所述的部署方法,其特征在于所述方法还包括在所述区块链系统上存储数据,其中:
(1)数据存储地点:区块链系统产生的数据存在:和区块链系统同一区块链容器内、区块链容器外部的非区块链容器位置或者区块链容器外部的另外一个区块链容器内;如果区块链系统产生的数据放在同一区块链容器内,区块链系统会比较安全,在区块链系统软件升级过程中产生问题;如果置于区块链容器外部的非区块链容器位置,当区块链容器被移除的时候,数据仍然会存留在本地,可以支持区块链系统软件更新,而数据不会遗失,区块链系统更新时,一个新的区块链容器从主节点送来,使用上述同样的流程来安装新的区块链容器即可;如果放在区块链容器外部的另外一个区块链容器内,有点在于数据如果对本地服务器有破坏的行为,由于数据都存在另外一个区块链容器内,不会影响到本地服务器的运行,同时也支持区块链系统软件更新迭代;
(2)数据存储结构:区块链产生的数据可以使用“块中块”的方式,包括在逻辑层或是物理层都可以使用“块中块”方式存储;或者使用其他方式存储,包括传统区块链链条数据结构,然后使用BQL(Blockchain Query Language)语言查询;
(3)数据加密机制:由于区块链系统软件来自主节点提供的区块链容器,区块链系统的行为主要由主节点提供的软件控制,产生的数据需要记载传统区块链系统信息、主节点和区块链容器的信息。
7.根据权利要求3所述的部署方法,其特征在于:所述方法还包括软件试运行,其中所述软件试运行需要进行初始化,确保新的区块链系统能够独立进行交易,没有作弊,而且可以被监管;所述软件试运行产生的数据全部保存在区块链系统内,用于以后出错或事故时进行查询;所述软件试运行可以和多个第三方单位合作进行,所述第三方单位包括测试单位、合作单位、数据单位或是监管单位,流程包括:由第三方测试单位提供数据以模拟真实交易场景、区块链系统运行后收集数据、检验所有参与的所述参与节点数据一致、交易是否具备完备性以及交易是否可以被监管;
其中,软件试运行过程中可以连接监管系统。
8.根据权利要求3所述的部署方法,其特征在于所述方法还包括:节点之间的相互认证,普通节点首先存储主节点的数字证书,主节点要保有其他普通节点的数字证书并把所有普通节点的数字证书下发到各个普通节点以便各个普通节点之间相互认证;主节点在传送区块链容器时将主节点的数字证书一起传送,普通节点收到主节点的数字证书后回复确认收到信息并附加自己的普通节点数字证书后将信息发送至主节点;所述主节点将所有所述普通节点的数字证书打包后发送至所有普通节点;所有普通节点都收到其他各个普通节点的数字证书后开始软件试运行工作,在区块链系统交易时,每一次交易都需要验证存储的数字证书进行身份验证以确保没有攻击或恶意节点加入所述区块链系统。
9.根据权利要求3所述的部署方法,其特征在于所述方法还包括:新节点加入所述区块链系统,如果区块链系统有新节点加入,需要先到主节点进行备案,新节点的加入流程如下:
待加入的新节点先向所述主节点发送加入申请以及新节点的信息,数字证书, MAC地址等;
主节点对所述申请以及所述新节点的信息进行审核,如果审核不通过则拒绝所述申请,如果审核通过,则向所述待加入的新节点发送所述区块链容器以及所述主节点的数字证书;
所述待加入的新节点收到所述区块链容器后进行两次哈希验证并部署所述区块链容器;
完成所述部署后发送部署完成信号至主节点,成为已加入的新节点;
所述主节点将所述已加入的新节点的证书下发至各个普通节点,并将所述普通节点的证书发送给所述已加入的新节点;
所述主节点更新自身存储的节点列表以及证书信息,存储已加入的新节点的信息;
所述主节点将所述已加入的新节点的加入报告给区块链系统注册中心。
10.根据权利要求3所述的部署方法,其特征在于所述方法还包括:主节点退出,即实际运行一段时间后,主节点退出区块链系统,并使得其他节点继续运行新的区块链系统,原主节点的退出流程为:
原主节点发送退出信号至各个所述普通节点;
各个所述普通节点投票选择新的主节点;
原主节点和新主节点都以加密方式报备给区块链系统注册中心;
所述区块链系统注册中心同意后,以加密方式通知原主节点和新主节点;
普通节点收到所述退出信号后首先进行身份验证,验证通过后更新其节点列表和节点证书信息,删除原主节点信息,原主节点不再参与任何区块链交易或管理工作;
新主节点主持新的区块链系统的工作并参与新节点加入所述新的区块链系统的审核;
其中,主节点有一个或多个;投票为公平或者非公平投票两种类型,所述非公平投票包括原来主节点权重比较大;当所述区块链系统不在政府监管和管理下,所述区块链系统不报备给注册中心;新主节点可以由原主节点唯一确定,而不是由普通节点投票决定;原主节点可以保留部分权力。
CN202111061408.6A 2021-09-10 2021-09-10 一种基于容器技术的区块链部署系统及部署方法 Pending CN114157444A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111061408.6A CN114157444A (zh) 2021-09-10 2021-09-10 一种基于容器技术的区块链部署系统及部署方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111061408.6A CN114157444A (zh) 2021-09-10 2021-09-10 一种基于容器技术的区块链部署系统及部署方法

Publications (1)

Publication Number Publication Date
CN114157444A true CN114157444A (zh) 2022-03-08

Family

ID=80462798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111061408.6A Pending CN114157444A (zh) 2021-09-10 2021-09-10 一种基于容器技术的区块链部署系统及部署方法

Country Status (1)

Country Link
CN (1) CN114157444A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024016984A1 (zh) * 2022-07-21 2024-01-25 深圳前海环融联易信息科技服务有限公司 智能合约部署方法及其装置、设备、介质、产品

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783195A (zh) * 2019-01-16 2019-05-21 杭州趣链科技有限公司 一种基于容器的智能合约实时调试方法
WO2020044353A1 (en) * 2018-08-30 2020-03-05 Telefonaktiebolaget Lm Ericsson (Publ) System and method for collaborative task offloading automation in smart containers
CN111213128A (zh) * 2019-10-16 2020-05-29 支付宝(杭州)信息技术有限公司 实现基于区块链的web服务
CN111510333A (zh) * 2020-04-15 2020-08-07 中国工商银行股份有限公司 基于k3s平台的联盟区块链系统、实现方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020044353A1 (en) * 2018-08-30 2020-03-05 Telefonaktiebolaget Lm Ericsson (Publ) System and method for collaborative task offloading automation in smart containers
CN109783195A (zh) * 2019-01-16 2019-05-21 杭州趣链科技有限公司 一种基于容器的智能合约实时调试方法
CN111213128A (zh) * 2019-10-16 2020-05-29 支付宝(杭州)信息技术有限公司 实现基于区块链的web服务
CN111510333A (zh) * 2020-04-15 2020-08-07 中国工商银行股份有限公司 基于k3s平台的联盟区块链系统、实现方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024016984A1 (zh) * 2022-07-21 2024-01-25 深圳前海环融联易信息科技服务有限公司 智能合约部署方法及其装置、设备、介质、产品

Similar Documents

Publication Publication Date Title
US11829494B2 (en) Distributed privately subspaced blockchain data structures with secure access restriction management
CN107888562B (zh) 一种平行链接入互联链的数据验证和收发方法、节点及系统
CN109450638B (zh) 基于区块链的电子元器件数据管理系统及方法
EP3688929B1 (en) System and method for providing privacy and security protection in blockchain-based private transactions
US10901983B2 (en) System and method for universal blockchain interoperability
CN110784495B (zh) 基于区块链的大数据集群系统的发现与配置信息管理方法
JP2019536380A (ja) ブロックチェーンのクロスチェーン通信を実現する方法、装置及びシステム
CN111191283B (zh) 基于联盟区块链的北斗定位信息安全加密方法及装置
CN112527912B (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN112583858B (zh) 一种基于区块链pbft算法的统一身份鉴权方法
CN112311735A (zh) 可信认证方法,网络设备、系统及存储介质
CN111612615A (zh) 基于公链的区块链子链创建方法及系统
EP4050542B1 (en) Blockchain-based data processing method and apparatus, and device and readable storage medium
CN111737104A (zh) 区块链网络服务平台及其测试用例共享方法、存储介质
Yohan et al. Blockchain-based firmware update framework for internet-of-things environment
CN110647583B (zh) 一种区块链构建方法、装置、终端及介质
CN114157444A (zh) 一种基于容器技术的区块链部署系统及部署方法
CN113783899B (zh) 节点退出方法和区块链系统
CN116827957B (zh) 基于多区块链的信息处理方法、装置、设备以及介质
CN116150260A (zh) 区块链系统的数据处理方法、装置、介质及电子设备
WO2023082883A1 (zh) 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品
KR102542063B1 (ko) 뉴럴 블록 클러스터 기반의 안전한 블록 체인을 구축하는 장치 및 그 동작 방법
CN116186786A (zh) 基于区块链的业务处理方法、装置、电子设备和可读介质
CN116226827A (zh) 基于区块链网络的数据处理方法、装置、设备及存储介质
CN116708463B (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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220308