欢迎光临小豌豆知识网!
当前位置:首页 > 物理技术 > 推算计数> 区块链一体机技术方法(三篇)独创技术145018字

区块链一体机技术方法(三篇)

2020-08-17 23:04:44

  区块链一体机技术方法第一篇:

  区块链一体机的可信启动方法及装置

  第一、技术领域

  本说明书一个或多个实施例涉及区块链技术领域,尤其涉及一种区块链一体机的可信启动方法及装置。

  第二、背景技术

  区块链技术(也被称之为,分布式账本技术)是一种去中性化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。

  第三、发明内容

  有鉴于此,本说明书一个或多个实施例提供一种区块链一体机的可信启动方法及装置。

  为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

  根据本说明书一个或多个实施例的第一方面,提出了一种区块链一体机的可信启动方法,包括:

  区块链一体机响应于接收到的启动指令,计算本地部署的镜像文件的当前哈希值;

  所述区块链一体机将所述当前哈希值提供至所述区块链一体机上装配的密码加速卡,并接收所述密码加速卡返回的所述当前哈希值与预存储的标准哈希值之间的比较结果,所述标准哈希值对应于预定义的标准镜像文件;

  在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下,所述区块链一体机执行所述本地部署的镜像文件以形成区块链节点。

  根据本说明书一个或多个实施例的第二方面,提出了一种区块链一体机的可信启动方法,包括:

  区块链一体机上装配的密码加速卡接收所述区块链一体机发送的当前哈希值,所述当前哈希值为所述区块链一体机在接收到启动指令的情况下对本地部署的镜像文件进行计算得到;所述密码加速卡上预存储有预定义的标准镜像文件对应的标准哈希值;

  所述密码加速卡将所述当前哈希值与所述标准哈希值进行比较并将比较结果返回至所述区块链一体机,使所述区块链一体机在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下执行所述本地部署的镜像文件以形成区块链节点。

  根据本说明书一个或多个实施例的第三方面,提出了一种区块链一体机的可信启动装置,包括:

  指令接收模块,使区块链一体机响应于接收到的启动指令,计算本地部署的镜像文件的当前哈希值;

  哈希提供模块,使所述区块链一体机将所述当前哈希值提供至所述区块链一体机上装配的密码加速卡,并接收所述密码加速卡返回的所述当前哈希值与预存储的标准哈希值之间的比较结果,所述标准哈希值对应于预定义的标准镜像文件;

  镜像执行模块,使在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下,所述区块链一体机执行所述本地部署的镜像文件以形成区块链节点。

  根据本说明书一个或多个实施例的第四方面,提出了一种区块链一体机的可信启动装置,包括:

  哈希接收模块,使区块链一体机上装配的密码加速卡接收所述区块链一体机发送的当前哈希值,所述当前哈希值为所述区块链一体机在接收到启动指令的情况下对本地部署的镜像文件进行计算得到;所述密码加速卡上预存储有预定义的标准镜像文件对应的标准哈希值;

  哈希比较模块,使所述密码加速卡将所述当前哈希值与所述标准哈希值进行比较并将比较结果返回至所述区块链一体机,使所述区块链一体机在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下执行所述本地部署的镜像文件以形成区块链节点。

  根据本说明书一个或多个实施例的第五方面,提出了一种区块链一体机,包括:

  处理器;

  用于存储处理器可执行指令的存储器;

  其中,所述处理器通过运行所述可执行指令以实现如第一方面所述的方法。

  根据本说明书一个或多个实施例的第六方面,提出了一种密码加速卡,包括:

  处理器;

  用于存储处理器可执行指令的存储器;

  其中,所述处理器通过运行所述可执行指令以实现如第二方面所述的方法。

  根据本说明书一个或多个实施例的第七方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。

  第四、附图说明

  图1是一示例性实施例提供的一种区块链一体机的可信启动方法的流程图。

  图2是一示例性实施例提供的另一种区块链一体机的可信启动方法的流程图。

  图3是一示例性实施例提供的一种区块链一体机的可信启动方法的交互流程图。

  图4是一示例性实施例提供的一种区块链一体机的结构示意图。

  图5是一示例性实施例提供的一种区块链一体机的可信启动装置的框图。

  图6是一示例性实施例提供的一种密码加速卡的结构示意图。

  图7是一示例性实施例提供的另一种区块链一体机的可信启动装置的框图。

  第五、具体实施方式

  这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

  需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

  在区块链技术的发展早期,用户基本上都是将自身持有的PC、笔记本电脑等加入区块链网络,成为区块链网络中的区块链节点。此时可以称之为区块链网络的1.0架构时代,不仅加入区块链网络的行为是用户的自主行为,而且用户还需要自主运维,譬如对自身加入区块链网络的PC等设备进行维护和配置等。随着区块链技术的不断发展,尤其是用户对于高性能、高可用基础设施的需求不断增强,区块链网络发展为基于云服务的2.0架构时代。在2.0架构时代,Blockchain-as-a-Service(BaaS)服务为区块链快速部署、技术落地提供了快速便捷的解决方案,并支持了大量区块链服务项目。BaaS服务通常建立在公有云或者私有云这类基础设施基础上,提供强大部署能力的同时,引入了较重的基础设施依赖。而区块链作为一个典型的分布式计算技术,并不是所有节点都可以迁移到云上,而需要进行私有化部署。私有化部署带来的额外技术迁移和运维成本导致实际落地过程中会有技术接口不统一,部署维护成本高的问题。因此,为了满足用户在区块链网络的私有化、安全性等方面的需求,需要对区块链网络实现进一步的架构升级,从而实现基于区块链一体机的3.0架构时代。

  区块链一体机可以实现软硬一体化。发布方在发布区块链一体机的同时,不仅向用户提供该区块链一体机的硬件设备,并且该区块链一体机还集成了针对该硬件设备实现深度优化的软件配置,从而实现了上述的软硬一体化。

  针对区块链一体机可以实现硬件优化。例如,区块链一体机上可以部署专用的智能合约处理芯片,譬如该智能合约处理芯片可以为FPGA(Field Programmable GateArray,现场可编程门阵列)芯片或其他类型的芯片,以提升针对智能合约的处理效率。智能合约处理芯片可以部署有硬件信任根密钥,譬如该硬件信任根密钥可以由发布方预先烧录至该智能合约处理芯片中,且发布方能够获知该硬件信任根密钥对应的公钥(比如该公钥被公开)。因此,智能合约处理芯片可以向发布方发送协商信息,并通过硬件信任根密钥对该协商信息进行签名,使得发布方可以基于相应的公钥进行验签;以及,在验签成功后,可以确保智能合约处理芯片和发布方分别基于上述协商信息协商得到相同的密钥。协商的密钥可以包括文件部署密钥,发布方可以基于该文件部署密钥将区块链节点所需的二进制镜像文件加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该文件部署密钥实现解密并部署二进制镜像文件。协商的密钥可以包括业务秘密部署密钥,发布方可以基于该业务秘密部署密钥将区块链节点的节点私钥、业务根密钥等加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该业务秘密部署密钥获取并部署节点私钥、业务根密钥等,以用于满足区块链场景下的隐私交易需求。例如,节点私钥对应于节点公钥,客户端可以通过节点公钥对区块链交易进行加密传输,而区块链节点可以通过节点私钥进行解密。而业务根密钥为对称密钥,可以用于对合约代码、合约状态的取值等业务数据进行加密存储。业务根密钥也可能并不直接被使用,智能合约处理芯片可以通过该业务根密钥的衍生密钥进行加解密,以降低业务根密钥的安全风险。通过对节点私钥、业务根密钥(或其衍生密钥)的可靠管理,并且确保数据除了被智能合约处理芯片进行处理的过程之外均处于加密状态,智能合约处理芯片实际上在区块链一体机上形成了硬件的可信执行环境(TrustedExecution Environment,简称TEE),确保交易、合约代码、合约状态等需要隐私保护的数据不会发生隐私泄露。

  再例如,区块链一体机上可以部署智能网卡。智能网卡除了实现传统网卡的功能之外,还可以替代或协助区块链一体机的CPU完成部分功能,以实现对CPU的计算卸载。尤其是,可以将网络I/O密集型的操作由CPU转移至智能网卡执行,这样CPU本身就可以处理更多的计算密集型操作,比如交易处理、存储处理等。由于智能网卡相比于区块链一体机上的其他部件(如CPU)而言,无论是在物理层面上或是逻辑层面上都更靠近网络,使得智能网卡总是优先拿到网络中传输的数据,因而在不涉及或少量涉及存储访问的情况下,通过智能网卡来处理这些数据能够实现相对更高的处理效率、相对更小的延迟、相对更大的吞吐量,从而以相对较小的成本达到比较高的性能收益。例如,在共识算法中,除了网络状态发生变化、节点发生增删、共识配置发生变化等情况下,几乎不需要访问存储,因而可以由智能网卡来完成共识操作,而只需要将共识结果告知CPU即可、无需CPU直接参与共识过程,能够显著提升共识效率。类似地,由智能网卡转发交易、由新增区块链节点上的智能网卡实现区块同步等,同样可以达到类似的效果,此处不再赘述。此外,智能网卡在收到交易后,可以通过与历史交易进行比较,比如从交易的发送方信息、目的地址、时间戳、哈希值(Hash)等字段进行比较,从而识别和过滤掉重放交易。智能网卡还可以对收到的交易进行内容解析,从而过滤掉非法交易或预定义的不想处理的交易等,作为对交换机实现的基于二层或三层的报文过滤的补充。

  又例如,区块链一体机上可以部署密码加速卡,也可称为高速密码加速卡。密码加速卡可以实现全加密内存,并通过硬件加固以抵御侧信道攻击,还可以针对探针、激光等手段实现物理防护,具有极高的安全性。举例而言,区块链一体机上使用的密码加速卡可以具有国密二级资质、国密三级资质或其他资质。当部署有密码加速卡时,上文所述的硬件信任根密钥可以被维护于该密码加速卡中,并且密码加速卡可以基于该硬件信任根密钥实现签名操作,并替代或协助智能合约处理芯片完成上文所述的密钥协商等操作;类似地,密码加速卡可以用于维护公钥,使得密码加速卡可以基于维护的公钥实现签名的验证操作。总之,可以将区块链一体机上与密钥管理、加解密、签名验签等相关的至少一部分操作交由密码加速卡,从而既可以获得极高的安全性,又可以对区块链一体机的CPU或上述的智能合约处理芯片等实现性能卸载,以提升处理效率。

  针对区块链一体机可以实现软件优化。例如,区块链一体机可以内置证书授权服务,可以实现自动化的证书签发与节点身份认证,可以自动建链和区块链节点的自动加入,从而实现区块链一体机的即插即用。那么,用户可以快速实现区块链一体机的部署。除了能够在多台区块链一体机之间快捷地建立私有型的区块链网络,区块链一体机可以集成标准化的云上服务接口,使得区块链一体机可以自动对接云上服务,从而实现区块链一体机与云端部署的区块链节点之间混合部署,构建混合型的区块链网络。区块链一体机还可以集成标准化的跨链服务接口,使得区块链一体机可以基于标准化的跨链协议或标准化的跨链服务实现跨链服务,极大地扩展了区块链一体机的应用场景,满足用户的跨链需求,比如实现不同区块链网络之间的跨链数据交互,再比如实现区块链网络与链下计算节点之间的跨链数据交互(譬如由链下计算节点为区块链节点分担计算任务等)等。

  基于统一的软件逻辑,本说明书的区块链一体机可以实现对自身所部署镜像文件的可信启动过程。在该过程中,一体机接收到该启动指令后可以先判断镜像文件是否满足启动条件——镜像文件的当前哈希值(Hash)与预存的标准哈希值相同,并在满足启动条件的情况下执行镜像文件,以实现一体机中镜像文件的可信启动。下面结合附图对该过程进行说明:

  图1是一示例性实施例提供的一种区块链一体机的可信启动方法的流程图,该方法应用于区块链一体机,为与装配在区块链一体机中的密码加速卡进行区分,该方法的执行主体——区块链一体机可以被理解为区块链一体机的CPU或区块链一体机中装配的除密码加速卡之外的其他组件。如图1所示,该方法可以包括以下步骤:

  步骤102,区块链一体机响应于接收到的启动指令,计算本地部署的镜像文件的当前哈希值。

  在本实施例中,区块链一体机本地预先部署有(尚未执行的)镜像文件,对于该镜像文件的具体形式本说明书并不进行限制。例如,镜像文件可以为可执行镜像文件,如.exe格式的可执行文件,此时,该可执行文件可以被预先安装在区块链一体机自身的硬盘等执行组件中。镜像文件还可以为二进制镜像文件,如.bin格式的二进制文件,此时,该二进制文件可以被预先存储在区块链一体机自身的硬盘等执行组件中的合适位置,以被调用执行。进一步的,该镜像文件可以为区块链一体机上部署的对应于区块链节点的二进制镜像文件,相应的,该二进制镜像文件被执行时,区块链一体机被实现为区块链节点,如实现区块链可视化、合约创建及部署、合约执行、密钥管理、隐私计算等一个或多个功能。该镜像文件也可以为区块链一体机上部署的包含上述对应于区块链节点的二进制镜像文件的平台镜像文件,该平台镜像文件被执行时,区块链一体机不仅被实现为区块链节点,还可以实现如文件处理、节点监控、服务监控等一个或多个其他功能,不再赘述。

  在一实施例中,上述启动指令可以具有多种形式,本说明书对此并不进行限制。例如,上述启动指令可以为用户(如区块链一体机的使用人员)针对区块链一体机实施开机操作时发出的开机指令;或者,也可以为管理设备在区块链一体机启动状态下,针对区块链一体机中的上述二进制镜像文件发出的文件执行指令等。

  步骤104,所述区块链一体机将所述当前哈希值提供至所述区块链一体机上装配的密码加速卡,并接收所述密码加速卡返回的所述当前哈希值与预存储的标准哈希值之间的比较结果,所述标准哈希值对应于预定义的标准镜像文件。

  在一实施例中,上述标准哈希值可以由标准镜像文件的发布方(下文简称为发布方)在可信执行环境中针对其发布的标准镜像文件进行计算生成。例如,在发布标准镜像文件之前,发布方可以在TEE中计算该标准镜像文件的标准哈希值,然后将上述标准哈希值加密后发送至密码加速卡并由后者进行加密存储。其中,上述发布方计算标准哈希值时使用的TEE可以基于相关技术中的任一技术进行构建,标准哈希值可以采用相关技术中的任一哈希算法进行计算,本说明书对此并不进行限制,但需要说明的是,区块链一体机计算镜像文件的当前哈希值所采用的哈希算法,应当与发布方计算标准镜像文件的标准哈希值所采用的哈希算法相同,以保证当前哈希值与标准哈希值之间具有明确的比较结果。

  在一实施例中,发布方可以使用自身的发布方私钥将上述标准哈希值加密后发送至区块链一体机中装配的密码加速卡,以由密码加速卡使用发布方的发布方公钥在自身TEE中解密上述标准哈希值,并将其保存在自身TEE中;或者,发布方也可以使用自身的发布方私钥对上述标准哈希值进行签名,然后将标准哈希值及其签名关联发送至密码加速卡,以由密码加速卡使用发布方的发布方公钥验证上述签名,并在验证通过的情况下在相应的存储空间中存储该标准哈希值。在区块链一体机中存在多个镜像文件的情况下,密码加速卡还可以建立任一镜像文件对应的标准哈希值与该镜像文件的文件标识之间的关联关系,并将各个标准哈希值按照各自对应的关联关系进行存储,以便针对性的确定对应于镜像文件的标准哈希值。

  进一步的,在密码加速卡为基于FPGA芯片的密码卡的情况下,可以将接收到的标准哈希值烧录以部署在FPGA芯片中。但是,由于FPGA芯片具有易失性,断电后保存的标准哈希值就会丢失,使得重新上电后需要密码加速卡重新获取并存储标准哈希值。因此,为了减少客户端的烧录次数,FPGA结构可以进一步包含存储器,该存储器与FPGA芯片相连,使得标准哈希值被部署于存储器中,且FPGA芯片从存储器中读取标准哈希值以实现相关功能;其中,存储器具有非易失性,即便断电仍然可以保存标准哈希值,而重新上电后只需重新从存储器读入FPGA芯片即可,无需密码加速卡重新获取并烧录。上述存储器可以具有多种形式,比如闪存等可重复擦写的非易失性存储器,再比如熔丝存储器等不可重复擦写的存储器等,本说明书并不对此进行限制。

  步骤106,在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下,所述区块链一体机执行所述本地部署的镜像文件以形成区块链节点。

  在本实施例中,若比较结果表明当前哈希值与标准哈希值相同,则说明区块链一体机本地部署的镜像文件即为发布方发布的镜像文件,是未经篡改且被成功部署的镜像文件——该镜像文件可信,因此,区块链一体机可以执行该镜像文件以形成区块链节点。反之,若比较结果表明当前哈希值与标准哈希值不相同,则说明区块链一体机本地部署的镜像文件并非发布方发布的标准镜像文件,而可能是经过非法篡改的镜像文件或部署出错的镜像文件——该镜像文件不可信,此时,区块链一体机可以拒绝执行该镜像文件。

  在一实施例中,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机本地部署的镜像文件并非发布方发布的标准镜像文件,因此区块链一体机可以终止区块链一体机的启动流程,即避免执行与标准镜像文件不同的镜像文件。在另一实施例中,区块链一体机还可以针对该镜像文件向管理人员、区块链一体机的管理设备(如同时控制多台区块链一体机的控制主机)、区块链一体机相关的安全服务等至少之一发送告警消息,以便管理人员、管理设备或安全服务对镜像文件进行相应处理。进一步的,还可以对该镜像文件进行非法检测,并将检测结果包含在上述告警消息中,以便针对性的进行上述相应处理。上述响应处理可以包括记录告警消息、记录镜像文件的检测结果、删除镜像文件等至少之一。

  在一实施例中,承接于上述标准哈希值由发布方在可信执行环境中针对其发布的该标准镜像文件进行计算生成的实施例,进一步的,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机可以向发布方请求获取标准镜像文件,并将当前的镜像文件替换为获取到的标准镜像文件,以保证区块链一体机中部署的镜像文件与标准镜像文件的一致性。而且,区块链一体机可以在请求获取标准镜像文件的同时,请求获取该标准镜像文件的标准哈希值,或者在从发布方获取的标准镜像文件通过可信验证后向发布方请求获取该标准镜像文件的标准哈希值,以保证标准哈希值对应于标准镜像文件。

  在一实施例中,因为在比较结果表明当前哈希值与标准哈希值相同的情况下,当前哈希值对应的镜像文件即为可信的标准镜像文件,因此,区块链一体机可以在首次收到表明当前哈希值与标准哈希值相同的比较结果后,将当前哈希值对应的镜像文件(即上述可信的标准镜像文件)写入区块链一体机本地部署的TEE中,以作为备份镜像文件。然后,在后续比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机可以从TEE中读取上述备份镜像文件,然后将对应于上述当前哈希值的镜像文件替换为该备份镜像文件,并重新响应上述启动指令。通过确保获取到的是标准镜像文件,并将该标准镜像文件在TEE中进行备份,使得在当前的镜像文件与标准镜像文件不同的情况下,将当前镜像文件替换为标准镜像文件,不仅保证了区块链一体机本地部署的镜像文件与标准镜像文件的一致性,而且使用预先保存并确保可信的标准镜像文件替换已部署(但不可信)的镜像文件,避免了在每次比较结果表明当前哈希值与标准哈希值不相同的情况下都重新从发布方获取标准镜像文件可能导致的网络负荷增大。

  相应的,图2是一示例性实施例提供的另一种区块链一体机的可信启动方法的流程图,该方法应用于密码加速卡。如图2所示,该方法可以包括以下步骤:

  步骤202,区块链一体机上装配的密码加速卡接收所述区块链一体机发送的当前哈希值,所述当前哈希值为所述区块链一体机在接收到启动指令的情况下对本地部署的镜像文件进行计算得到。

  在本实施例中,区块链一体机本地预先部署有(尚未执行的)镜像文件,对于该镜像文件的具体形式本说明书并不进行限制。例如,镜像文件可以为可执行镜像文件,如.exe格式的可执行文件,此时,该可执行文件可以被预先安装在区块链一体机自身的硬盘等执行组件中。镜像文件还可以为二进制镜像文件,如.bin格式的二进制文件,此时,该二进制文件可以被预先存储在区块链一体机自身的硬盘等执行组件中的合适位置,以被调用执行。进一步的,该镜像文件可以为区块链一体机上部署的对应于区块链节点的二进制镜像文件,相应的,该二进制镜像文件被执行时,区块链一体机被实现为区块链节点,如实现区块链可视化、合约创建及部署、合约执行、密钥管理、隐私计算等一个或多个功能。该镜像文件也可以为区块链一体机上部署的包含上述对应于区块链节点的二进制镜像文件的平台镜像文件,该平台镜像文件被执行时,区块链一体机不仅被实现为区块链节点,还可以实现如文件处理、节点监控、服务监控等一个或多个其他功能,不再赘述。

  在一实施例中,上述启动指令可以具有多种形式,本说明书对此并不进行限制。例如,上述启动指令可以为用户(如区块链一体机的使用人员)针对区块链一体机实施开机操作时发出的开机指令;或者,也可以为管理设备在区块链一体机启动状态下,针对区块链一体机中的上述二进制镜像文件发出的文件执行指令等。

  步骤204,所述密码加速卡将所述当前哈希值与预存储的标准哈希值进行比较并将比较结果返回至所述区块链一体机,使所述区块链一体机在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下,执行所述镜像文件以形成区块链节点。

  在一实施例中,上述标准哈希值可以由发布方在可信执行环境中针对其发布的标准镜像文件进行计算生成。例如,在发布标准镜像文件之前,发布方可以在TEE中计算该标准镜像文件的标准哈希值,然后将上述标准哈希值加密后发送至密码加速卡并由后者进行加密存储。其中,上述发布方计算标准哈希值时使用的TEE可以基于相关技术中的任一技术进行构建,标准哈希值可以采用相关技术中的任一哈希算法进行计算,本说明书对此并不进行限制,但需要说明的是,区块链一体机计算镜像文件的当前哈希值所采用的哈希算法,应当与发布方计算标准镜像文件的标准哈希值所采用的哈希算法相同,以保证当前哈希值与标准哈希值之间具有明确的比较结果。

  通过本说明书的上述实施例,区块链一体机在接收到启动指令后,由密码加速卡将区块链一体机计算的本地已部署镜像文件的当前哈希值与密码加速卡中预存储的对应于标准镜像文件的标准哈希值进行比较,通过判断当前哈希值是否与标准哈希值相同,并在进一步确定当前已部署的镜像文件确实为标准镜像文件的情况下执行该镜像文件,从而实现区块链一体机的启动。因此,通过哈希值比较的方式保证了被执行的镜像文件必然与标准镜像文件相同,因此保证了镜像文件的可信执行,进而保证了区块链一体机的可信启动。

  下面结合图3所示的一种区块链一体机的可信启动方法的交互流程图,对标准镜像文件的发布方、区块链一体机和密码加速卡之间通过相互配合实现区块链一体机的可信启动的过程进行详细说明。参见图3所示,该过程可以包括:

  步骤302,标准镜像文件的发布方计算标准镜像文件的标准哈希值。

  在一实施例中,发布方发布的镜像文件可以为可执行镜像文件,如.exe格式的可执行文件;也可以为二进制镜像文件,如.bin格式的二进制文件。进一步的,在镜像文件为二进制镜像文件的情况下,该镜像文件可以为区块链一体机上部署的对应于区块链节点的二进制镜像文件,执行该二进制镜像文件的区块链一体机被实现为区块链节点;或者,该镜像文件也可以为区块链一体机对应的包含上述二进制镜像文件的平台镜像文件,执行该平台镜像文件的区块链一体机不仅被实现为区块链节点,还可以实现如前所述的其他功能,不再赘述。

  在一实施例中,对于自身发布(或尚未发布)的标准镜像文件,发布方可以在TEE中计算其对应的标准哈希值。其中,该TEE可以基于Intel SGX(Software Guard Extensions,软件保护扩展)或者AMD TrustZone(信任区)技术构建;该TEE可以被部署在发布方本地,从而发布方可以直接在TEE中计算标准哈希值,或者该TEE也可以被部署在与发布方相关的其他组件中,从而发布方可以控制在TEE中计算标准哈希值后将其加密传输至密码加速卡。另外,在上述文件摘要为镜像文件的哈希值的情况下,发布方可以采用SHA算法、MD4算法、MD5算法、ETHASH算法、SCRYPT算法等哈希算法计算该哈希值,上述TEE的构建过程及哈希值的计算过程,可以参见相关技术中公开的内容,此处不再赘述。

  发布方计算得到标准哈希值后,可以将标准哈希值加密传输至密码加速卡,因为密码加速卡被装配在区块链一体机中,因此发布方可以通过区块链一体机将标准哈希值转发至密码加速卡(对应步骤304a),也可以直接将标准哈希值发送至密码加速卡(对应步骤304b)。

  步骤304a,通过区块链一体机将标准哈希值转发至密码加速卡。

  发布方可以在TEE中对计算出的标准哈希值进行加密,然后将加密后的标准哈希值发送至区块链一体机,区块链一体机接收后将密文状态的标准哈希值转发至密码加速卡。

  步骤304b,发布方直接将标准哈希值发送至密码加速卡。

  发布方可以在TEE中对计算出的标准哈希值进行加密,然后将加密后的标准哈希值直接发送至密码加速卡。

  在上述步骤304a和304b中,发布方可以采用多种方式对标准哈希值进行加密。在一实施例中,密码加速卡可以预先获取发布方的公钥,例如,发布方的公钥可以被公开或仅被密码加速卡所维护,此时发布方可以使用自身的发布方私钥对标准哈希值进行加密,相应的,密码加速卡接收到密文状态的标准哈希值后,可以使用自身所维护的发布方公钥在TEE中对其进行解密,进而得到明文状态的标准哈希值。从而通过预先维护的发布方公钥对密文状态的标准哈希值进行解密,保证了标准哈希值传输过程中的私密性。

  在另一实施例中,密码加速卡上可以预先部署有信任根密钥(Attestation Key),该信任根密钥可以被预置于密码加速卡中,或者该信任根密钥可由区块链一体机或其他对象在离线安全环境下部署至密码加速卡中,例如在密码加速卡为基于FPGA芯片的密码卡的情况下,可以将信任根密钥烧录在FPGA芯片中。此时,密码加速卡可以使用该信任根密钥与发布方实现密钥协商,并使用协商确定的哈希传输密钥加密传输上述标准哈希值。但是,FPGA芯片具有易失性,断电后保存的信任根密钥就会丢失,使得重新上电后需要密码加速卡重新部署信任根密钥。因此,为了减少客户端的部署次数,FPGA结构可以进一步包含存储器,该存储器与FPGA芯片相连,使得信任根密钥被部署于存储器中,且FPGA芯片从存储器中读取信任根密钥以实现相关功能;其中,存储器具有非易失性,即便断电仍然可以保存信任根密钥,而重新上电后只需重新从存储器读入FPGA芯片即可,无需密码加速卡重新部署。存储器可以具有多种形式,比如闪存等可重复擦写的非易失性存储器,再比如熔丝存储器等不可重复擦写的存储器等,本说明书并不对此进行限制。

  上述信任根密钥属于非对称密钥,且该信任根密钥对应的公钥被公开,使得即便该信任根密钥并非由发布方所部署(预置或其他对象所部署),发布方也可以基于被公开的公钥对该信任根密钥生成的签名进行验证。发布方与密码加速卡之间可以利用该信任根密钥实现密钥协商。假定采用SM2(或其他算法)算法实现协商,发布方与密码加速卡需要在协商过程中实施至少一次信息交互:当密码加速卡向发布方发送协商信息时,可以采用上述的信任根密钥对该协商信息进行签名,使得发布方在收到签名后的协商信息后,可以利用被公开的公钥进行签名验证,从而确定该协商信息确实由密码加速卡发出,并信任该协商信息;而当签名未通过验证时,发布方可以选择不信任收到的协商信息。基于上述过程,发布方与密码加速卡可以完成密钥协商,使得发布方与密码加速卡可以分别获得相同的哈希传输密钥。然后发布方可以基于该哈希传输密钥对标准哈希值进行加密,相应的,密码加速卡接收后可以使用相应的哈希传输密钥解密得到标准哈希值。

  进一步的,在利用上述密钥协商过程确定出的哈希传输密钥加密传输标准哈希值时,发布方和密码加速卡可以在首次协商产生后分别在各自的TEE中保存上述哈希传输密钥,以便后续传输标准哈希值(如镜像文件更新)时使用,从而一次协商出的哈希传输密钥可以被多次使用,降低了密钥协商的工作量也提高了密钥的使用效率。然而,当同一对哈希传输密钥被多次使用时,密钥泄露的风险可能相应的增加,因此为避免密钥泄露,也可以对协商出的哈希传输密钥设置使用次数上限或有效时长。甚至,在安全性要求较高的场景下,也可以每次传输标准哈希值时临时进行密钥协商,并将在协商确定的哈希传输密钥使用一次后即将其丢弃,以保证哈希传输密钥不被泄露。在本实施例中,通过预先部署的信任根密钥进行密钥协商,不仅保证了标准哈希值传输过程的私密性,而且降低了密码加速卡的信任根密钥被泄露的可能性,从而提高了密码加速卡的安全性。

  步骤306,密码加速卡本地存储标准哈希值。

  在一实施例中,密码加速卡解密得到标准哈希值后,可以将标准哈希值以明文的形式保存在TEE内的安全密钥区,以便在使用时可以直接调用该标准哈希值,从而提高后续哈希值比较的速度;或者如前所述,也可以将标准哈希值保存在FPGA芯片或与FPGA芯片相连的存储器内,以保证标准哈希值的存储安全。

  在另一实施例中,密码加速卡也在接收到密文状态的标准哈希值后并不对其进行解密,而直接将其保存在TEE的安全密钥区、FPGA芯片或与FPGA芯片相连的存储器内,并在该标准哈希值被调用时才使用相应密钥对其进行解密,以尽量避免提前解密标准哈希值可能导致的哈希值泄露。甚至,还可以将密文状态的标准哈希值保存在非TEE的存储空间内,以减少标准哈希值对TEE对应存储空间的占用。

  至此,完成了对标准镜像文件对应的标准哈希值的预存储,区块链一体机在该步骤306之后的任一时刻可以接受启动指令,即本说明书对于步骤306与步骤308之间的间隔时间的大小并不进行限制。

  步骤308,区块链一体机接收启动指令。

  在一实施例中,上述启动指令可以具有多种形式,本说明书对此并不进行限制。例如,上述启动指令可以为用户(如区块链一体机的使用人员)针对区块链一体机实施开机操作时发出的开机指令;或者,也可以为管理设备在区块链一体机启动状态下,针对区块链一体机中的上述二进制镜像文件发出的文件执行指令等。

  步骤310,区块链一体机计算本地部署的镜像文件的当前哈希值。

  步骤312,区块链一体机将计算的当前哈希值提供至密码加速卡。

  在一实施例中,区块链一体机可以在接收到启动指令后计算本地部署的镜像文件的当前哈希值,其中,计算本地哈希值过程中所采用的哈希算法,应当与发布方根据标准镜像文件计算标准哈希值时所采用的哈希算法一致,以保证当前哈希值与标准哈希值之间具有明确的比较结果(哈希算法不一致,哈希值比较无意义)。为此,发布方可以在向密码加速卡发送标准哈希值时,同时发送计算该标准哈希值所采用的算法类型等参数信息。在计算完成后,区块链一体机可以直接将当前哈希值以明文的形式发送至密码加速卡。

  步骤314,密码加速卡比较标准哈希值与当前哈希值。

  步骤316,密码加速卡将哈希值的比较结果返回至区块链一体机。

  在一实施例中,密码加速卡可以将接收到的当前哈希值以明文形式保存在TEE中,然后,可以在TEE中比较明文形式的标准哈希值和当前哈希值;或者在TEE中将密文形式的标准哈希值解密后,再与明文形式的当前哈希值进行比较,以得到相应的比较结果。

  上述比较可以采用全文逐位比较的方式,即按照预设方向逐位比较当前哈希值与标准哈希值的各个位:若当前哈希值所有位与标准哈希值的所有位的取值均对应相等,则判定当前哈希值与标准哈希值相同;反之,若当前哈希值的任一位的取值与标准哈希值的相应位的取值不相等,则判定当前哈希值与标准哈希值不相同。上述比较结束后,密码加速卡可以将相应的比较结果返回至区块链一体机。

  步骤318,区块链一体机根据比较结果确定执行镜像文件或终止区块链一体机启动。

  因为当前哈希值根据区块链一体机本地部署的镜像文件计算得到,标准哈希值根据发布方发布的标准镜像文件计算得到,因此,若比较结果表明当前哈希值与标准哈希值相同,则说明本地部署的镜像文件即为发布方发布的标准镜像文件,因此该镜像文件是可信的(该镜像文件的传输或部署过程均未被篡改);反之,若比较结果表明当前哈希值与标准哈希值不相同,则说明本地部署的镜像文件并非发布方发布的标准镜像文件,即该镜像文件不可信(该镜像文件的传输或部署过程可能被非法篡改)。区块链一体机可以根据比较结果分别进行后续处理。

  在一实施例中,在比较结果表明当前哈希值与标准哈希值相同的情况下,区块链一体机可以执行本地部署的上述镜像文件,从而实现区块链一体机的启动。此时,本地部署的镜像文件是可信的标准镜像文件,因此可以直接执行该镜像文件以实现区块链一体机的启动。承接于前述实施例,在镜像文件为区块链一体机上部署的区块链节点对应的二进制镜像文件的情况下,二进制镜像文件被执行时,区块链一体机可以被实现为区块链节点,如实现区块链可视化、合约创建、部署及执行、密钥管理和/或隐私计算等功能;在镜像文件为区块链一体机对应的包含上述二进制镜像文件的平台镜像文件的情况下,平台镜像文件被执行时,区块链一体机不仅被实现为区块链节点,还可以实现如文件处理、节点监控和/或服务监控等除区块链功能之外的其他功能,不再赘述。

  在一实施例中,承接于上述标准哈希值由标准镜像文件的发布方在可信执行环境中针对标准镜像文件进行计算生成的实施例,进一步的,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机可以向发布方请求获取标准镜像文件,并将当前的镜像文件替换为获取到的标准镜像文件,以保证区块链一体机中部署的镜像文件与标准镜像文件的一致性。而且,区块链一体机可以在请求获取标准镜像文件的同时,请求获取该标准镜像文件的标准哈希值,或者在从发布方获取的标准镜像文件通过可信验证后向发布方请求获取该标准镜像文件的标准哈希值,以保证标准哈希值对应于标准镜像文件。

  在一实施例中,区块链一体机可以在本地部署的TEE中预先存储镜像文件作为备份镜像文件,从而,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机可以从上述TEE中读取该备份镜像文件,然后将本地部署的镜像文件替换为该备份镜像文件,并重新响应上述启动指令,以保证区块链一体机本地部署的镜像文件与标准镜像文件的一致性,使得即便在本地部署的镜像文件不可信的情况下,仍然能够实现区块链一体机的可信启动。不仅保证了区块链一体机本地部署的镜像文件与标准镜像文件的一致性,而且使用预先保存并确保可信的标准镜像文件替换已部署的(不可信的)镜像文件,避免了在每次比较结果表明当前哈希值与标准哈希值不相同的情况下都重新从发布方获取标准镜像文件可能导致的网络负荷增大。

  进一步的,区块链一体机可以在首次收到表明当前哈希值与标准哈希值相同的比较结果后,将当前哈希值对应的镜像文件(即上述可信的标准镜像文件)写入区块链一体机本地部署的TEE中,以作为备份镜像文件。或者,区块链一体机也可以在接收启动指令前主动向发布方请求获取对应于上述标准哈希值的标准镜像文件,或者,对应于前述实施例,在通过区块链一体机转发标准哈希值的情况下,发布方还可以将标准镜像文件加密后与标准哈希值关联传输至区块链一体机,以便区块链一体机将其中的标准镜像文件写入区块链一体机本地部署的TEE中,以作为备份镜像文件。

  在一实施例中,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机本地部署的镜像文件并非发布方发布的标准镜像文件,因此区块链一体机可以终止区块链一体机的启动流程,以避免执行与标准镜像文件不同的镜像文件。

  在另一实施例中,在比较结果表明当前哈希值与标准哈希值不相同的情况下,区块链一体机还可以针对该镜像文件发出告警。例如,可以向用户发出声、光、可视化弹窗等形式的告警,以便用户及时知晓该镜像文件并给标准镜像文件;进一步的,还可以对该镜像文件进行非法检测,并将检测结果展示给用户,以便用户知晓镜像文件更详细的非法信息,从而有针对性的进行相应处理。也可以向区块链一体机的管理设备(如通知控制多台区块链一体机的控制主机)或者区块链一体机相关的安全服务发送告警消息,以便管理设备或安全服务对镜像文件进行相应处理;类似的,还可以对该镜像文件进行非法检测,并将检测结果包含在上述告警消息中,以便针对性的进行上述相应处理。其中,上述响应处理可以包括记录告警消息、记录镜像文件的检测结果、删除镜像文件等至少之一。

  图4是一示例性实施例提供的一种区块链一体机的结构示意图。请参考图4,在硬件层面,该设备包括处理器402、内部总线404、网络接口406、内存408以及非易失性存储器410,当然还可能包括其他业务所需要的硬件。处理器402从非易失性存储器410中读取对应的计算机程序到内存408中然后运行,在逻辑层面上形成区块链一体机的可信启动装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

  请参考图5,在一种软件实施方式中,该区块链一体机的可信启动装置可以包括:

  指令接收模块501,使区块链一体机响应于接收到的启动指令,计算本地部署的镜像文件的当前哈希值;

  哈希提供模块502,使所述区块链一体机将所述当前哈希值提供至所述区块链一体机上装配的密码加速卡,并接收所述密码加速卡返回的所述当前哈希值与预存储的标准哈希值之间的比较结果,所述标准哈希值对应于预定义的标准镜像文件;

  镜像执行模块503,使在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下,所述区块链一体机执行所述本地部署的镜像文件以形成区块链节点。

  可选的,所述本地部署的镜像文件包括:

  所述区块链一体机上部署的对应于区块链节点的二进制镜像文件;或者,

  所述区块链一体机上部署的平台镜像文件,所述平台镜像文件包含所述二进制镜像文件。

  可选的,所述标准哈希值由所述标准镜像文件的发布方在可信执行环境中针对其发布的所述标准镜像文件进行计算生成。

  可选的,还包括:

  文件获取模块504,在所述比较结果表明所述当前哈希值与所述标准哈希值不相同的情况下,使所述区块链一体机向所述发布方请求获取所述标准镜像文件。

  可选的,还包括:

  启动终止模块505,在所述比较结果表明所述当前哈希值与所述标准哈希值不相同的情况下,使所述区块链一体机终止所述区块链一体机的启动流程;和/或,

  告警模块506,在所述比较结果表明所述当前哈希值与所述标准哈希值不相同的情况下,使所述区块链一体机针对所述镜像文件发出告警。

  可选的,还包括:

  文件读取模块507,在所述比较结果表明所述当前哈希值与所述标准哈希值不相同的情况下,使所述区块链一体机从本地部署的可信执行环境中读取备份镜像文件;

  文件替换模块508,使所述区块链一体机将所述镜像文件替换为所述备份镜像文件,并重新响应所述启动指令。

  可选的,还包括:

  文件备份模块509,使所述区块链一体机在首次收到表明所述当前哈希值与所述标准哈希值相同的比较结果后,将所述当前哈希值对应的镜像文件写入所述区块链一体机本地部署的可信执行环境中,以作为所述备份镜像文件。

  图6是一示例性实施例提供的一种密码加速卡的结构示意图。请参考图6,在硬件层面,该设备包括处理器602、内部总线604、网络接口606、内存608、非易失性存储器610、密码元算单元612以及安全密钥区614,当然还可能包括其他业务所需要的硬件。密码运算单元612将接收或生成的相关密钥保存在安全密钥区614中,以便处理器602调用用于实现加密、解密、签名和/或验签等相关功能;处理器602从非易失性存储器610中读取对应的计算机程序到内存608中然后运行,在逻辑层面上形成区块链一体机的可信启动装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

  请参考图7,在一种软件实施方式中,该区块链一体机的可信启动装置可以包括:

  哈希接收模块701,使区块链一体机上装配的密码加速卡接收所述区块链一体机发送的当前哈希值,所述当前哈希值为所述区块链一体机在接收到启动指令的情况下对本地部署的镜像文件进行计算得到;所述密码加速卡上预存储有预定义的标准镜像文件对应的标准哈希值;

  哈希比较模块702,使所述密码加速卡将所述当前哈希值与所述标准哈希值进行比较并将比较结果返回至所述区块链一体机,使所述区块链一体机在所述比较结果表明所述当前哈希值与所述标准哈希值相同的情况下执行所述本地部署的镜像文件以形成区块链节点。

  可选的,所述本地部署的镜像文件包括:

  所述区块链一体机上部署的对应于区块链节点的二进制镜像文件;或者,

  所述区块链一体机上部署的平台镜像文件,所述平台镜像文件包含所述二进制镜像文件。

  可选的,所述标准哈希值由所述标准镜像文件的发布方在可信执行环境中针对其发布的所述标准镜像文件进行计算生成。

  上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

  在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。

  内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。

  计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

  还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

  上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

  在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

  区块链一体机技术方法第二篇:

  区块链一体机及其自动建链方法、装置

  第一、技术领域

  本说明书一个或多个实施例涉及终端技术领域,尤其涉及一种区块链一体机及其自动建链方法、装置。

  第二、背景技术

  区块链技术(也被称之为,分布式账本技术)是一种去中性化的分布式数据库技术,具有去中心化、公开透明、不可篡改、可信任等多种特点,适用于诸多对数据可靠性具有高需求的应用场景中。

  第三、发明内容

  有鉴于此,本说明书一个或多个实施例提供一种区块链一体机及其自动建链方法、装置。

  为实现上述目的,本说明书一个或多个实施例提供技术方案如下:

  根据本说明书一个或多个实施例的第一方面,提出了一种区块链一体机的自动建链方法,包括:

  第一区块链一体机启动证书授权服务以生成根证书,并在所处网络内广播所述根证书;

  第一区块链一体机接收所述网络内的第二区块链一体机发起的认证申请,并在所述认证申请通过验证后基于所述证书授权服务向第二区块链一体机签发叶子证书;

  第一区块链一体机确定区块链网络中的区块链节点,所述区块链节点包括第一区块链一体机和所述网络内由所述证书授权服务签发了叶子证书的第二区块链一体机。

  根据本说明书一个或多个实施例的第二方面,提出了一种区块链一体机的自动建链方法,包括:

  第二区块链一体机接入网络后,向所述网络内的第一区块链一体机发起认证申请;

  第二区块链一体机接收第一区块链一体机基于证书授权服务签发的叶子证书,所述叶子证书由第一区块链一体机在确定所述认证申请通过验证后生成;

  第二区块链一体机在所述网络内广播所述叶子证书,以加入第一区块链一体机创建的区块链网络。

  根据本说明书一个或多个实施例的第三方面,提出了一种区块链一体机的自动建链装置,包括:

  服务启动单元,使第一区块链一体机启动证书授权服务以生成根证书,并在所处网络内广播所述根证书;

  证书签发单元,使第一区块链一体机接收所述网络内的第二区块链一体机发起的认证申请,并在所述认证申请通过验证后基于所述证书授权服务向第二区块链一体机签发叶子证书;

  节点确定单元,使第一区块链一体机确定区块链网络中的区块链节点,所述区块链节点包括第一区块链一体机和所述网络内由所述证书授权服务签发了叶子证书的第二区块链一体机。

  根据本说明书一个或多个实施例的第四方面,提出了一种区块链一体机的自动建链装置,包括:

  证书申请单元,使第二区块链一体机接入网络后,向所述网络内的第一区块链一体机发起认证申请;

  证书接收单元,使第二区块链一体机接收第一区块链一体机基于证书授权服务签发的叶子证书,所述叶子证书由第一区块链一体机在确定所述认证申请通过验证后生成;

  证书广播单元,使第二区块链一体机在所述网络内广播所述叶子证书,以加入第一区块链一体机创建的区块链网络。

  根据本说明书一个或多个实施例的第五方面,提出了一种区块链一体机,包括:

  处理器;

  用于存储处理器可执行指令的存储器;

  其中,所述处理器通过运行所述可执行指令以实现如第一方面或第二方面所述的方法。

  根据本说明书一个或多个实施例的第六方面,提出了一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现如第一方面或第二方面所述方法的步骤。

  第四、附图说明

  图1是一示例性实施例提供的一种区块链一体机的自动建链方法的流程图。

  图2是一示例性实施例提供的一种区块链一体机实现自动建链的场景示意图。

  图3是一示例性实施例提供的一种区块链一体机实现自动建链的交互流程图。

  图4是一示例性实施例提供的另一种区块链一体机的自动建链方法的流程图。

  图5是一示例性实施例提供的一种区块链一体机的结构示意图。

  图6是一示例性实施例提供的一种区块链一体机的自动建链装置的框图。

  图7是一示例性实施例提供的另一种区块链一体机的自动建链装置的框图。

  第五、具体实施方式

  这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。

  需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。

  在区块链技术的发展早期,用户基本上都是将自身持有的PC、笔记本电脑等加入区块链网络,成为区块链网络中的区块链节点。此时可以称之为区块链网络的1.0架构时代,不仅加入区块链网络的行为是用户的自主行为,而且用户还需要自主运维,譬如对自身加入区块链网络的PC等设备进行维护和配置等。随着区块链技术的不断发展,尤其是用户对于高性能、高可用基础设施的需求不断增强,区块链网络发展为基于云服务的2.0架构时代。在2.0架构时代,Blockchain-as-a-Service(BaaS)服务为区块链快速部署、技术落地提供了快速便捷的解决方案,并支持了大量区块链服务项目。BaaS服务通常建立在公有云或者私有云这类基础设施基础上,提供强大部署能力的同时,引入了较重的基础设施依赖。而区块链作为一个典型的分布式计算技术,并不是所有节点都可以迁移到云上,而需要进行私有化部署。私有化部署带来的额外技术迁移和运维成本导致实际落地过程中会有技术接口不统一,部署维护成本高的问题。因此,为了满足用户在区块链网络的私有化、安全性等方面的需求,需要对区块链网络实现进一步的架构升级,从而实现基于区块链一体机的3.0架构时代。

  区块链一体机可以实现软硬一体化。发布方在发布区块链一体机的同时,不仅向用户提供该区块链一体机的硬件设备,并且该区块链一体机还集成了针对该硬件设备实现深度优化的软件配置,从而实现了上述的软硬一体化。

  针对区块链一体机可以实现硬件优化。例如,区块链一体机上可以部署专用的智能合约处理芯片,譬如该智能合约处理芯片可以为FPGA(Field Programmable GateArray,现场可编程门阵列)芯片或其他类型的芯片,以提升针对智能合约的处理效率。智能合约处理芯片可以部署有硬件信任根密钥,譬如该硬件信任根密钥可以由发布方预先烧录至该智能合约处理芯片中,且发布方能够获知该硬件信任根密钥对应的公钥(比如该公钥被公开)。因此,智能合约处理芯片可以向发布方发送协商信息,并通过硬件信任根密钥对该协商信息进行签名,使得发布方可以基于相应的公钥进行验签;以及,在验签成功后,可以确保智能合约处理芯片和发布方分别基于上述协商信息协商得到相同的密钥。协商的密钥可以包括文件部署密钥,发布方可以基于该文件部署密钥将区块链节点所需的二进制镜像文件加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该文件部署密钥实现解密并部署二进制镜像文件。协商的密钥可以包括业务秘密部署密钥,发布方可以基于该业务秘密部署密钥将区块链节点的节点私钥、业务根密钥等加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该业务秘密部署密钥获取并部署节点私钥、业务根密钥等,以用于满足区块链场景下的隐私交易需求。例如,节点私钥对应于节点公钥,客户端可以通过节点公钥对区块链交易进行加密传输,而区块链节点可以通过节点私钥进行解密。而业务根密钥为对称密钥,可以用于对合约代码、合约状态的取值等业务数据进行加密存储。业务根密钥也可能并不直接被使用,智能合约处理芯片可以通过该业务根密钥的衍生密钥进行加解密,以降低业务根密钥的安全风险。通过对节点私钥、业务根密钥(或其衍生密钥)的可靠管理,并且确保数据除了被智能合约处理芯片进行处理的过程之外均处于加密状态,智能合约处理芯片实际上在区块链一体机上形成了硬件的可信执行环境(TrustedExecution Environment,简称TEE),确保交易、合约代码、合约状态等需要隐私保护的数据不会发生隐私泄露。

  再例如,区块链一体机上可以部署智能网卡。智能网卡除了实现传统网卡的功能之外,还可以替代或协助区块链一体机的CPU完成部分功能,以实现对CPU的计算卸载。尤其是,可以将网络I/O密集型的操作由CPU转移至智能网卡执行,这样CPU本身就可以处理更多的计算密集型操作,比如交易处理、存储处理等。由于智能网卡相比于区块链一体机上的其他部件(如CPU)而言,无论是在物理层面上或是逻辑层面上都更靠近网络,使得智能网卡总是优先拿到网络中传输的数据,因而在不涉及或少量涉及存储访问的情况下,通过智能网卡来处理这些数据能够实现相对更高的处理效率、相对更小的延迟、相对更大的吞吐量,从而以相对较小的成本达到比较高的性能收益。例如,在共识算法中,除了网络状态发生变化、节点发生增删、共识配置发生变化等情况下,几乎不需要访问存储,因而可以由智能网卡来完成共识操作,而只需要将共识结果告知CPU即可、无需CPU直接参与共识过程,能够显著提升共识效率。类似地,由智能网卡转发交易、由新增区块链节点上的智能网卡实现区块同步等,同样可以达到类似的效果,此处不再赘述。此外,智能网卡在收到交易后,可以通过与历史交易进行比较,比如从交易的发送方信息、目的地址、时间戳、哈希值等字段进行比较,从而识别和过滤掉重放交易。智能网卡还可以对收到的交易进行内容解析,从而过滤掉非法交易或预定义的不想处理的交易等,作为对交换机实现的基于二层或三层的报文过滤的补充。

  又例如,区块链一体机上可以部署密码加速卡,也可称为高速密码卡。密码加速卡可以实现全加密内存,并通过硬件加固以抵御侧信道攻击,还可以针对探针、激光等手段实现物理防护,具有极高的安全性。举例而言,区块链一体机上使用的密码加速卡可以具有国密二级资质、国密三级资质或其他资质。当部署有密码加速卡时,上文所述的硬件信任根密钥可以被维护于该密码加速卡中,并且密码加速卡可以基于该硬件信任根密钥实现签名操作,并替代或协助智能合约处理芯片完成上文所述的密钥协商等操作;类似地,密码加速卡可以用于维护公钥,使得密码加速卡可以基于维护的公钥实现签名的验证操作。总之,可以将区块链一体机上与密钥管理、加解密、签名验签等相关的至少一部分操作交由密码加速卡,从而既可以获得极高的安全性,又可以对区块链一体机的CPU或上述的智能合约处理芯片等实现性能卸载,以提升处理效率。

  针对区块链一体机可以实现软件优化。例如,区块链一体机可以内置证书授权服务,可以实现自动化的证书签发与节点身份认证,可以自动建链和区块链节点的自动加入,从而实现区块链一体机的即插即用。那么,用户可以快速实现区块链一体机的部署。除了能够在多台区块链一体机之间快捷地建立私有型的区块链网络,区块链一体机可以集成标准化的云上服务接口,使得区块链一体机可以自动对接云上服务,从而实现区块链一体机与云端部署的区块链节点之间混合部署,构建混合型的区块链网络。区块链一体机还可以集成标准化的跨链服务接口,使得区块链一体机可以基于标准化的跨链协议或标准化的跨链服务实现跨链服务,极大地扩展了区块链一体机的应用场景,满足用户的跨链需求,比如实现不同区块链网络之间的跨链数据交互,再比如实现区块链网络与链下计算节点之间的跨链数据交互(譬如由链下计算节点为区块链节点分担计算任务等)等。

  基于各台区块链一体机上采用的统一的软件逻辑,本说明书的区块链一体机可以实现自动化的区块链网络建立过程,下面结合附图进行说明:

  图1是一示例性实施例提供的一种区块链一体机的自动建链方法的流程图。如图1所示,该方法可以包括以下步骤:

  步骤102,第一区块链一体机启动证书授权服务以生成根证书,并在所处网络内广播所述根证书。

  区块链一体机可以内置证书授权服务,即CA(Certificate Authority)服务,相当于可以将该区块链一体机配置为所处网络内的CA证书授权中心,以用于自主实现证书签发。每台区块链一体机均可以内置CA服务,但通常只有网络内的部分区块链一体机会启动CA服务,较为典型的,可以仅有一台区块链一体机启动CA服务,而其他区块链一体机则需要向该区块链一体机申请证书。当然,不同区块链一体机之间可以存在差异,譬如网络中可以只有部分区块链一体机内置CA服务,那么必然只有这些区块链一体机中的一台或多台能够启动CA服务,并协助为其他并未内置CA服务的区块链一体机签发证书。

  上述的第一区块链一体机内置了CA服务,并且启动了CA服务。该第一区块链一体机可以为网络中内置了CA服务的任意一台区块链一体机,而并不特指某一台区块链一体机。为了便于区分,下文中将未启动CA服务的区块链一体机称为第二区块链一体机,第二区块链一体机可以内置CA服务但并未开启,也可以并未内置CA服务。

  网络中已接入的区块链一体机可以实现选举,以确定出一台或多台主节点。那么,第一区块链一体机可以是在被选举为主节点的情况下,启动自身的CA服务。其中,本说明书并不限制所采用的选举规则,比如可以按照接入网络的次序,将前n个接入网络的区块链一体机确认为主节点,再比如可以按照IP地址的大小排序,从大到小或从小到大地选取n个确认为主节点的区块链一体机,n为正整数。当然,选举过程只是为了确定哪个区块链一体机应当启动CA服务,但并非必须;譬如,每台区块链一体机在接入网络后可以首先执行节点发现操作,如果某台区块链一体机确定网络内尚未存在其他已接入的区块链一体机,该区块链一体机可以启动CA服务,如果确定网络内已经存在其他已接入的区块链一体机则不会启动CA服务。

  第一区块链一体机在启动CA服务后,可以基于该CA服务首先为自身生成根证书(Root CA Cert),并通过在网络内广播该根证书,向其他接入该网络的第二区块链一体机表明自身已经启动了CA服务,可以指示第二区块链一体机向该第一区块链一体机发起认证申请,从而为第二区块链一体机签发证书。

  CA服务在签发证书时,需要使用到第一区块链一体机的身份密钥。假定第一区块链一体机创建了第一身份密钥,该第一身份密钥具体包括第一身份私钥和相应的第一身份公钥。进而,第一区块链一体机将第一身份私钥提供至CA服务,使CA服务通过第一身份私钥对第一身份公钥和第一区块链一体机的描述信息进行签名,以生成上述的根证书。由于是用自身的私钥对自身的公钥进行签名生成的数字证书,因而第一区块链一体机对应的数字证书为根证书或称为自签名证书。

  步骤104,第一区块链一体机接收所述网络内的第二区块链一体机发起的认证申请,并在所述认证申请通过验证后基于所述证书授权服务向第二区块链一体机签发叶子证书。

  在上述的第一身份私钥中,第一区块链一体机需要妥善维护第一身份私钥,但可以随意公开第一身份公钥。当然,第一身份公钥实际上就包含于根证书中,因而第二区块链一体机在收到根证书后,可以从该根证书中获取第一身份公钥,并通过该第一身份公钥对该根证书进行签名验证,如果验证成功,则第二区块链一体机可以确定该根证书有效,进而确定第一区块链一体机启动了CA服务,因而第二区块链一体机可以通过向第一区块链一体机发起认证申请,以由第一区块链一体机启动的CA服务为第二区块链一体机签发数字证书。

  与第一区块链一体机相类似的,第二区块链一体机也创建自身的身份密钥。假定第二区块链一体机创建了第二身份密钥,该第二身份密钥具体包括第二身份私钥和第二身份公钥,而第二区块链一体机创建的认证申请可以包含第二区块链一体机的第二身份公钥和第二区块链一体机的描述信息,第二区块链一体机需要妥善维护第二身份私钥。相应的,第一区块链一体机将收到的认证申请提供至CA服务后,CA服务可以通过上述的第一身份私钥对第二身份公钥、第二区块链一体机的描述信息和第一区块链一体机的描述信息进行签名,以生成第二区块链一体机对应的数字证书。

  由于第一区块链一体机对应的数字证书由其自身的第一身份私钥进行签名,因而可以直接从该数字证书中获取第一身份公钥并完成签名验证。第二区块链一体机对应的数字证书同样由第一区块链一体机的第一身份私钥进行签名,但该数字证书中包含的公钥为第二区块链一体机对应的第二身份公钥,需要根据该数字证书所含的第一区块链一体机的描述信息获取根证书,并通过根证书所含的第一身份公钥验证第二区块链一体机对应的数字证书所含的签名,故而在第一区块链一体机对应的数字证书、第二区块链一体机对应的数字证书之间形成了链式关系,即证书链,其中第一区块链一体机对应的数字证书处在“根”的位置,因而其数字证书可以称为根证书,而第二区块链一体机对应的数字证书处在“叶子”的位置,因而其数字证书可以称为叶子证书。

  步骤106,第一区块链一体机确定区块链网络中的区块链节点,所述区块链节点包括第一区块链一体机和所述网络内由所述证书授权服务签发了叶子证书的第二区块链一体机。

  CA服务签发的数字证书可以用于表明:该数字证书对应的区块链一体机已经通过了CA服务的身份认证。因此,通过对某一区块链一体机提供的数字证书进行验证,可以在验证通过后将该区块链一体机确定为区块链网络内的区块链节点;当网络内所有区块链一体机均采用上述验证逻辑时,这些区块链一体机即可完成自动建链,即自动建立区块链网络。

  对于第一区块链一体机而言,通过启动CA服务可以生成根证书,该第一区块链一体机可以基于该根证书确定自身属于区块链网络中的区块链节点。当然,第一区块链一体机可以对根证书进行签名验证,并在验签通过后将自身确定为区块链节点。类似地,第一区块链一体机可以接收第二区块链一体机发送的待验证叶子证书,并根据根证书所含的第一身份公钥对该待验证叶子证书进行签名验证,从而在验证成功的情况下确定该待验证叶子证书由第一区块链一体机上启动的CA服务签发,并将该待验证叶子证书对应的第二区块链一体机确定为区块链网络内的区块链节点。至此,第一区块链一体机自动将自身和除自身之外的第二区块链一体机确定为区块链节点,从而在第一区块链一体机的角度自动构建了区块链网络。

  类似地,可以从第二区块链一体机的角度确定区块链节点,从而自动构建区块链网络。例如,第二区块链一体机可以对收到的根证书进行签名验证,也可以通过根证书所含的第一身份公钥对自身的叶子证书进行签名验证,还可以通过根证书所含的第一身份公钥对其他的第二区块链一体机对应的叶子证书进行签名验证。总之,第二区块链一体机可以对网络内所有区块链一体机对应的数字证书进行签名验证,并将通过验证的数字证书对应的区块链一体机确认为区块链节点。

  网络内的每台区块链一体机可以基于自身对区块链节点的识别结果,与这些区块链节点之间实现数据交互,譬如收发区块链交易、完成共识操作等。每一区块链一体机可以分别维护节点信息列表,并将确定为区块链节点的区块链一体机的信息记录至节点信息列表中,该节点信息列表中记录的区块链一体机的信息可以包括下述至少之一:区块链一体机的IP地址、区块链一体机的身份公钥等,本说明书并不对此进行限制。

  以图2所示的区块链一体机实现自动建链的场景为例,在图2中涉及到区块链一体机21、区块链一体机22、区块链一体机23和区块链一体机24,共4台区块链一体机。当然,本说明书并不对区块链一体机的数量加以限制。区块链一体机21~24均连接至交换机25,使得区块链一体机21~24实际上接入了同一局域网,并实现如图3所示的交互过程:

  步骤301,区块链一体机21启动CA服务。

  假定区块链一体机21最先接入该局域网,如果预设的选举规则将首个接入网络的区块链一体机确定为主节点,那么区块链一体机21可以将自身确定为主节点,并启动CA服务。当然,还可以采用其他选举规则,这可能导致主节点的选举结果发生变化,比如选举规则还可以将IP地址最大的区块链一体机确定为主节点等。总之,由被确定为主节点的区块链一体机启动CA服务,而其他区块链一体机则不启动CA服务。

  步骤302,区块链一体机21生成并广播根证书。

  区块链一体机21可以生成身份密钥,比如第一身份密钥,该第一身份密钥可以包括第一身份私钥和第一身份公钥。然后,区块链一体机21通过CA服务生成根证书。具体的,CA服务可以通过第一身份私钥对第一身份公钥和该区块链一体机21的描述信息进行签名,以生成对应于区块链一体机21的数字证书,即上述的根证书。

  步骤303a,区块链一体机22验证根证书,并在验证通过后将区块链一体机21添加为区块链节点。

  区块链一体机22在收到区块链一体机21广播的根证书后,可以通过该根证书所含的第一身份公钥进行签名验证。在签名验证成功的情况下,区块链一体机22可以确定该根证书通过验证,从而得到两个结论:确定区块链一体机21为区块链节点、确定区块链一体机21上启动了CA服务。区块链一体机22可以维护一节点信息列表,该节点信息列表用于记录区块链一体机22确定的区块链节点的信息,譬如区块链节点的公钥、IP地址等。因此,区块链一体机22在确定区块链一体机21为区块链节点后,可以将该区块链一体机21的信息记录至自身维护的节点信息列表中。

  步骤303b,区块链一体机23验证根证书,并在验证通过后将区块链一体机21添加为区块链节点。

  区块链一体机23的处理过程与区块链一体机22类似,可以参考步骤303a的描述,实际上该网络内的区块链一体机24或其他的区块链一体机均采用类似的处理逻辑,此处不再赘述。

  步骤304,区块链一体机22生成认证申请并发送至区块链一体机21。

  区块链一体机22在确定区块链一体机21启动了CA服务后,通过生成并发送认证申请,请求区块链一体机21上的CA服务为该区块链一体机22签发数字证书。

  与区块链一体机21相类似的,区块链一体机22可以生成身份密钥,比如第二身份密钥,该第二身份密钥可以包括第二身份私钥和第二身份公钥。区块链一体机22生成的认证申请可以包括第二身份公钥和该区块链一体机22的描述信息。区块链一体机的描述信息可以包括ID信息、产品序列号、IP地址、MAC地址等,只要能够用于证明该区块链一体机的身份即可,本说明书并不对此进行限制。

  步骤305,区块链一体机21验证并生成叶子证书,并将叶子证书返回区块链一体机22。

  区块链一体机21在收到区块链一体机22发送的认证申请后,可以通过CA服务对认证申请所含的区块链一体机22的描述信息进行验证,在验证无误后为区块链一体机22生成数字证书。具体的,CA服务可以通过第一身份私钥对第二身份公钥、区块链一体机22的描述信息和区块链一体机21的描述信息进行签名,以生成对应于区块链一体机22的数字证书,即上述的叶子证书。这里,签名时采用的区块链一体机21的描述信息可能与区块链一体机22的描述信息不一致,譬如可以分别包含不同类型的描述信息,这取决于CA服务所设定的规则。同样,认证申请所含的区块链一体机22的描述信息,可能与签名时采用的区块链一体机22的描述信息不一致,比如签名时采用的描述信息可能仅为认证申请所含描述信息的一部分,尤其是可能排除了部分不适宜公开(如涉及隐私)的描述信息,再比如签名时采用的描述信息可能为认证申请所含描述信息的哈希值,这样使得叶子证书能够完全对应于认证申请所含的描述信息,并且可以避免不适宜公开的描述信息被叶子证书所公开。

  与区块链一体机22相类似的,区块链一体机23、区块链一体机24和网络内的其他区块链一体机均可以通过步骤304~305或类似的过程,请求区块链一体机21上的CA服务签发叶子证书,此处不再一一赘述。

  步骤306,区块链一体机22将叶子证书发送至区块链一体机23进行验证。

  步骤307,区块链一体机23验证叶子证书,并在验证通过后将区块链一体机22添加为区块链节点。

  区块链一体机23在收到区块链一体机22发送的叶子证书后,可以通过在步骤303b中从根证书内获取的第一身份公钥,对收到的叶子证书进行签名验证:如果验证成功,表明该叶子证书确实由区块链一体机21上的CA服务所签发,那么基于CA服务对区块链一体机22的背书,区块链一体机23可以确定区块链一体机22为区块链节点,并将其添加至自身维护的节点信息列表中。类似地,区块链一体机22可以确保自身的信息被添加至区块链一体机24以及网络中的其他区块链一体机所各自维护的节点信息列表中,即区块链一体机22被其他区块链一体机确认为区块链节点。其中,由于叶子证书为区块链一体机21上的CA服务所签发,因而区块链一体机21实际上可以不必像区块链一体机23等对区块链一体机22的叶子证书进行验证,而是可以在该叶子证书被签发后,就确定区块链一体机22为区块链节点,并将该区块链一体机22的信息添加至区块链一体机21所维护的节点信息列表中。当然,为了保持各个区块链一体机的逻辑一致性,区块链一体机21也可以接收区块链一体机22发送的叶子证书,并通过验证该叶子证书来确定区块链一体机22是否为区块链节点,其处理过程与步骤306-307类似。

  可见,区块链一体机21-24通过如图3所示的上述步骤,可以自动完成证书签发和节点认证,使得每台区块链一体机分别确定并记录下识别出的区块链节点,从而由这些被识别出的区块链节点之间构成区块链网络,即区块链一体机21-24完成了自动建链。

  图4是一示例性实施例提供的另一种区块链一体机的自动建链方法的流程图。如图4所示,该方法可以包括以下步骤:

  步骤402,第二区块链一体机接入网络后,向所述网络内的第一区块链一体机发起认证申请。

  如前所述,第一区块链一体机内置了CA服务,并且启动了CA服务。每台区块链一体机均可以内置CA服务,但通常只有网络内的部分区块链一体机会启动CA服务,较为典型的,可以仅有一台区块链一体机启动CA服务,而其他区块链一体机则需要向该区块链一体机申请证书。当然,不同区块链一体机之间可以存在差异,譬如网络中可以只有部分区块链一体机内置CA服务,那么必然只有这些区块链一体机中的一台或多台能够启动CA服务,并协助为其他并未内置CA服务的区块链一体机签发证书。

  网络中已接入的区块链一体机可以实现选举,以确定出一台或多台主节点。那么,第一区块链一体机可以是在被选举为主节点的情况下,启动自身的CA服务。而相应地,第二区块链一体机可以在确定第一区块链一体机被选举为主节点的情况下,向第一区块链一体机发起所述认证申请。

  第一区块链一体机可以在启动CA服务后生成并广播根证书。CA服务在签发证书时,需要使用到第一区块链一体机的身份密钥。假定第一区块链一体机创建了第一身份密钥,该第一身份密钥具体包括第一身份私钥和相应的第一身份公钥。进而,第一区块链一体机将第一身份私钥提供至CA服务,使CA服务通过第一身份私钥对第一身份公钥和第一区块链一体机的描述信息进行签名,以生成上述的根证书。而第二区块链一体机可以获取第一区块链一体机的根证书,并在确定该根证书通过验证的情况下,将第一区块链一体机确认为主节点。

  步骤404,第二区块链一体机接收第一区块链一体机基于证书授权服务签发的叶子证书,所述叶子证书由第一区块链一体机在确定所述认证申请通过验证后生成。

  与第一区块链一体机相类似的,第二区块链一体机也创建自身的身份密钥。假定第二区块链一体机创建了第二身份密钥,该第二身份密钥具体包括第二身份私钥和第二身份公钥,而第二区块链一体机创建的认证申请可以包含第二区块链一体机的第二身份公钥和第二区块链一体机的描述信息,第二区块链一体机需要妥善维护第二身份私钥。相应的,第一区块链一体机将收到的认证申请提供至CA服务后,CA服务可以通过上述的第一身份私钥对第二身份公钥、第二区块链一体机的描述信息和第一区块链一体机的描述信息进行签名,以生成第二区块链一体机对应的数字证书,即上述的叶子证书。

  步骤406,第二区块链一体机在所述网络内广播所述叶子证书,以加入第一区块链一体机创建的区块链网络。

  通过在网络内广播第二区块链一体机的叶子证书,可以使得网络内的其他区块链一体机接收到该第二区块链一体机的叶子证书,并通过第一区块链一体机的根证书对该叶子证书进行验证。具体的,通过获取根证书所含的第一身份公钥,并基于该第一身份公钥对叶子证书进行签名验证。如果第二区块链一体机的叶子证书在其他区块链一体机处均被验证成功,那么第二区块链一体机会被这些区块链一体机识别为区块链节点,相当于第二区块链一体机加入了相应的区块链网络。

  类似地,第二区块链一体机可以根据上述的根证书对任一区块链一体机的证书进行验证,并在验证通过后确定该任一区块链一体机为区块链网络中的区块链节点。这里的任一区块链一体机可以为第一区块链一体机,由于第一区块链一体机对应的证书就是根证书,实际上是采用根证书所含的第一身份公钥对该根证书进行签名验证。这里的任一区块链一体机可以为其他的第二区块链一体机,其他的第二区块链一体机对应的证书也是叶子证书,因而可以通过根证书来验证叶子证书,此处不再赘述。在验证完成后,第二区块链一体机可以将确定为区块链节点的区块链一体机的信息记录至自身维护的节点信息列表中;类似地,第一区块链一体机或其他的第二区块链一体机均可以分别维护有节点信息列表,以用于记录自身识别出的区块链节点的信息(即区块链节点对应的区块链一体机的信息)。其中,节点信息列表中记录的信息可以包括下述至少之一:区块链一体机的IP地址、区块链一体机的身份公钥等。

  图5是一示例性实施例提供的一种区块链一体机的结构示意图。请参考图5,在硬件层面,该设备包括处理器502、内部总线504、网络接口506、内存508以及非易失性存储器510,当然还可能包括其他业务所需要的硬件。处理器502从非易失性存储器510中读取对应的计算机程序到内存508中然后运行,在逻辑层面上形成区块链一体机的自动建链装置。当然,除了软件实现方式之外,本说明书一个或多个实施例并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

  请参考图6,在一种软件实施方式中,该区块链一体机的自动建链装置可以包括:

  服务启动单元61,使第一区块链一体机启动证书授权服务以生成根证书,并在所处网络内广播所述根证书;

  证书签发单元62,使第一区块链一体机接收所述网络内的第二区块链一体机发起的认证申请,并在所述认证申请通过验证后基于所述证书授权服务向第二区块链一体机签发叶子证书;

  节点确定单元63,使第一区块链一体机确定区块链网络中的区块链节点,所述区块链节点包括第一区块链一体机和所述网络内由所述证书授权服务签发了叶子证书的第二区块链一体机。

  可选的,服务启动单元61使第一区块链一体机启动证书授权服务,包括:

  使第一区块链一体机在接入所述网络并被选举为主节点的情况下,启动所述证书授权服务。

  可选的,服务启动单元61使第一区块链一体机生成根证书,包括:

  使第一区块链一体机创建第一身份密钥,第一身份密钥包括第一身份私钥和相应的第一身份公钥;

  使第一区块链一体机将第一身份私钥提供至所述证书授权服务,使所述证书授权服务通过第一身份私钥对第一身份公钥和第一区块链一体机的描述信息进行签名,以生成所述根证书。

  可选的,所述认证申请包含第二区块链一体机的第二身份公钥和第二区块链一体机的描述信息;证书签发单元62使第一区块链一体机基于所述证书授权服务向第二区块链一体机签发叶子证书,包括:

  使第一区块链一体机将第一身份私钥提供至所述证书授权服务,进而使所述证书授权服务通过第一身份私钥对第二身份公钥、第二区块链一体机的描述信息和第一区块链一体机的描述信息进行签名,以生成所述叶子证书。

  可选的,节点确定单元63使第一区块链一体机确定所述网络内由所述证书授权服务签发了叶子证书的第二区块链一体机,包括:

  使第一区块链一体机接收第二区块链一体机发送的待验证叶子证书;

  使第一区块链一体机根据所述根证书对所述待验证叶子证书进行验证,在验证成功的情况下确定所述待验证叶子证书由所述证书授权服务签发。

  可选的,还包括:

  信息记录单元64,使第一区块链一体机将确定为区块链节点的区块链一体机的信息记录至节点信息列表中。

  可选的,所述节点信息列表中记录的区块链一体机的信息包括下述至少之一:区块链一体机的IP地址、区块链一体机的身份公钥。

  请参考图7,在另一种软件实施方式中,该区块链一体机的自动建链装置可以包括:

  证书申请单元71,使第二区块链一体机接入网络后,向所述网络内的第一区块链一体机发起认证申请;

  证书接收单元72,使第二区块链一体机接收第一区块链一体机基于证书授权服务签发的叶子证书,所述叶子证书由第一区块链一体机在确定所述认证申请通过验证后生成;

  证书广播单元73,使第二区块链一体机在所述网络内广播所述叶子证书,以加入第一区块链一体机创建的区块链网络。

  可选的,证书申请单元71使第二区块链一体机向所述网络内的第一区块链一体机发起认证申请,包括:

  使第二区块链一体机在确定第一区块链一体机被选举为主节点的情况下,向第一区块链一体机发起所述认证申请。

  可选的,还包括:

  证书获取单元74,使第二区块链一体机获取第一区块链一体机的根证书,所述根证书由所述证书授权服务生成;

  证书验证单元75,使第二区块链一体机根据所述根证书对任一区块链一体机的证书进行验证,并在验证通过后确定所述任一区块链一体机为所述区块链网络中的区块链节点。

  可选的,还包括:

  信息记录单元76,使第二区块链一体机将确定为区块链节点的区块链一体机的信息记录至节点信息列表中。

  可选的,所述节点信息列表中记录的区块链一体机的信息包括下述至少之一:区块链一体机的IP地址、区块链一体机的身份公钥。

  上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

  在一个典型的配置中,计算机包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。

  内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。

  计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带、磁盘存储、量子存储器、基于石墨烯的存储介质或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

  还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

  上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

  在本说明书一个或多个实施例使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

  应当理解,尽管在本说明书一个或多个实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

  以上所述仅为本说明书一个或多个实施例的较佳实施例而已,并不用以限制本说明书一个或多个实施例,凡在本说明书一个或多个实施例的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例保护的范围之内。

  区块链一体机技术方法第三篇:

  一种基于区块链一体机的交易处理方法及装置

  第一、技术领域

  本说明书实施例涉及信息技术领域,尤其涉及一种基于区块链一体机的交易处理方法及装置。

  第二、背景技术

  区块链技术(也被称之为,分布式账本技术)是一种去中心化的分布式数据库技术,具有公开透明、不可篡改、可信任等特点,适用于诸多对数据可靠性具有高需求的应用场景中。目前,通常由节点的中央处理器(central processing unit,CPU)来对交易进行处理(如对待执行的交易进行共识、执行交易、将执行的交易写入区块链等)。

  基于现有技术,需要一种更为高效的区块链交易处理方法。

  第三、发明内容

  为了解决现有的区块链交易处理方法效率较低的问题,本说明书实施例提供一种基于区块链一体机的交易处理方法及装置,技术方案如下:

  根据本说明书实施例的第1方面,提供一种基于区块链一体机的交易处理方法,所述区块链一体包括中央处理器CPU与智能网卡,所述区块链一体机是区块链网络的任一节点,所述方法包括:

  当所述区块链一体机通过所述智能网卡受理交易时,所述智能网卡将受理的交易写入网卡缓存;

  在所述区块链一体机参与区块链共识的过程中,所述智能网卡基于所述网卡缓存中的交易,与所述区块链网络的其他节点进行共识交互;

  所述智能网卡根据本次共识结果,确定待执行交易列表并发送给所述CPU;

  所述CPU基于所述待执行交易列表执行交易并完成交易上链。

  根据本说明书实施例的第2方面,提供一种基于区块链一体机的交易处理方法,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:

  当所述区块链一体机通过所述智能网卡受理交易时,将受理的交易写入网卡缓存;

  在所述区块链一体机参与区块链共识的过程中,基于所述网卡缓存中的交易,与所述区块链网络的其他节点进行共识交互;

  根据本次共识结果,确定待执行交易列表并发送给所述CPU。

  根据本说明书实施例的第3方面,提供另一种基于区块链一体机的交易处理方法,应用于区块链一体机具有的CPU,所述区块链一体还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  所述CPU基于所述智能网卡发送的待执行交易列表执行交易并完成交易上链。

  根据本说明书实施例的第4方面,提供一种基于区块链一体机的交易处理装置,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:

  缓存模块,当所述区块链一体机通过所述智能网卡受理交易时,将受理的交易写入网卡缓存;

  共识交互模块,在所述区块链一体机参与区块链共识的过程中,基于所述网卡缓存中的交易,与所述区块链网络的其他节点进行共识交互;

  发送模块,根据本次共识结果,确定待执行交易列表并发送给所述CPU。

  根据本说明书实施例的第5方面,提供一种基于区块链一体机的交易处理装置,应用于区块链一体机的CPU,所述区块链一体还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  执行上链模块,基于所述智能网卡发送的待执行交易列表执行交易并完成交易上链。

  本说明书实施例所提供的技术方案,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU来代表区块链一体机实际参与区块链共识,并根据本次共识结果,将待执行交易列表发送给CPU进行交易执行与交易上链。

  通过本说明书实施例,将区块链共识这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:

  1、由智能网卡专门负责区块链共识,CPU专注于交易执行与交易上链,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、区块链共识过程中的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,CPU不参与共识过程,使得共识过程中区块链一体机的反馈延时降低。

  应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书实施例。

  此外,本说明书实施例中的任一实施例并不需要达到上述的全部效果。

  第四、附图说明

  为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

  图1是本说明书实施例提供的一种区块链一体机的机构示意图;

  图2是本说明书实施例提供的一种区块链系统的结构示意图;

  图3是本说明书实施例提供的一种基于区块链一体机的交易处理方法的流程示意图;

  图4是本说明书实施例提供的一种基于区块链一体机的数据同步方法的流程示意图;

  图5是本说明书实施例提供的一种基于区块链一体机的交易转发方法的流程示意图;

  图6是本说明书实施例提供的一种基于区块链一体机的重放交易识别方法的流程示意图;

  图7是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别方法的流程示意图;

  图8是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图;

  图9是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图;

  图10是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图;

  图11是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图;

  图12是本说明书实施例提供的一种基于区块链一体机的交易转发装置的结构示意图;

  图13是本说明书实施例提供的一种基于区块链一体机的重放交易识别装置的结构示意图;

  图14是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别装置的结构示意图;

  图15是用于配置本说明书实施例方法的一种计算机设备的结构示意图。

  第五、具体实施方式

  在区块链技术的发展早期,用户基本上都是将自身持有的PC、笔记本电脑等加入区块链网络,成为区块链网络中的区块链节点。此时可以称之为区块链网络的1.0架构时代,不仅加入区块链网络的行为是用户的自主行为,而且用户还需要自主运维,譬如对自身加入区块链网络的PC等设备进行维护和配置等。随着区块链技术的不断发展,尤其是用户对于高性能、高可用基础设施的需求不断增强,区块链网络发展为基于云服务的2.0架构时代。在2.0架构时代,云服务商通过高性能服务器和云计算,向用户提供高性能、高可用的基础设施,以用于配置形成用户所需的区块链节点。而为了满足用户在区块链网络的私有化、安全性等方面的需求,需要对区块链网络实现进一步的架构升级,从而实现基于区块链一体机的3.0架构时代。

  区块链一体机可以实现软硬一体化。发布方在发布区块链一体机的同时,不仅向用户提供该区块链一体机的硬件设备,并且该区块链一体机还集成了针对该硬件设备实现深度优化的软件配置,从而实现了上述的软硬一体化。

  针对区块链一体机可以实现硬件优化。例如,区块链一体机上可以部署专用的智能合约处理芯片,譬如该智能合约处理芯片可以为FPGA(Field Programmable GateArray,现场可编程门阵列)芯片或其他类型的芯片,以提升针对智能合约的处理效率。智能合约处理芯片可以部署有硬件信任根密钥,譬如该硬件信任根密钥可以由发布方预先烧录至该智能合约处理芯片中,且发布方能够获知该硬件信任根密钥对应的公钥(比如该公钥被公开)。因此,智能合约处理芯片可以向发布方发送协商信息,并通过硬件信任根密钥对该协商信息进行签名,使得发布方可以基于相应的公钥进行验签;以及,在验签成功后,可以确保智能合约处理芯片和发布方分别基于上述协商信息协商得到相同的密钥。协商的密钥可以包括文件部署密钥,发布方可以基于该文件部署密钥将区块链节点所需的二进制镜像文件加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该文件部署密钥实现解密并部署二进制镜像文件。协商的密钥可以包括业务秘密部署密钥,发布方可以基于该业务秘密部署密钥将区块链节点的节点私钥、业务根密钥等加密传输至智能合约处理芯片,而智能合约处理芯片可以基于该业务秘密部署密钥获取并部署节点私钥、业务根密钥等,以用于满足区块链场景下的隐私交易需求。例如,节点私钥对应于节点公钥,客户端可以通过节点公钥对区块链交易进行加密传输,而区块链节点可以通过节点私钥进行解密。而业务根密钥为对称密钥,可以用于对合约代码、合约状态的取值等业务数据进行加密存储。业务根密钥也可能并不直接被使用,智能合约处理芯片可以通过该业务根密钥的衍生密钥进行加解密,以降低业务根密钥的安全风险。通过对节点私钥、业务根密钥(或其衍生密钥)的可靠管理,并且确保数据除了被智能合约处理芯片进行处理的过程之外均处于加密状态,智能合约处理芯片实际上在区块链一体机上形成了硬件的可信执行环境(TrustedExecution Environment,简称TEE),确保交易、合约代码、合约状态等需要隐私保护的数据不会发生隐私泄露。

  再例如,区块链一体机上可以部署智能网卡。智能网卡除了实现传统网卡的功能之外,还可以替代或协助区块链一体机的CPU完成部分功能,以实现对CPU的计算卸载。尤其是,可以将网络I/O密集型的操作由CPU转移至智能网卡执行,这样CPU本身就可以处理更多的计算密集型操作,比如交易执行、存储处理等。由于智能网卡相比于区块链一体机上的其他部件(如CPU)而言,无论是在物理层面上或是逻辑层面上都更靠近网络,使得智能网卡总是优先拿到网络中传输的数据,因而在不涉及或少量涉及存储访问的情况下,通过智能网卡来处理这些数据能够实现相对更高的处理效率、相对更小的延迟、相对更大的吞吐量,从而以相对较小的成本达到比较高的性能收益。例如,在共识算法中,除了网络状态发生变化、节点发生增删、共识配置发生变化等情况下,几乎不需要访问存储,因而可以由智能网卡来完成共识操作,而只需要将共识结果告知CPU即可、无需CPU直接参与共识过程,能够显著提升共识效率。类似地,由智能网卡转发交易、由新增区块链节点上的智能网卡实现区块同步等,同样可以达到类似的效果,此处不再赘述。此外,智能网卡在收到交易后,可以通过与历史交易进行比较,比如从交易的发送方信息、目的地址、时间戳、哈希值等字段进行比较,从而识别和过滤掉重放交易。智能网卡还可以对收到的交易进行内容解析,从而过滤掉非法交易或预定义的不想处理的交易等,作为对交换机实现的基于二层或三层的报文过滤的补充。

  又例如,区块链一体机上可以部署密码加速卡,也可称为高速密码卡。密码加速卡可以实现全加密内存,并通过硬件加固以抵御侧信道攻击,还可以针对探针、激光等手段实现物理防护,具有极高的安全性。举例而言,区块链一体机上使用的密码加速卡可以具有国密二级资质、国密三级资质或其他资质。当部署有密码加速卡时,上文所述的硬件信任根密钥可以被维护于该密码加速卡中,并且密码加速卡可以基于该硬件信任根密钥实现签名操作,并替代或协助智能合约处理芯片完成上文所述的密钥协商等操作;类似地,密码加速卡可以用于维护公钥,使得密码加速卡可以基于维护的公钥实现签名的验证操作。总之,可以将区块链一体机上与密钥管理、加解密、签名验签等相关的至少一部分操作交由密码加速卡,从而既可以获得极高的安全性,又可以对区块链一体机的CPU或上述的智能合约处理芯片等实现性能卸载,以提升处理效率。

  针对区块链一体机可以实现软件优化。例如,区块链一体机可以内置证书授权服务,可以实现自动化的证书签发与节点身份认证,可以自动建链和区块链节点的自动加入,从而实现区块链一体机的即插即用。那么,用户可以快速实现区块链一体机的部署。除了能够在多台区块链一体机之间快捷地建立私有型的区块链网络,区块链一体机可以集成标准化的云上服务接口,使得区块链一体机可以自动对接云上服务,从而实现区块链一体机与云端部署的区块链节点之间混合部署,构建混合型的区块链网络。区块链一体机还可以集成标准化的跨链服务接口,使得区块链一体机可以基于标准化的跨链协议或标准化的跨链服务实现跨链服务,极大地扩展了区块链一体机的应用场景,满足用户的跨链需求,比如实现不同区块链网络之间的跨链数据交互,再比如实现区块链网络与链下计算节点之间的跨链数据交互(譬如由链下计算节点为区块链节点分担计算任务等)等。

  以下结合附图,详细说明本说明书各实施例提供的技术方案。

  图1是本说明书实施例提供的一种区块链一体机的机构示意图。如图1所示,区块链一体机包括中央处理器(central processing unit,CPU)与智能网卡。智能网卡区别于传统的仅支持网络通信的网卡,是内置有处理器或微处理器(如ARM处理器)的网卡,因而具有一定的数据计算与处理能力。当然,可以理解区块链一体机作为区块链网络的节点,当然也会包括存储器,存储器在图1中未示出。存储器用于存储区块链本身,或者对于以太坊区块链而言,存储器还用于存储状态数据库。

  此外,区块链一体机可以进一步包括其他硬件,如智能合约处理芯片、密码加速卡等。

  图2是本说明书实施例提供的一种区块链系统的结构示意图。区块链系统包括区块链网络。在区块链网络中,至少一个节点可以为区块链一体机。也就是说,区块链一体机作为节点,可以与其他非区块链一体机的节点(普通节点)进行交互,也可以与其他同样为区块链一体机的节点进行交互。本文为了描述的方便,针对单个区块链一体机进行方案说明。

  图3是本说明书实施例提供的一种基于区块链一体机的交易处理方法的流程示意图,包括如下步骤:

  S300:当区块链一体机通过智能网卡受理交易时,智能网卡将受理的交易写入网卡缓存。

  众所周知,区块链网络处理交易的过程通常包括三个阶段,即交易受理阶段、共识阶段、交易执行与上链阶段。此处先对上述三个阶段进行简单介绍。

  在交易受理阶段,区块链网络中每个节点对交易进行受理并缓存,为后续的共识与交易执行做准备。具体而言,某个客户端构建交易并提交给区块链网络中的任一节点,该节点直接受理该交易,将该交易缓存,并将交易广播给全网,使得其他节点间接受理该交易。步骤S300中所谓的区块链一体机通过智能网卡受理交易,可以是指区块链一体机直接受理交易,也可以指区块链一体机间接受理交易。总之,不论是直接受理还是间接受理,重点在于,区块链网络中的大部分节点都会缓存相同的交易。可以理解,在实际应用中,少部分节点可能出现宕机或者网络问题,导致接收不到交易,但这并不会对分布式区块链网络的运转产生影响。

  在共识阶段,区块链网络的各节点基于共识算法(如拜占庭容错算法)进行交互,以便达到消息一致性,即对本次需要执行已受理的哪些交易达成共识。可以理解,在实际应用中,不一定每个节点都会参与共识,然而,由于共识算法具有容错性,因此,并不会影响共识结果。

  在交易执行与上链阶段,每个节点会根据共识结果从缓存中捞取交易进行执行,执行后将捞取的交易打包成区块写入区块链(即交易上链)。

  上述介绍中的缓存,通常是指节点的CPU的缓存。而在本说明书实施例中,由于为节点配置了智能网卡,因此,缓存有网卡缓存与CPU缓存之分。在交易受理阶段,智能网卡会将交易写入网卡缓存,以便后续基于网卡缓存中的交易进行区块链共识。

  S302:在区块链一体机参与区块链共识的过程中,智能网卡基于网卡缓存中的交易,与区块链网络的其他节点进行共识交互。

  在共识阶段,由智能网卡取代CPU实际参与共识,与其他节点进行共识交互。共识过程中产生的网络流量会直接进入智能网卡,由智能网卡基于共识算法进行处理,并将处理结果直接反馈出去,网络流量不会流经CPU。

  S304:智能网卡根据本次共识结果,确定待执行交易列表并发送给CPU。

  众所周知,区块链网络会根据一定的共识触发条件,进行一次次共识。例如,共识触发条件可以是每10分钟进行一次共识,这意味着区块链网络每10分钟会确定一批待执行的交易,并将这批待执行的交易打包成区块上链。所谓共识结果,实际上是指一次区块链共识所确定的待执行交易有哪些。

  此处需要说明的是,通常而言,出于效率考虑,针对区块链存储(区块链以及状态数据库)的访问操作需要由CPU执行,而在实际应用中,通常采用实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT),而PBFT算法过程中涉及的换主操作并不需要访问区块链存储(区块链以及状态数据库),因此,CPU不实际参与共识过程也不会对存储访问的效率产生不利影响。

  步骤S304中所述的待执行交易列表具体可以是由本次区块链共识确定的待执行交易本身组成的列表,也可以是本次区块链共识确定的待执行交易的交易标识(如交易哈希)组成的列表。

  在待执行交易列表中包括交易哈希的情况下,智能网卡还需要将待执行交易也发送给CPU。在实际应用中,智能网卡可以在交易受理阶段,在将受理的交易写入网卡缓存的同时,也将受理的交易发送给CPU,CPU将接收到的交易写入CPU缓存。

  S306:CPU基于待执行交易列表执行交易并完成交易上链。

  在本说明书实施例中,在所述区块链一体机参与区块链共识的过程中,智能网卡若接收到共识配置修改信息则将共识配置修改信息发送给所述CPU。CPU可以基于所述共识配置修改信息,修改区块链一体机本地存储的共识配置。

  由于对共识配置进行修改的操作(如节点增删,又如,一次共识需要确定的一个批次的待执行交易的容量大小,即batch size)需要访问区块链存储,因此,出于存储访问效率的考虑,此操作需要由CPU来执行。在正常情况下,如果共识过程中不涉及共识配置的修改,则CPU并不会参与共识。

  此外,CPU基于待执行交易列表执行交易所产生的执行结果会返回给智能网卡,这些执行结果是智能网卡参与下一次共识所需要参考信息。举例来说,CPU执行某个账户A发起的交易,消耗了账户A的100 GAS,导致账户A仅剩余50 GAS,那么,这意味着账户A发起的其他交易无法提供足够的GAS,CPU将这一执行结果发送给智能网卡,智能网卡在下一次共识中就不会倾向于将账户A发起的其他交易确定为待执行交易。

  通过图3所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡取代CPU来代表区块链一体机实际参与区块链共识,并根据本次共识结果,将待执行交易列表发送给CPU进行交易执行与交易上链。

  通过本说明书实施例,将区块链共识这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:

  1、由智能网卡专门负责区块链共识,CPU专注于交易执行与交易上链,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、区块链共识过程中的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,CPU不参与共识过程,使得共识过程中区块链一体机的反馈延时降低。

  图4是本说明书实施例提供的一种基于区块链一体机的数据同步方法的流程示意图,包括如下步骤:

  S400:智能网卡向其他节点查询是否存在待同步的区块数据。

  一般而言,当区块链网络中有新加入的节点时,该节点需要从其他节点拉取区块数据进行同步。此外,其他情况下,节点有时也需要从其他节点拉取区块数据进行同步,不再一一赘述。

  节点为了确定当前是否需要进行数据同步,通常需要频繁向其他节点查询是否存在待同步的区块数据,这会涉及频繁的I/O操作。在本说明书实施例中,由智能网卡负责向其他节点查询是否存在待同步的区块数据,从而可以将CPU的这部分操作负担卸载,提升CPU的处理效率。

  S402:智能网卡若确定存在待同步的区块数据,则从其他节点拉取待同步的区块数据。

  而在确定其他节点存在待同步的区块数据之后,节点需要从其他节点拉取待同步的区块数据,这意味着节点需要维持一个从网络拉取数据的进程,耗费时间等待数据拉取完成。这部分操作交由智能网卡执行,也可以为CPU卸载操作负担,提升CPU操作效率。

  S404: 智能网卡将待同步的区块数据提供给所述CPU。

  具体而言,智能网卡可以将待同步的区块数据直接发送给CPU,也可以将待同步的区块数据写入与所述CPU之间的公共缓存,CPU从公共缓存中捞取待同步的区块数据。例如,CPU可以在空闲时,才从公共缓存中捞取待同步的区块数据进行数据同步。

  S406:CPU基于待同步的区块数据完成数据同步。

  智能网卡获取到待同步的区块数据后,将待同步的区块数据发送给CPU,此时,CPU仅需要将待同步的区块数据写入节点本地区块链即可,不会耗费过多资源与过多时间。

  通过图4所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU来代表区块链一体机实际参与区块链共识,并根据本次共识结果,将待执行交易列表发送给CPU进行交易执行与交易上链。

  通过本说明书实施例,将区块链共识这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:

  1、由智能网卡专门负责区块链共识,CPU专注于交易执行与交易上链,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、区块链共识过程中的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,CPU不参与共识过程,使得共识过程中区块链一体机的反馈延时降低。

  图5是本说明书实施例提供的一种基于区块链一体机的交易转发方法的流程示意图,包括如下步骤:

  S500:当所述区块链一体机通过所述智能网卡受理到交易时,所述智能网卡确定待转发的其他节点。

  S502: 所述智能网卡将所述交易转发给待转发的其他节点。

  在交易受理阶段,智能网卡除了将受理的交易转发出去之外,还可以将受理的交易写入网卡缓存,以便实现图3所示的方法。

  通常,智能网卡在转发以及缓存受理的交易之前,可以对交易进行合法性验证,合法性验证通常涉及基于区块链协议需要验证的一些合法性事项(如对发起交易的账户的签名验证)。

  如果合法性校验不通过,则智能网卡一般不会将交易转发出去。

  智能网卡可以将未通过合法性校验的交易抛弃。此外,需要说明的是,在实际应用中,对于未通过合法性校验的交易,智能网卡也可以将其保留,写入网卡缓存以及发送给CPU。这是因为,某个节点对交易进行合法性校验未通过,不一定说明交易是不合法的,有可能是交易在网络传输过程中丢失了部分数据,或者节点在执行校验时出错。而对于区块链网络这种分布式数据库来说,少部分节点得到错误的交易校验结果不应影响交易的执行,因此,节点即便对交易进行校验不通过,也可以将交易保留,后续在共识阶段,该交易可能会被全网共识为待执行的交易。

  另外,在本说明书实施例中,智能网卡如果对交易进行合法性校验通过,则可以对交易进行标记。进一步地,智能网卡可以将标记后的交易发送给CPU,而通常而言,CPU在将交易写入CPU缓存之前,会判断交易是否通过合法性校验。如果交易具有标记,则说明智能网卡已经校验并通过了,CPU就不必再次进行校验,如果交易不具有标记,则说明智能网卡校验未通过,CPU可以选择记录该交易未通过校验,也可以选择重新对该交易进行校验。

  通过图5所述的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU在交易受理阶段进行交易转发。

  通过本说明书实施例,将交易转发这种需要频繁与其他节点进行网络交互的操作由CPU转移到智能网卡,可以实现如下技术效果:

  1、由智能网卡专门负责交易转发,为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、交易转发过程中涉及的网络流量不必流经CPU,而是由智能网卡接收后直接进行处理并反馈,使得区块链一体机的反馈延时降低。

  图6是本说明书实施例提供的一种基于区块链一体机的重放交易识别方法的流程示意图,包括如下步骤:

  S600:当所述区块链一体机通过所述智能网卡受理交易时,智能网卡将当前受理的交易与网卡缓存中的历史受理交易进行比对。

  S602: 若比对结果表征存在与当前受理的交易相同的历史受理交易,则智能网卡将当前受理的交易确定为重放交易。

  在本说明书实施例中,智能网卡可以将当前受理的交易与全部历史受理交易进行一一比对,以判断当前受理的交易是否为重放交易。

  此外,考虑到有些过于久远的历史受理交易不太可能被重放,因此,可以将当前受理的交易与近期的历史受理交易进行比对即可。

  具体而言,所述智能网卡可以将受理的每个交易写入网卡缓存中的识别交易池,以及,从所述识别交易池中取出受理时长大于指定时长的历史受理交易。其中,所述受理时长为,受理时间点与当前时间点之间的时长。智能网卡可以将当前受理的交易与所述识别交易池中的历史受理交易进行比对。

  进一步地,在实际应用中,交易往往具有有效时长,如果当前距离交易受理时间过久,交易就会失效。对于过于久远的历史受理交易,即便重放也没有意义。因此,上述的指定时长具体可以设定为不小于交易的有效时长。

  在本说明书实施例中,对于识别出的重放交易,智能网卡可以将其归入重放交易集合。重放交易集合不参与区块链共识,或者,所述重放交易集合不发送给所述CPU。如此,可以实现对重放交易的过滤。此外,智能网卡也可以将重放交易抛弃。

  通过图6所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU进行重放交易识别。

  通过本说明书实施例,可以实现如下技术效果:

  1、由智能网卡专门负责识别重放交易,可以为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、可以在网卡处就对重放交易进行识别与过滤,重放交易一般不会流经CPU,对重放交易的识别与过滤更加迅速。

  图7是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别方法的流程示意图,包括如下步骤:

  S700:当所述区块链一体机通过所述智能网卡受理交易时,所述智能网卡判断当前受理的交易是否满足预设过滤条件;

  S702:若智能网卡确定当前受理的交易满足预设过滤条件,则智能网卡将当前受理的交易确定为待过滤交易。

  对于识别出的待过滤交易,智能网卡可以将其抛弃,或者将其保留,归入待过滤交易集合。待过滤交易集合不参与区块链共识,或者,所述待过滤交易集合不发送给所述CPU。如此,可以实现对待过滤交易的过滤。

  此外,对于待过滤交易涉及的情况,主要有以下两种:

  1、交易用于实现的业务操作对应的业务操作类型不是本节点(区块链一体机)负责的业务操作类型,不属于本节点对应的业务操作类型集合。例如,本节点的交易处理能力有限,会选择性只执行一些特定业务操作类型的交易。又如,有些业务操作类型写入了本节点的黑名单,本节点拒绝执行这些业务操作类型的交易。

  此外需要说明的是,对于区块链网络这种分布式架构,少部分节点不执行一些交易并不会影响整个区块链网络的世界状态,世界状态依然会被同步到每个节点。

  2、交易用于实现的业务操作对应的业务操作类型是本节点负责的业务操作类型,属于本节点对应的业务操作类型集合,但是,交易用于实现的具体业务操作内容是不合法的,不属于该业务操作类型对应的合法操作内容。例如,交易用于实现查询操作,但是该查询操作具体是对某个参数值进行无意义地反复查询,这种交易实际上属于针对区块链网络的攻击性交易,不合法。又如,交易用于实现转账操作,但是转帐方账户的余额不足,该交易也不合法。又如,交易的发起方账户没有操作权限,该交易也不合法。

  此外,通过图7所示的方法,可以为智能网卡配置比较复杂的过滤条件,例如,可以配置如下过滤条件:

  (某个时间段内) and (账号A发起) and (发往帐号B or C操作)。

  通过图7所示的方法,区块链一体机包括CPU和智能网卡,智能网卡是内置有处理器或微处理器的网卡,可以进行数据计算与处理。智能网卡可以取代CPU进行待过滤交易识别。

  通过本说明书实施例,可以实现如下技术效果:

  1、由智能网卡专门负责识别待过滤交易,可以为CPU卸载这部分操作负担,可以提升区块链一体机作为节点时的运转效率,CPU也可以在单位时间内执行更多的交易,提升吞吐量。

  2、可以在网卡处就对待过滤交易进行识别与过滤,待过滤交易一般不会流经CPU,对待过滤交易的识别与过滤更加迅速。

  图8是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:

  缓存模块801,当所述区块链一体机通过所述智能网卡受理交易时,将受理的交易写入网卡缓存;

  共识交互模块802,在所述区块链一体机参与区块链共识的过程中,基于所述网卡缓存中的交易,与所述区块链网络的其他节点进行共识交互;

  发送模块803,根据本次共识结果,确定待执行交易列表并发送给所述CPU。

  图9是本说明书实施例提供的一种基于区块链一体机的交易处理装置的结构示意图,应用于区块链一体机的CPU,所述区块链一体还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  执行上链模块901,基于所述智能网卡发送的待执行交易列表执行交易并完成交易上链。

  图10是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图,应用于所述区块链一体的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  查询模块1001,向其他节点查询是否存在待同步的区块数据;

  拉取模块1002,若确定存在待同步的区块数据,则从其他节点拉取待同步的区块数据;

  提供模块1003,将待同步的区块数据提供给所述CPU。

  图11是本说明书实施例提供的一种基于区块链一体机的数据同步装置的结构示意图,应用于所述区块链一体的CPU,所述区块链一体机还具有智能网卡,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  同步模块1101,基于待同步的区块数据完成数据同步。

  图12是本说明书实施例提供的一种基于区块链一体机的交易转发装置的结构示意图,应用于区块链一体机的智能网卡,所述区块链一体还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  确定模块1201,当所述区块链一体机通过所述智能网卡受理到交易时,确定待转发的其他节点;

  转发模块1202,将所述交易转发给待转发的其他节点。

  图13是本说明书实施例提供的一种基于区块链一体机的重放交易识别装置的结构示意图,应用于所述区块链一体机的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述装置包括:

  识别模块1301,当所述区块链一体机通过所述智能网卡受理交易时,对当前受理的交易进行识别,包括:将当前受理的交易与网卡缓存中的历史受理交易进行比对;若比对结果表征存在与当前受理的交易相同的历史受理交易,则将当前受理的交易确定为重放交易。

  图14是本说明书实施例提供的一种基于区块链一体机的待过滤交易识别装置的结构示意图,应用于所述区块链一体机的智能网卡,所述区块链一体机还具有CPU,所述区块链一体机是区块链网络的任一节点,所述方法包括:

  识别模块1401,当所述区块链一体机通过所述智能网卡受理交易时,对当前受理的交易进行识别,包括:判断当前受理的交易是否满足预设过滤条件;若确定当前受理的交易满足预设过滤条件,则将当前受理的交易确定为待过滤交易。

  本说明书实施例还提供一种计算机设备,其至少包括存储器、CPU、智能网卡,以及存储在存储器上并可在智能网卡上运行的计算机程序,其中,智能网卡执行所述程序时实现本说明书中各方法的功能。

  图15示出了本说明书实施例所提供的一种更为具体的计算设备硬件结构示意图,该设备可以包括:处理器1510、存储器1520、输入/输出接口1530、通信接口1540和总线1550。其中处理器1510、存储器1520、输入/输出接口1530和通信接口1540通过总线1550实现彼此之间在设备内部的通信连接。

  处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

  存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。

  输入/输出接口1530用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

  通信接口1540用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

  总线1550包括一通路,在设备的各个组件(例如处理器1510、存储器1520、输入/输出接口1530和通信接口1540)之间传输信息。

  需要说明的是,尽管上述设备仅示出了处理器1510、存储器1520、输入/输出接口1530、通信接口1540以及总线1550,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

  本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被智能网卡执行时实现本说明书中各方法的功能。

  计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

  通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务设备,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。

  上述实施例阐明的系统、方法、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。

  本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

  以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。

《区块链一体机技术方法(三篇).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)