CN112152981A - 一种通信方法、节点以及通信系统 - Google Patents
一种通信方法、节点以及通信系统 Download PDFInfo
- Publication number
- CN112152981A CN112152981A CN201910581370.1A CN201910581370A CN112152981A CN 112152981 A CN112152981 A CN 112152981A CN 201910581370 A CN201910581370 A CN 201910581370A CN 112152981 A CN112152981 A CN 112152981A
- Authority
- CN
- China
- Prior art keywords
- node
- block
- hash value
- chunk
- verification information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 122
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012795 verification Methods 0.000 claims description 160
- 230000005540 biological transmission Effects 0.000 abstract description 10
- 230000006855 networking Effects 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 44
- 230000006870 function Effects 0.000 description 29
- 230000015572 biosynthetic process Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 15
- 238000003786 synthesis reaction Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 12
- 238000007726 management method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 230000003287 optical effect Effects 0.000 description 8
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000008520 organization Effects 0.000 description 5
- 102000040350 B family Human genes 0.000 description 4
- 108091072128 B family Proteins 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 206010011469 Crying Diseases 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1059—Inter-group management mechanisms, e.g. splitting, merging or interconnection of groups
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1065—Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请公开了一种通信方法,可以适用于家庭物联网,包括:第三节点接收第一节点发送的第一区块,第一区块可以包括第一区块数据。第三节点接收第二节点发送的第二区块,第二区块可以包括第二区块数据,第一区块和第二区块为不同节点集群维护的区块链中的区块。第三节点根据接收到的第一区块和第二区块生成第三区块,第三区块可以包括第一区块数据、第二区块数据以及第三区块的哈希值,第三区块的哈希值根据第一区块数据和第二区块数据确定。本申请提供的技术方案,保证每个节点集群信息的可靠性及不可篡改性,达到低开销、高效、可靠、不可篡改地在节点集群内部进行数据传递及共享的目的。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种通信方法。
背景技术
区块链网络是基于区块链技术实现信息存储与传输的网络,随着区块链应用行业的进一步扩大,设备产生的数据将会爆发性增长。而由于目前区块链网络维护整个账本的信息,数据的爆发性增长将会导致区块链网络具有很大的负载,并且区块链网络中区块链的传输也将会消耗巨大的带宽。
随着区块链技术的进步以及应用场景的需求,逐渐出现了轻量级节点的概念。轻量级节点相对于全节点的区别是,仅存储部分区块链数据,由此减轻对节点硬件设备的要求。现有的在轻量级节点群体之间进行信息和数据的同步的解决方案包括一种端云结合的方案,在该方案中,有较强相关性的轻量级节点之间通过局域网组成小规模的区块链系统,系统中的每个节点都保存着该系统的区块链式账本,在这种方案中,对于每个轻量级节点集群的区块链系统,云侧都需要提供一个共识实例来参与到其区块生成的共识过程中,也即,需要提供服务,实时跟踪其节点集群内部的区块生成,并及时同步,这种方案对云侧的开销较大。另一方面,该方案无法对云侧所存储区块链数据不可篡改性提供保障。在节点群数据丢失时,云侧完全可以对其上的数据进行伪造和修改,节点集群没有能够对云侧提供的数据进行校验的机制。因此如何降低云侧的开销并且保障每个节点集群内部信息和数据的安全性和隐私性亟待解决。
发明内容
本申请实施例提供一种通信方法,可以实现低开销、高效、可靠、不可篡改地在节点集群内部进行数据传递及共享的目的。
为达到上述目的,本申请实施例提供如下技术方案:
本申请第一方面提供一种通信方法,本申请提供的通信方法可以适用于家庭物联网,也可以适用于需要在节点集群内部安全可信、高可靠地共享信息,同步信息,同时又可以为其他节点集群提供外部访问验证的场景。包括:第三节点接收第一节点发送的第一区块,第一区块可以包括第一区块数据。第三节点接收第二节点发送的第二区块,第二区块可以包括第二区块数据,第一区块和第二区块为不同节点集群维护的区块链中的区块。第三节点根据接收到的第一区块和第二区块生成第三区块,第三区块可以包括第一区块数据、第二区块数据以及第三区块的哈希值,第三区块的哈希值根据第一区块数据和第二区块数据确定。云端对各节点集群发送的区块,即各个节点集群的共享信息进行合并,组建为相互耦合的第三区块形式,通过第三区块的哈希值保证每个节点集群信息的可靠性及不可篡改性,达到低开销、高效、可靠、不可篡改地在节点集群内部进行数据传递及共享的目的。
可选地,结合上述第一方面,在第一种可能的实现方式中,第三节点根据接收到的第一区块和第二区块生成第三区块之后,该方法还可以包括:第三节点向第一节点和第二节点发送第三区块的哈希值。应用本申请所提出的解决方案,可以达到在节点集群体内部高效、轻量的数据传递,同时保证每个节点上仅存储群体内部的相关信息,和少量在验证云侧存储区块正确性时所需的额外信息,比如第三区块的哈希值,从而最大限度地减少了节点的开销。
可选地,结合上述第一方面或第一方面第一种可能的实现方式,在第二种可能的实现方式中,第三区块还可以包括根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为根据第一区块确定的哈希值,第二哈希值为根据第二区块确定的哈希值,该方法还可以包括:第三节点向第一节点和第二节点发送第三哈希值。
可选地,结合上述第一方面或第一方面第一种或第一方面第二种可能的实现方式,在第三种可能的实现方式中,该方法还可以包括:第三节点接收第一节点的第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求第三节点发送第一区块。第三节点验证身份信息与第三节点预先存储的第一节点的身份信息是否匹配。若匹配,则第三节点向第一节点发送第一区块。
可选地,结合上述第一方面第三种可能的实现方式,在第四种可能的实现方式中,该方法还可以包括:第三节点接收第一节点的第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性。第三节点根据第二请求消息,向第一节点发送第二节点的地址和第一验证信息,第一验证信息可以包括第三区块的哈希值,或者第一验证信息可以包括第三哈希值,或者第一验证信息可以包括第三区块的哈希值和第三哈希值。依赖云侧节点的稳定性,也为节点集群内部的信息的可靠性进行了保证。并且,依赖本申请提出的第三区块结构,能将各个集群的数据进行耦合,从而可以通过向其他节点集群索要少量的验证信息的方式来验证云侧提供的数据的正确性。
本申请第二方面提供一种通信方法,可以包括第一节点生成第一区块,第一区块为第一节点所在的第一节点集群维护的区块链中的区块。第一节点向第三节点发送第一区块,第一区块用于第三节点生成第三区块,第三区块可以包括第一区块、第二区块以及第三区块的哈希值,第二区块为第二节点发送的、第二节点所在的第二节点集群维护的区块链中的区块,第三区块的哈希值根据第一区块数据和第二区块数据确定。
可选地,结合上述第二方面,在第一种可能的实现方式中,该方法还可以包括:第一节点接收第三节点发送的第三区块的哈希值。
可选地,结合上述第二方面或第二方面第一种可能的实现方式,在第二种可能的实现方式中,该方法还可以包括:第一节点接收第三节点根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为第三节点根据第一区块确定的哈希值,第二哈希值为第三节点根据第二区块确定的哈希值。
可选地,结合上述第二方面或第二方面第一种或第一方面第二种可能的实现方式,在第三种可能的实现方式中,该方法还可以包括:第一节点向第三节点发送第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求第三节点发送第一区块。
可选地,结合上述第二方面第三种可能的实现方式,在第四种可能的实现方式中,该方法还可以包括:第一节点向第三节点发送第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性。第一节点接收第三节点发送的第一验证信息和第二节点的地址,第一验证信息可以包括第三区块的哈希值,或者第一验证信息可以包括第三哈希值,或者第一验证信息可以包括第三区块的哈希值和第三哈希值。第一节点向第二节点发送第一验证信息。第一节点接收第二节点发送的验证消息。若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的相同,则第一节点确定第一区块未被修改。若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的不同,则第一节点确定第一区块被修改。
可选地,结合上述第二方面或第二方面第一种或第一方面第二种可能的实现方式,在第五种可能的实现方式中,该方法还可以包括第一节点接收第二节点发送的第二验证信息,第二验证信息可以包括第三区块的哈希值,或者第二验证信息可以包括第三哈希值,或者第二验证信息可以包括第三区块的哈希值和第三哈希值。第一节点向第二节点发送验证消息,验证消息携带验证结果,验证结果可以包括第一节点确定接收到的第二验证信息与第一节点本地存储的第三区块的哈希值或第三哈希值相同或者不同。本申请第三方面提供一种云节点,该云节点具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请第三方面提供一种第三节点,该第三节点具有实现上述第一方面或第一方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请第四方面提供一种第一节点,该第一节点具有实现上述第二方面或第二方面任意一种可能实现方式的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
本申请第五方面提供一种第三节点,可以包括:收发单元,用于接收第一节点发送的第一区块,第一区块可以包括第一区块数。收发单元,还用于接收第二节点发送的第二区块,第二区块可以包括第二区块数据,第一区块和第二区块为不同节点集群维护的区块链中的区块。处理单元,处理单元与收发单元耦合,用于根据接收到的第一区块和第二区块生成第三区块,第三区块可以包括第一区块数据、第二区块数据以及第三区块的哈希值,第三区块的哈希值根据第一区块数据和第二区块数据确定。
可选地,结合上述第五方面,在第一种可能的实现方式中,收发单元,还用于在处理单元根据接收到的第一区块和第二区块生成第三区块之后,向第一节点和第二节点发送第三区块的哈希值。
可选地,结合上述第五方面或第五方面第一种可能的实现方式,在第二种可能的实现方式中,第三区块还可以包括根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为根据第一区块确定的哈希值,第二哈希值为根据第二区块确定的哈希值,收发单元,还用于向第一节点和第二节点发送第三哈希值。
可选地,结合上述第五方面或第五方面第一种或第五方面第二种可能的实现方式,在第三种可能的实现方式中,收发单元,还用于接收第一节点的第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求第三节点发送第一区块。处理单元,还用于验证收发单元接收到的身份信息与第三节点预先存储的第一节点的身份信息是否匹配。若处理单元确定匹配,则收发单元还用于向第一节点发送第一区块。可选地,结合上述第五方面第三种可能的实现方式,在第四种可能的实现方式中收发单元,还用于接收第一节点的第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性。处理单元,还用于根据收发单元接收的第二请求消息,向第一节点发送第二节点的地址和第一验证信息,第一验证信息可以包括第三区块的哈希值,或者第一验证信息可以包括第三哈希值,或者第一验证信息可以包括第三区块的哈希值和第三哈希值。
本申请第六方面提供一种第一节点,可以包括:收发单元,还用于接收第一节点的第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性。处理单元,还用于根据收发单元接收的第二请求消息,向第一节点发送第二节点的地址和第一验证信息,第一验证信息可以包括第三区块的哈希值,或者第一验证信息可以包括第三哈希值,或者第一验证信息可以包括第三区块的哈希值和第三哈希值。
可选地,结合上述第六方面,在第一种可能的实现方式中,收发单元,还用于接收第三节点发送的第三区块的哈希值。
可选地,结合上述第六方面或第六方面第一种可能的实现方式,在第二种可能的实现方式中,收发单元,还用于接收第三节点根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为第三节点根据第一区块确定的哈希值,第二哈希值为第三节点根据第二区块确定的哈希值。
可选地,结合上述第六方面或第六方面第一种或第一方面第二种可能的实现方式,在第三种可能的实现方式中,收发单元,还用于:向第三节点发送第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求第三节点发送第一区块。接收第三节点发送的第一区块。
可选地,结合上述第六方面第三种可能的实现方式,在第四种可能的实现方式中,收发单元,还用于:向第三节点发送第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性。接收第三节点发送的第一验证信息和第二节点的地址,第一验证信息可以包括第三区块的哈希值,或者第一验证信息可以包括第三哈希值,或者第一验证信息可以包括第三区块的哈希值和第三哈希值。向第二节点发送第一验证信息。接收第二节点发送的验证消息。处理单元,还用于:若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的相同,则确定第一区块未被修改。若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的不同,则确定第一区块被修改。
可选地,结合上述第六方面或第六方面第一种或第一方面第二种可能的实现方式,在第五种可能的实现方式中,收发单元,还用于:接收第二节点发送的第二验证信息,第二验证信息可以包括第三区块的哈希值,或者第二验证信息可以包括第三哈希值,或者第二验证信息可以包括第三区块的哈希值和第三哈希值。向第二节点发送验证消息,验证消息携带验证结果,验证结果可以包括第一节点确定接收到的第二验证信息与第一节点本地存储的第三区块的哈希值或第三哈希值相同或者不同。
本申请第七方面提供一种第三节点,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该云节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该云节点执行如上述第一方面或第一方面任意一种可能实现方式的通信方法。
本申请第八方面提供一种第一节点,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该终端节点运行时,该处理器执行该存储器存储的该计算机执行指令,以使该终端节点执行如上述第二方面或第二方面任意一种可能实现方式的通信方法。
本申请第九方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的通信方法。
本申请第十方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的通信方法。
本申请第十一方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面或第一方面任意一种可能实现方式的通信方法。
本申请第十二方面提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第二方面或第二方面任意一种可能实现方式的通信方法。
本申请第十三方面提供一种芯片系统,该芯片系统包括处理器,用于支持第三节点实现上述第一方面或第一方面任意一种可能实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存第三节点必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十四方面提供一种芯片系统,该芯片系统包括处理器,用于支持第一节点实现上述第二方面或第二方面任意一种可能实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存第一节点必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请第十五方面提供一种通信系统,包括第三节点和第一节点,该第三节点为上述第一方面或第一方面任意一种可能的实现方式中所描述的第三节点。该第一节点为上述第二方面或第二方面任意一种可能的实现方式中所描述第一节点。
本申请实施例第三节点对各节点集群发送的区块,即各个节点集群的共享信息进行合并,组建为相互耦合的第三区块形式,第三区块前后相连组成区块链结构,同时通过第三哭泣的哈希值保证每个节点集群信息的可靠性及不可篡改性,达到低开销、高效、可靠、不可篡改地在节点集群内部进行数据传递及共享的目的。
附图说明
图1为一种区块链链式结构示意图;
图2为通信方法的一种场景示意图;
图3为通信方法的另一种场景示意图;
图4为本申请提供的通信系统的组成结构示意图;
图5为本申请提供的一种通信方法500的流程示意图;
图6为本申请提供的综合区块的结构示意图;
图7为本申请提供的另一种通信方法700的流程示意图;
图8为本申请提供的一种通信方法适用场景的示意图;
图9为本申请提供的另一种通信方法900的流程示意图;
图10为本申请实施例提供的一个通信设备的硬件结构示意图;
图11为本申请实施例提供的第三节点的结构示意图;
图12为本申请实施例提供的另一个通信设备的硬件结构示意图;
图13为本申请实施例提供的第一节点的结构示意图;
图14为本申请实施例提供的家庭物联网场景下云节点和终端节点的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。本领域普通技术人员可知,随着技术的发展和新场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
本申请实施例提供一种通信方法、节点及存储介质,云节点根据接收到的不同节点集群的共享信息组建综合区块,达到低开销、高效、可靠、不可篡改地在节点群内部进行数据传递及共享的目的,以下分别进行详细说明。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块。在本申请中出现的对步骤进行的命名或者编号,并不意味着必须按照命名或者编号所指示的时间/逻辑先后顺序执行方法流程中的步骤,已经命名或者编号的流程步骤可以根据要实现的技术目的变更执行次序,只要能达到相同或者相类似的技术效果即可。本申请中所出现的模块的划分,是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些端口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本申请中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分布到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本申请方案的目的。
需要说明的是,本申请实施例中,“预先定义”或者“预设”表示可以通过在设备中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。比如预先定义可以是指协议中定义的。
还需要说明的是,本申请实施例中,名词“网络”和“系统”经常交替使用,但本领域的技术人员可以理解其含义。信息(information),信号(signal),消息(message)有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
还需要说明的是,在本申请实施例中,“上报”和“反馈”经常交替使用,但本领域的技术人员可以理解其含义。因此,在本申请实施例中,在不强调其区别时,其所要表达的含义是一致的。
为了方便理解本申请,在描述本申请的方法之前,首先在此简单介绍一下区块链网络中涉及的主要专业术语。
区块链账本:指区块链系统中节点之间共享的信息,以“账本”的形式存储在每一个节点上,每个节点上的账本信息都是一致的;
交易(transaction):指任何能够记录的活动或事件,例如医疗事件,身份管理,文档证明,食品来源追踪,转账付款,投票等。本申请中,每个交易发生时,会生成该交易对应的交易记录。交易可以是信息,可以是数据,或者可以是消息等形式不限。例如交易是记录设备使用的信息,例如是使用设备所花费的金钱交易,例如交易是一个消息,例如用于通知关闭设备的消息,对此本方案不做限制。
区块链:可以是在分布式数据库中由多个对等的区块链节点组共同维护的链式数据结构。每个区块链存储一个或多个合约的所有交易记录。
区块(block):区块链中的数据单元,每个区块记录一个或多个经过背书的交易记录。多个区块按照发生顺序串联就得到区块链。可选地,区块链中的每个区块通常可以包括前一区块的哈希值,时间戳和交易记录。
区块链节点:参与维护区块链的对等节点,每个区块链节点上都存储有该区块链的所有交易记录。
共识(consensus):区块链是一个历史可追溯、不可篡改,解决多方互信问题的分布式(去中心化)系统。分布式系统必然面临着一致性问题,而解决一致性问题的过程称之为共识。
共识节点:目前通过共识算法实现共识,执行共识算法的节点被称为共识节点。
区块链技术可用于在多个节点间进行数据和信息的同步。
大多数区块链系统采取去中心化的系统架构形式,即所有的参与节点均对等,共同负责维护统一的区块组织结构,所记录的数据也会在所有节点上对等地共享。在区块组织结构方面,多数区块链系统采取如图1所示的区块组织结构。在这种组织结构中,区块是链式结构的基本数据单元,它聚合了所有交易相关信息。具体地,每个区块包含区块头和区块主体两部分,其中区块头主要由父区块哈希值(previous hash)、时间戳(time stamp)、默克尔树(merkle tree)等信息构成,而区块主体一般是一个包含一串交易的列表。每个区块中的区块头所保存的父区块的哈希值,便唯一地指定了该区块的父区块,在区块间构成了逻辑上的首尾关系。每个区块的生成是由参与到区块链系统中的节点通过一定的共识算法完成的,其中共识算法可以理解为一种特定的协议,能够使各个节点进行协调,从而生成包含特定交易(即需要共享的信息)的区块,同时,生成的区块会被广播到区块链系统中的每一个参与节点处,每个参与节点都会在自己处维护一个首尾相连的链式结构,从而使得节点间可以互相验证记录的正确性和完整性。具体地,如图1所示,除创世区块(block1)以外的每个区块中,比如图1中所示的,block n-1和block n首先会对其所连接的上一个区块的哈希值进行指明,从而确保与上一个区块的连接,同时也保证后一个区块能够验证前一个区块内容的不可改动性;其次是该区块产生的时间戳(time stamp)、随机数(nonce)、区块内容的索引(merkle root)等。最后会在区块中放入一定数目的交易(tranction),一定数据的交易即信息的载体,共同组成完整的区块链中的区块结构。
但是在这种方案中,所有节点为对等的参与者,每个节点都需要参与到区块链的生成与维护中,对节点的处理能力及通信能力的要求较高,同时整体系统同步区块的通信开销较大,此外所有节点都需要维护完整的区块链账本,在本申请中,将这样的节点称为全节点。这种方案一方面对于节点的存储能力有较大的要求;同时节点上会保存许多实际上与该节点无关的信息,从而造成信息的冗余,也在一定程度上引入了数据隐私问题。
随着区块链技术的进步以及应用场景的需求,逐渐出现了轻量级节点的概念。轻量级节点相对于全节点的区别是,仅存储部分区块链数据,由此减轻对节点硬件设备的要求。现有的在轻量级节点群体之间进行信息和数据的同步的解决方案还有一种全云侧的方案。其具体思路为,在系统中引入较为稳定、性能较高的云端服务节点(以下简称为云节点),由云节点进行中心化的信息和数据的管理工作。轻量级节点通过与云端进行身份验证和消息传递,以达到与其他轻量级节点间进行信息和数据的传递的目的,其系统组织方式如图2所示,在这种场景中,云节点存储、管理全量的信息,而每个轻量节点仅存储自己所需的信息,并且仅与云端进行通信以获取或更新信息。节点的权限管理、相关数据的可靠性和隐私保护完全依赖云完成。举例说明,拥有多个轻量节点,并需要在轻量节点之间共享信息(如设置偏好、权限等)的用户需要注册一个业务账号,比如家庭A可以注册一个账户,家庭A中包括多个轻量级节点,家庭B可以注册一个账户,家庭B可以包括多个轻量级节点,家庭A和家庭B可以分别连接业务供应商提供的云服务器进行身份验证和设备注册。完成新设备的注册后,需要从云端拉取与业务账号相关的信息并进行同步。在这种架构下,各个轻量级节点的信息都由业务供应商在云端组织并维护,所有轻量级节点的信息更新及拉取都需要经过云端。
但是在这种方案中,轻量级节点的所有信息修改、更新、获取以及与其他节点同步信息的动作完全依赖广域网内的云端节点,广域网内的通信成本较高,且在断网情况下局域网内的节点也无法互相同步数据。云侧对于信息及数据的集中化管理容易受到单点攻击,同时轻量级节点数据和信息的隐私性也难以得到保护。
此外,还有一种基于端云结合的区块链的轻量级节点群数据同步方案。在该方案中,有较强相关性的轻量级节点(如一个家庭内部的所有物联网节点)之间通过局域网组成小规模的区块链系统,系统中的每个节点都保存着该系统的区块链式账本,如图3所示的场景下,包括家庭A和家庭B,其中家庭A中的所有物联网节点可以看做一个轻量级节点群,家庭B中的所有物联网节点可以看做一个轻量级节点群,以家庭A为例,家庭A中的每个节点都保存着该系统的区块链式账本,即A家智能网关,物联网设备1以及物联网设备2都保存有相同的区块链式账本。对于每个轻量级节点群,云侧均提供一个实例参与到其区块链账本的区块的生成共识过程中,也就是说,对于家庭A轻量级节点群以及家庭B轻量级节点集群,云侧分别提供一个实例参与到其区块链账本的区块的生成共识过程中。云侧从而将所有小区块链系统中的区块链账本并列地存储在云侧,提供一定的可靠性保证。
具体地,轻量节点群内在进行信息的交流时,会将相应的信息记录在本节点群内部的区块链上,同时,云端也需要提供相应的接口,供轻量节点群将对应的区块链的区块及时更新上传至云端进行保存。在该方案中,轻量节点群全量上传其区块链信息,云上将该信息原封不动地进行存储,供轻量节点群在需要的时候拉取。
但是在这种方案中,对于每个轻量级节点群的区块链系统,云侧都需要提供一个共识实例来参与到其区块生成的共识过程中,也即,需要提供服务,实时跟踪其节点群内部的区块生成,并及时同步,对云侧的开销较大。另一方面,由于云侧仅是以简单的并列形式对轻量级节点群的数据进行组织,多个链相互独立,无法对云侧所存储区块链数据不可篡改性提供保障。在节点群数据丢失时,云侧完全可以对其上的数据进行伪造和修改,节点群没有能够对云侧提供的数据进行校验的机制。同时,在该方案中,轻量节点群上传数据时也并没有明确的对数据进行加密的机制,云侧对轻量节点群的信息进行备份时,有可能会泄露数据的隐私。
为了解决上述问题,本申请实施例提供一种通信方法。本申请提供的通信方法可以适用于家庭物联网,也可以适用于需要在轻量级节点群体内部安全可信、高可靠地共享信息,同步信息,同时又可以为其他轻量级节点群体提供外部访问验证的场景。下面以家庭物联网为例,对本申请提供的通信方法所适用的通信系统进行具体的介绍。如图4所示,为本申请实施例提供的通信系统的组成结构示意图,具体地,本申请采用了端云结合的系统架构。该系统可以包括:云节点,第一节点集群以及第二节点集群。其中,第一节点集群和第二节点集群可以是具有较强相关性的一些节点。比如,如图4所示,在家庭物联网中,单一家庭内部的物联网节点群体可以视为第一节点集群或第二节点集群,为了便于说明,假设A家庭为第一节点集群,B家庭为第二节点集群。在节点集群内部的局域网中组网形成小型区块链系统,以家庭A为例,家庭A中的每个节点都保存着该系统的区块链式账本,即A家智能网关,物联网设备1以及物联网设备2都保存有相同的区块链式账本。小型区块链系统内部产生区块后,将由对应的节点集群内部的较为可信稳定的节点(例如家庭物联网系统中的智能网关),对区块进行加密后推给云侧特殊共识实例,云侧共识实例将所有小型区块链系统上传的区块信息打包成为一个大区块,从而组成各小型区块链区块数据强耦合的矩阵式区块链(block matrix)。通过矩阵式区块链中不同小型区块链数据的强耦合性,保证每个小型区块链数据的不可篡改性。需要说明的是,第一节点集群和第二节点集群仅仅是为了便于说明,并不代表对节点集群数目的限制,本申请提供的通信系统当然可以包括多个节点集群。
以上对本申请提供的通信系统进行了介绍,下面将对组建该通信系统的方法,以及基于该通信系统,云节点与节点集群之间的通信方法进行说明。
图5为本申请提供的一种通信方法500的流程示意图。
如图5所示,本申请实施例提供的一种通信方法500,可以包括如下步骤:
501、第三节点接收第一节点发送的第一区块。
第三节点可以是云节点或其他稳定的节点,云节点也可以称为云上单一实例、云端实例,云实例等等,本申请实施例并不对云节点的名称进行具体的限制,该云节点位于云上,较为稳定,可以负责与多个节点集群进行交互。第一节点可以是第一终端节点,第一终端节点所在的集群为第一节点集群,在本申请实施例中,有较强相关性的轻量级节点可以划分为一个节点集群。比如,共同执行一个相同任务的所有节点可以划分为一个节点集群,或者在家庭物联网系统中,一个家庭内部的所有物联网节点看做是一个节点集群。第三节点接收第一终端节点发送的第一区块,该第一区块包括第一共享数据,第一共享数据为第一终端节点所在的第一节点集群的共享数据。举例说明,在家庭物联网系统中,假设第一节点集群为A家庭中的全部物联网节点,其中第一终端节点可以是A家庭网关,或者该第一终端节点是预先指定的A家庭中的某个节点,或者该第一终端节点是A家庭中的全部物联网节点根据某个共识协议选举出的一个节点,本申请实施例并不对如何选举第一终端节点以及采取何种共识协议进行限制。该第一终端节点负责搜集第一节点集群中的共享数据,并将该共享数据组建为第一区块,并将该第一区块发送给第三节点。
502、第三节点接收第二节点发送的第二区块。
第二区块包括第二共享数据,第二共享数据为第二节点所在的第二节点集群的共享数据,第二节点可以是第二终端节点。举例说明,在家庭物联网系统中,假设第二节点集群为B家庭中的全部物联网节点,其中第二终端节点可以是B家庭的网关,或者该第二终端节点是预先指定的B家庭中的某个节点,或者该第一终端节点是B家庭中的全部物联网节点根据某个共识协议选举出的一个节点,本申请实施例并不对如何选举第二终端节点以及采取何种共识协议进行限制。该第二终端节点负责搜集第二节点集群中的共享数据,并将该共享数据组建为第二区块,并将该第一区块发送给第三节点。
503、第三节点根据接收到的第一区块和第二区块生成第三区块。
在本申请实施例中,有时也将第三区块称为综合区块,该综合区块包括第一区块、第二区块以及第三区块的哈希值,第三区块的哈希值根据第一区块数据和第二区块数据确定。需要说明的是,本申请列举的第一区块和第二区块并不代表对数量的限制,仅仅是为了说明第三节点可以根据接收到的不同节点集群的共享数据组建综合区块,举例说明,第三节点搜集各个节点集群发送的区块,一个区块中包括一个节点集群的共享信息,第三节点根据各个节点集群的共享信息生成综合区块,综合区块也可以称为耦合区块(block all)。具体的,第三节点可以在第一预设时间内将收集到的不同节点集群的共享信息组建为第一综合区块,在第二预设时间内将收集到的不同节点集群的共享信息组建为第二综合区块,多个综合区块可以共同组成区块链,当然本申请实施例提到的第一综合区块和第二综合区块仅仅是为了举例说明,并不代表对云端可以组建的综合区块的数目的限制,第三节点节点可以在不同的预设时间段内将收集到的各个节点集群发送的共享信息分别组建综合区块。示例性的,图6给出了一种综合区块的结构示意图,如图6所示,该综合区块可以包括三部分:第一部分为该综合区块的上一个综合区块的哈希值(pre block all hash),上一个综合区块的哈希值为了保证综合区块之间首尾相连的逻辑关系,第二部分是预设时间段内所有节点集群上传的区块信息,第三部分为该综合区块上所有信息的哈希值(block allhash)。
需要说明的是,图6的综合区块的结构并不是唯一的结构,比如该综合区块还可以包括每一个节点集群的共享信息的哈希值,比如步骤501提到的第一区块的哈希值,这里称为第一哈希值,以及步骤502中提到的第二区块的哈希值,这里称为第二哈希值,该综合区块可以包括每一个节点集群的共享信息的哈希值,在这个例子中,即该综合区块可以包括第一哈希值和第二哈希值。再比如该综合区块还可以包括各个节点集群的共享信息的哈希值的哈希值,举例说明,该综合区块还可以包括第三哈希值,在上述提到的例子中,第三哈希值是第一哈希值和第二哈希值的哈希值。
在一个具体的实施方式中,上述提到的综合区块的第一部分可以看作综合区块的区块头部分,此部分包括pre block all hash,利用该值来指定该区块的父区块,并同时也保证父区块内容不可被改动。同时也包含该综合区块高度、时间戳等信息。第二部分可看作综合区块的区块内容部分,此部分包含多个节点集群的区块及其哈希值,具体地,由两个列表组成,分别是区块信息列表(block info list),该列表中放置节点集群上传的区块信息,即节点集群的共享信息;以及区块哈希列表(block hash list),该列表与blockinfolist对应,放置着区块信息的哈希值,保证区块信息的内容不可被改动。第三部分可以看作哈希值部分,此部分可以包含两个哈希值,首先是对于区块内容部分中的block hash list的哈希值,哈希列表哈希(hash list hash),通过该值保证block hash list的不可改动,进而保证block info list的不可改动;另一方面则包括该综合区块全部内容的哈希值(block all hash),作为对本综合区块内容不可改性的保证,以及与下一个综合区块相连的依据。
由图5对应的实施例可知,第三节点对各节点集群发送的区块,即各个节点集群的共享信息进行合并,组建为相互耦合的综合区块形式,综合区块前后相连组成区块链结构,同时通过综合区块的哈希值保证每个节点集群信息的可靠性及不可篡改性。
图5对第三节点如何根据接收到的各个节点集群的共享信息组建综合区块的过程以及综合区块可能的结构进行了描述,下面将以第三节点为云节点,第一节点为终端节点为例,针对各个节点集群如果生成包含该节点集群共享信息的区块,节点集群和第三节点如何交互以及如何验证第三节点中获取的数据的可靠性介绍。
首先以一个节点集群为例,对节点集群如何生成包含该节点集群的共享信息的区块,以及与云节点交互的过程进行描述。
图7为本申请提供的另一种通信方法700的流程示意图。
如图7所示,本申请实施例提供的另一种通信方法700,可以包括如下步骤:
701、第一终端节点接收第一信息。
第一终端节点可以是该第一终端节点所在的节点集群中预先指定的某个节点,或者该第一终端节点是该第一终端节点所在的节点集群中的节点根据某个共识协议选举出的一个节点,比如,在家庭物联网系统中,该第一终端节点可以是家庭网关,或者该第一终端节点是预先指定的家庭中的某个物联网节点,或者该第一终端节点是家庭中的全部物联网节点根据某个共识协议选举出的一个节点。第一终端节点负责搜集第一节点集群中的共享信息,以家庭物联网为例,举例说明,比如家庭物联网系统中需要添加一个设备A2,该设备A2可以首先通过在已在家庭区块链系统中的另一设备A1处进行鉴权所需的信息的提供,即A2向A1发送鉴权所需的信息。对应的A1设备会将A2提供的相关信息打包成为一个交易,并按照家庭内部区块链系统的具体采用的共识算法的规则发给第一终端节点。
702、第一终端节点将搜集到的共享信息组建为第一区块。
第一终端节点可以每隔预设的时间,将搜集到的共享信息组建为区块,比如在步骤701的例子中,第一终端节点在第一预设时间段内,搜集到A1发送的交易,该交易用于通知第一终端节点A2加入区块链,第一终端节点确定该交易为共享信息,第一终端节点将该交易以及其他在第一预设时间段内搜集到的共享信息打包形成第一区块。第一终端节点可以每隔预设时间将该预设时间段内搜集到的共享信息打包为一个区块,在本申请实施例中,打包有时也可以称为组建,在不强调二者的区别时,本领域的技术人员应当理解二者表达相同的意思。
在一个具体的实施方式中,该第一区块可以由三部分组成,第一部分为上一个区块的哈希值,第二部分为该第一区块所包含的交易列表,第三部分为交易列表的哈希值以及对哈希值的签名。
703、第一终端节点广播第一区块。
第一终端节点组建完成第一区块后,将该第一区块广播到该第一终端节点所在的节点集群中的其他节点,在上述例子中,即第一终端节点将该第一区块同步至家庭物联网系统中的每个物联网节点处,每个家庭物联网节点相应地保存该第一区块。
704、其他节点落盘第一区块中包括的信息。
这里的其他节点可以指第一终端节点所在的节点集群中除第一终端节点之外的节点,其他节点接收到第一区块后,落盘第一区块中包括的信息,举例说明,在步骤701的例子中,该第一区块包括A2加入区块链的交易,其他节点接收到第一区块后,对A2节点的信息进行更新。当A2节点也接收到该第一区块后,A2节点确定已经加入该家庭物联网系统。
705、第一终端节点向云节点发送第一区块。
在一个具体的实施方式中,第一终端节点可以对该第一区块进行加密,并向云节点发送第一加密区块,本申请实施例并不对加密算法进行具体的限制。
706、云节点根据接收到的第一共享数据和第二共享数据组建综合区块。
步骤706可以参阅图5对应的方法500中的步骤503进行理解,此处不再重复赘述。其中方法700中的第一终端节点相当于方法500中的第一终端节点,方法700中的第一区块相当于方法500中的第一区块,方法700中的第一区块包括的共享信息相当于方法500中的第一共享信息。第二终端节点搜集第二终端节点所在的节点集群中的共享信息并组建第二区块,并将该第二区块发送给云节点的过程与上述步骤701至步骤705相同,对此不再重复赘述。
707、云节点向第一终端节点发送第一消息。
在一个具体的实施方式中,该第一消息携带上述步骤706中提到的综合区块的哈希值。
在一个具体的实施方式中,该第一消息还可以携带第一哈希值和第二哈希值对应的哈希值,其中,第一哈希值为根据预设算法确定的第一共享数据对应的哈希值,第二哈希值为根据预设算法确定的第二共享数据对应的哈希值。需要说明的,这里的第一哈希值和第二哈希值并不是对数目的限制,比如云节点在预设时间段内可能接收到N个区块,换句话说,云节点在预设时间段内可能接收到N个节点集群发送的区块,即云节点在预设时间段内可能接收到N个节点集群发送的各自共享信息,其中N为大于0的整数,则该第一消息携带第一哈希值,第二哈希值,……,第N哈希值对应的哈希值。举例说明,云节点在预设时间段内收到4个节点集群发送的区块,其中第一区块包括共享信息A,A对应的哈希值为A1,第二区块包括共享信息B,B对应的哈希值为B1,第三区块包括共享信息C,C对应的哈希值为C1,第四区块包括共享信息D,D对应的哈希值为D1,则云节点根据A,B,C,D组建综合区块,云节点通过计算确定A1,B1,C1,D1对应的哈希值为E1,则云节点分别向4个节点集群发送E1。
在一个具体的实施方式中,还可以包括708、第一终端节点保存第一消息中携带的综合区块哈希值或者第三哈希值。
需要说明的是,方法700中的步骤703和705在实际应用中,执行顺序不区分先后,比如可以先执行步骤705,再执行步骤703。
对应于方法700,图8给出了一种场景示意图,如图8所示,在家庭物联网系统中,将家庭物联网系统中需要变动的共享信息包装为家庭区块链系统内部的“交易”,例如,家庭物联网系统中需要添加一个设备A2,该设备A2可以首先通过在已在家庭区块链系统中的另一设备A1处进行鉴权所需的信息的提供,对应的A1设备会将相关信息打包成为一个交易,并按照家庭内部区块链系统的具体采用的共识算法的规则发给指定的节点,由指定的节点对该“加入链交易”进行打包形成区块,并将区块同步至每个节点处,每个节点相应地在本节点处对A2节点的信息进行更新。进一步,家庭内部某指定节点(可根据具体规则指定,一般可为智能网关)与云端进行交互,具体的,家庭内部某指定节点将加密区块上传至云端,云端组成综合区块结构后返回相关信息,比如该相关信息包括该综合区块的哈希值。
方法700对节点集群如何生成包含该节点集群的共享信息的区块,以及与云节点交互的过程进行了描述,下面针对当某个节点集群的全量数据丢失时,需要从云端获取之前备份在云端的数据的场景,以及如何验证云端获取的数据的可靠性进行介绍。
图9为本申请提供的另一种通信方法900的流程示意图。
如图9所示,本申请实施例提供的另一种通信方法900,可以包括如下步骤:
901、云节点接收第一终端节点的第一请求消息。
在方法900中,以第一终端节点所在的第一节点集群的全量数据丢失的场景为例进行说明,该第一请求消息中携带能够证明该第一终端节点身份的信息,比如该第一消息可以携带签名信息。该第一请求消息用于请求云节点发送第一共享数据,第一共享信息为第一终端节点预先备份在云端的数据。
902、云节点验证身份信息。
云节点接收到第一请求消息后,将第一终端节点发送的身份信息与云节点预先存储的第一终端节点的身份信息进行对比。云节点预先存储的第一终端节点的身份信息可以是第一终端节点向云节点发送共享信息时发送的身份信息。
903、若匹配,则云节点向第一终端节点发送第一共享数据。
若匹配,则云节点向第一终端节点发送第一终端节点预先备份在云端的数据,即第一终端节点所在的节点集群的共享信息。举例说明,第一终端节点在全量数据丢失之前,向云节点发送了第一区块,第一区块中包括节点集群的第一共享信息,则当云节点匹配身份信息通过时,向第一终端节点发送第一共享数据。需要说明的是,在实际应用中,第一终端节点在全量数据丢失之前可能向云节点发送了多次共享数据,则当云节点匹配身份信息通过后,可以根据实际需求向第一终端节点发送第一终端节点备份在云端的全部或部分数据。举例说明,比如第一终端节点在全量数据丢失之前,向云节点发送了A区块,B区块,C区块和D区块,其中,A、B、C、D四个区块分别包括了第一终端节点所在的节点集群在不同时间段内的共享信息,则若匹配通过时,云节点可以根据第一终端节点的实际需求将将A区块,B区块,C区块和D区块包括的数据全部或者部分发送给第一终端节点。
在一个具体的实施方式中,当第一终端节点发送的区块是加密区块时,还可以包括904、第一终端节点用本地密钥解密接收到的区块。
在一个具体的实施方式中,在一些具体的应用场景中,比如当第一终端节点集群对数据的可靠性要求较高时,还需要对从云节点获取的数据进一步验证时,还可以包括905、第一终端节点向云节点发送第二请求消息。
第二请求消息用于请求云节点发送第一验证信息,第一验证信息用于第一终端节点验证第一共享数据的可靠性。
906、云节点根据第二请求消息向第一终端节点发送第二终端节点的地址和第一验证信息。
第一验证信息包括综合区块的哈希值,或者第一验证信息包括第三哈希值,或者第一验证信息包括综合区块的哈希值和第三哈希值。下面针对这三种情况分别进行说明。
在一个具体的实施方式中,云节点根据第二请求消息向第一终端节点发送第二终端节点的地址和综合区块的哈希值。云节点接收到第一终端节点发送的第二请求消息时,第一终端节点预先存放在云节点的信息可能被云节点存放在云节点的不同的综合区块上,当第一终端节点需要验证从云节点处获取的信息的可靠性时,云节点将该信息所在的综合区块的哈希值以及该综合区块上除第一终端节点之外的其他终端节点的地址发送给第一终端节点。
举例说明,云节点将A区块和B区块组建为第一综合区块,其中A区块包括第一终端节点所在的节点集群的第一共享信息,B区块包括第二终端节点所在的节点集群的第一共享信息,云节点将C区块和D区块组建为第二综合区块,其中C区块包括第一终端节点所在的节点集群的第二共享信息,D区块包括第三终端节点所在的节点集群的第一共享信息,云节点将E区块和F区块和G区块组建为第三区块,其中其中E区块包括第一终端节点所在的节点集群的第三共享信息,F区块包括第二终端节点所在的节点集群的第二共享信息,G区块包括第三终端节点所在的节点集群的第二共享信息,则云节点接收到第二请求消息时,为了使第一终端节点验证获取的A区块包括的共享信息,云节点向第一终端节点发送第二终端节点的地址以及第一综合区块的哈希值,为了使第一终端节点验证获取的C区块包括的共享信息,云节点向第一终端节点发送第三终端节点的地址以及第二综合区块的哈希值,为了使第一终端节点验证获取的E区块包括的共享信息,云节点向第一终端节点发送第二终端节点的地址和第三综合区块的哈希值,或者向第一终端节点发送第三终端节点的地址和第三综合区块的哈希值。在具体的应用中,云节点可以通过多次消息向第一终端节点发送上述验证信息,也可以通过一次消息向第一终端节点发送上述验证信息。需要说明的是,上述提到的A区块,B区块,C区块、D区块、E区块、F区块、G区块,第一综合区块,第二综合区块,第三综合区块是为了区分不同的区块,便于说明验证数据可靠性需要的验证信息,不代表数量的限制。
在一个具体的实施方式中,云节点根据第二请求消息向第一终端节点发送第二终端节点的地址和第三哈希值。云节点接收到第一终端节点发送的第二请求消息时,第一终端节点预先存放在云节点的信息可能被云节点存放在云节点的不同的综合区块上,当第一终端节点需要验证从云节点处获取的信息的可靠性时,云节点将该信息所在的综合区块包括的第三哈希值以及该综合区块上除第一终端节点之外的其他终端节点的地址发送给第一终端节点。其中第三哈希值可以参阅方法500中提到的各个节点集群的共享信息的哈希值的哈希值,hash list hash以及方法700中提到的第一哈希值和第二哈希值对应的哈希值进行理解,此处不再重复赘述。
对应于上述步骤906,还可以包括907、第一终端节点向第二终端节点发送第一验证信息。
908、第二终端节点验证接收到的第一验证信息与第二终端节点本地存储的信息是否一致。
第二终端节点在将第二终端节点所在的节点集群的共享信息组建为区块发送至云节点后,也会接收到云节点发送的该区块所在的综合区块的哈希值或者第一哈希值和第二哈希值对应的哈希值,具体的,可以参阅方法700中步骤707进行理解。第二终端节点接收到第一终端节点发送的第一验证信息后,将该第一验证信息与本地存储的信息进行对比,比如该第一验证信息为第一综合区块的哈希值,其中第一综合区块包括第一区块和第二区块,其中第一区块是第一终端节点所在的节点集群的第一共享信息,第二区块是第二终端节点所在的节点集群的第一共享信息,第二终端节点接收到第一区块发送的第一综合区块的哈希值后,验证该值与本地存储的第一综合区块的哈希值是否一致。
909、第一终端节点接收第二终端节点发送的验证消息。
若验证消息指示第二终端节点确定接收到第一验证信息与第二终端节点本地存储的相同,则第一终端节点确定第一共享数据未被修改;
若验证消息指示第二终端节点确定接收到第一验证信息与第二终端节点本地存储的不同,则第一终端节点确定第一共享数据被修改。
需要说明的是,在方法900中,第一终端节点可能从云节点处获得多个节点的地址,则第一终端节点可以向多个节点发送第一验证信息,当第一终端节点获取到足够多的反馈验证信息时,第一终端节点确定从云端获取的数据未被修改过。比如在步骤906中举的例子中,为了使第一终端节点验证获取的E区块包括的共享信息,云节点向第一终端节点发送第二终端节点的地址和第三综合区块的哈希值,或者向第一终端节点发送第三终端节点的地址和第三综合区块的哈希值。则第一终端节点可以向第二终端节点和第三终端节点都发送第一验证信息,当第一终端节点接收到第二终端节点和第三终端节点发送的反馈验证信息都指示与本地存储的信息一致时,第一终端节点确定从云端获取的数据未被修改过。
本申请提供的方法可应用于存在多个轻量节点群体的场景,每个节点群体内部需要高效的信息共享和同步机制,且每个节点群体之间需要保证信息的隐私性及隔离性的各种场景之下,应用场景包括且不限于:家庭物联网节点间信息共享和同步、一定区域范围内视频监控信息的共享和同步系统等。应用本申请所提出的解决方案,可以达到在轻量节点群体内部高效、轻量的数据传递,同时保证每个节点集群上的每个节点仅存储集群内部的相关信息,和少量在验证云侧存储区块正确性时所需的额外信息,从而最大限度地减少了轻量节点的开销。同时,依赖云侧节点的稳定性,也为轻量节点群内部的信息的可靠性进行了保证。并且,依赖本申请提出的综合区块以及区块链,能将各个轻量节点群的数据进行耦合,从而可以通过向其他节点群索要少量的验证信息的方式来验证云侧提供的数据的正确性以及可靠性。另一方面,由于每个节点群的信息在上传云侧时经过了加密,同时节点群无法从云侧获取其他节点群的信息,从而保证了节点群信息的隐私性和安全性。
上述主要从第一节点和第三节点之间交互的角度对本申请实施例提供的方案进行了介绍。具体的在家庭物联网场景下,以第一节点为终端节点,第三节点为云节点为例进行了说明。可以理解的是,上述第三节点和第一节点为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
从硬件结构上来描述,图4至图9中的第一节点以及第三节点,终端节点以及云节点,可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能模块,本申请实施例对此不作具体限定。
例如,第三节点可以通过图10中的通信设备来实现。图10所示为本申请实施例提供的通信设备的硬件结构示意图。包括:通信接口1001和处理器1002,还可以包括存储器1003。
通信接口1001可以使用任何收发器一类的装置,用于与其他设备或通信网络通信。
处理器1002包括但不限于中央处理器(central processing unit,CPU),网络处理器(network processor,NP),专用集成电路(application-specific integratedcircuit,ASIC)或者可编程逻辑器件(programmable logic device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。处理器1002负责通信线路1004和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。存储器1003可以用于存储处理器1002在执行操作时所使用的数据。
存储器1003可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically er服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1004与处理器1002相连接。存储器1003也可以和处理器1002集成在一起。如果存储器1003和处理器1002是相互独立的器件,存储器1003和处理器1002相连,例如存储器1003和处理器1002可以通过通信线路通信。通信接口1001和处理器1002可以通过通信线路通信,通信接口1001也可以与处理器1002直连。
通信线路1004可以包括任意数量的互联的总线和桥,通信线路1004将包括由处理器1002代表的一个或多个处理器1002和存储器1003代表的存储器的各种电路链接在一起。通信线路1004还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本申请不再对其进行进一步描述。
在一个具体的实施方式中,该第三节点,可以包括:
存储器,用于存储计算机可读指令。
和与存储器耦合的通信接口,通信接口用于执行以下操作:
接收第一节点发送的第一区块,第一区块包括第一区块数据。
接收第二节点发送的第二区块,第二区块包括第二区块数据。
还包括,与存储器和通信接口耦合的处理器,用于根据通信接口接收到的第一区块和第二区块生成第三区块,第三区块可以包括第一区块数据、第二区块数据以及第三区块的哈希值,第三区块的哈希值根据第一区块数据和第二区块数据确定。
在一个具体的实施方式中,通信接口,还用于在处理器根据接收到的第一区块和第二区块生成第三区块之后,向第一节点和第二节点发送第三区块的哈希值。
在一个具体的实施方式中,第三区块还可以包括根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为根据第一区块确定的哈希值,第二哈希值为根据第二区块确定的哈希值,通信接口还用于,向第一节点和第二节点发送第三哈希值。
在一个具体的实施方式中,通信接口,还用于接收第一节点的第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求第三节点发送第一共享数据;
处理器,还用于验证通信接口接收到的身份信息与第三节点预先存储的第一节点的身份信息是否匹配;
若处理器确定匹配,则通信接口还用于向第一节点发送第一区块。
在一个具体的实施方式中,通信接口,还用于接收第一节点的第二请求消息,第二请求消息用于请求第三节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性;
处理器,还用于根据通信接口接收的第二请求消息,向第一节点发送第二节点的地址和第一验证信息,第一验证信息包括第三区块的哈希值,或者第一验证信息包括第三哈希值,或者第一验证信息包括第三区块的哈希值和第三哈希值。
在本申请实施例中,可以将通信接口视为第三节点的收发单元,将具有处理功能的处理器视为第三节点的处理单元,将存储器视为第三节点的存储单元。如图11所示,第三节点可以包括收发单元1110和处理单元1120。收发单元也可以称为收发器、收发机、收发装置等。处理单元也可以称为处理器,处理单板,处理模块、处理装置等。可选的,可以将收发单元1110中用于实现接收功能的器件视为接收单元,将收发单元1110中用于实现发送功能的器件视为发送单元,即收发单元1110包括接收单元和发送单元。收发单元有时也可以称为收发机、收发器、或收发电路等。接收单元有时也可以称为接收机、接收器、或接收电路等。发送单元有时也可以称为发射机、发射器或者发射电路等。
在一个具体的实施方式中,收发单元1110用于执行图5中的步骤501和502中第三节点侧的收发操作,和/或收发单元1110还用于执行图5对应的实施例中第三节点侧的其他收发步骤。处理单元1120用于执行图5中的步骤503中第三节点侧的处理操作,和/或处理单元1120还用于执行图5对应的实施例中第三节点侧的其他处理步骤。
在一个具体的实施方式中,收发单元1110可以用于执行图7中的步骤705和707中云节点侧的收发操作,和/或收发单元1110还用于执行图7对应的实施例中云节点侧的其他收发步骤,处理单元1120用于执行图7中的步骤706中云节点侧的处理操作,和/或处理单元1120还用于执行图7对应的实施例中中云节点侧的其他处理步骤。
在一个具体的实施方式中,收发单元1110可以用于执行图9中的步骤901、903、905以及906中云节点侧的收发操作,和/或收发单元1110还用于执行图9对应的实施例中云节点侧的其他收发步骤。处理单元1120,用于执行图9中的步骤902,和/或处理单元1120还用于图9对应的实施例中云节点侧的其他处理步骤。
此外,第一节点可以通过图12中的通信设备来实现。图12所示为本申请实施例提供的通信设备的硬件结构示意图。包括:通信接口1201和处理器1202,还可以包括存储器1203。
通信接口1201可以使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,RAN),无线局域网(wireless localarea networks,WLAN)等。
处理器1202包括但不限于中央处理器(central processing unit,CPU),网络处理器(network processor,NP),专用集成电路(application-specific integratedcircuit,ASIC)或者可编程逻辑器件(programmable logic device,PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(genericarray logic,GAL)或其任意组合。处理器1202负责通信线路1204和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。存储器1203可以用于存储处理器1202在执行操作时所使用的数据。
存储器1203可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically er服务器able programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1204与处理器1202相连接。存储器1203也可以和处理器1202集成在一起。如果存储器1203和处理器1202是相互独立的器件,存储器1203和处理器1202相连,例如存储器1203和处理器1202可以通过通信线路通信。通信接口1201和处理器1202可以通过通信线路通信,通信接口1201也可以与处理器1202直连。
通信线路1204可以包括任意数量的互联的总线和桥,通信线路1204将包括由处理器1202代表的一个或多个处理器1202和存储器1203代表的存储器的各种电路链接在一起。通信线路1204还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本申请不再对其进行进一步描述。
在一个具体的实施方式中,该第一节点,可以包括:存储器,用于存储计算机可读指令。
还可以包括,与存储器耦合的处理器,用于执行以下操作:
生成第一区块,第一区块为第一节点所在的第一节点集群维护的区块链中的区块。还可以包括:与通信接口耦合的通信接口,用于执行以下操作:
向云节点发送处理器组件的第一区块,第一区块用于云节点生成第三区块,第三区块可以包括第一区块、第二区块以及第三区块的哈希值,第二区块为第二节点发送的、第二节点所在的第二节点集群维护的区块链中的区块,第三区块的哈希值根据第一区块数据和第二区块数据确定。
在一个具体的实施方式中,通信接口,还用于接收云节点发送的第三区块的哈希值。
在一个具体的实施方式中通信接口,还用于接收云节点根据根据第一哈希值和第二哈希值确定的第三哈希值,第一哈希值为云节点根据第一区块确定的哈希值,第二哈希值为云节点根据第二区块确定的哈希值。
在一个具体的实施方式中,通信接口,还用于:
向云节点发送第一请求消息,第一请求消息中携带第一节点的身份信息,第一请求消息用于请求云节点发送第一区块;
接收云节点发送的第一区块。
在一个具体的实施方式中,通信接口,还用于:
向云节点发送第二请求消息,第二请求消息用于请求云节点发送第一验证信息,第一验证信息用于第一节点验证第一区块的可靠性;
接收云节点发送的第一验证信息和第二节点的地址,第一验证信息包括第三区块的哈希值,或者第一验证信息包括第三哈希值,或者第一验证信息包括第三区块的哈希值和第三哈希值;
向第二节点发送第一验证信息;
接收第二节点发送的验证消息;
处理器,还用于:
若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的相同,则确定第一区块未被修改;
若验证消息指示第二节点确定接收到第一验证信息与第二节点本地存储的不同,则确定第一区块被修改。
在一个具体的实施方式中,通信接口,还用于:
接收第二节点发送的第二验证信息,第二验证信息包括第三区块的哈希值,或者第二验证信息包括第三哈希值,或者第二验证信息包括第三区块的哈希值和第三哈希值;
向第二节点发送验证消息,验证消息携带验证结果,验证结果包括第一节点确定接收到的第二验证信息与第一节点本地存储的第三区块的哈希值或第三哈希值相同或者不同。
在本申请实施例中,可以将通信接口视为第一节点的收发单元,将具有处理功能的处理器视为第一节点的处理单元,将存储器视为第一节点的存储单元。如图13所示,第一节点包括收发单元1310和处理单元1320。收发单元也可以称为收发器、收发机、收发装置等。处理单元也可以称为处理器,处理单板,处理模块、处理装置等。可选的,可以将收发单元1310中用于实现接收功能的器件视为接收单元,将收发单元1310中用于实现发送功能的器件视为发送单元,即收发单元1310包括接收单元和发送单元。收发单元有时也可以称为收发机、收发器、或收发电路等。接收单元有时也可以称为接收机、接收器、或接收电路等。发送单元有时也可以称为发射机、发射器或者发射电路等。
在一个具体的实施方式中,收发单元1310用于执行图5中的步骤501和502中第一节点侧的收发操作,和/或收发单元1310还用于执行图5对应的实施例中第一节点侧的其他收发步骤。
在一个具体的实施方式中,收发单元1310用于执行图7中的步骤701、703、705以及707中终端节点侧的收发操作,和/或收发单元1310还用于执行图7对应的实施例中终端节点侧的其他收发步骤。处理单元1320,用于执行图7中的步骤702,和/或处理单元1320还用于执行图7对应的实施例中终端节点侧的其他处理步骤。
在一个具体的实施方式中,收发单元1310用于执行图9中的步骤901、903、905、906、907以及909中终端节点侧的收发操作,和/或收发单元1310还用于执行图9对应的实施例中终端节点侧的其他收发步骤。处理单元1320,用于执行图9中的步骤904,和/或处理单元1320还用于执行图9对应的实施例中终端节点侧的其他处理步骤。
本申请实施例可以根据上述方法实施例对第一节点和第三节点进行功能模块的划分,例如,如图11和13所示,可以将两个或两个以上的功能集成在一个处理单元中,需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,比如也可以对应各个功能划分各个功能模块。下面以家庭物联网场景下为例,图14给出一种对云节点和终端节点进行功能模块的划分的示意图。
云节点:该节点位于云上,较为稳定,负责与多个家庭的家庭特殊节点进行交互,生成云上综合区块从而对家庭数据进行备份、管理家庭节点信息,并向家庭节点提供数据可验证的区块恢复能力。云节点也可以称为云上单一实例、云端实例,云实例等等。其中,家庭特殊节点相当于图5对应的实施例中的第一终端节点或第二终端节点,相当于图7或图9对应的实施例中的第一终端节点。具体地,云节点可以包括如下几个模块,其功能如下:
通信模块:负责与其他节点进行通信,传递节点身份信息、家庭区块信息及云上综合区块信息等,比如,通信模块执行上述图5对应的实施例中的步骤501和502,或者上述图7对应的实施例中的步骤705和707,或者上述图9对应的实施例中的步骤901、903、905以及906。这里的其他节点相当于上述方法实施例中的第一终端节点或第二终端节点,云上综合区块即上述图5对应的实施例、图7对应的实施例以及图9对应的实施例中的综合区块。
区块存储模块:负责存储云上综合区块。
云上综合区块生成模块:负责收集各家庭特殊节点发来的家庭区块,生成云上综合区块。比如,云上综合区块生成模块执行上述图5对应的实施例中的步骤503,或者图7对应的实施例中的步骤706,这里的家庭区块相当于上述方法实施例中的第一区块或者第二区块。
各家庭特殊节点管理模块:负责对各家庭的特殊节点进行信息管理和鉴权,记载各家庭特殊节点的相关信息(IP地址、身份信息等),比如,各家庭特殊节点管理模块执行上述图9对应的实施例中的步骤902。
家庭特殊节点:家庭特殊节点通常是家庭物联网中相对稳定的节点,负责与云上共识实例交互,同时在需要的情况下可与云上共识实例及其他家庭的特殊节点通信从而进行区块信息的校验。家庭特殊节点相当于上述方法实施例中的第一终端节点或者第二终端节点,具体地,家庭特殊节点包括如下几个模块,其功能如下:
通信模块:负责与其他节点进行通信,传递节点身份信息、家庭区块信息及云上综合区块信息、区块验证信息等,这里的其他节点相当于上述图5对应的实施例、图7对应的实施例以及图9对应的实施例中的云节点,或者图5对应的实施例中的第二终端节点,或者相当于图7对应的实施例中的其他节点。比如,通信模块用于执行图5中的步骤501和502中终端节点侧的收发操作,或者用于执行图7中的步骤701、703、705以及707中终端节点侧的收发操作,或者用于执行图9中的步骤901、903、905、906、907以及909中终端节点侧的收发操作。
家庭区块生成模块:与家庭普通节点的区块生成模块配合,通过一定的共识算法生成家庭内部区块,比如,家庭区块生成模块用于执行图7对应的实施例中的步骤702中的组件动作。这里的普通家庭节点相当于图7对应的实施例中的其他节点,即这里的家庭普通节点为一个节点集群中除家庭特殊节点之外的其他节点。
区块存储模块:存储家庭区块,这里的家庭区块相当于上述方法实施例中的第一区块或者第二区块。
区块校验模块:在全量从云侧拉取家庭区块数据时,负责对该家庭区块数据进行校验,必要的时候通过通信模块与其他家庭特殊节点索要验证信息。比如用于执行图9对应的实施例中的步骤908。
家庭节点身份信息管理模块:对家庭内部参与区块链系统的各节点进行管理及鉴权。
家庭普通节点:家庭普通节点参与到家庭内部区块生成的过程中,并对家庭内部的区块信息进行存储,具体地,家庭普通节点包括如下几个模块,其功能如下:
通信模块:负责与其他节点进行通信,传递节点身份信息、家庭区块信息等。比如,用于执行上述图7对应的实施例中的步骤704。
区块生成模块:与家庭其他节点的区块生成模块配合,通过一定的共识算法生成家庭内部区块。比如参与图7对应的实施例中的步骤701的执行。
区块存储模块:存储家庭区块。
自身身份信息管理模块:对自己的身份信息进行记录和管理的模块;
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:ROM、RAM、磁盘或光盘等。
以上对本申请实施例所提供的通信方法、节点以及系统进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (25)
1.一种通信方法,其特征在于,包括:
第三节点接收第一节点发送的第一区块,所述第一区块包括第一区块数据;
所述第三节点接收第二节点发送的第二区块,所述第二区块包括第二区块数据,所述第一区块和所述第二区块为不同节点集群维护的区块链中的区块;
所述第三节点根据接收到的所述第一区块和所述第二区块生成第三区块,所述第三区块包括所述第一区块数据、所述第二区块数据以及所述第三区块的哈希值,所述第三区块的哈希值根据所述第一区块数据和所述第二区块数据确定。
2.根据权利要求1所述的方法,其特征在于,所述第三节点根据接收到的所述第一区块和所述第二区块生成第三区块之后,所述方法还包括:
所述第三节点向所述第一节点和所述第二节点发送所述第三区块的哈希值。
3.根据权利要求1或2所述的方法,其特征在于,所述第三区块还包括根据所述第一哈希值和所述第二哈希值确定的第三哈希值,所述第一哈希值为根据第一区块确定的哈希值,所述第二哈希值为根据第二区块确定的哈希值,
所述方法还包括:
所述第三节点向所述第一节点和所述第二节点发送所述第三哈希值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第三节点接收所述第一节点的第一请求消息,所述第一请求消息中携带所述第一节点的身份信息,所述第一请求消息用于请求所述第三节点发送所述第一区块;
所述第三节点验证所述身份信息与所述第三节点预先存储的所述第一节点的身份信息是否匹配;
若匹配,则所述第三节点向所述第一节点发送所述第一区块。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
所述第三节点接收所述第一节点的第二请求消息,所述第二请求消息用于请求所述第三节点发送第一验证信息,所述第一验证信息用于所述第一节点验证所述第一区块的可靠性;
所述第三节点根据所述第二请求消息,向所述第一节点发送所述第二节点的地址和所述第一验证信息,所述第一验证信息包括所述第三区块的哈希值,或者所述第一验证信息包括所述第三哈希值,或者所述第一验证信息包括所述第三区块的哈希值和所述第三哈希值。
6.一种通信方法,其特征在于,包括:
第一节点生成第一区块,所述第一区块为所述第一节点所在的第一节点集群维护的区块链中的区块;
所述第一节点向第三节点发送所述第一区块,所述第一区块用于所述第三节点生成第三区块,所述第三区块包括所述第一区块、第二区块以及所述第三区块的哈希值,所述第二区块为所述第二节点发送的、所述第二节点所在的第二节点集群维护的区块链中的区块,所述第三区块的哈希值根据所述第一区块数据和所述第二区块数据确定。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第三节点发送的所述第三区块的哈希值。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第三节点根据第一哈希值和第二哈希值确定的第三哈希值,所述第一哈希值为所述第三节点根据所述第一区块确定的哈希值,所述第二哈希值为所述第三节点根据第二区块确定的哈希值。
9.根据权利要求6至8任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点向所述第三节点发送第一请求消息,所述第一请求消息中携带所述第一节点的身份信息,所述第一请求消息用于请求所述第三节点发送所述第一区块;
所述第一节点接收所述第三节点发送的所述第一区块。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
所述第一节点向所述第三节点发送第二请求消息,所述第二请求消息用于请求所述第三节点发送第一验证信息,所述第一验证信息用于所述第一节点验证所述第一区块的可靠性;
所述第一节点接收所述第三节点发送的所述第一验证信息和所述第二节点的地址,所述第一验证信息包括所述第三区块的哈希值,或者所述第一验证信息包括所述第三哈希值,或者所述第一验证信息包括所述第三区块的哈希值和所述第三哈希值;
所述第一节点向所述第二节点发送所述第一验证信息;
所述第一节点接收所述第二节点发送的验证消息;
若所述验证消息指示所述第二节点确定接收到所述第一验证信息与所述第二节点本地存储的相同,则所述第一节点确定所述第一区块未被修改;
若所述验证消息指示所述第二节点确定接收到所述第一验证信息与所述第二节点本地存储的不同,则所述第一节点确定所述第一区块被修改。
11.根据权利要求6至8任一项所述的方法,其特征在于,所述方法还包括:
所述第一节点接收所述第二节点发送的第二验证信息,所述第二验证信息包括所述第三区块的哈希值,或者所述第二验证信息包括所述第三哈希值,或者所述第二验证信息包括所述第三区块的哈希值和所述第三哈希值;
所述第一节点向所述第二节点发送验证消息,所述验证消息携带验证结果,所述验证结果包括所述第一节点确定接收到的所述第二验证信息与所述第一节点本地存储的所述第三区块的哈希值或所述第三哈希值相同或者不同。
12.一种第三节点,其特征在于,包括:
通信接口,用于接收第一节点发送的第一区块,所述第一区块包括第一区块数;
所述通信接口,还用于接收第二节点发送的第二区块,所述第二区块包括第二区块数据,所述第一区块和所述第二区块为不同节点集群维护的区块链中的区块;
处理器,所述处理器与所述通信接口耦合,用于根据接收到的所述第一区块和所述第二区块生成第三区块,所述第三区块包括所述第一区块数据、所述第二区块数据以及所述第三区块的哈希值,所述第三区块的哈希值根据所述第一区块数据和所述第二区块数据确定。
13.根据权利要求12所述的第三节点,其特征在于,
所述通信接口,还用于在所述处理器根据接收到的所述第一区块和所述第二区块生成第三区块之后,向所述第一节点和所述第二节点发送所述第三区块的哈希值。
14.根据权利要求12或13所述的第三节点,其特征在于,所述第三区块还包括根据所述第一哈希值和所述第二哈希值确定的第三哈希值,所述第一哈希值为根据第一区块确定的哈希值,所述第二哈希值为根据第二区块确定的哈希值,
所述通信接口,还用于向所述第一节点和所述第二节点发送所述第三哈希值。
15.根据权利要求12至14任一项所述的第三节点,其特征在于,
所述通信接口,还用于接收所述第一节点的第一请求消息,所述第一请求消息中携带所述第一节点的身份信息,所述第一请求消息用于请求所述第三节点发送所述第一区块;
所述处理器,还用于验证所述通信接口接收到的所述身份信息与所述第三节点预先存储的所述第一节点的身份信息是否匹配;
若所述处理器确定匹配,则所述通信接口还用于向所述第一节点发送所述第一区块。
16.根据权利要求15所述的第三节点,其特征在于,
所述通信接口,还用于接收所述第一节点的第二请求消息,所述第二请求消息用于请求所述第三节点发送第一验证信息,所述第一验证信息用于所述第一节点验证所述第一区块的可靠性;
所述处理器,还用于根据所述通信接口接收的所述第二请求消息,向所述第一节点发送所述第二节点的地址和所述第一验证信息,所述第一验证信息包括所述第三区块的哈希值,或者所述第一验证信息包括所述第三哈希值,或者所述第一验证信息包括所述第三区块的哈希值和所述第三哈希值。
17.一种第一节点,其特征在于,包括:
处理器,用于生成第一区块,所述第一区块为所述第一节点所在的第一节点集群维护的区块链中的区块;
通信接口,所述通信接口与所述处理器耦合,向第三节点发送所述第一区块,所述第一区块用于所述第三节点生成第三区块,所述第三区块包括所述第一区块、第二区块以及所述第三区块的哈希值,所述第二区块为所述第二节点发送的、所述第二节点所在的第二节点集群维护的区块链中的区块,所述第三区块的哈希值根据所述第一区块数据和所述第二区块数据确定。
18.根据权利要求17所述的第一节点,其特征在于,
所述通信接口,还用于接收所述第三节点发送的所述第三区块的哈希值。
19.根据权利要求17或18所述的第一节点,其特征在于,
所述通信接口,还用于接收所述第三节点根据第一哈希值和第二哈希值确定的第三哈希值,所述第一哈希值为所述第三节点根据所述第一区块确定的哈希值,所述第二哈希值为所述第三节点根据第二区块确定的哈希值。
20.根据权利要求17至19任一项所述的第一节点,其特征在于,所述通信接口,还用于:
向所述第三节点发送第一请求消息,所述第一请求消息中携带所述第一节点的身份信息,所述第一请求消息用于请求所述第三节点发送所述第一区块;
接收所述第三节点发送的所述第一区块。
21.根据权利要求20所述的第一节点,其特征在于,
所述通信接口,还用于:
向所述第三节点发送第二请求消息,所述第二请求消息用于请求所述第三节点发送第一验证信息,所述第一验证信息用于所述第一节点验证所述第一区块的可靠性;
接收所述第三节点发送的所述第一验证信息和所述第二节点的地址,所述第一验证信息包括所述第三区块的哈希值,或者所述第一验证信息包括所述第三哈希值,或者所述第一验证信息包括所述第三区块的哈希值和所述第三哈希值;
向所述第二节点发送所述第一验证信息;
接收所述第二节点发送的验证消息;
所述处理器,还用于:
若所述验证消息指示所述第二节点确定接收到所述第一验证信息与所述第二节点本地存储的相同,则确定所述第一区块未被修改;
若所述验证消息指示所述第二节点确定接收到所述第一验证信息与所述第二节点本地存储的不同,则确定所述第一区块被修改。
22.根据权利要求17至19任一项所述的第一节点,其特征在于,所述通信接口,还用于:
接收所述第二节点发送的第二验证信息,所述第二验证信息包括所述第三区块的哈希值,或者所述第二验证信息包括所述第三哈希值,或者所述第二验证信息包括所述第三区块的哈希值和所述第三哈希值;
向所述第二节点发送验证消息,所述验证消息携带验证结果,所述验证结果包括所述第一节点确定接收到的所述第二验证信息与所述第一节点本地存储的所述第三区块的哈希值或所述第三哈希值相同或者不同。
23.一种通信系统,其特征在于,所述系统包括第三节点和第一节点,
所述第三节点为权利要求1至5中描述的第三节点;
所述第一节点为权利要求6至11中描述的第一节点。
24.一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求1至5任一所述的方法。
25.一种计算机可读存储介质,其特征在于,当指令在计算机装置上运行时,使得所述计算机装置执行如权利要求6至11任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581370.1A CN112152981B (zh) | 2019-06-29 | 2019-06-29 | 一种通信方法、节点以及通信系统 |
PCT/CN2020/098653 WO2021000802A1 (zh) | 2019-06-29 | 2020-06-29 | 一种通信方法、节点以及通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910581370.1A CN112152981B (zh) | 2019-06-29 | 2019-06-29 | 一种通信方法、节点以及通信系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112152981A true CN112152981A (zh) | 2020-12-29 |
CN112152981B CN112152981B (zh) | 2021-11-19 |
Family
ID=73891295
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910581370.1A Active CN112152981B (zh) | 2019-06-29 | 2019-06-29 | 一种通信方法、节点以及通信系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112152981B (zh) |
WO (1) | WO2021000802A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113660337A (zh) * | 2021-08-17 | 2021-11-16 | 区块动力(广州)科技有限公司 | 一种区块链多重跨链保护方法 |
CN115576953A (zh) * | 2022-11-18 | 2023-01-06 | 中国信息通信研究院 | 基于区块链的数据交互方法和系统、存储介质、设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114338673B (zh) * | 2021-12-30 | 2024-08-20 | 马上消费金融股份有限公司 | 一种交易数据处理方法、装置、设备、系统及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160027229A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for securely receiving and counting votes in an election |
CN106534317A (zh) * | 2016-11-17 | 2017-03-22 | 杭州云象网络技术有限公司 | 一种基于区块链技术的灾备云存储系统构建方法 |
CN106548091A (zh) * | 2016-10-14 | 2017-03-29 | 北京爱接力科技发展有限公司 | 一种数据存证、验证的方法及装置 |
CN106790431A (zh) * | 2016-12-05 | 2017-05-31 | 同济大学 | 基于区块链的云制造服务交易信息记录系统与方法 |
KR20170099154A (ko) * | 2016-02-23 | 2017-08-31 | 주식회사 코인플러그 | 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 |
CN107249046A (zh) * | 2017-08-15 | 2017-10-13 | 李俊庄 | 一种基于区块链的分布式云存储系统构建方法 |
US20180139186A1 (en) * | 2016-11-17 | 2018-05-17 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
CN108932348A (zh) * | 2018-08-16 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 区块链的合并处理方法、装置、区块链节点及存储介质 |
US20190014176A1 (en) * | 2017-07-06 | 2019-01-10 | Acronis International Gmbh | System and method for service level agreement based data storage and verification |
CN109218352A (zh) * | 2017-06-30 | 2019-01-15 | 华为技术有限公司 | 一种区块链网络中交易信息的共识确认方法及装置 |
CN109522363A (zh) * | 2018-10-18 | 2019-03-26 | 上海达家迎信息科技有限公司 | 基于区块链的云平台同步方法、系统、设备及存储介质 |
CN109637637A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 基于区块链的医疗管理系统 |
-
2019
- 2019-06-29 CN CN201910581370.1A patent/CN112152981B/zh active Active
-
2020
- 2020-06-29 WO PCT/CN2020/098653 patent/WO2021000802A1/zh active Application Filing
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160027229A1 (en) * | 2014-07-25 | 2016-01-28 | Blockchain Technologies Corporation | System and method for securely receiving and counting votes in an election |
KR20170099154A (ko) * | 2016-02-23 | 2017-08-31 | 주식회사 코인플러그 | 주주명부를 등록하고 주식 소유권 이전을 기록하고 등록된 주주명부 파일을 검증하는 방법 및 서버 |
CN106548091A (zh) * | 2016-10-14 | 2017-03-29 | 北京爱接力科技发展有限公司 | 一种数据存证、验证的方法及装置 |
CN106534317A (zh) * | 2016-11-17 | 2017-03-22 | 杭州云象网络技术有限公司 | 一种基于区块链技术的灾备云存储系统构建方法 |
US20180139186A1 (en) * | 2016-11-17 | 2018-05-17 | Bank Of America Corporation | System for multiplexing and demultiplexing blockchain ledgers via a cryptographic hash |
CN106790431A (zh) * | 2016-12-05 | 2017-05-31 | 同济大学 | 基于区块链的云制造服务交易信息记录系统与方法 |
CN109218352A (zh) * | 2017-06-30 | 2019-01-15 | 华为技术有限公司 | 一种区块链网络中交易信息的共识确认方法及装置 |
US20190014176A1 (en) * | 2017-07-06 | 2019-01-10 | Acronis International Gmbh | System and method for service level agreement based data storage and verification |
CN107249046A (zh) * | 2017-08-15 | 2017-10-13 | 李俊庄 | 一种基于区块链的分布式云存储系统构建方法 |
CN109637637A (zh) * | 2017-10-20 | 2019-04-16 | 北京航空航天大学 | 基于区块链的医疗管理系统 |
CN108932348A (zh) * | 2018-08-16 | 2018-12-04 | 北京京东尚科信息技术有限公司 | 区块链的合并处理方法、装置、区块链节点及存储介质 |
CN109522363A (zh) * | 2018-10-18 | 2019-03-26 | 上海达家迎信息科技有限公司 | 基于区块链的云平台同步方法、系统、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
GUOZHEN ZHANG,TONG LI,YONG LI,PAN HUI,DEPENG JIN: "blockchain-based data sharing system for AI-Powered Network operation", 《SPRINGER LINK》 * |
庹小忠: "基于区块链的加密信息备份系统研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
张小军等: "2018华为区块链白皮书", 《百度文库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113660337A (zh) * | 2021-08-17 | 2021-11-16 | 区块动力(广州)科技有限公司 | 一种区块链多重跨链保护方法 |
CN113660337B (zh) * | 2021-08-17 | 2024-02-06 | 区块动力(广州)科技有限公司 | 一种区块链多重跨链保护方法 |
CN115576953A (zh) * | 2022-11-18 | 2023-01-06 | 中国信息通信研究院 | 基于区块链的数据交互方法和系统、存储介质、设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112152981B (zh) | 2021-11-19 |
WO2021000802A1 (zh) | 2021-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Chainsplitter: Towards blockchain-based industrial iot architecture for supporting hierarchical storage | |
CN107888562B (zh) | 一种平行链接入互联链的数据验证和收发方法、节点及系统 | |
CN114079660B (zh) | 一种高性能分布式存储区块数据、时间戳、跨链通信与数据协同方法 | |
CN108600227B (zh) | 一种基于区块链的医疗数据共享方法及装置 | |
CN110059494B (zh) | 一种区块链交易数据的隐私保护方法及区块链系统 | |
CN112152981B (zh) | 一种通信方法、节点以及通信系统 | |
US20210256007A1 (en) | Blockchain system and blockchain transaction data processing method based on ethereum | |
WO2022193985A1 (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US10855758B1 (en) | Decentralized computing resource management using distributed ledger | |
WO2020211461A1 (zh) | 一种可验证的共识方法及其系统 | |
US20230039643A1 (en) | Cross-chain collaborative governance system, method and device and storage medium | |
WO2020177481A1 (zh) | 一种基于区块链的流量统计方法、装置和设备 | |
CN113259460B (zh) | 跨链交互方法及装置 | |
CN112307501B (zh) | 基于区块链技术的大数据系统及存储方法和使用方法 | |
WO2024045552A1 (zh) | 一种数据处理方法及相关设备 | |
US12086280B2 (en) | Document management system | |
CN115695449A (zh) | 一种区块链数字藏品源文件跨平台同步与转移方法 | |
Fan et al. | Secure time synchronization scheme in iot based on blockchain | |
Wang | Sok: Applying blockchain technology in industrial internet of things | |
Hou et al. | A blockchain based architecture for IoT data sharing systems | |
CN113067838B (zh) | 跨链交互方法及装置 | |
WO2023082883A1 (zh) | 跨区块链处理事务的方法、装置、计算机设备、计算机存储介质及计算机程序产品 | |
CN117395264A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN115665166A (zh) | 一种基于异构多链多应用的协同创新数据共享平台系统 | |
Xiaoming et al. | Design of remote sensing image sharing service system based on block chain technology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |