一种基于区块链的节点管理方法及装置与流程

文档序号:20039460发布日期:2020-02-28 11:43阅读:135来源:国知局
一种基于区块链的节点管理方法及装置与流程
本发明涉及区块链
技术领域
,尤其涉及一种基于区块链的节点管理方法及装置。
背景技术
:区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链是用于存储交易的数据结构,而区块链网络是用于管理、更新和维护一个或多个区块链的计算节点的网络。区块链的计算节点可简称为区块链节点。目前,在某个区块链节点想要加入某个区块链网络的情况下,由该区块链网络的管理员操作控制是否允许该区块链节点加入该区块链网络。但是管理员的账号可能被盗用,一旦被盗用,该区块链网络便存在被攻击的风险。技术实现要素:本发明实施例提供了一种基于区块链的节点管理方法及装置,可以有效防止区块链网络被攻击,从而提高区块链网络的安全性、可靠性。第一方面,本发明实施例提供一种基于区块链的节点管理方法,可包括:接收携带节点管理规则信息的智能合约部署请求,该智能合约部署请求用于请求部署包括该节点管理规则信息的智能合约;若该智能合约部署请求和该智能合约满足合约部署条件,则部署该智能合约得到部署结果,并将该部署结果在区块链网络中进行第一共识;若该区块链网络达成第一共识,则将该部署结果添加至区块链网络中的区块链账本;发送智能合约部署响应,该智能合约部署响应用于指示该智能合约部署成功;其中,该部署结果包括该智能合约的地址信息和该智能合约的部署状态,所述部署状态为成功。在一种实施方式中,该方法还包括:接收来自目标节点的加入请求,该加入请求携带该目标节点的标识,该加入请求用于请求加入所述区块链网络;若该加入请求具有合法性,则调用上述智能合约,并加载上述节点管理规则信息;根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络,并向该目标节点发送加入响应。在一种实施方式中,上述节点管理规则信息包括允许加入节点列表;根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络,并向该目标节点发送加入响应,包括:若上述允许加入节点列表包括该目标节点的标识,则允许该目标节点加入该区块链网络得到第一结果,将该第一结果在区块链网络中进行第二共识;若该区块链网络达成第二共识,则将该第一结果添加至区块链账本;向该目标节点发送加入响应,该加入响应用于指示该目标节点允许加入该区块链网络。在一种实施方式中,上述节点管理规则信息还包括不允许加入节点列表;根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络,并向该目标节点发送加入响应,包括:若上述允许加入节点列表不包括该目标节点的标识,且该不允许加入节点列表包括该目标节点的标识,则不允许该目标节点加入区块链网络得到第二结果,将该第二结果在区块链网络中进行第三共识;若区块链网络达成第三共识,则将该第二结果添加至区块链账本;向该目标节点发送加入响应,该加入响应用于指示该目标节点不允许加入该区块链网络。在一种实施方式中,根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络,并向该目标节点发送加入响应,包括:若上述允许加入节点列表不包括该目标节点的标识,且上述不允许加入节点列表不包括该目标节点的标识,则允许该目标节点连接区块链网络中的指定节点得到第三结果,将该第三结果在区块链网络中进行第四共识;若区块链网络达成第四共识,则将该第三结果添加至区块链账本;向该目标节点发送加入响应,该加入响应用于指示该目标节点允许连接区块链网络中的指定节点。在一种实施方式中,上述方法还包括:若该智能合约部署请求具有合法性且该智能合约具有合法性,则确定该智能合约部署请求和该智能合约满足合约部署条件。在一种实施方式中,上述方法还包括:接收针对该智能合约的合约修改请求;若该合约修改请求具有合法性,则调用该智能合约,根据该合约修改请求对该智能合约进行修改,得到修改结果;将该修改结果在区块链网络中进行第五共识;若区块链网络达成第五共识,则将该修改结果添加至区块链账本;发送合约修改响应,该合约修改响应用于指示该智能合约修改完成。第二方面,本发明实施例提供一种节点管理装置,该装置包括收发单元和处理单元。收发单元,用于接收携带节点管理规则信息的智能合约部署请求,该智能合约部署请求用于请求部署包括该节点管理规则信息的智能合约;处理单元,用于若该智能合约部署请求和该智能合约满足合约部署条件,则部署该智能合约得到部署结果,并将该部署结果在区块链网络中进行第一共识;若该区块链网络达成第一共识,则将该部署结果添加至区块链网络中的区块链账本;收发单元,还用于发送智能合约部署响应,该智能合约部署响应用于指示该智能合约部署成功;其中,所述部署结果包括所述智能合约的地址信息和所述智能合约的部署状态,所述部署状态为成功。第三方面,本发明实施例提供了一种证书管理装置,该装置包括处理器和存储器,处理器和存储器相互耦合,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用所述程序指令,执行第一方面所涉及到的操作。第四方面,本发明实施例提供了一种存储设备,该存储设备可以包括计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序包括程序指令,当程序指令被处理器执行时,使得处理器执行第一方面所述的方法。本发明实施例,通过在区块链网络上部署包括节点管理规则信息的智能合约,可以有效防止区块链网络被攻击,从而提高区块链网络的安全性、可靠性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1a为数据共享系统的示意图;图1b为区块链的结构示意图;图2为应用本发明实施例的网络架构示意图;图3为图2中区块链网络203的示意图;图4为本发明实施例提供的一种节点管理方法的流程示意图;图5为本发明实施例提供的另一种节点管理方法的流程示意图;图6为本发明实施例提供的又一种节点管理方法的流程示意图;图7为本发明实施例提供的一种证书管理装置的结构示意图;图8为本发明实施例提供的另一种证书管理装置的结构示意图。具体实施方式在对本发明实施例进行介绍之前,先介绍本发明实施例涉及的名称或术语。(1)数据共享系统和区块链参见图1a所示的数据共享系统,数据共享系统100是指用于进行节点与节点之间数据共享的系统,该数据共享系统中可以包括多个节点101,多个节点101可以是指数据共享系统中各个客户端。每个节点101在进行正常工作可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。为了保证数据共享系统内的信息互通,数据共享系统中的每个节点之间可以存在信息连接,节点之间可以通过上述信息连接进行信息传输。例如,当数据共享系统中的任意节点接收到输入信息时,数据共享系统中的其他节点便根据共识算法获取该输入信息,将该输入信息作为共享数据中的数据进行存储,使得数据共享系统中全部节点上存储的数据均一致。对于数据共享系统中的每个节点,均具有与其对应的节点标识,而且数据共享系统中的每个节点均可以存储有数据共享系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至数据共享系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。其中,节点标识可为网络之间互联的协议(internetprotocol,ip)地址以及其他任一种能够用于标识该节点的信息,表1中仅以ip地址为例进行说明。节点名称节点标识节点1117.114.151.174节点2117.116.189.145……节点n119.123.789.258数据共享系统也可以称为区块链网络,数据共享系统中的节点也可以称为区块链节点。区块链网络中的每个区块链节点均存储一条相同的区块链。区块链由多个区块组成,参见图1b,区块链由多个区块组成,创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。在生成区块链中的各个区块时,区块链所在的节点在接收到输入信息时,对输入信息进行校验,完成校验后,将输入信息存储至内存池中,并更新其用于记录输入信息的哈希树;之后,将更新时间戳更新为接收到输入信息的时间,并尝试不同的随机数,多次进行特征值计算,使得计算得到的特征值可以满足下述公式:sha256(sha256(version+prev_hash+merkle_root+ntime+nbits+x))<target其中,sha256为计算特征值所用的特征值算法;version(版本号)为区块链中相关区块协议的版本信息;prev_hash为当前区块的父区块的区块头特征值;merkle_root为输入信息的特征值;ntime为更新时间戳的更新时间;nbits为当前难度,在一段时间内为定值,并在超出固定时间段后再次进行确定;x为随机数;target为特征值阈值,该特征值阈值可以根据nbits确定得到。这样,当计算得到满足上述公式的随机数时,便可将信息对应存储,生成区块头和区块主体,得到当前区块。随后,区块链所在节点根据区块链网络中其他区块链节点的节点标识,将新生成的区块分别发送给其所在的区块链网络中的其他区块链节点,由其他区块链节点对新生成的区块进行校验,并在完成校验后将新生成的区块添加至其存储的区块链中。其中,区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链,本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。(2)记账节点和验证节点在区块链网络中,各个区块链节点维护一份区块链账本,该区块链账本记录所有的交易记录,一笔交易只有记录在区块链账本中才意味着该笔交易执行完成。区块链网络中的区块链节点可分为验证节点和记账节点。验证节点,可以对交易进行验证,即验证交易的合法性,并通过共识机制将交易发布到区块链,即在区块链网络达成共识的情况下,记账节点将交易记录在区块链账本中。记账节点,对通过验证的交易信息进行记录,并生成区块链中的区块,即将通过验证的交易信息记录在区块链账本中。记账节点也可以对交易进行验证。区块链网络中可以包括一个或多个记账节点,和一个或多个验证节点。进一步的,本发明实施例中可对区块链网络中的区块链节点进行优先级划分,例如记账节点的优先级高于验证节点的优先级。若区块链网络中还存在其他类型的区块链节点,可确定该类型的区块链节点的优先级。(2)智能合约智能合约(smartcontract)是一套以数字形式定义、传播、验证或执行的约定,包括合约参与方可以在上面执行这些约定的协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可跟踪且不可逆转。鉴于区块链网络的管理员操作控制是否允许新的区块链节点加入该区块链网络存在的弊端,本发明实施例提供一种基于区块链的节点管理方法及装置,可以有效防止区块链网络被攻击,从而提高区块链网络的安全性、可靠性。为了便于清楚描述本发明实施例的技术方案,在本发明实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。请参见图2,为应用本发明实施例的网络架构示意图,该网络架构200包括管理节点201、目标节点202和区块链网络203。需要说明的是,图2各个设备的数量和形态用于举例,并不构成对本发明实施例的限定,例如以一个目标节点为例,实际应用中可能存在多个目标节点。管理节点201和目标节点202可以是手机(或智能手机)、平板电脑、个人计算机、笔记本、膝上电脑、移动互联网设备(mobileinternetdevices,mid)、服务器等设备。管理节点201,用供区块链平台委员会使用的设备,可以是区块链网络203中的区块链节点,也可以不是区块链网络203中的区块链节点。目标节点202,是请求加入区块链网络203的节点,可以是个人或企业或机构对应的节点。区块链网络203可以是公有区块链网络、私有区块链网络或联盟区块链网络等。在区块链网络中,一个或多个节点可以由相应的实体(例如金融机构、教育机构、保险公司等)操作,一个实体可以操作区块链网络中的一个或多个节点。区块链网络203的结构示意图可参见图3,以区块链网络203包括5个区块链节点为例,这5个区块链节点以3个非记账节点和2个记账节点为例,这3个非记账节点编号为2031~2033,这2个记账节点编号为2034~2035。其中,记账节点用于对通过验证的交易信息进行记录,并生成区块链中的区块,将新生成的区块添加至区块链账本。非记账节点可以是验证节点或除记账节点之外的其他区块链节点,也可以将非记账节点称为普通节点。以多个教育机构组成的区块链网络为例,区块链平台委员会可以是从多个教育机构中选择的一个教育机构作为代表教育机构,那么管理节点201可以是该代表教育机构对应的节点。或者,区块链平台委员会可以是由多个教育机构组成的针对教育的区块链平台委员会,那么管理节点201可以是该委员会对应的节点。目标节点202可以是请求加入该区块链网络的目标教育机构对应的节点。管理节点201可以向区块链网络203发送智能合约部署请求,接收来自区块链网络203的智能合约部署响应。通过智能合约部署请求,请求区块链网络203部署相应的智能合约,本发明实施例中,用于请求区块链网络203部署包括节点管理规则信息的智能合约。通过智能合约部署响应,管理节点201可以获知区块链网络203的部署结果,即部署是否成功。若一个区块链网络对应一个区块链平台委员会,那么区块链平台委员会针对该区块链网络设置节点管理规则信息。若多个区块链网络对应一个区块链平台委员会,那么区块链平台委员会可以针对不同的区块链网络设置不同的节点管理规则信息,那么管理节点201可以针对不同的区块链网络发送不同的智能合约部署请求,例如针对区块链网络203发送包括第一节点管理规则信息的智能合约部署请求,针对区块链网络206发送第二节点管理规则信息的智能合约部署请求。第一节点管理规则信息与第二节点管理规则信息不同,例如节点标识为a的区块链节点在第一节点管理规则信息中是允许加入,在第二节点管理规则信息中是不允许加入。区块链网络203接收来自目标节点202的加入请求,该加入请求携带目标节点202的标识,用于请求加入区块链网络203;区块链网络203在确定出该加入请求具有合法性的情况下,调用包括节点管理规则信息的智能合约,判断是否允许目标节点202加入区块链网络203,并向目标节点202发送加入响应,加入响应用于指示目标节点202是否允许加入区块链网络203。本发明实施例提供的节点管理装置可以是区块链网络中的任意一个记账节点,也可以是记账节点的一部分,例如是记账节点中的芯片等。基于图2所示的网络架构,下面将结合附图4-附图6对本发明实施例提供的节点管理方法进行详细介绍。在介绍过程中,节点管理装置以图3中的记账节点2034为例。请参见图4,为本发明实施例提供的一种节点管理方法的流程示意图,可以包括但不限于如下步骤:步骤401,管理节点201向区块链网络203中的记账节点2034发送智能合约部署请求。相应的,记账节点2034接收来自管理节点201的智能合约部署请求。其中,智能合约部署请求携带节点管理规则信息,该节点管理规则信息可由区块链平台委员会在管理节点201上设置,用于限制哪些节点可以加入区块链网络203,哪些节点不可以加入区块链网络203。进一步的,节点管理规则信息还可以限定哪些节点在什么情况下可以加入区块链网络203。该智能合约部署请求可还包括区块链网络203的标识,用于区分不同的区块链网络。该智能合约部署请求还包括管理节点201的签名,以便区块链网络203校验签名的合法性。在第一种可能的实现方式中,该节点管理规则信息包括允许加入节点列表,该允许加入节点列表包括一个或多个节点标识,各个节点标识对应的节点可以加入区块链网络203,进一步可以连接区块链网络203中的记账节点。本发明实施例中,可以将允许加入节点列表理解为白名单,白名单中的节点标识对应的节点可以加入区块链203,进一步可以连接区块链网络203中的任意一个记账节点或多个记账节点。例如,允许加入节点列表包括节点标识a和节点标识b,那么节点标识a对应的节点a可以加入区块链网络203,节点标识b对应的节点b可以加入区块链网络203;进一步的,节点a可以连接记账节点2034,节点b可以连接记账节点2034。进一步的,该节点管理规则信息还包括白名单中各个节点标识对应的限定条件,例如有效时间和/或有效地理位置范围等。有效时间用于限定白名单中的各个节点在什么时间段可以加入区块链网络203,例如节点标识a对应的有效时间为9:00~12:00,那么节点a在这个时间段可以加入区块链网络203。有效地理位置用于限定白名单中的各个节点在哪些位置可以加入区块链网络203,例如节点标识a对应的有效地理位置范围为深圳南山区,那么节点a在深圳南山区时可以加入区块链网络203。针对第一种方式,对于不属于白名单中的节点,可以默认为是不允许加入区块链网络203的节点。在第二种可能的实现方式中,该节点管理规则信息包括不允许加入节点列表,该不允许加入节点列表包括一个或多个节点标识,各个节点标识对应的节点不可以加入区块链网络203。本发明实施例中,可以将不允许加入节点列表理解为黑名单,黑名单中的节点标识对应的节点不可以加入区块链203。例如,不允许加入节点列表包括节点标识c和节点标识d,那么节点标识c对应的节点c不可以加入区块链网络203,节点标识d对应的节点d不可以加入区块链网络203。针对第二种方式,对于不属于黑名单中的节点,可以默认为是允许加入区块链网络203的节点。在第三种可能的实现方式中,该节点管理规则信息包括允许加入节点列表和不允许加入节点列表,即包括白名单和黑名单。进一步的,该节点管理规则信息还包括白名单中各个节点标识对应的限定条件,例如有效时间和/或有效地理位置等。进一步的,该节点管理规则信息还包括一种规则,该种规则用于限定既不属于白名单又不属于黑名单的节点,可以连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点。其中,指定节点即为非记账节点,例如验证节点。例如,节点标识n既不在白名单中,也不在黑名单中,那么节点n不能连接区块链网络203中的记账节点,可以连接区块链网络203中的指定节点。区块链平台委员会在管理节点201上设置该节点管理规则信息,并设置该节点管理规则信息通过智能合约部署在区块链网络203的区块链上。管理节点201在区块链平台委员会设置完成之后,将该智能合约通过交易的形式发送至区块链网络203,区块链网络203中的记账节点2034接收到该智能合约部署请求。可以将该智能合约部署请求理解为交易。管理节点201可以直接将该智能合约部署请求发送至记账节点2034,以提高处理效率。在管理节点201不清楚哪些是记账节点哪些是普通节点的情况下,管理节点201也可以先将该智能合约部署请求发送至区块链网络203中的一个普通节点,再由该普通节点将该智能合约部署请求发送至记账节点2034,以确保记账节点2034可以接收到该智能合约部署请求。该智能合约部署请求用于请求区块链网络203中的记账节点部署包括该节点管理规则信息的智能合约,本发明实施例以用于请求记账节点2034中部署包括该节点管理规则信息的智能合约为例。步骤402,记账节点2034判断该智能合约部署请求和该智能合约是否满足合约部署条件。记账节点2034在接收到该智能合约部署请求的情况下,判断该智能合约部署请求和该智能合约是否满足合约部署条件,具体可包括判断该智能合约部署请求是否具有合法性以及该智能合约是否具有合法性。记账节点2034判断该智能合约部署请求是否具有合法性,即判断该交易是否具有合法性。判断该交易是否具有合法性,可包括判断该交易的签名是否具有合法性,即判断该交易所携带的管理节点201的签名是否具有合法性。记账节点从认证中心(certificateauthority,ca)获取管理节点201的公钥,采用该公钥对所携带的签名进行解密得到第一摘要;从该交易中获取管理节点生成签名的第二摘要;若第一摘要与第二摘要相同,则确定该签名具有合法性,进而确定该交易具有合法性。判断该交易是否具有合法性,还可包括判断该管理节点201的标识是否包含于预设管理节点标识列表中,若包含于预设管理节点标识列表中且该签名具有合法性,则确定该交易具有合法性。其中,管理节点的标识可以是管理节点的节点名称、或ip地址或其他任一种可以标识管理节点的信息。记账节点2034判断该智能合约是否具有合法性,可包括判断该智能合约是否具有读写、修改权限(即是否允许读写、修改),是否具有多重签名,多重签名中每个签名是否具有合法性等。其中,多重签名即多个签名,例如每个区块链平台委员对应一个签名,那么记账节点2034需判断各个区块链平台委员对应的签名是否有合法性。在该智能合约具有读写、修改权限,且具有多重签名,且每个签名具有合法性的情况下,可确定该智能合约具有合法性。在该智能合约部署请求具有合法性,且该智能合约具有合法性的情况下,记账节点2034可确定该智能合约部署请求和该智能合约满足合约部署条件,那么该种情况下,执行步骤403。若该智能合约部署请求不具有合法性,或该智能合约不具有合法性,或均不具有合法性,记账节点2034可确定该智能合约部署请求和该智能合约不满足合约部署条件,那么该种情况下,记账节点2034向管理节点201发送智能合约部署响应,该智能合约部署响应用于指示不满足合约部署条件,或记账节点2034拒绝部署该智能合约。步骤403,在步骤402的判断结果为是的情况下,记账节点2034部署该智能合约得到部署结果。在步骤402的判断结果为是的情况下,记账节点2034调用虚拟机执行部署智能合约这个操作,得到部署结果,并缓存该部署结果,以便后续将该部署结果添加至区块链网络203的区块链账本。调用虚拟机执行部署智能合约这个操作,可有效防止该智能合约被攻击。其中,该部署结果可指示部署了该智能合约,该智能合约包括该节点管理规则信息。该部署结果可包括该智能合约的地址信息和该智能合约的部署状态,部署状态为成功。该智能合约的地址信息用于表示该智能合约被缓存在哪个位置。若部署结果所包括的该智能合约的部署状态为失败,那么记账节点2034向管理节点201发送智能合约部署响应,该智能合约部署响应用于指示部署失败。反之,记账节点2034执行步骤404。步骤404,记账节点2034将该部署结果在区块链网络203中进行第一共识。记账节点2034在得到并缓存该部署结果的情况下,将该部署结果在区块链网络203中进行第一共识。具体的,记账节点2034将该部署结果发送至区块链网络203中的各个区块链节点,若超过一半的区块链节点同意该部署结果,则可以确定区块链网络203达成第一共识,即同意将该智能合约部署在区块链网络203的区块链上。例如,区块链网络203包括5个区块链节点,若3个区块链节点同意将该智能合约部署在区块链网络203的区块链上,那么可确定区块链网络203达成第一共识。在区块链网络203达成第一共识的情况下,可执行步骤405。在区块链网络203未达成第一共识的情况下,记账节点2034向管理节点201发送智能合约部署响应,该智能合约部署响应用于指示部署失败。步骤405,在区块链网络203达成第一共识的情况下,记账节点2034将该部署结果添加至区块链网络203的区块链账本。在区块链网络203达成第一共识的情况下,记账节点2034将该部署结果添加至区块链网络203的区块链账本,即将该部署结果生成新的区块,并将该区块写入区块链账本。步骤406,记账节点2034向管理节点201发送智能合约部署响应。相应的,管理节点201接收来自记账节点2034的智能合约部署响应。其中,该智能合约部署响应用于指示该智能合约部署成功。在图4所示的实施例中,管理节点201通过携带节点管理规则信息的智能合约部署请求,请求区块链网络203中的记账节点部署包括节点管理规则信息的智能合约,记账节点部署该智能合约,以便区块链网络203可以根据该智能合约控制节点的加入,从而可以有效防止区块链网络被攻击,进而可以提高区块链网络203的安全性、可靠性。请参见图5,为本发明实施例提供的另一种节点管理方法的流程示意图,可以包括但不限于如下步骤:步骤501,目标节点202向区块链网络203中的记账节点2034发送加入请求。相应的,记账节点2034接收来自目标节点202的加入请求。其中,该加入请求携带目标节点202的标识,目标节点202的标识可以是设备标识、ip地址或节点名称等。该加入请求用于请求加入区块链网络203。该加入请求还可包括区块链网络203的标识。可选的,该加入请求还包括目标节点202的描述信息,描述信息用于描述目标节点202的类型,目标节点203加入区块链网络203的目的等。其中,类型可以分为个人节点、企业节点或机构节点等。目的,例如加入区块链网络203以查看或访问或调用该区块链网络中的其它智能合约等。步骤502,记账节点2034判断该加入请求是否具有合法性。可以理解的是,目标节点202通过交易的形式向记账节点2034发送加入请求,那么记账节点2034判断该加入请求是否具有合法性,即判断该交易是否具有合法性。判断交易是否具有合法性的过程可参考步骤402对判断交易是否具有合法性的具体描述,在此不再赘述。在该加入请求具有合法性的情况下,执行步骤503。在该加入请求不具有合法性的情况下,向目标节点202发送加入响应,该加入响应用于指示交易不具有合法性,或拒绝该加入请求。步骤503,在步骤502的判断结果为是的情况下,记账节点2034调用智能合约,并加载节点管理规则信息。在步骤502的判断结果为是的情况下,记账节点2034调用虚拟机执行该交易,在执行该交易的过程中,调用图4所示实施例所部署的智能合约,并加载节点管理规则信息,即从该智能合约中获取该节点管理规则信息。该节点管理规则信息所包括的内容可参见步骤401对该节点管理规则信息的具体描述,在此不再赘述。步骤504,记账节点2034根据目标节点202的标识和节点管理规则信息控制目标节点202加入区块链网络203。对于步骤401中的第一种方式,记账节点2034在该节点管理规则信息所包括的允许加入节点列表中查找目标节点202的标识。若存在目标节点202的标识,则允许目标节点202加入区块链网络203得到第一结果。该第一结果用于指示允许目标节点202加入区块链网络203,即目标节点202可以加入区块链网络203。记账节点2034将第一结果在区块链网络203进行第二共识,若区块链网络203达成第二共识,则将第一结果添加至区块链账本。若不存在目标节点202的标识,则不允许目标节点202加入区块链网络203,得到第二结果。该第二结果用于指示不允许目标节点202加入区块链网络203,即目标节点202不可以加入区块链网络203。记账节点2034将第二结果在区块链网络203进行第三共识,若区块链网络203达成第三共识,则将第二结果添加至区块链账本。可选的,该节点管理规则信息还包括白名单中各个节点标识对应的限定条件,例如有效时间和/或有效地理位置等。例如,若存在目标节点202的标识,且当前时间在该标识对应的有效时间内,则允许目标节点202加入区块链网络203;反之,若存在目标节点202的标识,但当前时间不在该标识对应的有效时间内,则不允许目标节点202加入区块链网络。再例如,若存在目标202的标识,且目标节点202的ip地址属于在该标识对应的有效地理位置范围内,则允许目标节点202加入区块链网络203;反之,若存在目标节点202的标识,但目标节点202的ip地址不属于在该标识对应的有效地理位置范围内,则不允许目标节点202加入区块链网络。对于步骤401中的第二种方式,记账节点2034在该节点管理规则信息所包括的不允许加入节点列表中查找目标节点202的标识。若存在目标节点202的标识,则不允许目标节点202加入区块链网络203得到第二结果。该第二结果用于指示不允许目标节点202加入区块链网络203。记账节点2034将第二结果在区块链网络203进行第三共识,若区块链网络203达成第三共识,则将第二结果添加至区块链账本。若存在目标节点202的标识,则允许目标节点202加入区块链网络203得到第一结果。该第一结果用于指示允许目标节点202加入区块链网络203。记账节点2034将第一结果在区块链网络203进行第二共识,若区块链网络203达成第二共识,则将第一结果添加至区块链账本。对于步骤401中的第三种方式,记账节点2034在该节点管理规则信息所包括的允许加入节点列表和不允许加入节点列表中查找目标节点202的标识。若允许加入节点列表包括目标节点202的标识,且不允许加入节点列表不包括目标节点202的标识,则允许目标节点202加入区块链网络203得到第一结果。该第一结果用于指示允许目标节点202加入区块链网络203。记账节点2034将第一结果在区块链网络203进行第二共识,若区块链网络203达成第二共识,则将第一结果添加至区块链账本。通常一个节点的节点标识存在白名单或黑名单中,不会同时存在白名单和黑名单中,除非在某个情况下存在白名单中,某个情况存在黑名单中。若不允许加入节点列表包括目标节点202的标识,且允许加入节点列表不包括目标节点202的标识,则不允许目标节点202加入区块链网络203得到第二结果。该第二结果用于指示不允许目标节点202加入区块链网络203。记账节点2034将第二结果在区块链网络203进行第三共识,若区块链网络203达成第三共识,则将第二结果添加至区块链账本。若不允许加入节点列表不包括目标节点202的标识,且允许加入节点列表也不包括目标节点202的标识,则允许目标节点202连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点,得到第三结果。该第三结果用于指示允许目标节点202连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点,即目标节点202可以连接区块链网络203中的指定节点,但不可以连接区块链网络203中的记账节点。记账节点2034将第三结果在区块链网络203进行第四共识,若区块链网络203达成第四共识,则将第三结果添加至区块链账本。允许目标节点202连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点,可有效防止目标节点202是黑客的情况下,攻击记账节点。步骤505,记账节点2034向目标节点202发送加入响应。相应的,目标节点202接收来自记账节点2034的加入响应。对于允许目标节点202加入区块链网络203的情况,记账节点2034向目标节点202发送加入响应,该加入响应用于指示允许目标节点202加入区块链网络203。对于不允许目标节点202加入区块链网络203的情况,记账节点2034向目标节点202发送加入响应,该加入响应用于指示不允许目标节点202加入区块链网络203。对于允许目标节点202连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点的情况,记账节点2034向目标节点202发送加入响应,该加入响应用于指示允许目标节点202连接区块链网络203中的指定节点,但不允许连接区块链网络203中的记账节点。图5所示实施例以记账节点2034接收到加入请求为例,实际应用中可以是区块链网络203中的任意一个区块链节点接收到加入请求,任意一个区块链节点可执行图5所示的实施例,不过在普通节点执行图5所示实施例的情况下,由记账节点将执行结果(例如第一结果、第二结果或第三结果)添加至区块链账本。在图5所示的实施例中,区块链节点在接收到来自目标节点的加入请求的情况下,可通过调用图4所示实施例部署的智能合约,控制目标节点加入区块链网络,从而可以有效防止区块链网络被攻击,进而可以提高区块链网络203的安全性、可靠性。请参见图6,为本发明实施例提供的又一种节点管理方法的流程示意图,可以包括但不限于如下步骤:步骤601,管理节点201向区块链网络203中的记账节点2034发送合约修改请求。相应的,记账节点2034接收来自管理节点201的合约修改请求。其中,合约修改请求用于请求修改图4所示实施例部署的智能合约,可包括该智能合约的合约标识,记账节点2034可在智能合约部署响应中携带该智能合约的合约标识。该合约修改请求还包括修改内容,例如将某个节点标识从白名单中移除,或将某个节点标识从白名单移动至黑名单,或修改白名单中某个节点标识对应的有效时间,或将某个作恶节点加入黑名单,或新业务需要将某个节点加入白名单等。修改内容可以是一条或多条,视具体情况而定。该合约修改请求还包括管理节点201的标识,用于校验管理节点201的合法性。区块链平台委员会在管理节点201上设置针对该智能合约的修改内容,管理节点201在区块链平台委员会设置完成之后,将该修改内容通过交易的形式发送至区块链网络203,区块链网络203中的记账节点2034接收到该合约修改请求。可以将该合约修改请求理解为交易。步骤602,记账节点2034判断该合约修改请求是否具有合法性。记账节点2034在接收到该合约修改请求的情况下,判断该合约修改请求是否具有合法性,具体可包括判断该合约修改请求是否具有合法性以及该修改内容是否正确。判断该合约修改请求是否具有合法性,即判断交易的签名是否具有合法性,可参考步骤402中判断交易的签名是否具有合法性,在此不再赘述。其中,交易的签名即为管理节点201的签名。判断该修改内容是否正确,即判断该修改内容是否与该节点管理规则符合。例如该修改内容为将节点标识a从白名单中移除,若白名单不包括节点标识a,那么可确定修改内容错误;若白名单中包括节点标识a,那么可确定修改内容正确。在该签名具有合法性,且该修改内容正确的情况下,记账节点2034可确定该合约修改请求具有合法性,那么该种情况下,执行步骤603。在该签名不具有合法性,或该修改内容不正确,或该签名不具有合法性且该修改内容不正确的情况下,记账节点2034可确定该合约修改请求不具有合法性,那么该种情况下,记账节点2034向管理节点201发送合约修改响应,该合约修改响应用于指示该合约修改请求不具有合法性,或记账节点2034拒绝修改该智能合约。步骤603,在步骤602的判断结果为是的情况下,记账节点2034调用智能合约,根据合约修改请求对智能合约进行修改,得到修改结果。在步骤602的判断结果为是的情况下,记账节点2034调用虚拟机执行该交易,在执行该交易的过程中,该智能合约会校验管理节点201的标识是否具有合法性,并在校验通过的情况下,记账节点2034根据该合约修改请求修改该智能合约,得到修改结果,并将修改结果缓存。其中,该智能合约检验管理节点201的标识是否具有合法性可包括:将该合约修改请求所携带的管理节点201的标识与该智能合约所携带的管理节点的标识进行比较,若一致,则具有合法性;若不一致,则不具有合法性,记账节点2034向管理节点201发送合约修改响应,该合约修改响应用于指示记账节点2034拒绝修改该智能合约。记账节点2034根据该合约修改请求修改该智能合约,得到修改结果,可包括:根据该合约修改请求所包括的修改内容修改该智能合约,得到修改结果。该修改结果用于指示修改该智能合约的结果。例如,该修改内容为将节点标识m加入黑名单,那么记账节点2034将节点标识m加入黑名单,得到修改结果,该修改结果用于指示将节点标识m加入黑名单,或黑名单中增加了节点标识m。步骤604,记账节点2034将修改结果在区块链网络203中进行第五共识。步骤605,在区块链网络203达成第五共识的情况下,记账节点2034将修改结果添加至区块链网络203的区块链账本。步骤606,记账节点2034向管理节点201发送合约修改响应。相应的,管理节点201接收来自记账节点2034的合约修改响应。其中,合约修改响应用于指示智能合约修改完成。在图6所示的实施例中,通过合约修改请求实现管理节点201对图4所示实施例部署的智能合约的修改,使得该智能合约在区块链上可以实时更新,以便区块链节点实时对请求加入的新的节点进行监控,从而可以有效并实时防止区块链网络被攻击,进而可以提高区块链网络的安全性、可靠性。需要说明的是,图4所示实施例是图5所示实施例和图6所示实施例的基础,即图5和图6在图4之后执行。图5所示实施例与图6所示实施例不限定执行的先后顺序。基于上述方法实施例的描述,本发明实施例还提供相应的节点管理装置,该装置可运行于记账节点中,该装置可以是运行于记账节点中的计算机程序(包括程序代码)。请参见图7,为本发明实施例提供的一种节点管理装置的结构示意图,该装置可包括:收发单元701和处理单元702。收发单元701,用于接收携带节点管理规则信息的智能合约部署请求,该智能合约部署请求用于请求部署包括该节点管理规则信息的智能合约;处理单元702,用于若该智能合约部署请求和该智能合约满足合约部署条件,则部署该智能合约得到部署结果,并将该部署结果在区块链网络中进行第一共识;若该区块链网络达成第一共识,则将该部署结果添加至区块链网络中的区块链账本;收发单元701,还用于发送智能合约部署响应,该智能合约部署响应用于指示该智能合约部署成功;其中,该部署结果包括该智能合约的地址信息和该智能合约的部署状态,所述部署状态为成功。可选的,收发单元701,还用于接收来自目标节点的加入请求,该加入请求携带该目标节点的标识,该加入请求用于请求加入所述区块链网络;处理单元702,还用于若该加入请求具有合法性,则调用上述智能合约,并加载上述节点管理规则信息;根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络;收发单元701,还用于向该目标节点发送加入响应。可选的,上述节点管理规则信息包括允许加入节点列表;处理单元702,具体用于若上述允许加入节点列表包括该目标节点的标识,则允许该目标节点加入该区块链网络得到第一结果,将该第一结果在区块链网络中进行第二共识;若该区块链网络达成第二共识,则将该第一结果添加至区块链账本;收发单元701,具体用于向该目标节点发送加入响应,该加入响应用于指示该目标节点允许加入该区块链网络。在一种实施方式中,上述节点管理规则信息还包括不允许加入节点列表;处理单元702,具体用于若上述允许加入节点列表不包括该目标节点的标识,且该不允许加入节点列表包括该目标节点的标识,则不允许该目标节点加入区块链网络得到第二结果,将该第二结果在区块链网络中进行第三共识;若区块链网络达成第三共识,则将该第二结果添加至区块链账本;收发单元701,具体用于向该目标节点发送加入响应,该加入响应用于指示该目标节点不允许加入该区块链网络。可选的,处理单元702,具体用于若上述允许加入节点列表不包括该目标节点的标识,且上述不允许加入节点列表不包括该目标节点的标识,则允许该目标节点连接区块链网络中的指定节点得到第三结果,将该第三结果在区块链网络中进行第四共识;若区块链网络达成第四共识,则将该第三结果添加至区块链账本;收发单元701,具体用于向该目标节点发送加入响应,该加入响应用于指示该目标节点允许连接区块链网络中的指定节点。可选的,处理单元702,还用于若该智能合约部署请求具有合法性且该智能合约具有合法性,则确定该智能合约部署请求和该智能合约满足合约部署条件。可选的,收发单元701,还用于接收针对该智能合约的合约修改请求;处理单元702,还用于若该合约修改请求具有合法性,则调用该智能合约,根据该合约修改请求对该智能合约进行修改,得到修改结果;将该修改结果在区块链网络中进行第五共识;若区块链网络达成第五共识,则将该修改结果添加至区块链账本;收发单元701,还用于发送合约修改响应,该合约修改响应用于指示该智能合约修改完成。请参见图8,为本发明实施例提供的另一种节点管理装置的结构示意图,该装置包括处理器801、存储器802以及通信接口803,该处理器801、存储器802以及通信接口803通过一条或多条通信总线连接。处理器801被配置为支持区块链节点执行图4-图6中方法中区块链节点2044相应的功能。该处理器801可以是中央处理器(centralprocessingunit,cpu),网络处理器(networkprocessor,np),硬件芯片或者其任意组合。存储器802用于存储程序代码等。存储器802可以包括易失性存储器(volatilememory),例如随机存取存储器(randomaccessmemory,ram);存储器802也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-onlymemory,rom),快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储器802还可以包括上述种类的存储器的组合。通信接口803用于收发数据、信息或消息等,也可以描述为收发器、收发电路等。在本发明实施例中,该处理器801可以调用存储器802中存储的程序代码以执行以下操作:在一个实施例中,控制通信接口803接收携带节点管理规则信息的智能合约部署请求,该智能合约部署请求用于请求部署包括该节点管理规则信息的智能合约;若该智能合约部署请求和该智能合约满足合约部署条件,则部署该智能合约得到部署结果,并将该部署结果在区块链网络中进行第一共识;若该区块链网络达成第一共识,则将该部署结果添加至区块链网络中的区块链账本;控制通信接口803发送智能合约部署响应,该智能合约部署响应用于指示该智能合约部署成功;其中,该部署结果包括该智能合约的地址信息和该智能合约的部署状态,所述部署状态为成功。可选的,处理器801,还用于控制通信接口803接收来自目标节点的加入请求,该加入请求携带该目标节点的标识,该加入请求用于请求加入所述区块链网络;若该加入请求具有合法性,则调用上述智能合约,并加载上述节点管理规则信息;根据该目标节点的标识和该节点管理规则信息控制该目标节点加入区块链网络;控制通信接口803向该目标节点发送加入响应。可选的,上述节点管理规则信息包括允许加入节点列表;处理器801,具体用于若上述允许加入节点列表包括该目标节点的标识,则允许该目标节点加入该区块链网络得到第一结果,将该第一结果在区块链网络中进行第二共识;若该区块链网络达成第二共识,则将该第一结果添加至区块链账本;控制通信接口803向该目标节点发送加入响应,该加入响应用于指示该目标节点允许加入该区块链网络。在一种实施方式中,上述节点管理规则信息还包括不允许加入节点列表;处理器801,具体用于若上述允许加入节点列表不包括该目标节点的标识,且该不允许加入节点列表包括该目标节点的标识,则不允许该目标节点加入区块链网络得到第二结果,将该第二结果在区块链网络中进行第三共识;若区块链网络达成第三共识,则将该第二结果添加至区块链账本;控制通信接口803向该目标节点发送加入响应,该加入响应用于指示该目标节点不允许加入该区块链网络。可选的,处理器801,具体用于若上述允许加入节点列表不包括该目标节点的标识,且上述不允许加入节点列表不包括该目标节点的标识,则允许该目标节点连接区块链网络中的指定节点得到第三结果,将该第三结果在区块链网络中进行第四共识;若区块链网络达成第四共识,则将该第三结果添加至区块链账本;控制通信接口803向该目标节点发送加入响应,该加入响应用于指示该目标节点允许连接区块链网络中的指定节点。可选的,处理器801,还用于若该智能合约部署请求具有合法性且该智能合约具有合法性,则确定该智能合约部署请求和该智能合约满足合约部署条件。可选的,处理器801,还用于控制通信接口803接收针对该智能合约的合约修改请求;若该合约修改请求具有合法性,则调用该智能合约,根据该合约修改请求对该智能合约进行修改,得到修改结果;将该修改结果在区块链网络中进行第五共识;若区块链网络达成第五共识,则将该修改结果添加至区块链账本;控制通信接口803发送合约修改响应,该合约修改响应用于指示该智能合约修改完成。需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例处理设备中的模块可以根据实际需要进行合并、划分和删减。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态存储盘solidstatedisk(ssd))等。最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1