一种节点准入方法及装置与流程

文档序号:19901508发布日期:2020-02-11 13:56阅读:140来源:国知局
一种节点准入方法及装置与流程

本发明属于数据处理技术领域,尤其涉及一种节点准入方法及装置。



背景技术:

区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。

上述区块链可以存储在数据交互系统的各个节点(即参与方)中,若一个待处理节点希望加入到数据交互系统节点已加入到的一个区块链时,数据交互系统可以使用一个证书颁发机构(ca,certificateauthority)中心为该待处理节点签发证书,然后由该待处理节点与数据交互系统中的其他节点(即已加入区块链的节点)通过线下沟通方式获得其他节点的准入许可,该待处理节点才能够加入到区块链中,其中ca中心为该待处理节点签发的证书为该待处理节点在其加入的区块链中的数字签名。



技术实现要素:

有鉴于此,本发明的目的在于提供一种节点准入方法及装置,用于实现上链处理准入请求。

本发明提供一种节点准入方法,所述方法应用于数据交互系统的代理节点中,所述数据交互系统包括多个节点,所述多个节点中的一个节点为所述代理节点,所述代理节点用于接收待处理节点发送的准入请求,将所述准入请求上链并得到所述准入请求的准入指令,所述多个节点都已加入至少一条区块链中,所述方法包括:

接收待处理节点发送的准入请求;

根据所述准入请求中携带的区块链标识,将所述准入请求写入到所述区块链标识对应的区块链上;

获得所述多个节点对所述准入请求的多个准入响应,根据所述多个准入响应和预设准入策略,得到所述准入请求的准入指令并发送所述准入指令给所述待处理节点,所述准入指令用于指示所述待处理节点是否能加入所述区块链标识对应的区块链。

优选的,所述获得所述多个节点对所述准入请求的多个准入响应,根据所述多个准入响应和预设准入策略,得到所述准入请求的准入指令包括:

在获得所述多个节点对所述准入请求的多个准入响应过程中,若当前已获取到的准入响应符合所述预设准入策略指示的加入区块链的要求,得到指示所述待处理节点加入所述区块链标识对应的区块链的准入指令;

忽略得到所述准入指令后获得的所述准入请求的准入响应。

优选的,所述获得所述多个节点对所述准入请求的多个准入响应包括:

根据所述准入请求中携带的待处理节点的标识和所述待处理节点的数字签名,得到所述代理节点对所述准入请求的准入响应,以及接收除所述代理节点之外的其他节点各自发送的所述准入请求的准入响应;

所述准入响应用于指示所述准入响应对应的节点是否允许所述待处理节点加入所述区块链标识对应的区块链。

优选的,所述方法还包括:将所述多个节点对所述准入请求的多个准入响应以及所述准入请求的准入指令写入到所述区块链标识对应的区块链中。

优选的,所述获得所述多个节点对所述准入请求的多个准入响应包括:

根据所述准入请求中携带的待处理节点的标识和所述待处理节点的数字签名,得到所述代理节点对所述准入请求的准入响应,以及从所述区块链标识对应的区块链中获取其他节点各自写入到所述区块链中的所述准入请求的准入响应;

所述准入响应用于指示所述准入响应对应的节点是否允许所述待处理节点加入所述区块链标识对应的区块链。

优选的,所述方法还包括:根据所述准入请求的接收时间和/或所述准入请求中携带的所述待处理节点的标识,确定所述准入请求是否符合上链要求,如果是触发所述根据所述准入请求中携带的区块链标识,将所述准入请求写入到所述区块链标识对应的区块链上的步骤。

本发明还提供一种节点准入方法,所述方法应用于待处理节点中,所述方法包括:

获取所述待处理节点的标识、所述待处理节点的数字签名和区块链标识,所述区块链标识指示所述待处理节点请求加入的区块链;

根据所述待处理节点的标识、所述待处理节点的数字签名和区块链标识,生成准入请求;

发送所述准入请求至代理节点,由所述代理节点得到所述准入请求的准入指令,所述准入请求的准入指令用于指示所述待处理节点是否能加入所述区块链标识对应的区块链;

接收所述代理节点发送的所述准入请求的准入指令。

本发明还提供一种节点准入装置,所述装置应用于数据交互系统的代理节点中,所述数据交互系统包括多个节点,所述多个节点中的一个节点为所述代理节点,所述代理节点用于接收待处理节点发送的准入请求,将所述准入请求上链并得到所述准入请求的准入指令,所述多个节点都已加入至少一条区块链中,所述装置包括:

接收单元,用于接收待处理节点发送的准入请求;

处理单元,用于根据所述准入请求中携带的区块链标识,将所述准入请求写入到所述区块链标识对应的区块链上;以及用于获得所述多个节点对所述准入请求的多个准入响应,根据所述多个准入响应和预设准入策略,得到所述准入请求的准入指令,所述准入指令用于指示所述待处理节点是否能加入所述区块链标识对应的区块链;

发送单元,用于向所述待处理节点发送所述准入请求的准入指令。

本发明还提供一种代理节点,所述代理节点为数据交互系统中的一个节点,所述代理节点用于接收待处理节点发送的准入请求,将所述准入请求上链并得到所述准入请求的准入指令,所述代理节点和所述数据交互系统中的其他节点都已加入至少一条区块链中,所述代理节点包括:通信接口和处理器;

所述通信接口,用于接收待处理节点发送的准入请求;

所述处理器,用于根据所述准入请求中携带的区块链标识,将所述准入请求写入到所述区块链标识对应的区块链上,获得所述多个节点对所述准入请求的多个准入响应,根据所述多个准入响应和预设准入策略,得到所述准入请求的准入指令,所述准入指令用于指示所述待处理节点是否能加入所述区块链标识对应的区块链;

所述通信接口,还用于向所述待处理节点发送所述准入请求的准入指令。

本发明还提供一种待处理节点,所述待处理节点包括:处理器和通信接口;

所述处理器,用于获取所述待处理节点的标识、所述待处理节点的数字签名和区块链标识,所述区块链标识指示所述待处理节点请求加入的区块链;根据所述待处理节点的标识、所述待处理节点的数字签名和区块链标识,生成准入请求;

所述通信接口,用于发送所述准入请求至代理节点,由所述代理节点得到所述准入请求的准入指令,所述准入请求的准入指令用于指示所述待处理节点是否能加入所述区块链标识对应的区块链;以及用于接收所述代理节点发送的所述准入请求的准入指令。

借由上述技术方案,代理节点在接收到待处理节点发送的准入请求后,代理节点根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,获得数据交互系统中多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令,以指示待处理节点是否能加入区块链标识对应的区块链,代理节点向待处理节点发送准入请求的准入指令,从而通过代理节点能够将准入请求上链至代理节点加入的区块链标识对应的区块链中,由与代理节点同处于数据交互系统的节点能够从区块链中获取准入请求进行处理,实现上链处理准入请求。

在得到准入请求的准入指令所依据的预设准入策略是区块链中的一种属性,针对该预设准入策略可以由数据交互系统中的各个节点提前协商,减少准入争议,提高区块链的治理性能。并且针对该预设准入策略还可以由数据交互系统中的各个节点协商调整,使得预设准入策略是一个动态策略,降低因预设准入策略固定引起的准入指令的伪造,提高安全性。

附图说明

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

图1是本发明实施例提供的节点准入方法基于的数据交互系统的系统架构图;

图2是本发明实施例提供的区块结构的一个可选的示意图;

图3是本发明实施例提供的一种节点准入方法的信令图;

图4是本发明实施例提供的另一种节点准入方法的信令图;

图5是本发明实施例提供的一种节点准入方法的应用示意图;

图6是本发明实施例提供的一种节点准入装置的结构示意图;

图7是本发明实施例提供的一种代理节点的结构示意图;

图8是本发明实施例提供的一种待处理节点的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例涉及的数据交互系统可以包括多个节点(如两个节点或两个以上节点),多个节点可以是能够接入网络中的任意形式的计算设备,如服务器和终端,该数据交互系统可以由多个节点通过网络通信的形式连接形成,其形式可以是一个分布式系统。

以数据交互系统为区块链系统为例,参见图1,图1是本发明实施例提供的数据交互系统100应用于区块链系统的一个可选的结构示意图,由多个节点(接入网络中的任意形式的计算设备,如服务器、终端)形成,节点之间形成组成的点对点(p2p,peertopeer)网络,p2p协议是一个运行在传输控制协议(tcp,transmissioncontrolprotocol)协议之上的应用层协议。在该数据交互系统中,任何设备如服务器、终端都可以加入而成为节点,节点包括硬件层、中间层、操作系统层和应用层。

参见图1示出的区块链系统中各节点的功能,涉及的功能包括:

1)路由,节点具有的基本功能,用于支持节点之间的通信。

节点除具有路由功能外,还可以具有以下功能:

2)应用,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现功能相关的数据形成记录数据,在记录数据中携带数字数字签名以表示任务数据的来源,将记录数据发送到区块链系统中的其他节点,供其他节点在验证记录数据来源以及完整性成功时,将记录数据添加到临时区块中。

例如,应用实现的业务包括:

2.1)钱包,用于提供进行电子货币的交易的功能,包括发起交易(即,将当前交易的交易记录发送给区块链系统中的其他节点,其他节点验证成功后,作为承认交易有效的响应,将交易的记录数据存入区块链的临时区块中;当然,钱包还支持查询电子货币地址中剩余的电子货币;

2.2)共享账本,用于提供账目数据的存储、查询和修改等操作的功能,将对账目数据的操作的记录数据发送到区块链系统中的其他节点,其他节点验证有效后,作为承认账目数据有效的响应,将记录数据存入临时区块中,还可以向发起操作的节点发送确认。

2.3)智能合约,计算机化的协议,可以执行某个合约的条款,通过部署在共享账本上的用于在满足一定条件时而执行的代码实现,根据实际的业务需求代码用于完成自动化的交易,例如查询买家所购买商品的物流状态,在买家签收货物后将买家的电子货币转移到商户的地址;当然,智能合约不仅限于执行用于交易的合约,还可以执行对接收的信息进行处理的合约。

3)区块链,区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链包括一系列按照产生的先后时间顺序相互接续的区块(block),新区块一旦加入到区块链中就不会再被移除,区块中记录了区块链系统中节点提交的记录数据,由此各个节点将数据写入到区块链意味着数据上链,从而任一节点能够从区块链中获取其他节点写入到区块链中的数据。

参见图2,图2是本发明实施例提供的区块结构(blockstructure)的一个可选的示意图,每个区块中包括本区块存储交易记录的哈希值(本区块的哈希值)、以及前一区块的哈希值,各区块通过哈希值连接形成区块链。另外,区块中还可以包括有区块生成时的时间戳等信息。

针对上述图1所示数据交互系统,在一个待处理节点加入该数据交互系统的各个节点都已加入的一条区块链时,数据交互系统中的一个节点作为代理节点,如确定代理节点的方式包括但不限于数据交互系统中一个节点向其他节点发送代理节点指令,该代理节点指令用于告知其他节点该节点作为代理节点,或者数据交互系统中的多个节点相互发送表明自身状态的状态数据,多个节点通过相互发送的状态数据从这多个节点中选择状态相对空闲的节点为代理节点,所谓状态相对空闲是指相对于数据交互系统中的其他节点而言,是否空闲可通过节点中的资源使用情况而定。

其中代理节点用于接收待处理节点发送的准入请求,将准入请求上链并得到准入请求的准入指令,通过代理节点与待处理节点之间的交互本发明实施例提供的节点准入方法,其信令图如图3所示,可以包括以下步骤:

301:待处理节点获取待处理节点的标识、待处理节点的数字签名和区块链标识。

其中区块链标识指示待处理节点请求加入的区块链,待处理节点请求加入的区块链为数据交互系统中各个节点都加入的一条区块链,不同区块链的区块链标识不同,以通过区块链标识来唯一确定一条区块链,如数据交互系统生成一条区块链之后会该区块链分配一个编号blockchain_id以区分区块链,基于此在本实施例中区块链标识为区块链的编号blockchain_id。

待处理节点的标识用于指示待处理节点的身份,通过待处理节点的标识也可以唯一确定一个待处理节点,如区块链可以是多方参与交易的一条数据,那么若待处理节点能够加入区块链中,待处理节点的标识则是该区块链的参与方,如待处理节点的标识可以是参与方的名称、参与方的账户编号等等中的至少一种,待处理节点的数字签名可以是待处理节点对准入请求的签名,以保证区块链标识和待处理节点的标识的合法,在本实施例待处理节点的数字签名可通过现有摘要算法得到,如通过现有摘要算法对待处理节点的标识和区块链标识计算得到,此处不再详述,或者待处理节点将ca中心颁发的证书作为数字签名。

在本实施例中,待处理节点位于希望参与区块链指示的交易的参与方侧,其可以是参与方侧的任一计算设备,如参与方侧的服务器或终端,参与方的名称和参与方的账户编号等指示其身份的信息以及待处理节点的数字签名存储在待处理节点中或者与其耦合通信的存储设备中,因此待处理节点可以从存储这些信息的空间中获取待处理节点的标识和待处理节点的数字签名。

数据交互系统中的区块链上链至一个交易池中,待处理节点可以从交易池中选择一个与参与方的业务相关的区块链,在区块链上链至交易池过程中区块链标识也存储至交易池中,因此待处理节点在选择一个与参与方的业务相关的区块链之后也可以获取到该区块链的区块链标识,其中与参与方的业务相关的区块链是指区块链处理的业务为参与方的一项业务。

除上述获取待处理节点的标识、待处理节点的数字签名和区块链标识的方式之外,待处理节点还可以获取参与方输入的待处理节点的标识和区块链标识,由待处理节点生成数字签名,对此本实施例不再详述。

302:待处理节点根据待处理节点的标识、待处理节点的数字签名和区块链标识,生成准入请求,以在准入请求中携带待处理节点的标识、待处理节点的数字签名和区块链标识,便于数据交互系统中的各个节点对准入请求进行处理,给出节点是否允许待处理节点加入区块链标识对应的区块链的准入响应。

其中生成准入请求的一种方式是:将待处理节点的标识、待处理节点的数字签名和区块链标识封装在准入请求中,如待处理节点的标识为identity,待处理节点的数字签名为signature(视为是其所在准入请求的签名),区块链标识为blockchain_id,则相对应的准入请求为request(identity,blockchain_id,signature)。

303:待处理节点发送准入请求至代理节点。至于待处理节点采用何种方式发送准入请求以及发送准入请求中遵循的通信标准,本实施例不进行限定。

304:代理节点根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,以实现准入请求的上链,这样数据交互系统中节点就可以从区块链中获取准入请求。

在本实施例中,代理节点相对于数据交互系统中的其他节点来说,除具备其他节点的功能之外还额外增加一个功能,即代理功能,该代理功能使得需要加入数据交互系统的区块链中的任一待处理节点的准入请求都通过代理节点写入区块链标识对应的区块链中,实现任一准入请求的上链,对于准入请求的上链过程,其与现有业务数据上链或交易上链方式相同,对此本实施例不再阐述。

为了使得准入请求上链,在区块链设计中设置一个写入准入请求接口,用于由代理节点向区块链中写入准入请求,以使数据交互系统中的其他节点获取准入请求。

305:代理节点获得多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令。

在本实施例中,数据交互系统中的任一节点在得到准入请求之后,该节点对准入请求进行审批,所谓准入请求的审批则是为了得到准入请求的准入响应,通过准入响应指示准入响应对应的节点是否允许待处理节点加入区块链标识对应的区块链。

但是任一节点对准入请求的准入响应不能代表数据交互系统,因此代理节点需要根据准入请求的准入响应和预设准入策略,得到一个准入指令,该准入指令用于指示待处理节点是否能加入区块链标识对应的区块链,即该准入指令代表数据交互系统对待处理节点的准入请求的处理结果,以指示待处理节点能否作为区块链标识对应的区块链的参与方。

其中预设准入策略可以是由数据交互系统中的各个节点提前协商,以指示待处理节点能够加入区块链的要求,如预设准入策略是数据交互系统中的各个节点中n个节点给出允许待处理节点加入区块链标识对应的区块链的准入响应,相对应代理节点就可给出一个待处理节点能加入区块链标识对应的区块链的准入指令,n为大于等于1且小于等于数据交互系统的节点总数的自然数。

通常区块链上存储业务数据和交易数据等与节点之间进行业务处理相关的数据,但是为了便于区块链的治理,区块链上也可以存在一种对应管理数据的属性,如上述预设准入策略可以视为是区块链的一种属性,这样通过区块链就可以获知当前采用的预设准入策略的内容,实现预设准入策略的上链,便于节点对准入请求的处理。例如预设准入策略可以采用and、any、mojority三种基础语法中的至少一种写入到区块链中,如数据交互系统包括三个节点,分别记为org1、org2和org3,org1为代理节点,其对应的预设准入策略包括但不限于采用如下格式:

and(org1,org2,org3),表明需要org1,org2,org3三个节点同时给出允许待处理节点加入区块链标识对应的区块链的准入响应(即三个节点同时许可准入),代理节点得到一个待处理节点能加入区块链标识对应的区块链的准入指令,以允许待处理节点准入。

any(org1,org2,org3),表明需要org1,org2,org3三个节点中任一节点给出允许待处理节点加入区块链标识对应的区块链的准入响应,代理节点得到一个待处理节点能加入区块链标识对应的区块链的准入指令。

mojority(org1,org2,org3),表明org1,org2,org3三个节点中大多数(大于半数,不含半数)节点给出允许待处理节点加入区块链标识对应的区块链的准入响应,代理节点得到一个待处理节点能加入区块链标识对应的区块链的准入指令。

对于上述预设准入策略的几种格式,org1、org2和org3作为数据交互系统中节点的标识的一种表现形式,以通过节点的标识来对应节点,这样通过节点的标识则可以确定预设准入策略要求数据交互节点中的各个节点给出何种类型的准入响应,且通过节点的标识可知预设准入策略中的哪个节点为代理节点,这里需要说明的一点是:在选取出代理节点之后,代理节点可以向其他节点发送一指令以说明其为代理节点,或者在区块链中增加一个属性,该属性用于记录代理节点的标识。

上述and、any、mojority三种基础语法可以任意嵌套,例如:any(and(org1,org2),org3),表明需要org1和org2同时给出允许待处理节点加入区块链标识对应的区块链的准入响应或者仅org3给出允许待处理节点加入区块链标识对应的区块链的准入响应,代理节点可以得到一个待处理节点能加入区块链标识对应的区块链的准入指令。

上述三种基础语法也可使用通配符,例如,any(all_org)等同于any(org1,org2,org3),and(all_org)等同于and(org1,org2,org3)。

上述三种预设准入策略仅是三个实例,实际实施过程中每条区块链对应的预设准入策略可以调整,使得预设准入策略是一个动态策略,而在调整预设准入策略时也需要数据交互系统中的节点同意方可修改,修改成何种预设准入策略也需要数据交互系统中的节点协商,这样在预设准入策略能够动态调整的情况下,若当前使用的预设准入策略被获知且可以伪造该预设准入策略对应的允许待处理节点能加入区块链标识对应的区块链的准入指令时,可以改变使用的预设准入策略,降低准入指令的伪造,提高安全性。

在本实施例中,数据交互系统中各个节点(包括代理节点)得到准入请求的准入响应的一种方式是:节点根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到节点对准入请求的准入响应;例如根据待处理节点的数字签名验证待处理节点的标识是否合法(即是否被修改),如果是则进一步根据待处理节点的标识获取待处理节点对应的业务信息,该业务信息用于指示待处理节点指示的参与方涉及的业务,以通过业务信息指示的业务与区块链标识对应的区块链涉及的业务进行比对,若两者的业务相同,则节点可以给出允许待处理节点加入区块链标识对应的区块链的准入响应,否则给出禁止待处理节点加入区块链标识对应的区块链的准入响应。

也就是说,针对准入请求,节点给出的准入响应包括两者状态,记为agree和disagree,分别表示允许加入或者禁止加入,其格式包括但不限于:

agree(request(identity,blockchain_id),signature),表明允许request(identity,blockchain_id)这个准入请求对应的待处理节点加入,agree中的signature为允许准入请求的节点的签名。

disagree(request(identity,blockchain_id),signature),表明禁止反对request(identity,blockchain_id)这个准入请求对应的待处理节点加入,disagree中的signature为允许准入请求的节点的签名。

数据交互系统中的各节点在得到准入请求之后,还可以生成一个待办事宜提醒信息,该待办事宜提醒信息用于指示节点对应的参与方人工审核准入请求,在审核之后给出准入响应。

306:代理节点向待处理节点发送准入请求的准入指令。

若准入指令指示待处理节点能作为区块链标识对应的区块链的参与方,待处理节点或代理节点可以将待处理节点的标识写入到区块链中;若准入指令禁止待处理节点作为区块链标识对应的区块链的参与方,禁止将待处理节点的标识写入到区块链中。此外代理节点还可以将准入指令写入到区块链中,以通知数据交互系统中其他节点对准入请求的处理结果,这样若准入指令指示待处理节点能作为区块链标识对应的区块链的参与方,其他节点在接收待处理节点的业务请求/交易请求后可以对业务请求/交易请求进行响应,以与待处理节点进行交易,若准入指令禁止待处理节点作为区块链标识对应的区块链的参与方,则其他节点接收到该待处理节点的业务请求/交易请求后可以忽略,因为该待处理节点不能与其他节点进行交易。

借由上述技术方案,代理节点在接收到待处理节点发送的准入请求后,代理节点根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,获得数据交互系统中多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令,以指示待处理节点是否能加入区块链标识对应的区块链,代理节点向待处理节点发送准入请求的准入指令,从而通过代理节点能够将准入请求上链至代理节点加入的区块链标识对应的区块链中,由与代理节点同处于数据交互系统的节点能够从区块链中获取准入请求进行处理,实现上链处理准入请求。

在得到准入请求的准入指令所依据的预设准入策略是区块链中的一种属性,针对该预设准入策略可以由数据交互系统中的各个节点提前协商,减少准入争议,提高区块链的治理性能。并且针对该预设准入策略还可以由数据交互系统中的各个节点协商调整,使得预设准入策略是一个动态策略,降低因预设准入策略固定引起的准入指令的伪造,提高安全性。

此外通过在区块链上写入预设准入策略以及提供写入准入请求的接口,便于数据交互系统中节点对准入请求的处理和便于数据交互系统中节点之间的交互,提升区块链的管理效率和降低使用门槛。

另外从上述预设准入策略可知,一些预设准入策略可能需要数据交互系统中的部分节点允许加入即可,而不同节点得到准入响应的时机不同,因此本实施例得到准入指令的一种方式是:

在获得多个节点对准入请求的多个准入响应过程中,若当前已获取到的准入响应符合预设准入策略指示的加入区块链的要求,得到指示待处理节点加入区块链标识对应的区块链的准入指令,并忽略得到准入指令后获得的准入请求的准入响应。

也就是说代理节点在依次获得节点对准入请求的准入响应过程中(此时没有获得全部节点的准入响应),就分析当前已经获取到的准入响应是否符合预设准入策略指示的加入区块链的要求,如果是得到准入指令。代理节点后续获取到的准入响应则可以忽略不再处理。其中预设准入策略指示的加入区块链的要求表示n个节点给出允许待处理节点加入区块链标识对应的区块链的准入响应(即n个节点允许加入)或n个节点给出禁止加入区块链标识对应的区块链的准入响应(即n个节点禁止加入)。

以上述三个节点为例,若预设准入策略为any(org1,org2,org3),则若代理节点接收到org2给出的允许加入区块链标识对应的区块链的准入响应,则代理节点给出待处理节点能加入区块链标识对应的区块链的准入指令,并忽略org1和org3的准入响应。若org2给出禁止加入区块链标识对应的区块链的准入响应,则代理节点获取到org3和自身给出的准入响应后需要继续分析,如若获取到org3给出的允许加入区块链标识对应的区块链的准入响应,则代理节点给出待处理节点能加入区块链标识对应的区块链的准入指令,并忽略org1的准入响应。

通过上述方式,代理节点在获取到符合预设准入策略指示的加入区块链的要求就可以得到准入指令,提高准入指令的获取效率。

请参阅图4,其示出了本发明实施例提供的另一种节点准入方法的信令图,相对于图3来说,阐述代理节点获得准入响应的一种方式,可以包括以下步骤:

401:待处理节点获取待处理节点的标识、待处理节点的数字签名和区块链标识。

402:待处理节点根据待处理节点的标识、待处理节点的数字签名和区块链标识,生成准入请求。

403:待处理节点发送准入请求至代理节点。

404:代理节点根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,以实现准入请求的上链,这样数据交互系统中节点就可以从区块链中获取准入请求。

405:代理节点根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到代理节点对准入请求的准入响应。

406:数据交互系统中除代理节点中的其他节点从区块链中获取准入请求,得到准入请求的准入响应。

407:除代理节点之外的其他节点将各自得到的准入请求的准入响应发送给代理节点。

408:代理节点根据准入请求的准入响应和预设准入策略,得到准入请求的准入指令。

409:代理节点向待处理节点发送准入请求的准入指令。

对于上述图4所示信令图,与图3的不同之处在于:通过步骤405和步骤406阐述代理节点获取数据交互系统中节点对准入请求的准入响应的方式,且针对数据交互系统中的每个节点来说,其得到准入请求的准入响应的过程请参阅上述方法实施例,对此本实施例不再阐述,且其他与图3相同的步骤也请参阅上述方法实施例,对此本实施例不再阐述。

