本文作者:kaifamei

多层通信网络的制作方法

更新时间:2025-12-21 22:48:39 0条评论

多层通信网络的制作方法



1.本公开涉及使用区块链事务控制分层网络的设备。


背景技术:



2.区块链是指一种分布式数据结构,其中在分布式对等()网络(以下称为“区块链网络”)中的多个节点中的每个节点处维护区块链的副本,并且广泛公开该副本。区块链包括一系列数据区块,其中每个区块包括一个或多个事务。除所谓的“coinbase事务”外,每个事务都指向序列中的先前事务,该序列可以跨越一个或多个区块,直到一个或多个coinbase事务为止。coinbase事务将在下面讨论。提交给区块链网络的事务包括在新区块中。新区块的创建过程通常称为“挖掘”,该过程涉及多个节点中的每个节点争相执行“工作量证明”,即,基于等待被包括在区块链的新区块中的一组定义的有序且核实有效的未决事务的表示解决加密难题。应当注意的是,区块链可以在节点处被修剪,并且区块的发布可以通过仅发布区块头来实现。
3.区块链中的事务用于执行以下操作中的一个或多个:传送数字资产(即,一定数量的数字);对虚拟化分类账或注册表中的一组日记账分录进行排序;接收和处理时间戳条目和/或对索引指针按时间排序。也可利用区块链实现区块链上的分层附加功能。区块链协议可允许在事务中存储附加的用户数据或数据索引。能够存储在单个事务中的最大数据容量没有预先指定的限制,因此可以并入越来越复杂的数据。例如,这可用于在区块链中存储电子文档、音频或视频数据。
4.区块链网络的节点(通常称为“矿工”)执行分布式事务注册和验证过程,这将在下面详细描述。总之,在该过程中,节点核实事务并将这些事务插入到区块模板中,这些事务尝试为该区块模板标识有效的工作量证明解。一旦到有效的解,新区块便会被传播到网络的其它节点,从而使得每个节点能够在区块链上记录新区块。为了将事务记录在区块链中,用户(例如,区块链客户端应用程序)将该事务发送到网络中的节点中的一个节点进行传播。接收该事务的节点可以争相寻将核实有效的事务并入新区块的工作量证明解。每个节点被配置为执行相同的节点协议,该协议将包括用于确认事务有效的一个或多个条件。无效事务将不会传播或并入到区块中。假定事务已经核实有效,从而在区块链上被接受,则该事务(包括任何用户数据)将因此在区块链网络中的每个节点上作为不可改变的公共记录进行注册和索引。
5.成功解决工作量证明难题可创建最新区块的节点通常被奖励一个称为“coinbase事务”的新事务,该事务分发数字资产数额,即数量。无效事务的检测和拒绝是通过竞争节点的行动来执行的,这些竞争节点充当网络的代理并且通过激励报告和阻止不正当行为。信息的广泛发布使得用户可以连续地审计节点的性能。仅发布区块头使得参与者可以确保区块链具有持续完整性。
6.在“基于输出的”模型(有时称为基于utxo的模型)中,给定事务的数据结构包括一个或多个输入和一个或多个输出。任何可花费输出包括指定数字资产数额的元素,该元素
可从进行中的事务序列导出。可花费输出有时称为utxo(“未花费事务输出”)。输出还可以包括锁定脚本,该锁定脚本指定输出的未来赎回条件。锁定脚本是限定核实和传送数字或资产所必需的条件的谓词。事务(除coinbase事务之外)的每个输入包括指向先前事务中的此类输出的指针(即引用),并且还可以包括解锁脚本,用于解锁指向输出的锁定脚本。因此,考虑一对事务,将其称为第一事务和第二事务(或“目标”事务)。第一事务包括指定数字资产数额的至少一个输出,并且包括定义解锁该输出的一个或多个条件的锁定脚本。第二目标事务包括至少一个输入和解锁脚本,该至少一个输入包括指向第一事务的输出的指针;该解锁脚本用于解锁第一事务的输出。
7.在此类模型中,当第二目标事务被发送到区块链网络以在区块链中传播和记录时,在每个节点处应用的有效性条件之一将是解锁脚本满足在第一事务的锁定脚本中定义的一个或多个条件中的所有条件。另一条件将是第一事务的输出尚未被另一早期有效事务赎回。根据这些条件中的任何一个条件发现目标事务无效的任何节点都不会传播该事务(作为有效事务,但可能注册无效事务),也不将该事务包括在要记录在区块链中的新区块中。


技术实现要素:



8.物联网(iot)技术使物理设备网络能够在无需人工干预的情况下监测事件并交换数据。推动物联网技术发展的原因是需要实时数据采集机制和自动控制机制,以取代各个行业的常规监测和控制方法。物联网系统产生大量数据,并且依赖于具有网络可扩展性、强大网络安全性、可靠连接性和最小网络延迟的系统。
9.传统物联网网络通常只有一个主物联网节点或设备,其向所述网络上的其他节点或设备发出命令。例如,所述物联网网络可以具有网络拓扑,所述网络拓扑的设计使得所述主节点可以监测整个所述网络的活动,包括层级结构内所有节点之间的通信。然而,单个主节点会引入单点故障。例如,中断所述主节点使得所述主节点无法发出和接收事务可以防止所述网络的其余部分被监测和/或控制。因此,需要避免这种单点故障。
10.根据本文公开的一个方面,提供了一种使用区块链事务控制分层网络的设备的计算机实现的方法,其中所述分层网络(ln)包括设置在层的有序集中的多个ln节点,所述层的有序集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中,每个主节点被配置为控制中间节点的相应子集,第一主节点被配置为控制中间节点的第一子集,第二主节点被配置为控制中间节点的第二子集,并且其中每个中间节点被配置为控制终端设备的相应子集;其中,所述方法由所述第一主节点执行并且包括:确定影响由所述第二主节点对中间节点的所述第二子集中的至少一个中间节点的控制的一个或多个事项;以及,作为响应,向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务以控制所述节点。
11.所述网络的所述节点(以下称为物联网节点)充当所述分层网络(例如,物联网网络)与所述区块链网络之间的网桥。也就是说,所述分层网络的所述物联网节点是所述物联网网络的一部分,并且可以形成到所述区块链网络的区块链节点的连接。这使得物联网节点既可以连接到所述物联网网络(例如,与其他物联网节点和设备通信),也可以连接到所
述区块链网络(例如,向所述区块链节点传输事务并获取在所述区块链上发布的事务)。在一些示例中,所述分层网络的所述设备中的一个或多个设备也可以连接到所述区块链网络的区块链节点。
12.所述分层网络的所述物联网节点共同运行采用区块链事务的分散式物联网通信协议。所述区块链网络能够实现高容量、低费用的微事务吞吐量,从而使物联网节点和设备能够在全域范围内可靠地连接,同时以最低成本进行通信。通过将多级控制层级结构和基于区块链的通信协议相结合,请求和通信协议可实现:使用低费用微事务的大规模通信;将价值转移和控制集成到一个平台中;物联网网络设备的准入门槛低;物联网通信数据的安全时间戳存储;以及可用于审计和性能监测的物联网数据。
13.所述分层网络包括至少两个独立的主物联网节点。此配置分配了单个主物联网节点拥有的控制量,从而消除了所述物联网网络中的所述单点故障。在正常操作条件下,每个主物联网节点负责所述物联网网络的相应子集,即,每个主物联网节点被配置为主要控制相应一组中间物联网节点,并且因此控制终端设备的相应子集。根据本发明,当检测到主物联网节点存在缺陷时,其他主物联网节点可以充当备份,以接管所述存在缺陷的主物联网节点对中间物联网节点的子集的控制。
14.根据本文公开的一个方面,提供了一种包括分层网络的系统,其中所述分层网络包括设置在有序层集中的多个ln节点,所述有序层集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中:每个主节点被配置为控制中间节点的相应子集;第一主节点被配置为控制中间节点的第一子集;第二主节点被配置为控制中间节点的第二子集;并且,每个中间节点被配置为控制终端设备的相应子集。
附图说明
15.为了帮助理解本公开的实施例并示出如何实施此类实施例,现将仅通过举例的方式参考附图进行说明,其中:
16.图1是一种用于实现区块链的系统的示意性框图;
17.图2示意性地示出了可记录在区块链中的事务的一些示例;
18.图3示意性地示出了物联网与区块链网络之间的重叠;
19.图4示意性地示出了分层网络拓扑结构;
20.图5a和图5b示意性地示出了部分命令事务和完整命令事务;
21.图6a和图6b示意性地示出了替代的部分事务和完整事务;
22.图7示意性地示出了命令请求和响应周期;
23.图8示出了示例性命令数据格式;
24.图9是分层网络的示例的示意性表示;
25.图10是分层网络的示例的另一示意性表示;
26.图11是分层网络的示例的再一示意性表示;
27.图12是分层网络的示例的又一示意性表示;
28.图13示意性地示出了故障或受危害主节点;以及
29.图14示意性地示出了包括多个主节点的分层网络。
具体实施方式
30.示例性系统概述
31.图1示出了一种用于实现区块链150的示例性系统100。系统100可以包括分组交换网络101,通常是诸如互联网的广域互联网。分组交换网络101包括多个区块链节点104,该多个区块链节点可以被设置成在分组交换网络101内形成对等()网络106。虽然未示出,但是区块链节点104可以被设置为近完全图。因此,每个区块链节点104高度连接到其它区块链节点104。
32.每个区块链节点104包括对等体的计算机设备,不同的节点104属于不同的对等体。每个区块链节点104包括处理装置,该处理装置包括一个或多个处理器,例如一个或多个中央处理单元(cpu)、加速器处理器、专用处理器和/或现场可编程门阵列(fpga),以及其它设备,例如专用集成电路(asic)。每个节点还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。存储器可包括一个或多个存储器单元,其采用一个或多个存储器介质,例如诸如硬盘等磁介质、诸如固态硬盘(ssd)、闪存或电可擦可编程只读存储器(eeprom)等电子媒介和/或诸如光盘驱动器等光学介质。
33.区块链150包括一系列数据区块151,其中在分布式或区块链网络160中的多个区块链节点104中的每个节点处维护区块链150的相应副本。如上所述,维护区块链150的副本不一定意味着完全存储区块链150。相反,只要每个区块链节点150存储每个区块151的区块头(下面讨论),区块链150就可以进行数据修剪。区块链中的每个区块151均包括一个或多个事务152,其中该上下文中的事务是指一种数据结构。数据结构的性质将取决于用作事务模型或计划的一部分的事务协议类型。给定的区块链全程使用一个特定的事务协议。在一种常见的事务协议中,每个事务152的数据结构至少包括一个输入和至少一个输出。每个输出指定将数字资产的数量表示为财产的数额,其一个示例是输出被密码锁定到的用户103(需要该用户的签名或其它解进行解锁,从而进行赎回或花费)。每个输入指向先前事务152的输出,从而链接这些事务。
34.每个区块151还包括区块指针155,其指向区块链中先前创建的区块151,以定义区块151的顺序。每个事务152(除coinbase事务之外)包括指向上一事务的指针,以定义事务序列的顺序(注:事务152的序列可进行分支)。区块151的区块链一直追溯到创始区块(gb)153,该创始区块是区块链中的第一区块。区块链150中早期的一个或多个原始事务152指向创始区块153,而非先前事务。
35.每个区块链节点104被配置为将事务152转发到其它区块链节点104,从而使得事务152在整个网络106中传播。每个区块链节点104被配置为创建区块151,并将相同区块链150的相应副本存储在其相应的存储器中。每个区块链节点104还维护等待并入到区块151中的事务152的有序集154。有序集154通常称为“内存池”。在本文中,该术语并不意在限制于任何特定的区块链、协议或模型。该术语是指节点104已接受为有效的有序事务集,并且对于该有序事务集,强制节点104不接受试图花费相同输出的任何其它事务。
36.在给定的当前事务152j中,输入(或每个输入)包括指针,该指针引用事务序列中先前事务152i的输出,指定该输出将在当前事务152j中被赎回或“花费”。通常,先前事务可以是有序集154或任何区块151中的任何事务。尽管为了确保当前事务有效,将需要存在先前事务152i并核实其有效,但是在创建当前事务152j甚至向网络106发送当前事务152j时,
不必存在先前事务152i。因此,在本文中,“先前”是指由指针链接的逻辑序列中的前任,而不一定是时间序列中的创建时间或发送时间,因此,不一定排除无序创建或发送事务152i、152j的情况(参见下面关于孤立事务的讨论)。先前事务152i同样可以称为先行事务或前任事务。
37.当前事务152j的输入还包括输入授权,例如先前事务152i的输出被锁定到的用户103a的签名。反过来,当前事务152j的输出可以加密锁定到新用户或实体103b。因此,当前事务152j可将先前事务152i的输入中定义的数额转移到当前事务152j的输出中定义的新用户或实体103b。在某些情况下,事务152可具有多个输出,以在多个用户或实体间分割输入数额(其中一个可以是原始用户或实体103a,以便进行变更)。在某些情况下,事务还可以具有多个输入,将一个或多个先前事务的多个输出中的数额汇总在一起,并重新分配到当前事务的一个或多个输出。
38.根据基于输出的事务协议,例如比特币,当诸如用户或机器这类的实体103希望执行新事务152j时,该实体将该新事务从其计算机终端102发送到接收者。实体或接收者将最终向网络106的一个或多个区块链节点104(现在通常是服务器或数据中心,但原则上也可以是其它用户终端)发送该事务。另外还不排除执行新事务152j的实体103可以将事务发送到一个或多个区块链节点104,并且在一些示例中,可以不将事务发送到接收者。接收事务的区块链节点104根据在每个区块链节点104处应用的区块链节点协议来检查事务是否有效。区块链节点协议通常要求区块链节点104检查新事务152j中的加密签名是否与预期签名相匹配,这取决于事务152的有序序列中的上一事务152i。在这种基于输出的事务协议中,这可以包括检查新事务152j的输入中包括的实体103的密码签名或其它授权是否与新事务分配的先前事务152i的输出中定义的条件匹配,其中该条件通常包括至少检查新事务152j的输入中的密码签名或其它授权是否解锁新事务的输入所链接到的上一事务152i的输出。条件可以至少部分地由包括在先前事务152i的输出中的脚本来定义。或者,这可仅由区块链节点协议单独确定,或可通过其组合确定。无论采用哪种方式,如果新事务152j有效,区块链节点104会将其转发到区块链网络106中的一个或多个其它区块链节点104。这些其它区块链节点104根据相同的区块链节点协议应用相同的测试,并因此将新事务152j转发到一个或多个其它节点104等等。通过这种方式,新事务在区块链节点104的整个网络中进行传播。
39.在基于输出的模型中,给定输出(例如,utxo)是否分配的定义是,根据区块链节点协议,其是否通过另一个随后事务152j的输入有效赎回。事务有效的另一个条件是其试图分配或赎回的先前事务152i的输出尚未被另一个事务分配/赎回。同样,如果无效,则事务152j将不会在区块链150中传播(除非被标记为无效并且被传播用于提醒)或记录。这可防止重复花费,即事务处理者对同一个事务的输出分配超过一次。另一方面,基于账户的模型通过保持账户余额防止重复花费。因为同样存在定义的事务顺序,账户余额在任何时候均具有单一定义的状态。
40.除了核实事务有效之外,区块链节点104还争相成为在通常称为挖矿的过程中创建事务区块的第一个节点,而该过程由“工作量证明”支持。在区块链节点104处,新事务被添加到尚未出现在记录在区块链150上的区块151中的有效事务的有序集154。然后,区块链节点争相通过尝试解决加密难题以组装有序事务集154中事务152的新有效事务区块151。
通常情况下,这包括搜索“随机数”值,从而当随机数与有序事务集154的表示并置且进行哈希处理时,哈希值的输出满足预定条件。例如,预定条件可以是哈希值的输出具有某个预定义的前导零数。注意,这仅仅是一种特定类型的工作量证明难题,并且不排除其它类型。哈希函数的特性是,相对于其输入,其具有不可预测的输出。因此,该搜索只能通过强力执行,从而在试图解决难题的每个区块链节点104处消耗大量的处理资源。
41.解决难题的第一区块链节点104在网络106上宣布难题解决,提供解决方案作为证明,然后网络中的其它区块链节点104则可以轻松检查该解决方案(一旦给出哈希值的解决方案,就可以直接检查该解决方案是否使哈希值的输出满足条件)。第一区块链节点104将一个区块传播到接受该区块的其它节点达成阈值共识,从而执行协议规则。然后,有序事务集154被每个区块链节点104记录为区块链150中的新区块151。区块指针155还分配给指向该区块链中先前创建的区块151n-1的新区块151n。创建工作量证明解所需的大量工作(例如采用哈希的形式)发出信号通知第一iot节点104的意图以遵循区块链协议。这些规则包括如果它分配与先前核实有效的事务相同的输出,则不接受事务为有效,否则称之为重复花费。一旦创建,区块151就不能修改,因为它在区块链网络106中的每个区块链节点104处进行标识和维护。区块指针155还向区块151施加顺序。由于事务152记录在网络106中每个区块链节点104处的有序区块中,因此提供了事务的不可改变公共分类账。
42.应当注意的是,在任何给定时间争相解决难题的不同区块链节点104可以基于在任何给定时间尚未发布的有序事务集154的不同快照来这样做,具体取决于它们何时开始搜索解或接收事务的顺序。解决相应难题的人员首先定义新区块151n中包括的事务152及其顺序,并且更新当前的未发布事务集154。然后,区块链节点104继续争相从新定义的未决有序未发布事务集154中创建区块,等等。此外,还存在解决可能出现的任何“分叉”的协议,其中两个区块链节点104彼此在很短的时间内解决难题,从而在节点104之间传播区块链的冲突视图。简言之,分叉方向最长的成为最终区块链150。应当注意的是,这不会影响网络的用户或代理,因为同一事务将出现在两个分叉中。
43.根据比特币区块链(和大多数其它区块链),成功构造新区块104的节点被授予在分配限定数量数字资产的新特殊类型事务中分配接受的数字资产数额的能力(与代理间或用户间事务相反,该事务将一定数量的数字资产从一个代理或用户转移到另一个代理或用户)。这种特殊类型的事务通常称为“coinbase事务”,但是也可以称为“启动事务”。它通常形成新区块151n的第一事务。工作量证明发出信号通知构造新区块的节点的意图以遵循协议规则,从而允许稍后赎回该特定事务。在可以赎回该特殊事务之前,区块链协议规则可能需要成熟期,例如100个区块。通常,常规(非生成)事务152还将在其输出中的一个输出中指定附加事务费用,以进一步奖励创建其中发布该事务的区块151n的区块链节点104。该费用通常称为“事务费用”,并在下文中讨论。
44.由于事务核实和发布中涉及的资源,通常至少每个区块链节点104采用包括一个或多个物理服务器单元的服务器的形式,或者甚至整个数据中心。但是,原则上来说,任何给定区块链节点104均可采用一个用户终端或联网在一起的一组用户终端的形式。
45.每个区块链节点104的存储器均存储被配置为在区块链节点104的处理装置上运行的软件,以根据区块链节点协议执行其相应的角并处理事务152。应当理解的是,在本文中归因于区块链节点104的任何动作均可通过在相应计算机设备的处理装置上运行的软
件执行。节点软件可以在应用层或诸如操作系统层或协议层的较低层或这些层任意组合的一个或多个应用中实现。
46.扮演消费用户角的多方103中的每一方的计算机设备102也连接到网络101。这些用户可以与区块链网络交互,但不参与核实、构造或传播事务和区块。其中一些用户或代理103可以充当事务中的发送者和接收者。其它用户可以与区块链150交互,而不必充当发送者或接收者。例如,一些当事方可以充当存储区块链150的副本(例如,已经从区块链节点104获得区块链的副本)的存储实体。
47.各方103中的一些或所有当事方可以作为不同网络的一部分连接,例如覆盖在区块链网络106之上的网络。区块链网络的用户(经常称为“客户端”)可以被称为是包括区块链网络的系统的一部分;然而,这些用户不是区块链节点104,因为它们不执行区块链节点所需的角。相反,每一方103可以与区块链网络106交互,从而通过连接到区块链节点106(即,与区块链节点106通信)来利用区块链150。出于说明目的,示出了双方103及其相应的设备102:第一方103a及其相应的计算机设备102a,以及第二方103b及其相应的计算机设备102b。应当理解的是,更多此类当事方103及其相应的计算机设备102可能存在并参与系统100,但为了方便起见,未进行说明。每一方103均可以是个人或组织。仅出于说明目的,在本文中,第一方103a称为爱丽丝,第二方103b称为鲍勃,但应当理解的是,这并不仅限于爱丽丝或鲍勃,且本文对爱丽丝或鲍勃的任何引用均可分别用“第一方”和“第二方”替换。
48.每一方103的计算机设备102包括相应的处理装置,其包括一个或更多个处理器,例如一个或更多个cpu、图形处理单元(gpu)、其他加速器处理器、特定应用程序处理器和/或fpga。每一方103的计算机设备102还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如诸如硬盘等磁介质、诸如ssd、闪存或eeprom等电子媒介和/或诸如光盘驱动器等的光学介质。每一方103的计算机设备102上的存储器存储软件,其包括被设置为在处理装置上运行的至少一个客户端应用程序105的相应实例。应当理解的是,在本文中归因于给定方103的任何行动均可通过在相应计算机设备102的处理装置上运行的软件执行。每一方103的计算机设备102包括至少一个用户终端,例如台式或笔记本电脑、平板电脑、智能手机或诸如智能手表等的可穿戴设备。给定方103的计算机设备102还可包括一个或更多个其他网络资源,诸如通过用户终端访问的云计算资源。
49.客户端应用程序105最初可通过例如从服务器下载的适当计算机可读存储介质,或通过诸如可移动ssd、闪存密钥、可移动eeprom、可移动磁盘驱动器、软盘或磁带等的可移动存储设备、诸如cd或dvd rom等的光盘或可移动光驱等提供至任何给定方103的计算机设备102。
50.客户端应用程序105至少包括“钱包”功能。这有两个主要功能。其中一个功能是使相应方103能够创建、授权(例如签名)事务152并将其发送到一个或多个位比特币节点104,然后在区块链节点104的网络中传播,从而包括在区块链150中。另一个功能是向相应方汇报其目前拥有的数字资产数额。在基于输出的系统中,该第二功能包括整理分散在区块链150中属于相关方的各种事务152的输出中定义的数额。
51.注意:虽然各种客户端功能可以描述为集成到给定客户端应用程序105中,但这不一定是限制性的,相反,在本文中所描述的任何客户端功能可以在由两个或多个不同应用
程序组成的套件中实现,例如经由api进行接口连接或一个应用程序作为另一个应用程序的插件。更通俗地说,客户端功能可以在应用层或诸如操作系统的较低层或这些层的任意组合实现。下面将根据客户端应用程序105进行描述,但应当理解的是,这不是限制性的。
52.每个计算机设备102上的客户端应用程序或软件105的实例可操作地耦合到网络106的区块链节点104中的至少一个。这可以启用客户端105的钱包功能,以将事务152发送至网络106。客户端105还可联系区块链节点104,以在区块链150中查询相应方103作为接收者的任何事务(或实际上在区块链150中检查其它方的事务,因为在实施例中,区块链150是在某种程度上通过其公开可见性提供事务信任的公共设施)。每个计算机设备102上的钱包功能被配置为根据事务协议制定和发送事务152。如上所述,每个区块链节点104运行软件,该软件被配置为根据区块链节点协议核实事务152并转发事务152以便在区块链网络106中传播。事务协议和节点协议相互对应,给定事务协议和给定节点协议一起实现给定的事务模型。相同的事务协议用于区块链150中的所有事务152。网络106中的所有节点104使用相同的节点协议。
53.当给定方103(比方说爱丽丝)希望发送拟包含在区块链150中的新事务152j时,她将根据相关事务协议(使用其客户端应用程序105中的钱包功能)制定新事务。然后,她将事务152从客户端应用程序105发送到她所连接的一个或多个区块链节点104。例如,这可能是与爱丽丝的计算机102最佳连接的区块链节点104。当任何给定区块链节点104接收新事务152j时,其将根据区块链节点协议及其相应的角进行处理。这包括首先检查新接收的事务152j是否满足变为“有效”的特定条件,具体示例稍后将详细讨论。在一些事务协议中,有效条件可通过事务152中包含的脚本在每个事务的基础上进行配置。或者,条件可仅仅是节点协议的内置功能,或通过组合脚本和节点协议进行定义。
54.如果新接收的事务152j通过有效性测试(即:“有效”的条件下),接收事务152j的任何区块链节点104将向在区块链节点104处维护的有序事务集154中添加新的核实有效事务152。进一步地,接收事务152j的任何区块链节点104随后将核实有效事务152传播至网络106中的一个或多个其它区块链节点104。由于每个区块链节点104应用相同的协议,因此假定事务152j有效,这意味着事务很快将在整个网络106中传播。
55.一旦进入在给定区块链节点104处维护的有序事务集154,该区块链节点104将开始争相解决其各自有序事务集154的最新版本上的工作量证明难题,该有序事务集154包括新的事务152(请记住,其它区块链节点104可以尝试基于不同的有序事务集154来解决难题。但是,首先解决难题的人将定义包括在最新区块151中的有序事务集。最终,区块链节点104将解决有序集154的一部分的难题,该有序集154包括爱丽丝的事务152j)。一旦包括新事务152j的有序集154完成工作量证明,其将不可变地成为区块链150中区块151中的一个区块的一部分。每个事务152包括指向早前事务的指针,因此事务的顺序也被不可变地记录下来。
56.不同的区块链节点104可以首先接收给定事务的不同实例,并且因此在一个实例被发布到新区块151中之前具有关于哪个实例“有效”的冲突视图,此时所有区块链节点104同意所发布的实例是唯一的有效实例。如果区块链节点104将一个实例接受为有效实例,然后发现第二实例已记录在区块链150中,则区块链节点104必须接受这一点,并将丢弃(即,视为无效)其最初接受的实例(即,在区块151中尚未公布的实例)。
57.作为基于账户的事务模型的一部分,由一些区块链网络操作的另一种类型的事务协议可称为“基于账户的”协议。在基于账户的情况下,每个事务均不通过参考过去事务序列中先前事务的utxo来定义转移的数额,而是通过参考绝对账户余额进行定义。所有账户的当前状态由网络的节点单独存储到区块链中,并不断更新。在此类系统中,事务使用账户的运行事务记录(也称为“头寸”)进行排序。该值由发送者签名作为其加密签名的一部分,并作为事务引用计算的一部分进行哈希处理。此外,可选的数据字段也可以在事务中签名。例如,如果数据字段中包含上一事务的id,该数据字段可指向上一事务。
58.基于utxo的模型
59.图2示出了示例性事务协议。这是基于utxo的协议的示例。事务152(简称“tx”)是区块链150的基本数据结构(每个区块151包括一个或多个事务152)。下面将通过参考基于输出或基于“utxo”的协议进行描述。但这并不限于所有可能的实施例。应当注意的是,虽然参考比特币描述了示例性基于utxo的协议,但是它同样可以在其它示例区块链网络上实现。
60.在基于utxo的模型中,每个事务(“tx”)152包括数据结构,其包括一个或多个输入202和一个或多个输出203。每个输出203可包括未花费事务输出(utxo),其可用作另一新事务的输入202的来源(如果utxo尚未赎回)。utxo包括指定数字资产数额的值。这表示分布式分类账上的一组。utxo还可包含其来源事务的事务id以及其它信息。事务数据结构还可包括标头201,其可包括输入字段202和输出字段203的大小指示符。标头201还可包括事务的id。在实施例中,事务id是事务数据(不含事务id本身)的哈希值,且存储在提交至节点104的原始事务152的标头201中。
61.比方说爱丽丝103a希望创建转移相关数字资产数额至鲍勃103b的事务152j。在图2中,爱丽丝的新事务152j标记为“tx
1”。该新事务获取在序列中先前事务152i的输出203中锁定至爱丽丝的数字资产数额,并至少将此类数额中的一部分转移至鲍勃。在图2中,先前事务152i标记为“tx
0”。tx0和tx1只是任意的标记,其不一定意味着tx0指区块链151中的第一事务且tx1指池154中的下一事务。tx1可指向仍具有锁定至爱丽丝的未花费输出203的任何先前(即先行)事务。
62.当爱丽丝创建其新事务tx1时,或至少在她将该新事务发送至网络106时,先前事务tx0可能已经有效并包括在区块链150的区块151中。该事务此时可能已包括在区块151中的一个区块中,或者可能仍在有序集154中等待,在这种情况下,该事务将很快包括在新区块151中。或者,tx0和tx1可以创建并一起发送至网络106;或者,如果节点协议允许缓冲“孤立”事务,tx0甚至可以在tx1之后发送。本文事务序列上下文中使用的“先前”和“后续”一词是指由事务中指定的事务指针定义的序列中的事务顺序(哪个事务指向哪个其他事务等等)。它们同样可以替换为“前任”和“继任”、“先行”和“后代”或“父项”和“子项”等。这不一定指其创建、发送至网络106或到达任何给定区块链节点104的顺序。然而,指向先前事务(先行事务或“父事务”)的后续事务(后代事务或“子事务”)不会有效除非父事务有效。在父事务之前到达区块链节点104的子事务被视为孤立事务。根据节点协议和/或节点行为,其可被丢弃或缓冲一段时间,以等待父事务。
63.先前事务tx0的一个或更多个输出203中的一个包括特定的utxo,标记为utxo0。每个utxo包括指定utxo表示的数字资产数额的值以及锁定脚本,该锁定脚本定义后续事务的
输入202中的解锁脚本必须满足的条件,以使后续事务有效,从而成功赎回utxo。通常情况下,锁定脚本将数额锁定至特定方(该数额的事务的受益人)。即,锁定脚本定义解锁条件,该解锁条件通常包括以下条件:后续事务的输入中的解锁脚本包括先前事务被锁定到的一方的加密签名。
64.锁定脚本(亦称scriptpubkey)是节点协议识别的域特定语言中写入的一段代码。此类语言的特定示例称为“脚本(script)”(s大写),其可由区块链网络所使用。锁定脚本指定花费事务输出203所需的信息,例如爱丽丝签名的要求。解锁脚本出现在事务的输出中。解锁脚本(亦称scriptsig)是提供满足锁定脚本标准所需信息的域特定语言中写入的一段代码。例如,其可包含鲍勃的签名。解锁脚本出现在事务的输入202中。
65.因此在示出的示例中,tx0的输出203中的utxo0包括锁定脚本[checksig pa],该锁定脚本需要爱丽丝的签名sig pa,以赎回utxo0(严格来说,是为了使试图赎回utxo0的后续事务有效)。[checksig pa]包含爱丽丝的公私密钥对中的公钥pa的表示(即哈希)。tx1的输入202包括指向tx1的指针(例如,通过其事务id(txid0),其在实施例中是整个事务tx0的哈希值)。tx1的输入202包括在tx0中标识utxo0的索引,以在tx0的任何其他可能输出中对其进行标识。tx1的输入202进一步包括解锁脚本《sig pa》,该解锁脚本包括爱丽丝的加密签名,该签名由爱丽丝通过将其密钥对中的私钥应用于预定的部分数据(有时在密码学中称为“消息”)创建。爱丽丝需要签名以提供有效签名的数据(或“消息”)可通过锁定脚本、节点协议或其组合进行定义。
[0066]
当新事务tx1到达区块链节点104时,该节点应用节点协议。这包括一起运行锁定脚本和解锁脚本,以检查解锁脚本是否满足锁定脚本中定义的条件(其中该条件可包括一个或更多个标准)。在实施例中,这涉及并置两个脚本:
[0067]
《sig pa》《pa》||[checksig pa]
[0068]
其中“||”表示并置,“《

》”表示将数据放在堆栈上,“[

]”表示由锁定脚本组成的函数(在该示例中指基于堆栈的语言)。同样,脚本可以使用公共堆栈一个接一个地运行,而不是并置脚本。无论采用哪种方式,当一起运行时,脚本使用爱丽丝的公钥pa(包括在tx0的输出的锁定脚本中),以认证tx1的输入中的解锁脚本是否包含爱丽丝签名预期部分的数据时的签名。也需要包括预期的部分数据本身(“消息”),以便执行此认证。在实施例中,签名的数据包括整个tx1(因此不需要包括一个单独的元素来明文指定签名的部分数据,因为其本身便已存在)。
[0069]
本领域技术人员将熟悉通过公私密码进行验证的细节。基本上而言,如果爱丽丝已使用其私钥加密签署消息,则给定爱丽丝的公钥和明文中的消息,诸如节点104等其它实体可验证消息必须已经由爱丽丝签名。签署通常包括对消息进行哈希,签署哈希值和将此标记到消息作为签名,从而使公钥的任何持有者能够验证签名。因此,应当注意的是,在实施例中,在本文中对签名特定数据片段或事务部分等的任何引用可以意味着对该数据片段或事务部分的哈希值进行签名。
[0070]
如果tx1中的解锁脚本满足tx0的锁定脚本中指定的一个或多个条件(因此,在所示示例中,如果在tx1中提供了爱丽丝的签名并进行验证),则区块链节点104认为tx1有效。这意味着区块链节点104会将tx1添加到有序事务集154。区块链节点104还会将事务tx1转发到网络106中的一个或多个其它区块链节点104,以便其会在整个网络106中传播。一旦tx1有
效并包括在区块链150中,这会将utxo0从tx0定义为已花费。应当注意的是,tx1仅在花费未花费事务输出203时才有效。如果其试图花费另一事务152已经花费的输出,则即使满足所有其它条件,tx1也将无效。因此,区块链节点104还需要检查先前事务tx0中引用的utxo是否已经花费(即,其是否已经形成另一有效事务的有效输入)。这是为何区块链150对事务152施加定义的顺序很重要的原因之一。在实践中,给定区块链节点104可维护单独的数据库,标记已花费事务152的utxo 203,但最终定义utxo是否已花费取决于是否在区块链150中形成了另一有效事务的有效输入。
[0071]
如果给定事务152的所有输出203中指定的总数额大于其所有输入202所指向的总数额,则这是大多数事务模型中的另一失效依据。因此,此类事务不会传播或包括在区块151中。
[0072]
请注意,在基于utxo的事务模型中,给定utxo需要作为一个整体使用。不能“留下”utxo中定义为已花费的一部分数额,而同时又花费另一部分。但utxo的数额可以在下一事务的多个输出之间分割。例如,tx0的utxo0中定义的数额可以在tx1中的多个utxo之间分割。因此,如果爱丽丝不想将utxo0中定义的所有数额都给鲍勃,她可以使用剩余部分在tx1的第二输出中自己零,或者支付给另一方。
[0073]
在实践中,爱丽丝通常还需要包括用于发布其事务104的比特币节点的费用。如果爱丽丝未包括此类费用,则tx0可能会被区块链节点104拒绝,并且因此尽管在技术上有效,但可能不会传播并且包括在区块链150中(如果区块链节点104不希望接受事务152,节点协议不强迫区块链节点104接受)。在一些协议中,事务费用不需要其自身的单独输出203(即不需要单独的utxo)。相反,输入202指向的总数额与给定事务152的输出203指定的总数额之间的任何差额都将自动提供给发布事务的区块链节点104。例如,假设指向utxo0的指针是tx1的唯一输入,并且tx1仅具有一个输出utxo1。如果在utxo0中指定的数字资产数额大于在utxo1中指定的数额,则可以由发布包含utxo1的区块的节点104分配该差值。替代地或附加地,这不一定排除可以在其自身事务152的其中一个utxo 203中明确指定事务费用。
[0074]
爱丽丝和鲍勃的数字资产由区块链150中任何位置的任何事务152中的锁定至他们的utxo组成。因此,通常情况下,给定方103的资产分散在整个区块链150的各种事务152的utxo中。区块链150中的任何位置均未存储定义给定方103的总余额的一个数字。客户端应用程序105的钱包功能的作用是将锁定至相应方且在其它随后事务中尚未花费的各种utxo值整理在一起。为实现这一点,其可以查询存储在任何一个位比特币节点104处的区块链150的副本。
[0075]
应当注意的是,脚本代码通常用示意图表示(即使用非精确语言)。例如,可以使用操作码(opcode)来表示特定功能。“op_...”是指脚本语言的特定操作码。举例来说,op_return是脚本语言操作码,当在锁定脚本的开始处在操作码前加上op_false时,操作码创建事务的不可花费输出,该输出可以在事务内存储数据,从而将数据不可改变地记录在区块链150中。例如,数据可包括需存储在区块链中的文件。
[0076]
通常,事务的输入包含对应于公钥pa的数字签名。在实施例中,这基于使用椭圆曲线secp256k1的ecdsa。数字签名对特定的数据段进行签名。在实施例中,对于给定事务,签名将对部分事务输入以及部分或全部事务输出进行签名。对输出的特定部分进行签名取决于sighash标志。sighash标志通常是包含在签名末尾的4字节代码,用于选择签名的输出
(并因此在签名时固定)。
[0077]
锁定脚本有时称为“scriptpubkey”,指其通常包括相应事务被锁定到的当事方的公钥。解锁脚本有时称为“scriptsig”,指其通常提供相应的签名。但是更通俗地说,在区块链150的所有应用中,utxo赎回的条件并不一定包括对签名进行验证。更通俗地说,脚本语言可用于定义任何一个或多个条件。因此,可以优选更为通用的术语“锁定脚本”和“解锁脚本”。
[0078]
如图1所示,爱丽丝和鲍勃的计算机设备102a、120b中的每个计算机设备上的客户端应用程序都可以包括附加通信功能。此附加功能可使爱丽丝103a建立与鲍勃103b的单独侧信道301(在任何一方或第三方的鼓动下)。侧信道301使得能够脱离区块链网络交换数据。此类通信有时称为“链下”通信。例如,这可用于在爱丽丝与鲍勃之间交换事务152,而不将该事务(尚未)注册到区块链网络106上或将其发布到链150上,直到其中一方选择将其广播到网络106上。以这种方式共享事务有时称为共享“事务模板”。事务模板可能缺少形成完整事务所需的一个或多个输入和/或输出。替代地或附加地,侧信道301可用于交换任何其它事务相关数据,例如密钥、议付数额或条款、数据内容等。
[0079]
通过与区块链网络106相同的分组交换网络101可建立侧信道301。替代地或附加地,侧信道301可以经由诸如移动蜂窝网络的不同网络或者诸如无线局域网络的局域网建立,甚至经由爱丽丝和鲍勃的设备102a、102b之间的直接有线或无线链路建立。通常,在本文中任何地方所指的侧信道301可以包括经由一项或多项联网技术或通信介质的任何一条或多条链路,这些链路用于“链下”交换数据,即脱离区块链网络106交换数据。在使用多条链路的情况下,链下链路束或集合整体上可以称为侧信道301。因此,应当注意的是,如果说爱丽丝和鲍勃通过侧信道301交换某些信息或数据等,则这不一定意味着所有这些数据都必须通过完全相同的链路或甚至相同类型的网络发送。
[0080]
物联网
[0081]
物联网是互联网向日常物理设备和对象的延伸。嵌入计算处理能力和互联网连接的设备可以相互通信和交互,并且可以远程监测和控制。随着时间的推移,由于机器学习、实时分析和多种技术融合,物联网的定义已经发生了变化,尽管人们普遍认为,能够支持无线传感器网络和/或控制系统的设备的系统有可能实现物联网。
[0082]
物联网系统面临着若干挑战。例如,此类系统的可扩展性和成本可能会阻碍物联网系统充分发挥其潜力。当以集中方式连接和控制时,物联网设备需要后端基础设施来传输数据和接收控制命令。这些后端基础设施托管在第三方云服务或本地部署服务器场中。物联网方案的可扩展性由后端服务器和数据中心的可扩展性决定,这可能会使物联网服务提供商的运营成本高得令人望而却步。因此,提出的许多物联网方案不具有成本效益,不适合在日常场景中使用。网络延迟等性能指标也将成为确定物联网采用率的重要因素。
[0083]
物联网系统面临的另一个挑战是自动化与控制之间的权衡。物联网方案旨在实现对日常电子设备的远程访问和控制。大多数物联网方案在用户完全控制和设备与其他物联网方案组件之间的自动化通信之间取得了平衡。在所述设备或所述物联网系统发生故障的情况下,需要采取覆盖机制等安全措施。
[0084]
另一个挑战是来自网络攻击的威胁。通过在互联网中实现对设备的自动化控制,用户可能会面临两种形式的潜在安全风险,一种是通过互联网传输物联网设备元数据所产
生的隐私风险。例如,如果窃听者从家用电器等设备中获得数据访问权限,窃贼等犯罪分子可能会利用设备使用模式来预测某人何时在家。第二种风险是攻击者或其他第三方有可能获得对物联网设备的控制权。对于性能关键型控制软件,例如用于操作重型机械或危险品的软件,攻击可能会带来灾难性后果。
[0085]
物联网系统可以设计为集中式、分散式和/或混合式。集中式方案存在瓶颈,但可以通过物联网系统中的特许组件实现更快、更可靠的控制。分散式状态更新报告使物联网方案更具可扩展性。边缘计算有助于缩短关键型应用程序的网络延迟,降低物联网系统对云的依赖性,并对大量物联网数据进行更好的管理。分散式处理的兴起凸显了在系统架构中更好地利用集中式架构和分布式架构的优势的机会。在分层控制结构中结合集中式系统和分布式系统的混合式系统的目的可以在于提高用户安全性和可用性。
[0086]
图3示出了用于实现本公开的实施例的示例性系统300。示例性系统300包括由一个或多个终端设备(即,计算设备)302和一个或多个物联网节点303(即,运行区块链客户端应用程序105并因此可以形成层叠在区块链网络106上的第一网络的计算设备)组成的第一网络。为了清楚起见,第一网络称为物联网,即通过互联网互连的计算设备的网络。通常,终端设备302和物联网节点303嵌入在日常设备中。终端设备302可以采用多种形式中的一种,例如用户设备(例如,智能电视、智能音箱、玩具、可穿戴设备等)、智能家电(例如,冰箱、洗衣机、烤箱等)、仪表或传感器(例如,智能恒温器、智能照明、安全传感器等)。同样,物联网节点303也可以采用多种形式,可以包括但不限于与终端设备可以采用的相同形式。物联网节点303也可以采用专用服务器设备、、接入点、路由器等形式。在一些示例中,每个设备可以具有固定网络(例如,ip)地址。例如,一个、一些或所有终端设备可以是固定设备(例如,智能灯或智能中央加热控制器等),而不是移动设备。
[0087]
iot网络是分组交换网络101,通常是互联网等广域互联网。分组交换网络101中的物联网节点303和设备302被布置成在分组交换网络101中形成覆盖网络。每个物联网节点303包括相应的计算机设备,每个计算机设备包括相应的处理装置,所述处理装置包括一个或更多个处理器,例如一个或更多个中央处理单元(cpu)、加速器处理器、专用处理器和/或现场可编程门阵列(fpga)。每个物联网节点303还包括存储器,即采用非暂时性计算机可读介质形式的计算机可读存储器。该存储器可以包括一个或更多个存储器单元,其采用一个或更多个存储器介质,例如硬盘等磁介质;固态硬盘(ssd)、闪存或eeprom等电子介质;和/或光盘驱动器等光学介质。
[0088]
物联网网络的每个物联网节点303操作区块链客户端应用程序105。物联网中的每个物联网节点303用于直接或间接控制终端设备302。直接连接至终端设备302的物联网节点303可以直接控制该设备。未直接连接至终端设备302的物联网节点303只能间接控制该设备,例如,通过一个或更多个中间物联网节点将控制消息转发给终端设备。每个物联网节点303连接至一个或更多个区块链节点104。
[0089]
图3还示出了区块链节点104的网络304,该网络是区块链网络106的子集。
[0090]
如图3所示,物联网节点303构成iot网络和区块链网络106两者的一部分,而区块链节点104仅构成区块链网络106的一部分。虽然图3中示出终端设备302仅构成物联网网络的一部分,但不排除终端设备302也可以连接至区块链节点104。
[0091]
图4示出了物联网的示例性拓扑结构。物联网可以控制主iot节点303a、一个或更
多个中间iot节点303b,303c中的一组或更多组401、以及一组终端设备302。主iot节点302a用于控制一个或更多个中间iot节点303b,303c。如果物联网网络包括中间物联网节点的多个组(例如,多层)401a,401b,则主iot节点303a用于直接控制第一组(层)601a中间iot节点(例如,一层“服务器节点”303b),并间接控制一组或更多的其他组(层)401的中间iot节点(例如,一层“从节点”303c)。主iot节点303a具有覆盖(override)和控制服务器节点和从节点的能力(即,许可)。每个服务器节点303b具有控制从节点303c的能力。每个从节点303c是受控于服务器节点303b和主iot节点303a的节点。例如,为了指示终端设备302a,主iot节点303a通过服务端节点303b向从节点303c发出命令。
[0092]
虽然图4所示的示例性物联网仅示出了两层中间iot节点(服务器节点和从节点),但其他示例可以包括一组或更多其他组的中间iot节点,例如主iot节点303a与服务器节点303b之间的中间节点和/或服务器节点303b与从节点303c之间的中间节点。如图所示,每个iot节点通过相应的连接402连接至一个或更多个其他节点,每个终端设备302通过相应的连接402连接至一个或更多个从节点。一个或更多个节点(例如,主iot节点)在下文中称为控制节点。
[0093]
物联网节点303可以对应于功能范围、指令/特权优先级和/或访问范围方面的层次结构。在一些实现方式中,一组分层spv节点实现了具有三个层级的“物联网控制器”,对应于图3和图4所示的主节点303a、服务器节点303b和从节点303c。主iot节点303a指示一个或更多个服务器节点303b,每个服务器节点指示一个或更多个从节点303c。每个从节点303c接收来自一个或更多个服务器节点303b的指令。每个从节点303c与一个或更多个物联网终端设备302进行通信,这是物联网控制器303与物联网终端设备302之间的直接通信信道。物联网控制器303的执行状态记录在区块链事务tx中。每个物联网节点(即,主节点、服务器节点或从节点)都有能力创建对应的事务tx并将其广播到区块链网络106。每个从节点监控来自终端设备302的触发和/或确认信号,每个物联网节点303具有与任何其他物联网节点交互的能力,以执行物联网控制器的整体逻辑。
[0094]
主iot节点、服务器节点和从节点可以分别单独连接到区块链网络106中的节点104,操作区块链客户端应用程序105。主iot节点303a被配置为监控直接和间接受其控制的其他物联网节点的活动,以区块链事务tx的形式向这些其他的iot节点发出命令,并对警报做出响应。服务器节点303b用于监视多个地址,包括不受服务器节点303b直接控制的地址。主iot节点303a可以命令服务器节点303b执行操作。从节点303c用于监控直接受其控制的终端设备302的活动。从节点303c受服务器节点303b的直接命令,也可以按主iot节点303a的命令执行操作。从节点303c充当终端设备302的网关节点(即,终端设备与区块链网络106之间的网关)。终端设备302用于连接至附近的从设备。所述从设备采用链下消息传递协议报告终端设备状态。
[0095]
需要注意的是,虽然在物联网节点303与终端设备302之间进行了区分(即,终端设备302由物联网节点303控制,但其本身不控制物联网节点303),但终端设备302也可以连接区块链网络106中的区块链节点104。也就是说,在一些示例中,终端设备302可以操作区块链客户端应用程序105。
[0096]
iot网络通过将命令和控制层次结构与区块链网络基础设施的使用相结合,在集中化与分散化之间取得了平衡。网络的用户可以创建自己的多级控制层次结构,所述层次
结构包括客户端-服务器以及设备之间的点对点关系。网络架构包括两层:物联网网络、和区块链网络104。区块链网络106充当后端基础设施,iot网络与区块链网络106之间存在重叠。
[0097]
请求与响应协议
[0098]
物联网网络303的物联网节点303可以根据通信协议运行,其中物联网节点303使用区块链事务tx来发布命令请求、基于这些命令请求指示设备以及发布命令确认。虽然将参照物联网网络对实施例进行描述,但一般而言,本公开的教导可以应用于任何网络,该网络包括操作区块链客户端应用程序105的网络实体303,以及至少可由这些网络实体的子集控制的终端设备。
[0099]
iot网络中的第一iot节点303(例如,主iot节点303a、或服务器节点303b)生成第一事务tx1,该事务包括输入和输出,该输入由该第一iot节点签名,该输出包括命令数据。该命令数据包括待要控制的终端设备302的标识符以及用于控制终端设备302的命令消息。该第一iot节点可以是命令的发起者。也就是说,该第一iot节点可以生成所述命令数据。
[0100]
所述第一iot节点可以将第一事务tx1传输至控制终端设备302的第一网络中的第二iot节点303(例如,从节点303c)。第一事务tx1可以在链下传输,即,无需传输至区块链。例如,第一事务tx1可以通过互联网等方式直接从所述第一iot节点发送至所述第二iot节点。例如,所述第一iot节点可以是服务器节点303b,所述第二iot节点可以是从节点303c。替代地,第一事务tx1可以被间接发送,例如通过一个或更多个中间iot节点。例如,第一事务tx1可以通过服务器节点303b从主iot节点303a发送至从节点303c。所述第二iot节点可以通过有线连接或无线连接(例如,通过以太网或wi-fi连接)连接至终端设备302。
[0101]
附加地或替代地,第一物联网节点可以将第一事务tx1传输至区块链网络106,以在区块链150上发布。这依赖于第一事务tx1是有效事务。如下文所述,在一些情况下,最好不要将第一事务tx1传输至区块链150。
[0102]
所述第二iot节点可以直接或间接地从所述第一iot节点获取第一事务tx1,例如,第一事务tx1可以通过一个或更多个中间iot节点转发给所述第二iot节点。所述第二iot节点使用所述命令数据将控制指令传输至由所述命令数据中的设备标识符(“设备id”)标识的终端设备302。所述命令数据中的控制消息可以定义终端设备302的所需操作。所述控制消息可以用于使所述第二iot节点将多个可能的指令中的一个特定指令传输至终端设备302。替代地,所述第二iot节点可以用于向终端设备302发送单个指令,即,所述第二iot节点仅向所述终端设备发送相同的指令。例如,如果终端设备302是像传感器一样的简单设备,并且指令是对传感器读数的请求,则可能会出现这种情况。
[0103]
命令(即,对终端设备的指令)可以通过有线连接或无线连接(例如,使用wi-fi)在链下传输至设备。替代地,如果该设备也是网络中的节点,则该命令可以通过区块链事务tx传输。
[0104]
在一些实施例中,设备与控制器通信的请求和响应周期可以由所述第一节点和所述第二iot节点实现。所述请求(命令)作为包含输出的部分完成的事务发出,所述输出包括所述命令数据(例如,op_false op_return有效负载)。所述响应(命令确认)是对包含请求者节点和响应者节点的签名的已完成事务进行广播。事务延展性可以实现这种通信方法,因为消息接收方可以添加输入和输出,但不能更改所述命令数据(例如,op_false op_
return有效负载)。
[0105]
从所述第一iot节点传输至所述第二iot节点的第一事务tx1可以在没有第二输出的情况下传输。即,事务包括单个输出(所述输出包括所述命令数据)。为了完成部分完成的事务,该第二者可以通过向所述第一事务添加输入和输出来更新事务。所述输入包括所述第二iot节点的签名,即,使用所述第二节点的私钥生成的签名。所述输出是锁定至所述第二iot节点的公钥的输出,例如kh输出。为了解锁kh输出,花费事务的输入必须包括公钥,使得所述公钥的哈希(例如,op_hash160)与所述kh输出中的所述公钥哈希相匹配。kh输出要求试图解锁该输出的一方提供两个项目:公钥,使得所述公钥的hash与所述kh输出中的地址(hash)相匹配;签名,对所述公钥和事务消息有效,但不一定按照该顺序。所述公钥可以对应于用于生成所述签名的所述私钥。替代地,所述签名可以链接至第一公钥,所述输出可以锁定至不同的公钥。然后,所述第二iot节点可以将完成的事务传输至区块链网络106。所述完成的事务(在这些实施例中称为命令事务)被公布在区块链150上以供其他iot节点获取,并充当设备所执行命令的记录。也就是说,广播事务后,独立观察者可以看到哪个公钥发出了命令/消息,哪个公钥对其做出了响应。
[0106]
图5a和图5b示出了示例性部分第一事务tx1(部分)和示例性更新后的第一事务tx1(完整)。所述部分第一事务包括单个输入和单个输出。所述更新后的第一事务包括由所述第二iot节点添加的输入和输出。sighash_single签名类型可用于实现所需级别的事务延展性。例如,具有公钥pk0的iot节点向具有公钥pk1的iot节点发送指令。该指令被编码在使用sighash_single签名类型签名的事务的不可花费的输出(例如,op_false op_return输出)中。部分完成的事务是有效的。指令完成后,具有pk1的所述第二iot节点会添加锁定至其公钥的输出。然后,具有pk1的所述第二iot节点通过使用sighash_all签名类型对整个事务进行签名来完成事务。
[0107]
在替代实施例中,从所述第一iot节点传输至所述第二iot节点的第一事务tx1可以与第二输出一起传输。所述第二输出锁定至所述第二iot节点的公钥。例如,所述第二输出可以是锁定至所述第二iot节点的公钥的kh。
[0108]
为了完成第一事务tx1,所述第二iot节点通过向所述第一事务添加输入来更新所述第一事务。第一事务tx1现在包括两个输入和两个输出。所述第二输入包括所述第二iot节点的公钥。所述第二输入中的所述公钥可以与所述第二输出锁定至其上的所述公钥相同,也可以不同。完成后,所述更新后的第一事务(在这些实施例中称为命令事务)被发送至区块链网络106,以将其公布于区块链150上。广播命令事务后,独立观察者可以看到哪个公钥发出了命令/消息,哪个公钥对其做出了响应。
[0109]
与所述第一事务的所述第一输入所引用的数字资产数额相比,锁定至所述第二iot节点的所述公钥的所述第二输出可以分配更大的数字资产数额。在这种情况下,第一事务tx1是部分完成的事务,不会被区块链节点104视为有效。也就是说,第一事务tx1不会满足区块链节点104所遵循的共识规则,因此不会被公布到区块链150的区块151中。在更新第一事务tx1时,所述第二iot节点必须确保所述第一输入和所述第二输入所引用的数字资产的总数额大于锁定至所述第二输出的数字资产的数额。
[0110]
图6a和图6b示出了示例性部分第一事务tx1(部分)和示例性更新后的第一事务tx1(完整)。所述第一事务包括锁定至所述第二iot节点的所述公钥的第一输出和第二输出中
的命令数据。所述更新后的第一事务包括由所述第二iot节点添加的附加输入。如果具有pk0的所述第一iot节点向具有pk1的所述第二iot节点发送希望仅由具有pk1的所述第二节点执行的指令,则可以发送锁定两个输出的部分完成的事务,但不支付事务费用(因此,该事务不可能被区块链节点104包括在区块151中)。为了赎回锁定至pk1的数字资产,具有pk1的所述第二iot节点需要提供包含事务费用的输入。为了使用部分完成的事务发出命令,的sighash标志设置为sighash_anyonecanpay,并包含带有所述命令数据的op_false op_return输出。这意味着,虽然第一输出中包含的命令数据是固定的,但任何人都可以添加附加输入。接收到该命令的公钥可以添加附加输入来赎回输入801a中的数字通证。为了确保新输入的安全并防止进一步的事务延展性,通证接收者添加最小值(dust)输入,并使用sighash_all对事务输出进行签名。
[0111]
需要注意的是,sighash标志是添加到事务输入的签名中的标志,用于指示所述签名对事务的哪一部分进行签名。默认为sighash_all(对除scriptsig以外的所有事务部分进行签名)。可以修改事务的未签名部分。
[0112]
参考图7,下面将提供一种示例性请求和响应算法。控制设备303b用于与iot网络中的其他iot节点进行通信,并且可以计算出与iot网络上任何其他iot节点的最短通信路线。例如,pk
serv
标识出pk
slave
是距离具有device_id的设备最近的控制器。
[0113]
步骤1:具有公钥pk
serv
的控制设备303b向具有公钥pk
slave
的第二控制设备303c发送部分命令tx1。事务中包含的物联网消息指定了命令以及具有device_id的目标设备。
[0114]
步骤2:第二控制设备(pk
slave
)根据网络的规则检查事务的签名是否有效,并检查物联网消息有效负载中包含的消息是否有效。
[0115]
步骤3:第二控制设备(pk
slave
)通过链下通信(例如,有线连接、蓝牙、ip到ip)向设备(device_id)发送命令消息(“msg”)。
[0116]
步骤4:通过命令请求的操作完成后,设备(device_id)将命令完成或确认消息(“ack”)发送回第二控制设备(pk
slave
)。
[0117]
步骤5:第二控制器(pk
slave
)添加第二输入和签名,并完成(finalise)事务。这表示第二控制器确认命令完成。
[0118]
步骤6:第二控制器(pk
slave
)将完成的事务广播到区块链网络106。
[0119]
图8示出了命令事务的示例性命令数据输出。第一命令事务包括输入(未示出)和输出,所述输入包括物联网节点303的签名,所述输出包括命令数据。在该示例中,协议标识符(4字节)之后是93字节有效载荷,其中包含物联网通信信息。所述通信信息包括命令指令的预期接收者的32字节设备id、设备证书的位置、命令和设备状态。在一些示例中,发出新命令或状态更新的每个事务必须遵循这种格式,否则将被视为无效命令。如果某个字段对于任何链上消息都不是必需的,则可以将其字节设置为0x00000000。如下文所述,优选地对有效载荷数据本身进行加密。然后,只有持有解密密钥的各方才能访问有效载荷数据。下表描述了示例性物联网消息有效载荷的字段。应当注意的是,本文使用的数据字段的特定大小(以字节为单位)是示例性和非限制性的。
[0120][0121]
设备状态副本是设备报告状态或期望状态的逻辑表示。在物联网消息中,设备状态信息编码在设备id、状态和先前状态中。与设备id相关的最新事务表示当前设备状态。包含与设备状态相关的命令、响应和数据的消息包含在区块链150上带有时间戳的区块150中。
[0122]
总之,物联网网络中的节点303通过直接使用包含物联网命令数据的事务以及连接至区块链网络106进行通信,来广播事务。区块链150用作永久数据存储器,用于记录来自物联网网络组件的命令和状态更新,以及发出与物联网设备302相关的报告和警报。
[0123]
分层网络
[0124]
分层网络(layered network,ln)指在通信信道上分层的覆盖网络。比如,通信信道可以是底层基础设施网络,例如个人局域网、局域网(例如,公司间网络)或广域网(例如,互联网)。在其它示例中,分层网络可以是经由有线连接而连接的ln节点网络。在另一示例中,连接可以是无线连接,例如蓝牙或wi-fi连接。在一些示例中,上述示例性连接中的部分或全部可用于形成分层网络。
[0125]
网络的部分或全部的ln节点可以被配置为根据连接协议连接(即,加入或重新加入)分层网络的网络。连接协议可能因连接节点所连接(即,尝试连接或重新连接)的网络的特定层而异。在详细描述连接协议之前,将描述可由连接协议创建或实施的一系列示例性分层网络。然而,应当理解的是,这些仅仅是说明性示例,通常而言,可以创建遵守连接协议的任何分层网络。
[0126]
图9是分层网络(ln)900的示例的示意性表示。通常而言,ln包括由核心ln节点901和一系列层(或外壳)组成的核心网络(或核心层)。核心层也称为ln的第一层。该系列层从核心层向外依次从由第二ln节点902组成的第二层延伸到一个或更多个外层。每个外层由一组外部ln节点903组成。图9中仅示出了一个外层,但应当理解的是,ln可以包括任意数量
的外层。作为特定示例,图11示出了包括五层的ln 1100的示例,图12示出了包括四层的ln 1200的示例。
[0127]
图9的示例性ln 900包括五个核心ln节点901、六个第二ln节点902和八个外部ln节点903。在一些ln 900中,ln节点的数量可随着每一层而增加,即核心层由最小数量的ln节点组成,最外层由最大数量的ln节点组成。在其它示例中,核心层与最外层之间的一层或更多层可以由最大数量的ln节点组成。在此示例中,核心层是ln 900的最内层,第二层是中间层,外层(作为唯一的外层)是最外层。
[0128]
核心层(ln内的网络)在此示例中形成完全图,即每个核心ln节点901与另一核心ln节点901相互连接。对于五个核心ln节点901的核心层,在给定的示例中,核心层需要十个不同的核心连接(即,两个核心ln节点之间的连接)。在其它示例(例如,图10)中,核心层可能不是完全图。核心层可以形成“近完全图”。在近完全图中,至少一个核心ln节点901未连接到至少一个其它核心ln节点901。可能只缺少一个核心连接。在近完全图的特定示例中,每个核心ln节点901可以连接到一个或更多个节点,而不是所有其它核心ln节点901。
[0129]
第二层包括第二ln节点902。需要注意的是,术语“第二ln节点”仅用作ln节点902的标签,ln节点902通过构造位于ln 900的第二层中。每个第二ln节点902连接到至少一个核心ln节点901。在一些示例中,每个第二ln节点902可以仅连接到一个核心ln节点901。或者,第二ln节点902中的部分或全部可以连接到多个核心ln节点901。比如,第二ln节点902中的部分或全部可以连接到核心ln节点901中的每一个核心ln节点。在图9的示例性ln 900中,每个核心ln节点901连接到两个第二ln节点902。然而,在此示例中,一些第二ln节点902(示出为条纹圆圈)连接到一个核心ln节点901,而一些第二ln节点902(示出为白圆圈和阴影圆圈)连接到两个核心ln节点901。连接到相同核心ln节点901的第二ln节点902(和外层的外部ln节点903)称为“社区community”。比如,多个白节点形成一个社区,多个条纹节点形成一个社区,多个阴影节点形成又一社区。第二ln节点902与核心ln节点901之间的连接称为“祖先连接”,并示出为宽虚线。
[0130]
在图9的示例中,每个第二ln节点902连接到另外两个第二ln节点902。在一些示例中,第二ln节点902中的部分或全部可能不与其它第二ln节点形成连接,例如,一些第二ln节点902可连接到其它第二ln节点902,而一些第二ln节点可连接到其它第二ln节点902。这些“层内”连接在图9中示为节点之间的实线。
[0131]
图9的外层包括外部ln节点903。需要注意的是,尽管存在一定的可能性,但“外层”中的“外”一词本身并不一定局限于整个ln网络的最外层。每个外部ln节点903连接到至少一个第二ln节点902。在一些示例中,每个外部ln节点903可以仅连接到一个第二ln节点902。或者,外部ln节点903中的部分或全部可以连接到多个第二ln节点902。比如,外部ln节点903中的部分或全部可以连接到每个第二ln节点901。在图9的示例性ln 900中,每个外部ln节点903连接到两个第二ln节点902。一些第二ln节点902(即,条状节点)连接到两个外部ln节点903,一些第二ln节点902(即,白节点和阴影节点)连接到三个外部ln节点903。
[0132]
在图9的示例中,每个外部ln节点903连接到同一层的两个其它外部ln节点903。在一些示例中,外部ln节点903中的部分或全部可能不与同一层的其它外部ln节点903形成任何连接。外部ln节点903中的部分或全部可以与同一层的另一外部ln节点903形成至少一个连接。
[0133]
除了连接到至少一个第二ln节点902之外,每个外部ln节点903还连接到至少一个核心ln节点901。外部ln节点903与核心ln节点901之间的连接称为“核心祖先连接”,示为细虚线。每个外部ln节点903可以连接到其祖先辈第二ln节点902所连接到的每个核心ln节点901。如图9所示,每个外部ln节点903可以连接到其祖先辈第二ln节点902所连接到的每个核心ln节点901,而非连接到其它核心ln节点901。在这种情况下,每个外部ln节点903属于单个社区。
[0134]
图10是ln 1000的另一示例的示意性表示。与图9的ln 900一样,示例性ln 1000包括核心层、第二层和外层。这些示例性ln 900、1000共享相同数量的ln节点(即,五个核心ln节点901、六个第二ln节点902和八个外部ln节点903),但包括不同数量的连接。比如,在此示例中,核心层不是完全图,因为核心ln节点901之间不存在一些连接。另一区别在于,两个社区(白节点和阴影节点)包括单个核心ln节点901,而另一社区(阴影节点)包括三个核心ln节点901。又一区别在于,ln 1000外壳中的ln节点的度现在为1,而ln 900外壳中的节点度为2。也就是说,在此示例中,对于ln 1000,每个外部ln节点903连接到单个其它外部ln节点903。因此,不同层的ln节点具有不同的度。
[0135]
图11是ln 1100的另一示例的示意性表示。在此示例中,仅一些核心ln节点901连接到第二ln节点和外部ln节点903。也就是说,在此示例中,一些核心ln节点901仅与其它核心ln节点901形成连接。因此,在此示例中,ln 1100包括单个社区(阴影节点)。该示例中的ln 1100包括五层:核心层、第二层和三个外层。核心层由五个核心节点901组成,这些ln节点构成近完全图。在近完全图的此示例中,只缺少单个核心连接。第二层由连接到两个核心ln节点901的单个第二ln节点902组成。第二层由连接到两个核心ln节点901的单个第二ln节点902组成。第三层由经由祖先连接而连接到第二ln节点902的单个外部ln节点903组成。第三层的外部ln节点903还连接到第二ln节点902所连接到的两个核心ln节点901。外部ln节点903经由相应的核心祖先连接而连接到两个核心ln节点901。第四层也由单个外部ln节点904组成。第四层的外部节点904经由祖先连接而连接到第三层的外部ln节点903,并且经由祖先连接而连接到第二节点902。第四层的外部ln节点904还连接到第二ln节点902和第三层的外部ln节点903所连接的两个核心ln节点901。外部ln节点904经由相应的核心祖先连接而连接到两个核心ln节点901。最后,第五层由两个外部ln节点905组成。第五层的两个外部节点905连接到第四层的外部ln节点904、第三层的外部ln节点903和第二ln节点902,其中每个连接都是祖先连接。两个外部ln节点905还经由核心祖先连接而连接到两个核心ln节点901。在此示例中,对于ln 1100,第二层的ln节点和外层的ln节点未连接到同一层的任何其它ln节点。
[0136]
图12是ln 1200的另一示例的示意性表示。该ln包括ln节点的两个社区,具体如白节点和黑节点所示。在此示例中,核心层形成完全图(即,ln节点的完整网络)。每个社区包括一组特有的三个核心ln节点901。该示例性ln 1200包括四层(核心层、第二层和两个外层)。外层的每个ln节点连接到先前的层中的一个ln节点。与图11的示例性ln 1100类似,第二层的节点和外层的ln节点未连接到同一层的任何其它ln节点。
[0137]
本发明的一些实施例的ln可以是(或可以包括)曼达拉网络,或者共享曼达拉网络的部分但并非全部属性。例如,ln可以共享具有一些类似的功能,但其被设计成允许更灵活和理想的连接结构,例如用于利用区块链网络106的服务和用户网络。
[0138]
通常,ln的底层基础设施网络是区块链150,并且ln是层叠在区块链150之上的覆盖网络。ln的ln节点是连接到区块链网络106的节点(例如,被配置为执行简单支付验证(spv)方法的轻量级客户端)。分层网络的外部节点连接到链下设备。然而,不排除部分或全部设备可以连接到区块链网络106的情况。
[0139]
ln节点901、902、903被配置为在覆盖网络层形成彼此之间的连接。也就是说,分层网络的ln节点901、902、903被配置为遵循覆盖网络协议,该协议指定可以并且不可以与分层网络的其它ln节点901、902、903形成的连接。因此,尽管所有ln节点可以(但不一定)在物理上经由底层基础设施(例如,互联网)彼此连接,但当它们作为分层网络的ln节点901、902、903参与并根据分层网络900的相关覆盖网络协议进行操作时,此类ln节点901、902、903之间的连接可能会受到更大的限制。分层网络900的两个ln节点901、902、903之间的连接意味着这些节点可以直接通信,在这种情况下,意味着不必经由分层网络900的另一ln节点901、902、903执行跳转。在分层网络等覆盖网络的上下文中,“连接”指在分层网络900层(即,分层网络的覆盖网络协议层)的连接(即,边缘)。
[0140]
ln 900的ln节点901、902、903可以通过数字证书彼此标识和通信。也就是说,ln节点901、902、903中的部分或全部可以与相应的数字证书相关联。数字证书包含并证明相应ln节点901、902、903的标识符,例如与该节点相关联的公钥、节点的网络地址(例如,ip地址)等。ln 900的ln节点901、902、903可以使用不同节点的数字证书来连接到该ln节点。例如,外部ln节点903可以从第二ln节点902获取数字证书,并使用包含在数字证书中的第二ln节点的标识信息来连接到第二ln节点902。给定层的ln节点可以向有序层集中的下一层的ln节点颁发数字证书,即核心ln节点901可以向第二ln节点902颁发数字证书,第二ln节点902可以向第一外层的外部ln节点903颁发数字证书,依此类推。在一些示例中,给定层的ln节点可以向同一层的ln节点颁发数字证书,例如,第二ln节点902可以向一个或多个其他第二ln节点902颁发相应的数字证书。
[0141]
多个主节点
[0142]
图13示出了图4的示例性网络303的结果。也就是说,如果主物联网节点303a受到危害、出现故障或无法以其他方式控制或监测网络300中的其他物联网节点303,则网络303可能无法按预期运行。例如,恶意方可以接管主物联网节点303a,以防止该主物联网节点303控制物联网网络中的其他物联网节点。
[0143]
图14示出了用于实现本发明的实施例的示例性网络1400。与图3中所示网络的相似之处在于,该网络包括分层(即,采用物联网网络的相应层定义的层级结构)设置的多个物联网节点。与图3中所示网络的不同之处在于,网络1400包含多个主物联网节点303a。在该示例中,仅示出了两个主物联网节点303a、303a’,但一般而言,网络1400可以包括任意数量的主物联网节点303a。每个主物联网节点连接到并被配置为控制相应一组中间物联网节点。例如,第一主物联网节点303a’(示出为白圆圈)连接到并被配置为控制一个中间物联网节点303b’(同样示出为白圆圈),而第二主物联网节点303a(示出为条纹圆圈)连接到两个中间物联网节点303b(同样示出为条纹圆圈)。如图14所示,第一主物联网节点303a’还连接到第二主物联网节点303a控制的两个中间物联网节点303b。在一些示例中,第二主物联网节点303a可以连接到第一主物联网节点303a’控制的中间物联网节点303b’。每个中间层的每个中间物联网节点303b、303b’连接到下一个中间层的一个或多个中间物联网节点
303c,或者连接到设备层的一个或多个终端设备302。
[0144]
也就是说,网络1400被设置为分层网络,核心层包括多个主物联网节点303a,然后是一系列外层。每个主物联网节点可以连接到每个其他主物联网节点(例如,核心层可以是完全图)。或者,核心层可以是如上所述的近完全图。外层包括一个或多个中间层,每个中间层包括一个或多个中间物联网节点。在正常操作下,核心层的每个主物联网节点控制第一中间层(即,直接连接到核心层的中间层)的相应一组中间物联网节点。第一主物联网节点303a’控制的相应一组中间物联网节点和第二主物联网节点303a控制的相应一组中间物联网节点可以是也可以不是排他性集(即,它们可以重叠也可以不重叠)。此外,也不排除一个或多个主物联网节点可以连接到不同中间层(例如,第二中间层)中的一个或多个中间物联网节点的情况。分层网络还包括设备层,该设备层包括一个或多个终端设备。参考图3至图8,归因于主物联网节点303a、中间物联网节点303b、303c和终端设备302的任何特征可以同样适用于这些节点和设备的下列描述。
[0145]
在一些实施例中,网络1400可以共享分别参考图9至图12描述的分层网络900、1000、1100、1200中的任何一个分层网络的一个、部分或全部属性。例如,网络1400可以采取曼达拉网络的形式或共享类似曼达拉的属性。
[0146]
如图13所示,当网络由单个主物联网节点303a组成时,就会出现问题。本发明通过使主物联网节点能够在其他主物联网节点出现事项(issue)的情况下充当备份来解决该问题。例如,在第二主物联网节点303a存在事项(例如,故障)的情况下,第一主物联网节点303a’可以控制第二主物联网节点303a控制的中间物联网节点303b。
[0147]
下面将根据充当第二主物联网节点303a的备份的第一主物联网节点303a’进行描述,但是应当理解的是,通常多个主物联网节点中的任何一个都可以执行归因于第一主物联网节点303a的动作。
[0148]
第一主物联网节点303a被配置为确定影响第二主物联网节点能够控制其相应一组中间物联网节点(即,第二组中间物联网节点)的一个或多个事项。
[0149]
例如,该事项可以指第二主物联网节点303a无法通过以下方式来控制第二组中间物联网节点,例如根据上述请求和响应协议向第二组中间物联网节点中的一个或多个发出命令事务。例如,由于第二主物联网节点303a出现故障或其他技术事项,或者由于第二主物联网节点303a受到恶意方危害,因此第二主物联网节点303a可能无法控制第二组中间物联网节点。
[0150]
作为另一个示例,该事项可以指第二主物联网节点303a遇到负载均衡事项(例如,网络1400的一个或多个连接上的流量过多)。负载均衡事项可以是全网络的事项,即整个网络的负载超过阈值量。在这种情况下,第二主物联网节点可能必须禁用其一个或多个连接,以使负载在允许的阈值以下。在其他示例中,第二主物联网节点可以从其他主物联网节点中的一个(例如,第一主物联网节点)接收指令,其中该指令指示第二主物联网节点删除某些连接。在一些示例中,第二主物联网节点303a可以通过将流量重定向到第一主物联网节点303a’而不是删除连接来处理负载均衡事项。
[0151]
负载均衡事项可以是第二主物联网节点与连接到第二主物联网节点303a的特定中间物联网节点或一组中间物联网节点之间的负载。第二主物联网节点可以禁用负载增加的一个或多个连接,例如以使负载在允许的阈值范围内。或者,例如,第二主物联网节点可
以响应于来自该主物联网节点的删除连接的指令而删除与其他主物联网节点的连接。
[0152]
检测负载均衡事项(由第二主物联网节点本身或其他节点(例如,第一主物联网节点)执行)可以包括检测第二主物联网节点与分层网络中的一个或多个其他节点之间的一个或多个连接上的负载超过阈值。例如,此类负载可以根据带宽、错误率、丢包率、延迟、抖动或组合一个或多个此类度量方式的组合度量标准进行测量。替代地或附加地,检测负载均衡事项可以包括检测第二主物联网节点上的处理负载超过阈值。例如,这可以根据第二主物联网节点消耗的处理资源或第二主物联网节点的可用处理资源来进行测量。
[0153]
在实施例中,检测负载均衡事项可以包括检测物联网网络的第二主物联网节点与一个或多个其他节点(例如,第二组节点中的一个或多个节点)之间的连接数超过连接数阈值,例如,与第二主物联网节点的最大总连接数。例如,第二主物联网节点可能需要保持在网络1400的连接协议所允许的最小或最大连接数范围内。
[0154]
该阈值可以是第二主物联网节点与特定层的节点之间的连接的阈值。例如,可以仅允许第二主物联网节点形成(和维持)一定数量的核心连接,或与中间物联网节点303b的连接(例如,特定中间层的连接或整个中间层的总连接)。第二主物联网节点可以删除其与其他中间物联网节点的一个或多个连接,和/或指示其所连接中间物联网节点中的一个或多个删除其与第二主物联网节点的连接。所删除连接的数量可以等于或大于超出允许连接数阈值的连接数。
[0155]
在一些实施例中,禁用与相应物联网节点的连接可以包括撤销由第二主物联网节点向相应物联网节点颁发的相应数字证书。在这些示例中,物联网节点必须具有有效的数字证书才能与另一物联网节点连接。第二主物联网节点可以负责向中间节点颁发数字证书。第二主物联网节点可以撤销中间物联网节点303b的数字证书以禁用与该节点的连接。
[0156]
作为另一个示例,该事项可以是隐私事项。也就是说,第二主物联网节点可以接收关于网络隐私泄露的指示(或以其他方式获取有关信息)。隐私事项可以指第二主物联网节点遭到黑客攻击或出现故障。或者,隐私事项可以指标识信息(例如,网络的第二主物联网节点或其他节点的标识信息)已泄露(例如,被盗或泄露)。第二主物联网节点303a可以删除其与第二组中间物联网节点中的一个或多个的连接,以防止物联网网络受到进一步损坏。标识信息可以包括与第二主物联网节点303a相关联的私钥和/或公钥。
[0157]
第一主物联网节点303a’可以被配置为基于来自网络的一个或多个其他节点的指示来确定事项。例如,第一主节点303a’可以从第二主物联网节点303a和/或从第二组中间物联网节点中的一个或多个(例如,第二主物联网节点303a无法再控制的中间物联网节点,或者第二主物联网节点303a对其的控制以其他方式受到影响的中间物联网节点)接收指示。作为一个具体示例,如果第二主物联网节点303a必须禁用与一个或多个中间物联网节点的连接,则第二主物联网节点303a可以向第一主物联网节点303a’通知所禁用的连接。到第二主物联网节点303a的连接已被禁用的中间物联网节点可以与第二主物联网节点303a一样或者代替第二主物联网节点303a向第一主物联网节点303a通知所禁用的连接。例如,第二组中间物联网节点中的一个或多个可以请求第一主物联网节点303a’控制它们或第二组中间物联网节点中的其他节点。
[0158]
附加地或替代地,第一主物联网节点303a’可以被配置为基于与第二主物联网节点303a通信的失败尝试来确定事项。换言之,如果第一主物联网节点303a’无法连接到第二
主物联网节点303a,则第一主物联网节点303a’可以确定第二主物联网节点303a存在问题。
[0159]
作为用于确定第二主物联网节点303a存在事项的另一个附加或替代选项,第一主物联网节点303a’可以确定第二主物联网节点303a在阈值时间内未向第二组中间物联网节点中的一个或多个发出命令事务(例如,作为上述请求和响应协议的一部分)。例如,第一主物联网节点303a’可以监测区块链150(例如,定期或临时),以获取第二主物联网节点303a发出和/或发送到其控制的中间物联网节点的事务。也就是说,使用第二主物联网节点的签名进行签名或锁定到相应中间物联网节点的相应公钥(或公钥哈希或与给定中间物联网节点相关联的任何其他区块链地址)的事务。如果在预期时间段(例如,一分钟、一小时等)内未发出此类事务,则第一主物联网节点303a’可以将其视为第二主物联网节点303a存在问题的指示。
[0160]
作为另一个选项,如果中间物联网节点的状态在预定时间段内未更改,则第一主物联网节点303a’可以确定第二主物联网节点303a存在问题。附加地或替代地,如果第二组中间物联网节点控制的一个或多个终端设备的状态在预定时间段内未更改,则第一主物联网节点303a’可以确定第二主物联网节点303a存在问题。例如,作为请求和响应协议的一部分,节点和/或终端设备可以在请求和响应事务中报告它们的状态,如图8所示。如果设备的状态在设定时间段内未更改,这可以指示中间物联网节点未指示该设备在该时间段内执行动作,而这又可以指示第二主物联网节点303a未指示中间物联网节点在该时间段内控制终端设备302。
[0161]
第一主物联网节点303a’被配置为响应于确定第二主物联网节点303a存在的一个或多个上述事项,来控制第二组中间物联网节点中的一个或多个。如上所述,通过发出命令事务来执行对网络1400中节点的控制。因此,响应于确定事项,第一主物联网节点303a’被配置为向第二组中间物联网节点中的一个或多个发出相应命令事务。在一些示例中,命令事务被用于第二组中间物联网节点中的每一个。在其他示例中,可以仅向第二组中间物联网节点中的一些(例如,第二主物联网节点303a无法控制的那些节点)发出命令事务。
[0162]
上面提供了物联网网络的物联网节点(包括主物联网节点和中间物联网节点)实现的示例性请求和响应协议的完整描述,因此除了详述第一主物联网节点303a’可以执行的特定动作之外,不再详细描述。
[0163]
向第二组中间物联网节点中的一个发出的每个命令事务可以包括锁定到该中间物联网节点的公钥的输出,例如通过kh输出。命令事务还可以包括一个或多个输入,例如包括第一主物联网节点303a’的签名的输入。
[0164]
向第二组中间物联网节点中的一个发出的命令事务可以包括用于控制该中间物联网节点控制的一个或多个终端设备的命令数据。例如,命令数据可以包括要控制的一个或多个设备的相应设备标识符。如上所述,命令数据可以包含在命令事务的不可花费输出中。然而,不排除命令数据可以包含在可花费输出(例如,锁定到中间物联网节点的公钥的输出)中的情况。
[0165]
第一主物联网节点303a’可以将命令事务直接提交到区块链网络106以包括在区块链150中。附加地或替代地,例如,可以通过安全通信信道将相应命令事务直接发送到相应的中间物联网节点。
[0166]
在一些示例中,例如,第一主物联网节点303a’可以请求事务的形式接收控制第二
组中间物联网节点中的一个的请求。第一主物联网节点303a’可以将此视为第二主物联网节点303a存在事项的指示,然后向第二组中间物联网节点中的一个或多个发出命令事务。例如,请求事务可以是第一主物联网节点303a’完成并提交到区块链网络106的部分事务。完成请求事务可以包括向请求事务添加输入(例如,包括第一主物联网节点303a’的签名)。在其他示例中,请求事务可以是其输出锁定到第一主物联网节点303a’的公钥的已完成事务,并且第一主物联网节点303a’可以使用命令事务来花费该输出,从而控制中间物联网节点。
[0167]
结论
[0168]
一旦给出本文的公开内容,所公开技术的其它变体或用例对于本领域技术人员可能变得显而易见。本公开的范围不受所描述的实施例限制,而仅受随附权利要求限制。
[0169]
例如,上面的一些实施例已经根据比特币网络106、比特币区块链150和比特币节点104进行了描述。然而,应当理解的是,比特币区块链是区块链150的一个特定示例,并且上述描述通常可以应用于任何区块链。也就是说,本发明决不限于比特币区块链。更一般地,以上对比特币网络106、比特币区块链150和比特币节点104的任何引用可以分别参考区块链网络106、区块链150和区块链节点104来替换。区块链、区块链网络和/或区块链节点可以共享如上所述的比特币区块链150、比特币网络106和比特币节点104的部分或全部所述特性。
[0170]
在本发明的优选实施例中,区块链网络106是比特币网络,并且比特币节点104至少执行对区块链150的区块151进行创建、发布、传播和存储中的所有所述功能。不排除可能存在仅执行这些功能中的一个或部分功能但不是全部功能的其它网络实体(或网络元件)。也就是说,网络实体可以执行传播和/或存储区块的功能,而不创建和发布区块(请记住,这些实体不被认为是优选的比特币网络106的节点)。
[0171]
在本发明的非优选实施例中,区块链网络106可以不是比特币网络。在这些实施例中,不排除节点可以执行对区块链150的区块151进行创建、发布、传播和存储中的至少一个或部分功能但不是所有功能。例如,在这些其它区块链网络上,“节点”可用于指被配置为创建和发布区块151但不存储和/或传播这些区块151到其它节点的网络实体。
[0172]
甚至更通俗地说,上面对术语“比特币节点”104的任何引用可以用术语“网络实体”或“网络元件”代替,其中这样的实体/元件被配置为执行对区块进行创建、发布、传播和存储中的一些或全部角。这种网络实体/元件的功能可以在硬件中实现,方法与上面参照区块链节点104所述的方式相同。
[0173]
应当理解的是,上述实施例仅通过示例的方式进行描述。更通俗地说,可根据下述任何一个或多个语句提供一种方法、装置或程序。
[0174]
语句1、一种使用区块链事务控制分层网络的设备的计算机实现的方法,其中所述分层网络(ln)包括设置在有序的层集中的多个ln节点,所述有序层集依次包括:核心层、一个或多个中间层、以及设备层;所述核心层包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;所述一个或多个中间层包括相应的中间节点的集合;所述设备层包括终端设备的集合;其中,每个主节点被配置为控制中间节点的相应子集,第一主节点被配置为控制中间节点的第一子集,第二主节点被配置为控制中间节点的第二子集,并且其中每个中间节点被配置为控制终端设备的相应子集;其中,所述方法由所述第一主节点
执行并且包括:
[0175]
确定影响由所述第二主节点对中间节点的所述第二子集中的至少一个中间节点的控制的一个或多个事项;以及
[0176]
作为响应,向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务以控制所述节点。
[0177]
语句2、根据语句1所述的方法,其中确定所述一个或多个事项包括:确定所述第二主节点无法控制中间节点的所述第二集合中的所述至少一个中间节点。
[0178]
语句3、根据语句1或2所述的方法,其中确定所述一个或多个事项包括:确定与所述第二主节点相关联的负载均衡事项。
[0179]
语句4、根据语句3所述的方法,其中所述负载均衡事项包括第二中间节点集中的一个或多个中间节点与所述第二主节点之间的连接上的负载高于预定阈值。
[0180]
语句5、根据语句3或4所述的方法,其中所述负载均衡事项包括所述第二组中间节点中的一个或多个中间节点与所述第二主节点之间的连接上的负载总体上高于预定阈值。
[0181]
语句6、根据语句3至5中任一项所述的方法,其中所述负载均衡事项包括所述第二主节点与中间节点的所述第二集合之间的连接数高于预定阈值。
[0182]
语句7、根据前述任一项语句所述的方法,其中所述相应命令事务包括第一输出,所述第一输出锁定到与中间节点的所述第二集合中的所述至少一个中间节点相关联的相应公钥。
[0183]
语句8、根据前述任一项语句所述的方法,其中所述相应命令事务被配置为使得中间节点的所述第二集合中的所述至少一个中间节点控制由所述节点控制的终端设备的所述子集中的一个或多个终端设备。
[0184]
语句9、根据语句8所述的方法,其中所述相应命令事务包括相应命令数据,所述相应命令数据包括由中间节点的所述第二集合中的所述至少一个中间节点控制的终端设备的所述子集中的所述一个或多个终端设备的相应标识符。
[0185]
例如,所述命令数据可以包含在所述命令事务的不可花费输出中。
[0186]
语句10、根据前述任一项语句所述的方法,其中所述相应命令事务被配置为使得中间节点的所述第二集合中的所述至少一个中间节点向终端设备的所述子集中的所述一个或多个终端设备传输相应控制指令,其中所述相应控制指令基于所述相应命令数据。
[0187]
所述命令数据可以加密或以其他方式编码。
[0188]
语句11、根据前述任一项语句所述的方法,其中所述相应命令事务包括第一输入,所述第一输入包括链接到所述第一主节点的相应公钥的签名。
[0189]
语句12、根据前述任一项语句所述的方法,其中向中间节点的所述第二集合中的所述至少一个中间节点发出所述相应命令事务包括:向所述节点传输所述相应命令事务。
[0190]
例如,使用链下通信信道。
[0191]
语句13、根据前述任一项语句所述的方法,其中向中间节点的所述第二集合中的所述至少一个中间节点发出所述相应命令事务包括:向一个或多个区块链节点传输所述相应命令事务,以在所述区块链上发布。
[0192]
语句14、根据前述任一项语句所述的方法,其中确定所述一个或多个事项包括:
[0193]
确定影响所述第二主节点对中间节点的所述第二子集中的一些或全部中间节点
的控制的一个或多个事项;以及
[0194]
作为响应,向中间节点的所述第二子集中的所述一些或全部中间节点发出相应命令事务,以控制中间节点的所述第二子集中的所述一些或全部中间节点。
[0195]
语句15、根据前述任一项语句所述的方法,其中确定所述一个或多个事项包括以下各项中的一项或多项:
[0196]
从所述分层网络的一个或多个节点接收指示,所述指示指示所述第二主节点遇到影响所述第二主节点对中间节点的所述第二子集中的一些或全部中间节点的控制的一个或多个事项;
[0197]
尝试与所述第二主节点建立连接但失败;
[0198]
确定中间节点的所述第二集合中的所述至少一个中间节点和/或中间节点的所述第二集合中的所述至少一个中间节点控制的一个或多个终端设备的相应状态在预定时间段内未更改;和/或
[0199]
确定所述第二主节点在预定时间段内未向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务。
[0200]
例如,所述指示可以由所述中间节点中的一个中间节点在规定的失败连接阈值次数之后发送。
[0201]
语句16、根据语句15所述的方法,其中确定所述第二主节点在预定时间段内未向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务包括:确定与所述节点相关联的相应区块链地址在所述预定时间段内未接收到所述相应命令事务。
[0202]
语句17、根据语句15或16所述的方法,其中从所述分层网络的一个或多个ln节点接收指示包括:接收控制中间节点的所述第二集合中的所述至少一个中间节点的请求。
[0203]
例如,所述中间节点中的另一个中间节点可能已向所述第二主节点发送控制中间节点的所述第二集合中的所述至少一个中间节点的请求,并且所述请求可能由于所述第二主节点无法控制所述另一个主节点而未得到答复。因此,所述另一个中间节点可以转向所述第一主节点作为备份。
[0204]
语句18、根据语句17所述的方法,其中接收控制中间节点的所述第二集合中的所述至少一个中间节点的所述请求包括:接收请求事务。
[0205]
语句19、根据语句18所述的方法,其中所述请求事务包括输出,所述输出锁定到与所述第一主节点相关联的相应公钥。
[0206]
语句20、根据前述任一项语句所述的方法,其中所述第一主节点连接到所述区块链网络的多个区块链节点。
[0207]
语句21、根据语句20所述的方法,其中每个主节点连接到所述区块链网络的多个区块链节点。
[0208]
语句22、根据前述任一项语句所述的方法,其中每个主节点连接到每个其他主节点。
[0209]
语句23、根据前述任一项语句所述的方法,其中所述中间层中的第一中间层的每个中间节点连接到至少两个主节点。
[0210]
语句24、根据前述任一项语句所述的方法,其中给定层的每个中间节点连接到前一层的至少一个节点。
[0211]
语句25、根据前述任一项语句所述的方法,其中中间节点的所述第一子集和所述第二子集是非重叠子集。
[0212]
语句26、根据前述任一项语句所述的方法,其中所述终端设备是物联网设备。
[0213]
语句27、一种计算机设备,所述计算机设备包括:
[0214]
存储器,所述存储器包括一个或多个存储器单元;
[0215]
处理装置,所述处理装置包括一个或多个处理单元;
[0216]
网络接口,所述网络接口包括一个或多个网络接口;
[0217]
其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时通过执行根据前述任一项语句所述的方法来操作所述计算机设备。
[0218]
语句28、一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据语句1至26中任一项所述的方法。
[0219]
语句29、一种包括分层网络的系统,其中所述分层网络包括设置在有序层集中的多个ln节点,所述有序层集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中:
[0220]
每个主节点被配置为控制中间节点的相应子集;
[0221]
第一主节点被配置为控制中间节点的第一子集;
[0222]
第二主节点被配置为控制中间节点的第二子集;并且,每个中间节点被配置为控制终端设备的相应子集。
[0223]
根据本文公开的另一方面,可以提供一种方法,所述方法包括所述第一主节点和部分或全部所述中间节点的动作。
[0224]
根据本文公开的另一方面,可以提供一种系统,所述系统包括所述第一主节点的所述计算机设备和部分或全部所述中间节点的所述相应计算机设备。