此外上述图4所示节点准入方法还可以包括步骤:将多个节点对准入请求的多个准入响应以及准入请求的准入指令写入到区块链标识对应的区块链中,实现准入响应和准入指令的上链。

为了使得准入响应和准入指令的上链,在区块链设计中设置一个写入准入响应和准入指令的接口,用于由代理节点向区块链中写入准入响应和准入指令,以使数据交互系统中的其他节点获取各个节点的准入响应以及最终的处理结果,若准入指令允许待处理节点加入,数据交互系统中的各节点可以提前准备。

除上述获得节点对准入请求的准入响应的方式之外,代理节点还可以通过其他方式获得准入响应,如一种方式是:代理节点根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到代理节点对准入请求的准入响应,数据交互系统中的其他节点在自身得到准入响应之后,将自身得到的准入响应写入到区块链标识对应的区块链中,代理节点则可以从区块链标识对应的区块链中获取其他节点写入到区块链中的准入请求的准入响应。

对于此种方式来说,代理节点也可以在得到准入指令之后,将准入指令写入到区块链标识对应的区块链中,实现准入指令和准入响应的上链。

针对上述节点准入方法,代理节点还可以设置一个上链要求,该上链要求表明特定类型的准入请求,如特定时间和/或特定参与方对应的准入请求才可以上链,以通过上链要求对准入请求进行过滤。

相对应的节点准入方法还可以包括:根据准入请求的接收时间和/或准入请求中携带的待处理节点的标识,确定准入请求是否符合上链要求,如果是触发根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上的步骤。

如果准入请求的接收时间为特定时间和/或待处理节点的标识为特定参与方,说明符合上链要求,此时代理节点可以将对应的准入请求写入到区块链标识对应的区块链上。

对于特定时间和特定参与方可以根据实际需求而定,对此本实施例不进行说明。并且在实际应用中,代理节点在接收到准入请求之后可以以key-value的方式存储准入请求,value对应准入请求的接收时间和/或待处理节点的标识,然后由代理节点依次对每个key-value进行过滤。或者代理节点在接收到准入请求之后对准入请求上链,然后由数据交互系统中各个节点对准入请求进行过滤,相对应的在区块链设计中需要设置一个查询准入请求接口,用于对写入到区块链中的准入请求进行过滤。

通过上述上链要求方式可以使得数据交互系统仅处理满足上链要求的准入请求,减少处理数量,提高准入效率。

下面以上述三个节点org1、org2和org3,org1为代理节点,org4为待处理节点为例,对本实施例提供的节点准入方法进行说明,如图5所示,其中图5中的区块链可以不是一个实体设备,而是为了更好说明本实施例提供的节点准入方法,图5阐述的节点准入方法可以包括以下步骤:

step1,org4希望加入上述三个节点都加入的一条区块链,org4生成一条准入请求发送到org1,由org1检查通过(如符合上链要求)后将准入请求写入到区块链上,即step1中的准入请求上链;org1在这里等于是额外承担了一个代理节点的角色。

step2,org2和org3从区块链中读取到org4生成的准入请求后,对其进行审批处理,得到准入响应,这个审批处理可以是人工的,也可以是org2和org3这两个节点审批,其审批过程如上述实施例所示,对此本实施例不再阐述。org2和org3审批后将准入响应发送给org1,在这里需要说明的一点是,org1也可以对准入请求进行审批,step2没有示出。

step3,org1汇总后得到准入指令,将准入指令发送给org4并将准入指令写入到区块链中,实现准入指令上链,至此完成一轮准入请求的处理。

在实际应用场景中,数据交互系统中的多个节点可以向其他节点发送代理节点指令,相对应的处理方式是:将多个发送代理节点指令的节点中第一个发送代理节点指令的节点作为代理节点,或者将这多个发送代理节点指令的节点均作为代理节点,此种方式尤其适用于数据交互系统的节点数量较多的情况。

在数据交互系统的节点数量较多的情况下,可以将数据交互系统中的所有节点划分成不同的节点组中,每个节点组中通过如上方式选取一个代理节点,由每个节点组中的代理节点接收待处理节点发送的准入请求,将准入请求上链并得到其所在节点组针对准入请求的准入指令,然后所有代理节点中的一个代理节点能够获得各个节点组给出的准入指令,由该代理节点给出最终的准入指令以指示是否允许待处理节点加入,其中能够获得各个节点组给出的准入指令的代理节点的选取方式可以参见从每个节点组中选取一个代理节点的方式。下面结合例子进行说明:

例如数据交互系统中包括三个节点组,分别记为节点组1、节点组2、节点组3,节点组1包括节点11、节点12和节点13,节点组2包括节点21、节点22、节点23和节点24,节点组3包括节点31、节点32、节点33和节点34,节点11、节点23和节点34分别为代理节点,且节点11为汇总所有准入指令的代理节点;

节点11、节点23和节点34接收到待处理节点发送的准入请求后,节点11、节点23和节点34分别将该准入请求上链,节点11、节点23和节点34各自所在节点组中的其他节点从区块链中获取该准入请求,给出针对该准入请求的准入响应;节点11、节点23和节点34分别获取到各自所在节点组的节点给出的准入响应汇总出各自所在节点组针对准入请求的准入指令。