技术特征:


1.一种使用区块链事务控制分层网络的设备的计算机实现的方法,其中所述分层网络(ln)包括设置在有序层集中的多个ln节点,所述有序层集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中,每个主节点被配置为控制中间节点的相应子集,第一主节点被配置为控制中间节点的第一子集,第二主节点被配置为控制中间节点的第二子集,并且其中每个中间节点被配置为控制终端设备的相应子集;其中,所述方法由所述第一主节点执行并且包括:确定影响由所述第二主节点对中间节点的所述第二子集中的至少一个中间节点的控制的一个或多个事项;以及作为响应,向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务以控制所述节点。2.根据权利要求1所述的方法,其中确定所述一个或多个事项包括:确定所述第二主节点无法控制中间节点的所述第二集合中的所述至少一个中间节点。3.根据权利要求1或2所述的方法,其中确定所述一个或多个事项包括:确定与所述第二主节点相关联的负载均衡事项。4.根据权利要求3所述的方法,其中所述负载均衡事项包括中间节点的所述第二集合中的一个或多个中间节点与所述第二主节点之间的连接上的负载高于预定阈值。5.根据权利要求3或4所述的方法,其中所述负载均衡事项包括中间节点的所述第二集合中的一个或多个中间节点与所述第二主节点之间的连接上的负载总体上高于预定阈值。6.根据权利要求3至5中任一项所述的方法,其中所述负载均衡事项包括所述第二主节点与中间节点的所述第二集合之间的连接数高于预定阈值。7.根据前述任一项权利要求所述的方法,其中所述相应命令事务包括第一输出,所述第一输出锁定到与中间节点的所述第二集合中的所述至少一个中间节点相关联的相应公钥。8.根据前述任一项权利要求所述的方法,其中所述相应命令事务被配置为使得中间节点的所述第二集合中的所述至少一个中间节点控制由所述节点控制的终端设备的所述子集中的一个或多个终端设备。9.根据权利要求8所述的方法,其中所述相应命令事务包括相应命令数据,所述相应命令数据包括由中间节点的所述第二集合中的所述至少一个中间节点控制的终端设备的所述子集中的所述一个或多个终端设备的相应标识符。10.根据前述任一项权利要求所述的方法,其中所述相应命令事务被配置为使得中间节点的所述第二集合中的所述至少一个中间节点向终端设备的所述子集中的所述一个或多个终端设备传输相应控制指令,其中所述相应控制指令基于所述相应命令数据。11.根据前述任一项权利要求所述的方法,其中所述相应命令事务包括第一输入,所述第一输入包括链接到所述第一主节点的相应公钥的签名。12.根据前述任一项权利要求所述的方法,其中向中间节点的所述第二集合中的所述至少一个中间节点发出所述相应命令事务包括:向所述节点传输所述相应命令事务。13.根据前述任一项权利要求所述的方法,其中向中间节点的所述第二集合中的所述至少一个中间节点发出所述相应命令事务包括:向一个或多个区块链节点传输所述相应命
令事务,以在所述区块链上发布。14.根据前述任一项权利要求所述的方法,其中确定所述一个或多个事项包括:确定影响所述第二主节点对中间节点的所述第二子集中的一些或全部中间节点的控制的一个或多个事项;以及作为响应,向中间节点的所述第二子集中的所述一些或全部中间节点发出相应命令事务,以控制中间节点的所述第二子集中的所述一些或全部中间节点。15.根据前述任一项权利要求所述的方法,其中确定所述一个或多个事项包括以下各项中的一项或多项:从所述分层网络的一个或多个节点接收指示,所述指示指示所述第二主节点遇到影响所述第二主节点对中间节点的所述第二子集中的一些或全部中间节点的控制的一个或多个事项;尝试与所述第二主节点建立连接但失败;确定中间节点的所述第二集合中的所述至少一个中间节点和/或中间节点的所述第二集合中的所述至少一个中间节点控制的一个或多个终端设备的相应状态在预定时间段内未更改;和/或确定所述第二主节点在预定时间段内未向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务。16.根据权利要求15所述的方法,其中确定所述第二主节点在预定时间段内未向中间节点的所述第二集合中的所述至少一个中间节点发出相应命令事务包括:确定与所述节点相关联的相应区块链地址在所述预定时间段内未接收到所述相应命令事务。17.根据权利要求15或16所述的方法,其中从所述分层网络的一个或多个ln节点接收指示包括:接收控制中间节点的所述第二集合中的所述至少一个中间节点的请求。18.根据权利要求17所述的方法,其中接收控制中间节点的所述第二集合中的所述至少一个中间节点的所述请求包括:接收请求事务。19.根据权利要求18所述的方法,其中所述请求事务包括输出,所述输出锁定到与所述第一主节点相关联的相应公钥。20.根据前述任一项权利要求所述的方法,其中所述第一主节点连接到所述区块链网络的多个区块链节点。21.根据权利要求20所述的方法,其中每个主节点连接到所述区块链网络的多个区块链节点。22.根据前述任一项权利要求所述的方法,其中每个主节点连接到每个其他主节点。23.根据前述任一项权利要求所述的方法,其中所述中间层中的第一中间层的每个中间节点连接到至少两个主节点。24.根据前述任一项权利要求所述的方法,其中给定层的每个中间节点连接到前一层的至少一个节点。25.根据前述任一项权利要求所述的方法,其中中间节点的所述第一子集和所述第二子集是非重叠子集。26.根据前述任一项权利要求所述的方法,其中所述终端设备是物联网设备。27.一种计算机设备,所述计算机设备包括:
存储器,所述存储器包括一个或多个存储器单元;处理装置,所述处理装置包括一个或多个处理单元;网络接口,所述网络接口包括一个或多个网络接口;其中所述存储器存储被设置在所述处理装置上运行的代码,所述代码被配置为当在所述处理装置上运行时通过执行根据前述任一项权利要求所述的方法来操作所述计算机设备。28.一种计算机程序,所述计算机程序包含在计算机可读存储器上并且被配置为当在一个或多个处理器上运行时,执行根据权利要求1至26中任一项所述的方法。29.一种包括分层网络的系统,其中所述分层网络包括设置在有序层集中的多个ln节点,所述有序层集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中:每个主节点被配置为控制中间节点的相应子集;第一主节点被配置为控制中间节点的第一子集;第二主节点被配置为控制中间节点的第二子集;并且,每个中间节点被配置为控制终端设备的相应子集。

技术总结


一种系统,所述系统包括分层网络,其中所述分层网络包括设置在有序层集中的多个L节点,所述有序层集依次包括:核心层,包括多个主节点,每个主节点连接到区块链网络的一个或多个区块链节点;一个或多个中间层,包括相应的中间节点的集合;以及设备层,包括终端设备的集合;其中:每个主节点被配置为控制中间节点的相应子集;第一主节点被配置为控制中间节点的第一子集;第二主节点被配置为控制中间节点的第二子集;并且,每个中间节点被配置为控制终端设备的相应子集。终端设备的相应子集。终端设备的相应子集。


技术研发人员:

克洛伊

受保护的技术使用者:

区块链许可股份公司

技术研发日:

2021.04.22

技术公布日:

2023/1/13


文章投稿或转载声明

本文链接:http://www.wtabcd.cn/zhuanli/patent-1-75911-0.html

来源:专利查询检索下载-实用文体写作网版权所有,转载请保留出处。本站文章发布于 2023-01-25 00:23:21

发表评论

验证码:
用户名: 密码: 匿名发表
评论列表 (有 条评论
2人围观
参与讨论