节点23和节点34可以将各自所在节点组针对准入请求的准入指令上链或者发送给节点11,以使节点11能够获取每个节点组针对准入请求的准入指令,然后节点11汇总出最终的用于指示是否允许待处理节点加入的准入指令。

当然节点11可以在一边获得各个节点组针对准入请求的准入指令一边进行汇总,若基于当前接收到的针对准入请求的准入指令就能够汇总出最终的用于指示是否允许待处理节点加入的准入指令,则节点11可以忽略在这之后获取到的节点组针对准入请求的准入指令。

对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

与上述方法实施例相对应,本发明实施例还提供一种节点准入装置,该节点准入装置应用于数据交互系统的代理节点中,数据交互系统包括多个节点,多个节点中的一个节点为代理节点,代理节点用于接收待处理节点发送的准入请求,将准入请求上链并得到准入请求的准入指令,多节点都已加入至少一条区块链中,相对应的节点准入装置的结构如图6所示,可以包括:接收单元11、处理单元12和发送单元13。

接收单元11,用于接收待处理节点发送的准入请求。

处理单元12,用于根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上;以及用于获得多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令,准入指令用于指示待处理节点是否能加入区块链标识对应的区块链。

处理单元12将准入请求写入到区块链标识对应的区块链上实现准入请求的上链,这样数据交互系统中的其他节点可以从区块链中获取准入请求。为了使得准入请求上链,在区块链设计中设置一个写入准入请求接口,用于由代理节点向区块链中写入准入请求,以使数据交互系统中的其他节点获取准入请求。

在本实施例中,数据交互系统中的任一节点在得到准入请求之后,该节点对准入请求进行审批,所谓准入请求的审批则是为了得到准入请求的准入响应,通过准入响应指示准入响应对应的节点是否允许待处理节点加入区块链标识对应的区块链。

但是任一节点对准入请求的准入响应不能代表数据交互系统,因此处理单元12需要根据准入请求的准入响应和预设准入策略,得到一个准入指令,该准入指令用于指示待处理节点是否能加入区块链标识对应的区块链,即该准入指令代表数据交互系统对待处理节点的准入请求的处理结果,以指示待处理节点能否作为区块链标识对应的区块链的参与方。

其中预设准入策略可以是由数据交互系统中的各个节点提前协商,以指示待处理节点能够加入区块链的要求,如预设准入策略是数据交互系统中的各个节点中n个节点给出允许待处理节点加入区块链标识对应的区块链的准入响应,相对应代理节点就可给出一个待处理节点能加入区块链标识对应的区块链的准入指令,n为大于等于1且小于等于数据交互系统的节点总数的自然数。

通常区块链上存储业务数据和交易数据等与节点之间进行业务处理相关的数据,但是为了便于区块链的治理,区块链上也可以存在一种对应管理数据的属性,如上述预设准入策略可以视为是区块链的一种属性,这样通过区块链就可以获知当前采用的预设准入策略的内容,实现预设准入策略的上链,便于节点对准入请求的处理,对于预设准入策略的格式请参阅上述方法实施例,此处不在说明。

在本实施例中,数据交互系统中各个节点(包括代理节点)得到准入请求的准入响应的一种方式是:节点根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到节点对准入请求的准入响应;例如根据待处理节点的数字签名验证待处理节点的标识是否合法(即是否被修改),如果是则进一步根据待处理节点的标识获取待处理节点对应的业务信息,该业务信息用于指示待处理节点指示的参与方涉及的业务,以通过业务信息指示的业务与区块链标识对应的区块链涉及的业务进行比对,若两者的业务相同,则节点可以给出允许待处理节点加入区块链标识对应的区块链的准入响应,否则给出禁止待处理节点加入区块链标识对应的区块链的准入响应,具体说明请参阅上述方法实施例,此处不在说明。

发送单元13,用于向待处理节点发送准入请求的准入指令。

借由上述技术方案,代理节点在接收到待处理节点发送的准入请求后,代理节点根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,获得数据交互系统中多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令,以指示待处理节点是否能加入区块链标识对应的区块链,代理节点向待处理节点发送准入请求的准入指令,从而通过代理节点能够将准入请求上链至代理节点加入的区块链标识对应的区块链中,由与代理节点同处于数据交互系统的节点能够从区块链中获取准入请求进行处理,实现上链处理准入请求。

在得到准入请求的准入指令所依据的预设准入策略是区块链中的一种属性,针对该预设准入策略可以由数据交互系统中的各个节点提前协商,减少准入争议,提高区块链的治理性能。并且针对该预设准入策略还可以由数据交互系统中的各个节点协商调整,使得预设准入策略是一个动态策略,降低因预设准入策略固定引起的准入指令的伪造,提高安全性。

此外处理单元12通过在区块链上写入预设准入策略以及在区块链设计中提供写入准入请求的接口,便于数据交互系统中节点对准入请求的处理和便于数据交互系统中节点之间的交互,提升区块链的管理效率和降低使用门槛。

另外从上述预设准入策略可知,一些预设准入策略可能需要数据交互系统中的部分节点允许加入即可,而不同节点得到准入响应的时机不同,因此本实施例处理单元12得到准入指令的一种方式是:

在获得节点对准入请求的准入响应过程中,若当前已获取到的准入响应符合预设准入策略指示的加入区块链的要求,得到指示待处理节点加入区块链标识对应的区块链的准入指令,并忽略得到准入指令后获得的准入请求的准入响应,具体说明请参阅上述方法实施例,对此本实施例不在说明。

相对应的,处理单元12获得多个节点对准入请求的多个准入响应的方式包括但不限于如下两种:

一种方式:根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到代理节点对所述准入请求的准入响应,以及通过接收单元11接收除代理节点之外的其他节点各自发送的准入请求的准入响应;另一种方式:根据准入请求中携带的待处理节点的标识和待处理节点的数字签名,得到代理节点对所述准入请求的准入响应,以及从区块链标识对应的区块链中获取其他节点各自写入到区块链中的准入请求的准入响应,具体说明请参阅上述方法实施例,对此本实施例不在说明。

处理单元12还用于将准入响应和准入指令上链,以便于对准入响应和准入指令的获取,为了使得准入响应和准入指令的上链,在区块链设计中设置一个写入准入响应和准入指令的接口,用于由代理节点向区块链中写入准入响应和准入指令,以使数据交互系统中的其他节点获取各个节点的准入响应以及最终的处理结果,若准入指令允许待处理节点加入,数据交互系统中的各节点可以提前准备。

此外处理单元12还用于根据准入请求的接收时间和/或准入请求中携带的待处理节点的标识,确定准入请求是否符合上链要求,如果是触发根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上的步骤。

如果准入请求的接收时间为特定时间和/或待处理节点的标识为特定参与方,说明符合上链要求,此时处理节点12可以将对应的准入请求写入到区块链标识对应的区块链上,实现对准入请求的过滤。

请参阅图7,其示出了本发明实施例提供的一种代理节点的结构,该代理节点为数据交互系统中的一个节点,代理节点和数据交互系统中的其他节点都已加入至少一条区块链中,代理节点用于接收待处理节点发送的准入请求,将准入请求上链并得到准入请求的准入指令,且该代理节点可以为能够接入网络中的任意形式的计算设备,如服务器和终端等,相对应的代理节点可以包括:通信接口10和处理器20。

通信接口10,用于接收待处理节点发送的准入请求。

处理器20,用于根据准入请求中携带的区块链标识,将准入请求写入到区块链标识对应的区块链上,获得多个节点对准入请求的多个准入响应,根据多个准入响应和预设准入策略,得到准入请求的准入指令,准入指令用于指示待处理节点是否能加入区块链标识对应的区块链。

通信接口10,还用于向待处理节点发送准入请求的准入指令。

可选的,代理节点还可以包括存储器30、输入单元40、显示器50和通信总线60。通信接口10、处理器20、存储器30、输入单元40、显示器50、均通过通信总线60完成相互间的通信。

在本实施例中,该处理器20,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。

该处理器可以调用存储器30中存储的程序。存储器30中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本实施例中,该存储器中至少存储有用于实现上述节点准入方法的程序。

在一种可能的实现方式中,该存储器30可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如区块链设计功能等)所需的应用程序等;存储数据区可存储代理节点使用过程中所涉及的数据,比如,区块链等等。

此外,存储器30可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。

该通信接口10可以为通信模块的接口,如gsm模块的接口。

当然,图7所示的代理节点的结构并不构成对本实施例中节点的限定,在实际应用中代理节点可以包括比图7所示的更多或更少的部件,或者组合某些部件。

请参阅图8,其示出了本发明实施例提供的一种待处理节点,该待处理节点可以为能够接入网络中的任意形式的计算设备,如服务器和终端等,相对应的待处理节点包括:处理器100和通信接口200。

处理器100,用于获取待处理节点的标识、待处理节点的数字签名和区块链标识,区块链标识指示待处理节点请求加入的区块链。根据待处理节点的标识、待处理节点的数字签名和区块链标识,生成准入请求。

通信接口200,用于发送准入请求至代理节点,由代理节点得到准入请求的准入指令,准入请求的准入指令用于指示待处理节点是否能加入区块链标识对应的区块链。以及用于接收代理节点发送的准入请求的准入指令。

可选的,待处理节点还可以包括存储器300、输入单元400、显示器500和通信总线600。处理器100、通信接口200、存储器300、输入单元400、显示器500、均通过通信总线600完成相互间的通信。

在本实施例中,该处理器100,可以为中央处理器(centralprocessingunit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。

该处理器可以调用存储器300中存储的程序。存储器300中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本实施例中,该存储器中至少存储有用于实现上述节点准入方法的程序。

在一种可能的实现方式中,该存储器300可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如上链功能等)所需的应用程序等;存储数据区可存储待处理节点使用过程中所涉及的数据,比如,待处理节点的标识和数字签名等等。

此外,存储器300可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。

该通信接口200可以为通信模块的接口,如gsm模块的接口。

当然,图8所示的待处理节点的结构并不构成对本实施例中节点的限定,在实际应用中待处理节点可以包括比图8所示的更多或更少的部件,或者组合某些部件。

本发明实施例还提供一种存储介质,存储介质中存储有计算机可执行指令,计算机可执行指令被处理器加载并执行时,实现上述节点准入方法。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1