CN113312005B - 基于区块链的物联网数据扩容存储方法、***及计算设备 - Google Patents

基于区块链的物联网数据扩容存储方法、***及计算设备 Download PDF

Info

Publication number
CN113312005B
CN113312005B CN202110691268.4A CN202110691268A CN113312005B CN 113312005 B CN113312005 B CN 113312005B CN 202110691268 A CN202110691268 A CN 202110691268A CN 113312005 B CN113312005 B CN 113312005B
Authority
CN
China
Prior art keywords
block chain
data
fragment
block
storage
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.)
Active
Application number
CN202110691268.4A
Other languages
English (en)
Other versions
CN113312005A (zh
Inventor
王金龙
申玉民
王旭
熊晓芸
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qingdao Penghai Software Co ltd
Original Assignee
Qindao University Of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qindao University Of Technology filed Critical Qindao University Of Technology
Priority to CN202110691268.4A priority Critical patent/CN113312005B/zh
Publication of CN113312005A publication Critical patent/CN113312005A/zh
Application granted granted Critical
Publication of CN113312005B publication Critical patent/CN113312005B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0623Securing storage systems in relation to content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3236Cryptographic 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
    • H04L9/3239Cryptographic 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 involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于区块链的物联网数据扩容存储方法、***及计算设备,该方法包括环境部署步骤,在边缘网关和服务器部署区块链运行环境,并以边缘网关和服务器作为区块链节点搭建区块链网络;请求监听步骤,区块链中的设备检测数据存储智能合约分别监听用户通过服务器的接口或边缘网关向区块链发送的设备监测数据存储请求,区块链中的设备维保数据存储智能合约监听用户通过服务器的接口或边缘网关向区块链发送的设备维保数据存储请求;数据存储步骤,当监听到对应数据存储请求,根据区块链分片扩容存储方法将数据存储请求中的数据存储到对应分片中。通过分片技术实现区块链的扩容存储,提升区块链的存储容量,解决区块链面临的存储容量问题。

Description

基于区块链的物联网数据扩容存储方法、***及计算设备
技术领域
本发明涉及计算机技术领域,尤其涉及区块链技术领域,具体涉及一种基于区块链的物联网数据扩容存储方法、***及计算设备。
背景技术
区块链是集分布式存储、点对点传输、共识机制、加密算法等已有技术于一身的新型应用模式,具有去中心化、防篡改、可追溯、公开透明等特点,进而使其在众多领域中得到广泛应用。国内外研究学者已经对区块链在建筑物联网中的应用做了较多研究,实现了建筑物联网数据安全可靠的存储和访问控制。
随着建筑物联网技术的快速发展,建筑物联网中的智能设备和传感器逐渐增多,随之而来的就是区块链的存储容量问题,由于智能设备和传感器作为区块链节点不断向区块链中存储数据,使得区块链中存储的数据不断增多;同时,区块链的共识机制会使所有区块链节点都存储一份区块链数据的完整副本,进一步加剧了区块链的存储容量问题。
目前,区块链扩容存储主要有两种方式:扩大磁盘和使用外部数据库。扩大磁盘的方式通过预估磁盘使用容量,当快要达到预估磁盘使用容量时暂停区块链服务,更换更大容量的磁盘后重启区块链服务来实现区块链的存储扩容,由于在更换磁盘时会暂停区块链服务,因此会影响用户的正常使用。使用外部数据库的方式通过将区块链中的部分数据转存到外部数据库来减少区块链需要存储的数据量从而实现存储扩容,但是这种方式需要额外的外部数据库,增加了存储成本和存储复杂度。
针对现有技术中的存储容量不足的问题,还未提出有效的解决方案。
发明内容
本发明针对上述的存储容量不足的技术问题,提出一种有效扩充存储的基于区块链的物联网数据扩容存储方法、***及计算设备。
为了实现上述目的,本发明提供了如下技术方案:
第一方面,本发明提出一种基于区块链的物联网数据扩容存储方法,包括以下步骤:
环境部署步骤,在边缘网关和服务器部署区块链运行环境,并以边缘网关和服务器作为区块链节点搭建区块链网络;
请求监听步骤,区块链中的设备检测数据存储智能合约分别监听用户通过服务器的接口或边缘网关向区块链发送的设备监测数据存储请求,区块链中的设备维保数据存储智能合约监听用户通过服务器的接口或边缘网关向区块链发送的设备维保数据存储请求;
数据存储步骤,当监听到对应数据存储请求,根据区块链分片扩容存储方法将数据存储请求中的数据存储到对应分片中。
优选的是,还包括数据查询步骤,具体包括:
查询请求发送步骤,通过区块链分片扩容存储方法将对应数据存储到分片后,用户通过服务器的接口或边缘网关向区块链发起设备监测数据查询请求或设备维保数据查询请求;
数据返回步骤,区块链中的设备监测数据查询智能合约或设备维保数据查询智能合约分别监听设备监测数据查询请求或设备维保数据查询请求,并根据对应查询请求中的请求参数从相应分片中查询对应数据并返回。
优选的是,区块链分片扩容存储方法包括以下步骤:
随机数生成步骤,每间隔一设定时间,区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
重新分片步骤,区块链节点根据随机数和分片数计算该区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应分片;
身份识别存储步骤,区块链节点调用身份生成智能合约生成唯一的公私钥对,使用可验证随机函数生成随机hash值和零知识证明,将公私钥对、随机hash值和零知识证明共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
存储步骤,分片接收到设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
优选的是,身份识别存储步骤还包括:
可验证随机函数通过与公私钥对结合,使用Verify()函数检测随机hash值是否是公钥的私钥持有者生成的,以判断区块链节点的身份是否合法。
优选的是,区块链分片扩容存储方法进一步包括以下步骤:
全局分片表更新步骤,区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用分片加入智能合约加入到该分片,更新全局分片表;
区块存储步骤,分片接收设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对数据达成共识后,将数据打包成区块并存储到对应分片区块链中;
区块状态更新步骤,分片通过网络将区块发送至根区块链网络再次进行验证并接收返回的验证结果,据此更新分片区块有效性表中的区块状态。
优选的是,区块状态更新步骤中验证过程包括:
根区块链网络中的区块链节点验证区块的区块头的大小是否在长度限制范围内、交易是否合法以及重构Merkle树得到的树根与区块头中MerkleRoot值是否一致,若通过验证,则将区块连接到根区块链中,若无验证,则将区块直接丢弃。
第二方面,本发明还提供了一种基于区块链的物联网数据扩容存储***,应用上述第一方面的基于区块链的物联网数据扩容存储方法,包括:
环境部署模块,在边缘网关和服务器部署区块链运行环境,并以边缘网关和服务器作为区块链节点搭建区块链网络;
请求监听模块,监听用户通过服务器的接口或边缘网关向区块链发送设备监测数据存储请求或设备维保数据存储请求;
数据存储模块,用于将设备监测数据存储请求或设备维保数据存储请求中的数据利用区块链分片扩容存储方法存储到相应分片中;
数据查询模块,用于根据设备监测数据查询请求或设备维保数据查询请求从相应分片中查询设备监测数据或设备维保数据并返回。
优选的是,数据存储模块包括第一数据存储单元,第一数据存储单元包括:
随机数生成子单元,每间隔一设定时间,区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
重新分片子单元,区块链节点根据随机数和分片数计算该区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应分片;
身份识别存储子单元,区块链节点调用身份生成智能合约生成唯一的公私钥对,使用可验证随机函数生成随机hash值和零知识证明,将公私钥对、随机hash值和零知识证明共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
存储子单元,分片接收到设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
优选的是,数据存储模块还包括第二数据存储单元,第二数据存储单元包括:
全局分片表更新子单元,区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用分片加入智能合约加入到该分片,更新全局分片表;
区块存储子单元,分片接收设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对数据达成共识后,将数据打包成区块并存储到对应分片区块链中;
区块状态更新子单元,分片通过网络将区块发送至根区块链网络再次进行验证并接收返回的验证结果,并据此更新分片区块有效性表中的区块状态。
第三方面,本发明还提供了一种计算设备,其中,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
存储器存储有可被所述至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行第一方面所述的方法。
与现有技术相比,本申请实施例提出了一种基于区块链的物联网数据扩容存储方法、***及计算设备,可应用于建筑物联网技术领域或制造业物联网技术领域,本申请实施例通过分片技术实现区块链的扩容存储,提升区块链的存储容量,解决区块链面临的存储容量问题。同时,由于每个区块链节点只存储部分数据,减小了区块链节点要存储的数据量,因此也间接地提升了节点的数据查询速度。
附图说明
图1为本申请实施例提供的一种基于区块链的物联网数据扩容存储方法的流程示意图;
图2为本申请实施例提供的第一区块链分片扩容存储方法流程示意图;
图3为本申请实施例提供的第一区块链分片扩容存储方法模型示意图;
图4为本申请实施例提供的第二区块链分片扩容存储方法的流程示意图;
图5为本申请实施例提供的第二区块链分片扩容存储方法的模型示意图;
图6为本申请实施例提供的一种基于区块链的建筑物联网数据扩容存储***的模块图;
图7为本申请实施例提供的照明设备故障维修的流程示意图;
图8为本申请实施例提供的照明设备故障维修的模型示意图;
图9为根据本申请实施例计算设备的硬件结构示意图。
其中:
环境部署模块1;请求监听模块2;数据存储模块3;数据查询模块4;
第一数据存储单元31;随机数生成子单元311;重新分片子单元312;
身份识别存储子单元313;存储子单元314;第二数据存储单元32;
全局分片表更新子单元321;区块存储子单元322;
区块状态更新子单元3234;处理器81;存储器82;
通信接口83;总线80。
具体实施方式
以下,结合附图对本发明的具体实施方式进行进一步的描述。
区块链作为新型应用模式在许多领域已经得到了广泛的应用,区块链和建筑物联网技术的结合实现了建筑物联网数据安全可靠的存储和访问控制。但是随着建筑物联网中智能设备和传感器的不断增多,区块链中需要存储的建筑物联网数据也不断增多,不可避免的会遇到区块链的存储容量问题。现有扩大磁盘和使用外部数据库的区块链扩容存储方式面临着影响用户正常使用和存储成本增加等一系列问题。
针对现有技术,本申请提出一种基于区块链的物联网数据扩容存储方法、***及计算设备,可以有效解决建筑物联网和制造业物联网等具有大数据的应用场景下,现有区块链扩容存储面临的一系列问题,提升区块链的存储容量。
其中,本申请实施例中涉及的智能合约包括设备监测数据存储智能合约、设备维保数据存储智能合约、设备监测数据查询智能合约、设备维保数据查询智能合约、节点划分智能合约、分片加入智能合约、身份生成智能合约、全局分片表获取智能合约等。
分片区块链网络包括多个分片,每个分片包括多个分片区块链,身份区块链网络包括多个身份区块链,根区块链网络包括多个根区块链。
下面将以建筑物联网为例对本申请实施例进行说明。
本申请实施例提供了一种基于区块链的物联网数据扩容存储方法,该方法流程图如图1所示,包括如下步骤:
环境部署步骤S1,在边缘网关和服务器部署区块链运行环境,并以边缘网关和服务器作为区块链节点搭建区块链网络;
在实际应用中,在智能建筑群中的全部边缘网关和智能建筑管理***的服务器中部署区块链运行环境,以边缘网关和***服务器作为区块链节点搭建可运行的区块链网络。
智能建筑管理***集成楼宇自控***、消防***、安防管理***等子***,将各子***的物联网数据进行整合,为管理人员提供一个智能化的综合管理平台,便于全面掌握建筑内设备的实时状态、报警和故障情况;通过数据定期分析,了解各子***设备运行状况和用能情况,为设备维护和节能优化提供支持。
需要注意的是,所述边缘网关和所述服务器必须满足部署区块链运行环境所需的存储空间和计算能力,否则会导致区块链无法正常运行,因此本方法对边缘网关和服务器的性能要求较高。
需要注意的是,考虑到智能建筑管理***用户使用的终端主要包括手机端和电脑端,在手机端无法安装配置区块链运行环境,而在电脑端安装配置区块链运行环境需要花费较长时间,因此除了在所述边缘网关中安装部署区块链运行环境外,仅在部署有智能建筑管理***的服务器中安装部署区块链运行环境,使用区块链自带的SDK编写相关区块链操作接口并暴露给用户使用,间接完成与区块链的交互操作,简化方法使用流程。
需要注意的是,如果用户需要经常使用智能建筑管理***且所使用终端满足安装部署区块链运行环境的性能要求,则可以在用户终端中安装部署区块链运行环境,将用户终端也作为区块链节点加入到已有区块链网络中直接与区块链交互。
具体地,所述用户包括项目管理方和运维工程师:项目管理方是项目的管理人员,负责项目中所有智能设备和边缘网关的故障、报警等问题的派发和确认;运维工程师负责故障设备的维修、设备的日常维护和巡检等工作。
请求监听步骤S2,区块链中的设备检测数据存储智能合约分别监听用户通过服务器的接口或边缘网关向区块链发送的设备监测数据存储请求,区块链中的设备维保数据存储智能合约监听用户通过服务器的接口或边缘网关向区块链发送的设备维保数据存储请求;
需要说明的是,设备监测数据存储智能合约和设备维保数据存储智能合约在区块链网络运行前已经经过所有区块链节点的共识成功部署到区块链中,如果后续需要修改智能合约中的代码逻辑,需要重新对修改后的智能合约进行共识和部署,其中主要包括数据存储请求事件监听以及调用区块链的SDK将数据存储到分片的相关代码。
上述设备监测数据包括智能设备的运行状态、报警信息和故障信息等信息,其中,运行状态包括设备编码、设备名称、设备分类、在线状态、状态发生时间等信息,报警信息包括设备编号、设备名称、报警类型、报警事件、报警等级、报警时间等信息,故障信息包括设备编号、设备名称、设备分类、故障来源、故障时间、故障类型、故障描述等信息。
其中,智能设备包括智能灯、智能门禁、智能空调、智能电表等智能设备,设备中内置了相应程序负责监测和采集智能设备的运行状态和故障信息等智能设备监测数据,程序通过网络与边缘网关连接,通过Http协议将采集的设备监测数据发送给边缘网关,由边缘网关将采集到的设备监测数据上传到区块链中。
具体地,设备维保数据包括设备巡检计划、设备报修工单、设备报修执行等信息,其中,设备巡检计划包括项目名称、计划编号、计划名称、开始时间、结束时间、计划周期、工程师、设备区域、是否核实、计划状态等信息,设备报修工单包括项目名称、工单号、工单名称、设备编码、设备名称、设备分类、报修来源、报修时间、故障类型、故障描述等信息,设备报修执行包括项目名称、工单号、工单名称、设备编码、设备名称、报修状态、报修时间、核实状态、故障类型、故障描述等信息。
具体地,在设备监测数据存储智能合约和设备维保数据存储智能合约中通过定时器每隔一段时间运行数据存储请求监听部分代码,监听数据存储请求,为了及时处理数据存储请求,定时器间隔越短越好,这里设置为1秒运行一次。
数据存储步骤S3,当监听到对应数据存储请求,根据区块链分片扩容存储方法将数据存储请求中的数据存储到对应分片中。
通过上述步骤,采用区块链分片扩容存储方法可以有效解决区块链存储容量不足的问题。分片作为一种区块链扩容存储方式,不需要更换磁盘或使用外部数据库,在现有区块链的基础上就可以实现扩容存储,解决了目前区块链扩容存储面临的问题。实现在不影响***用户的正常使用且不提高存储成本和复杂度的前提下实现区块链的扩容存储。
在一些实施例中,还包括数据查询步骤S4,具体包括:
查询请求发送步骤,通过区块链分片扩容存储方法将对应数据存储到分片后,用户通过服务器的接口或边缘网关向区块链发起设备监测数据查询请求或设备维保数据查询请求;
数据返回步骤,区块链中的设备监测数据查询智能合约或设备维保数据查询智能合约分别监听设备监测数据查询请求或设备维保数据查询请求,并根据对应查询请求中的请求参数从相应分片中查询对应数据并返回。
具体地,上述请求参数包括需要请求数据的设备编号、设备名称、时间、在线状态等信息。
需要说明的是,如图1中的步骤S3中使用的区块链分片扩容存储方法存储物联网数据,包括两种方法,分别记为第一区块链分片扩容存储方法和第二区块链分片扩容存储方法。
图3为本申请实施例提供的第一区块链分片扩容存储方法的模型示意图,主要包括区块链节点、分片区块链网络以及身份区块链网络。其中,分片区块链网络由多个分片组成,每个分片由通过RandHound协议随机分配的区块链节点组成,每个分片维护一条分片区块链,可以设置分片区块链网络中共有几个分片(本申请实施例为了方便说明,设置共有三个分片,并不以此为限),分片区块链中只存储所在分片的数据,不需要同步存储其他分片的数据,因此在区块链存储容量一定的情况下减少了需要存储的数据量,从而提升了区块链的存储容量。身份区块链网络由一些特定区块链节点组成,维护一条身份区块链用于存储所有区块链节点分片结束后的身份信息,身份信息用于在再次分片时验证节点身份是否合法,避免女巫攻击,女巫攻击是指通过多次模仿身份发起的攻击。
图2为本申请实施例提供的第一区块链分片扩容存储方法的流程示意图,该方法包括以下步骤:
随机数生成步骤S311,每间隔一设定时间,区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
具体地,设定时间可以具体是一个小时、一天、一周等,时间越短越容易避免分片内节点集体作恶的风险,可以根据实际情况自行调整。
需要注意的是,区块链节点重新分片会带来分片的数据迁移现象,即区块链节点需要使用网络重新下载新加入分片的数据,随着分片中数据量的增加,这可能会占用大量的网络带宽,影响***运行效率。
具体地,节点划分智能合约在区块链网络运行前已经经过所有区块链节点的共识成功部署到区块链中,所有区块链节点都可以调用节点划分智能合约,其中主要包括使用RandHound协议生成随机数的相关代码,用于为当前节点生成随机数。
具体地,RandHound协议是一个可扩展的安全的多方计算协议,在拜占庭环境里可提供无偏见的、去中心化的随机性。RandHound协议假设存在一个外部负责任的客户,他想从一大群半信任化的服务器中获取可证明的随机性。为了产生随机性,RandHound协议将服务器组拆分更小的组,并创建一个公开可验证的先提交后揭示的协议,该协议采用鸽笼原理在包括至少一名诚实参与者贡献时来证明最终的随机数,从而实现了无偏见的、去中心化的随机化。
重新分片步骤S312,区块链节点根据随机数和分片数计算该区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应分片;
具体地,区块链节点将随机数除以分片数所得到的余数作为应该划分到的分片的序号,例如,某区块链节点生成的随机数为244,总分片数为3,计算得到余数为1,则该区块链节点应该划分到分片1中。
具体地,分片数在分片区块链网络运行前已经在区块链节点的配置文件中进行了配置,可以直接获取使用。
具体地,分片加入智能合约在区块链网络运行前已经经过所有区块链节点的共识成功部署到区块链中,所有区块链节点都可以调用分片加入智能合约,其中主要包括区块链节点加入分片的脚本代码,用于实现区块链节点加入分片的自动化过程。
身份识别存储步骤S313,区块链节点调用身份生成智能合约生成唯一的公私钥对(pk,rk),使用可验证随机函数生成随机hash值p和零知识证明k,将公私钥对(pk,rk)、随机hash值p和零知识证明k共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
具体地,身份生成智能合约在区块链网络运行前已经经过所有区块链节点的共识成功部署到区块链中,所有区块链节点都可以调用身份生成智能合约,其中主要包括为区块链节点生成唯一的公私钥对的代码,用于为区块链节点生成唯一的公私钥对。
具体地,零知识证明指的是证明者能够在不向验证者提供任何有用的信息的情况下,使验证者相信某个论断是正确的。
需要注意的是,在下一次重新分片前,所有区块链节点都要从身份区块链中获取其他区块链节点的身份证明(pk,rk)、生成的随机hash值p和零知识证明k,然后使用可验证随机函数中的Verify()函数验证其他区块链节点的身份是否合法,如果合法则可以参加下次分片,否则报错,等待进一步处理。
存储步骤S314,分片接收到设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
在一些实施例中,所述身份存储步骤还包括:
可验证随机函数通过与公私钥对结合,使用Verify()函数检测随机hash值是否是公钥的私钥持有者生成的,以判断区块链节点的身份是否合法。
具体地,可验证随机函数通过与非对称加密(即上面生成的公私钥对)结合,通信双方可以在不知道对方私钥的情况下,也可以对消息完整性和消息来源进行验证。任何人都可以使用可验证随机函数中的Verify()函数来检查随机hash值p是否实际上是公钥pk的私钥持有者生成的,从而可以确保区块链节点的身份是合法的,避免女巫攻击,在本申请实施例中使用的是Algorand可验证随机函数。
在一些实施例中,图5为本申请实施例提供的第二区块链分片扩容存储方法的模型示意图,主要包括区块链节点、分片区块链网络以及根区块链网络。其中,分片区块链网络包括多个分片(可以设置分片区块链网络中共有几个分片,本申请实施例为了方便说明,设置共有三个分片,并不以此为限),区块链节点可以自由选择加入节点数最少的分片,每个分片维护一条分片区块链,分片区块链中只存储该分片的数据,不需要同步存储其他分片的数据,因此在区块链存储容量一定的情况下减少了需要存储的数据量,从而提升了区块链的存储容量。根区块链网络用于再次验证分片生成的区块并保存,目的是为了避免分片中区块链节点集体作恶的风险。
图4为本申请实施例提供的第二区块链分片扩容存储方法的流程示意图,如图4所示,该方法包括以下步骤:
全局分片表更新步骤S321,区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用分片加入智能合约加入到该分片,更新全局分片表;
具体地,所述全局分片表中包括分片编号、分片节点列表、分片节点数等信息,其中,分片节点列表用于记录分片内各节点的节点编号,分片节点数是指当前加入该分片节点的总数,全局分片表在区块链网络启动时进行初始化,并存储到根区块链中,所有区块链节点都可以查看根区块链中的全局分片表。
所述全局分片表初始化是指在区块链网络启动后,根区块链中的节点根据区块链网络启动配置文件中预定义的配置初始化全局分片表的内容,例如,配置文件中预定义的分片总数为3,则为全局分片表初始化3行数据,每行数据中的分片编号、分片节点列表、分片节点数与配置文件中的内容相对应。
上述区块链网络启动配置文件是启动区块链网络所必需的文件,配置文件内容包括分片总数、各分片编号、每个分片中各节点的编号和/或各分片节点数。
具体地,更新全局分片表是指区块链节点在加入分片后,通过调用全局分片表更新智能合约将全局分片表中该分片所对应的分片节点数加1,并将自身的节点编号加入到分片节点列表中。
全局分片表更新智能合约是指区块链节点用于更新全局分片表的代码,该智能合约在区块链网络运行前已经经过根区块链所有节点的共识成功部署到根区块链中,所有区块链节点都可以调用该智能合约。
区块存储步骤S322,分片接收设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对数据达成共识后,将数据打包成区块并存储到对应分片区块链中;
具体地,设备监测数据存储智能合约在区块链网络运行前已经经过所有区块链节点的共识成功部署到区块链中,如果后续需要修改智能合约中的代码逻辑,需要重新对修改后的智能合约进行共识和部署,其中主要包括数据存储请求事件监听以及调用区块链的SDK将数据存储到分片的相关代码。
区块状态更新步骤S323,分片通过网络将区块发送至根区块链网络再次进行验证并接收返回的验证结果,据此更新分片区块有效性表中的区块状态。
具体地,分片区块有效性表存储在所有区块链节点中。
具体地,分片区块有效性表包括区块编号、区块存储时间和区块有效性,其中,区块编号和区块存储时间信息可以在区块头中获取,分片区块有效性表存储在各分片区块链中,分片区块链内所有节点都可以查看本分片中区块有效性表的内容。
具体地,区块编号是指从0开始每次自增1的序号,用于标识分片区块链中的区块以及记录当前区块高度;区块存储时间是指当前区块连接到分片区块链的时间,例如”2021-05-27 19:28:30”;区块有效性用于标识该区块是否合法(即是否被根区块链验网络证通过),用True标识区块合法,False表示区块不合法。
具体地,更新分片区块有效性表是指分片区块链节点通过调用区块状态信息新增智能合约,将区块编号、区块存储时间和区块有效性(True/False)存储到分片区块有效性表中。
区块状态信息新增智能合约主要包括分片区块链节点上传本分片区块状态信息的代码,区块状态信息新增智能合约在各分片初始化时已经经过分片内所有节点的共识成功部署到对应的分片中。
具体地,所述区块验证结果是指区块验证通过或验证失败,分别用True和False表示。根区块链网络只有在区块验证通过后才会将区块连接到根区块链中,否则直接将该区块丢弃。
优选的是,区块状态更新步骤S323中验证步骤包括:
根区块链网络中的区块链节点验证区块头中的区块大小是否在长度限制范围内、交易是否合法以及重构Merkle树得到的树根与区块头中MerkleRoot值是否一致,若通过验证,则将区块连接到根区块链中,若无验证,则将区块直接丢弃。
具体地,根区块链网络再次验证是指分片将产生的区块发送给根区块链网络,根区块链网络中的区块链节点验证区块头中的区块大小是否在长度限制范围内、交易的合法性以及重构Merkle树得到的树根与区块头中MerkleRoot值是否一致等信息。
需要注意的是,在从分片区块链中查询数据之前,分片内节点会先调用区块状态信息获取智能合约从分片区块链上获取分片区块有效性表,验证分片区块链中每个区块的有效性,随后只获取区块有效性为True的对应区块内的数据。
区块状态信息获取智能合约主要包括分片区块链节点查询本分片区块状态信息的代码,区块状态信息获取智能合约在各分片初始化时已经经过分片内所有节点的共识成功部署到对应的分片中。
第二方面,本发明还提供了一种基于区块链的物联网数据扩容存储***,应用上述第一方面所述的基于区块链的物联网数据扩容存储方法,包括:
环境部署模块1,在边缘网关和服务器部署区块链运行环境,并以边缘网关和服务器作为区块链节点搭建区块链网络;
在实际应用中,环境部署模块1用于在智能建筑群中的全部边缘网关和智能建筑管理***的服务器中部署区块链运行环境,并且以边缘网关和***服务器作为区块链节点搭建可运行的区块链网络。
具体地,所述环境部署模块1还包括:
环境安装单元11,用于在智能建筑群中的全部边缘网关和智能建筑管理***的服务器中安装区块链运行环境。
网络搭建单元12,用于以边缘网关和***服务器作为区块链节点搭建可运行的区块链网络。
请求监听模块2,监听用户通过服务器的接口或边缘网关向区块链发送设备监测数据存储请求或设备维保数据存储请求;
数据存储模块3,用于将设备监测数据存储请求或设备维保数据存储请求中的数据利用区块链分片扩容存储方法存储到相应分片中;
在实际应用中,数据存储模块3用于将设备监测数据存储请求中的数据使用第二区块链分片扩容存储方法存储到相应分片中;将设备维保数据存储请求中的数据使用第一区块链分片扩容存储方法存储到相应分片中。
数据查询模块4,用于根据设备监测数据查询请求或设备维保数据查询请求从相应分片中查询设备监测数据或设备维保数据并返回。
在实际应用中,数据查询模块4用于从第二区块链分片扩容存储方法的相应分片中查询请求的设备监测数据并返回;从第一区块链分片扩容存储方法的相应分片中查询请求的设备维保数据并返回。
优选的是,数据存储模块3包括第一数据存储单元31,第一数据存储单元31包括:
随机数生成子单元311,每间隔一设定时间,区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
重新分片子单元312,区块链节点根据随机数和分片数计算该区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应分片;
身份识别存储子单元313,区块链节点调用身份生成智能合约生成唯一的公私钥对,使用可验证随机函数生成随机hash值和零知识证明,将公私钥对、随机hash值和零知识证明共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
存储子单元314,分片接收到设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
优选的是,数据存储模块3还包括第二数据存储单元32,第二数据存储单元32包括:
全局分片表更新子单元321,区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用分片加入智能合约加入到该分片,更新全局分片表;
区块存储子单元322,分片接收设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对数据达成共识后,将数据打包成区块并存储到对应分片区块链中;
区块状态更新子单元323,分片通过网络将区块发送至根区块链网络再次进行验证并接收返回的验证结果,并据此更新分片区块有效性表中的区块状态。
以下申请实施例为某建筑中的照明设备故障维修实例,其中,建筑中安装有智能照明、智能门禁、智能空调、智能新风等智能设备,这些设备通过网络与建筑中的边缘网关连接,边缘网关通过设备的内置程序采集设备监测数据,同时,边缘网关中已经安装部署有区块链运行环境且已经和其他安装部署了区块链运行环境的边缘网关、用户终端(用户电脑)以及智能建筑管理***服务器构成区块链网络,可以向区块链上传数据。
建筑物联网数据包括设备监测数据和设备维保数据两种类型的数据,每种类型的数据具体又包括若干种信息,如表1所示:
表1数据类型、具体信息及特点
Figure BDA0003126256760000151
现有智能建筑管理***通常连接并负责监测建筑中成百上千的智能设备,每隔半分钟甚至更短的时间就要获取一次设备监测数据,每小时最多可以生成几万条数据,一天可以生成几十万条数据,每天需要占用GB级别的存储空间,数据量非常大;同时,设备在正常运行时的运行状态信息除时间外都相同,在设备正常运行期间会产生大量运行状态相同的重复数据,加剧了区块链存储空间的占用;此外,该类设备监测数据中不包含用户或设备隐私数据,因此不需要较高的存储安全性。
建筑中设备触发报警或者发生故障的情况较少,设备台账、备品备件和报废信息也比较少,因此设备维保数据的总体数据量较小。但是设备维保数据中的报修和巡检等信息包括一些运维工程师的隐私数据,如运维工程师编号、职位、姓名、身份证号等,这些数据需要较高的存储安全性。
针对设备监测数据和设备维保数据的不同特点,本申请实施例使用第一和第二两种区块链分片扩容存储方法满足两种类型数据的存储需求。第一和第二区块链分片扩容存储方法的优缺点如表2所示:
表2第一和第二区块链分片扩容存储方法的优缺点
Figure BDA0003126256760000161
第一区块链分片扩容存储方法中的某个分片中的节点如果被黑客入侵后满足进行恶意操作的条件(多于一半的节点被入侵),在下一次分片时这些被入侵的节点就会重新分配,不再满足恶意操作的条件,保证了分片的长期安全。第二区块链分片扩容存储方法由于不进行重新分片,某个分片中的节点存在可能在很长一段时间之后都被黑客入侵的安全风险,因此无法保证分片的长期安全。
如果仅用第一区块链分片扩容存储方法存储设备监测数据和设备维保数据,虽然可以提供较高的存储安全性,但是设备监测数据巨大的数据量会导致方法在重新分片时的数据迁移占用巨大的网络带宽,严重影响***的运行效率,甚至会导致存储或获取数据失败,因此需要将设备监测数据使用第二区块链分片扩容存储方法存储,这样既保证了设备维保数据的较高存储安全性,也可以避免网络带宽的大量占用。
如果仅用第二区块链分片扩容存储方法存储设备监测数据和设备维保数据,虽然可以节省网络带宽,不影响***运行效率,但是无法提供设备维保数据所需的较高的存储安全性,因此这里选择舍弃少量的网络带宽,使用第一区块链分片扩容存储方法存储设备维保数据,在保证网络带宽不被占用、***正常运行的情况下,为设备维保数据提供较高的存储安全性。
综上,本申请实施例结合两种类型数据的特点和两种区块链分片扩容存储方法的优缺点,将两种区块链分片扩容存储方法结合使用来满足两种类型数据的存储需求:使用第一区块链分片扩容存储方法存储设备维保数据,使用第二区块链分片扩容存储方法存储设备监测数据。具体数据存储分片划分如表3所示,该表已经通过哈希表的形式写入设备监测和维保数据的相关存储和查询智能合约,合约根据该表将数据存储存储到相应分片或者根据该表从相应分片中获取数据。其中,第一和第二区块链分片扩容存储方法各有三个分片。
表3数据存储分片划分
Figure BDA0003126256760000171
图7为本申请实施例提供的照明设备故障维修的流程示意图,图8为本申请实施例提供的照明设备故障维修的模型示意图,其中,边缘网关和用户终端已经安装部署了区块链运行环境,且作为区块链节点和其他区块链节点共同构成区块链网络,第一和第二区块链分片扩容存储方法已经完成分片,可以接收数据执行数据存储操作。本申请实施例包括以下步骤:
S71:边缘网关采集照明设备的监测信息后向区块链发起设备监测数据存储请求。
具体地,照明设备监测信息包括设备编码、设备名称、设备分类、设备区域、在线状态、状态发生时间等信息,其中在线状态包括在线、离线和故障三种状态。
具体地,设备监测数据存储请求的参数包括原始照明设备监测信息。
S72:区块链中的设备监测数据存储智能合约监听到设备监测数据存储请求后,将设备监测数据存储请求中的数据调用区块链自带的数据存储SDK存储到第二区块链分片扩容存储方法的分片A的分片区块链中。
具体地,照明设备监测信息被设备监测数据存储合约发送到分片A中的区块链网络,共识后生成区块连接到分片区块链中,同时将区块发送给根区块链网络再次验证,验证通过后也将区块连接到根区块链中。
S73:数据检测智能合约定时从分片A的分片区块链中使用数据获取SDK获取照明设备监测信息并返回,检测信息是否出现异常。
具体地,每种设备都有专门的数据检测智能合约,本申请实施例中的数据检测智能合约专门检测照明设备监测信息。
具体地,数据检测智能合约根据照明设备监测信息中的“在线状态”信息判断照明设备是否存在故障,即:如果“在线状态”为故障,则说明照明设备目前存在故障,需要维修。
具体地,由于区块链中的数据查询不需要经过共识,所以可以直接从分片区块链中使用数据查询SDK获取数据。
S74:如果信息经过检测发现存在异常,说明照明设备存在故障,由数据检测智能合约生成设备故障报警信息后调用设备维保数据存储智能合约并将设备故障报警信息作为参数发送给设备维保数据存储智能合约。
具体地,设备故障报警信息包括项目名称、设备编码、设备名称、设备区域、安装位置、报警类型、报警事件、报警等级、报警时间、处理状态等信息,其中,报警类型包括自发和人为两种类型,报警等级包括普通、警告和严重三种等级,处理状态包括已查看和已处理两种状态。
S75:设备维保数据存储智能合约调用区块链自带的数据存储SDK将接收到的设备故障报警信息存储到第一区块链分片扩容存储方法的分片2的分片区块链中。
S76:项目管理方通过终端向区块链发起设备维保数据查询请求。
具体地,设备维保数据查询请求的参数包括设备编号、具体数据类型等信息,其中,具体数据类型包括“设备报修信息”、“设备巡检信息”、“设备报警信息”等类型,这里为“设备报警信息”。
具体地,终端主要指电脑,其中已经安装和部署了区块链运行环境,且作为区块链节点加入运行的区块链网络,可以直接和区块链进行数据交互。
S77:区块链中的设备维保数据查询智能合约监听到设备维保数据查询请求后,根据设备维保数据查询请求中的参数从第一区块链分片扩容存储方法的分片2的分片区块链中使用数据获取SDK获取设备故障报警信息并返回给项目管理方。
S78:项目管理方根据设备故障报警信息在电脑终端手动生成设备故障报修工单信息,然后向区块链发起设备维保数据存储请求。
具体地,设备维保数据存储请求的参数包括设备编号、具体数据类型、原始设备故障报修工单信息等信息,其中,具体数据类型包括“设备报修信息”、“设备巡检信息”、“设备报警信息”等类型,这里为“设备报修信息”。
具体地,设备故障报修工单信息包括项目名称、工单号、工单名称、设备编码、设备名称、设备分类、设备区域、安装位置、报修来源、报修时间、故障类型、故障描述等信息。
S79:区块链中的设备维保数据存储智能合约监听到设备维保数据存储请求,调用区块链自带的数据存储SDK将设备维保数据存储请求中的原始数据存储到第一区块链分片扩容存储方法的分片2的分片区块链中。
S710:运维工程师通过终端向区块链发起设备维保数据查询请求。
具体地,设备维保数据查询请求的参数包括设备编号、具体数据类型等信息,其中,具体数据类型包括“设备报修信息”、“设备巡检信息”、“设备报警信息”等类型,这里为“设备报修信息”。
S711:区块链中的设备维保数据查询智能合约监听到设备维保数据查询请求后根据设备维保数据查询请求中的参数从第一区块链分片扩容存储方法的分片2的分片区块链中获取设备故障报修工单信息并返回给运维工程师,具体步骤和S77相同,不再赘述。
S712:运维工程师根据设备故障报修工单信息维修故障照明设备。
S713:故障维修完毕后,运维工程师根据设备故障维修实际情况在电脑终端手动生成设备故障报修执行信息,然后向区块链发起设备维保数据存储请求。
具体地,设备维保数据存储请求的参数包括设备编号、具体数据类型、原始设备故障报修执行信息等信息,其中,具体数据类型包括“设备报修信息”、“设备巡检信息”、“设备报警信息”等类型,这里为“设备维修信息”。
S7014:区块链中的设备维保数据存储智能合约监听到设备维保数据存储请求,将设备故障报修执行信息根据设备维保数据存储请求中的参数存储到第一区块链分片扩容存储方法的分片2的分片区块链中,具体步骤和S79相同,不再赘述。
另外,结合图1描述的本申请实施例基于区块链的物联网数据扩容存储方法可以由计算设备来实现。图9为根据本申请实施例的计算设备的硬件结构示意图。
计算设备部署在建筑物联网环境下,计算设备可以包括处理器81以及存储有计算机程序指令的存储器82。
具体地,上述处理器81可以包括中央处理器(CPU),或者特定集成电路(Application Specific Integrated Circuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器82可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器82可包括硬盘驱动器(Hard Disk Drive,简称为HDD)、软盘驱动器、固态驱动器(SolidState Drive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(Universal SerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器82可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器82可在数据处理装置的内部或外部。在特定实施例中,存储器82是非易失性(Non-Volatile)存储器。在特定实施例中,存储器82包括只读存储器(Read-Only Memory,简称为ROM)和随机存取存储器(RandomAccess Memory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(Programmable Read-Only Memory,简称为PROM)、可擦除PROM(Erasable ProgrammableRead-Only Memory,简称为EPROM)、电可擦除PROM(Electrically Erasable ProgrammableRead-Only Memory,简称为EEPROM)、电可改写ROM(Electrically Alterable Read-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(Static Random-Access Memory,简称为SRAM)或动态随机存取存储器(Dynamic Random Access Memory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器(Fast Page Mode Dynamic Random Access Memory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(Extended Date Out Dynamic RandomAccess Memory,简称为EDODRAM)、同步动态随机存取内存(Synchronous Dynamic Random-Access Memory,简称SDRAM)等。
存储器82可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器81所执行的可能的计算机程序指令。
处理器81通过读取并执行存储器82中存储的计算机程序指令,以实现上述实施例中的任意一种基于区块链的物联网数据扩容存储方法。
在其中一些实施例中,计算设备还可包括通信接口83和总线80。其中,如图9所示,处理器81、存储器82、通信接口83通过总线80连接并完成相互间的通信。
通信接口83用于实现本申请实施例中各模块、装置、单元和/或设备之间的通信。通信端口83还可以实现与其他部件例如:外接设备、图像/数据采集设备、数据库、外部存储以及图像/数据处理工作站等之间进行数据通信。
总线80包括硬件、软件或两者,将计算设备的部件彼此耦接在一起。总线80包括但不限于以下至少之一:数据总线(Data Bus)、地址总线(Address Bus)、控制总线(ControlBus)、扩展总线(Expansion Bus)、局部总线(Local Bus)。举例来说而非限制,总线80可包括图形加速接口(Accelerated Graphics Port,简称为AGP)或其他图形总线、增强工业标准架构(Extended Industry Standard Architecture,简称为EISA)总线、前端总线(FrontSide Bus,简称为FSB)、超传输(Hyper Transport,简称为HT)互连、工业标准架构(Industry Standard Architecture,简称为ISA)总线、无线带宽(InfiniBand)互连、低引脚数(Low Pin Count,简称为LPC)总线、存储器总线、微信道架构(Micro ChannelArchitecture,简称为MCA)总线、***组件互连(Peripheral Component Interconnect,简称为PCI)总线、PCI-Express(PCI-X)总线、串行高级技术附件(Serial AdvancedTechnology Attachment,简称为SATA)总线、视频电子标准协会局部(Video ElectronicsStandards Association Local Bus,简称为VLB)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线80可包括一个或多个总线。尽管本申请实施例描述和示出了特定的总线,但本申请考虑任何合适的总线或互连。
该计算设备可以基于获取到的数据存储请求,执行本申请实施例中的基于区块链的物联网数据扩容存储方法,从而实现结合图1描述的基于区块链的物联网数据扩容存储方法。
另外,结合上述实施例中的基于区块链的物联网数据扩容存储方法,本申请实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种基于区块链的物联网数据扩容存储方法。
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例应用于其它领域,但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、组合、等同变化与改型,仍属于本发明技术方案的保护范围。

Claims (9)

1.一种基于区块链的物联网数据扩容存储方法,其特征在于,包括以下步骤:
环境部署步骤,在边缘网关和服务器部署区块链运行环境,并以所述边缘网关和所述服务器作为区块链节点搭建区块链网络;
请求监听步骤,区块链中的设备检测数据存储智能合约分别监听用户通过所述服务器的接口或所述边缘网关向所述区块链发送的设备监测数据存储请求,区块链中的设备维保数据存储智能合约监听用户通过所述服务器的接口或所述边缘网关向所述区块链发送的设备维保数据存储请求;
数据存储步骤,当监听到对应数据存储请求,根据区块链分片扩容存储方法将所述数据存储请求中的数据存储到对应分片中;
其中,所述区块链分片扩容存储方法进一步包括以下步骤:
全局分片表更新步骤,所述区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用所述分片加入智能合约加入到该所述分片,更新所述全局分片表;
区块存储步骤,所述分片接收所述设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对所述数据达成共识后,将所述数据打包成区块并存储到对应分片区块链中;
区块状态更新步骤,所述分片通过网络将所述区块发送至所述根区块链网络再次进行验证并接收返回的验证结果,据此更新分片区块有效性表中的区块状态。
2.根据权利要求1所述的基于区块链的物联网数据扩容存储方法,其特征在于,还包括数据查询步骤,具体包括:
查询请求发送步骤,通过所述区块链分片扩容存储方法将对应所述数据存储到所述分片后,用户通过所述服务器的接口或所述边缘网关向所述区块链发起设备监测数据查询请求或设备维保数据查询请求;
数据返回步骤,所述区块链中的设备监测数据查询智能合约或设备维保数据查询智能合约分别监听所述设备监测数据查询请求或所述设备维保数据查询请求,并根据对应查询请求中的请求参数从相应所述分片中查询对应所述数据并返回。
3.根据权利要求1所述的基于区块链的物联网数据扩容存储方法,其特征在于,所述区块链分片扩容存储方法包括以下步骤:
随机数生成步骤,每间隔一设定时间,所述区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
重新分片步骤,所述区块链节点根据所述随机数和分片数计算该所述区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应所述分片;
身份识别存储步骤,所述区块链节点调用身份生成智能合约生成唯一的公私钥对,使用可验证随机函数生成随机hash值和零知识证明,将所述公私钥对、所述随机hash值和所述零知识证明共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
存储步骤,所述分片接收到所述设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
4.根据权利要求3所述的基于区块链的物联网数据扩容存储方法,其特征在于,所述身份识别存储步骤还包括:
所述可验证随机函数通过与所述公私钥对结合,使用Verify()函数检测所述随机hash值是否是公钥的私钥持有者生成的,以判断所述区块链节点的身份是否合法。
5.根据权利要求1所述的基于区块链的物联网数据扩容存储方法,其特征在于,所述区块状态更新步骤中验证过程包括:
所述根区块链网络中的区块链节点验证所述区块的区块头的大小是否在长度限制范围内、交易是否合法以及重构Merkle树得到的树根与所述区块头中MerkleRoot值是否一致,若通过验证,则将所述区块连接到根区块链中,若无验证,则将所述区块直接丢弃。
6.一种基于区块链的物联网数据扩容存储***,应用上述权利要求1-5任意一项所述的基于区块链的建筑物联网数据扩容存储方法,其特征在于,包括:
环境部署模块,在边缘网关和服务器部署区块链运行环境,并以所述边缘网关和所述服务器作为区块链节点搭建区块链网络;
请求监听模块,监听用户通过所述服务器的接口或所述边缘网关向区块链发送设备监测数据存储请求或设备维保数据存储请求;
数据存储模块,用于将所述设备监测数据存储请求或所述设备维保数据存储请求中的数据利用区块链分片扩容存储方法存储到相应分片中;
数据查询模块,用于根据设备监测数据查询请求或设备维保数据查询请求从相应所述分片中查询设备监测数据或设备维保数据并返回。
7.根据权利要求6所述的基于区块链的物联网数据扩容存储***,其特征在于,所述数据存储模块包括第一数据存储单元,所述第一数据存储单元包括:
随机数生成子单元,每间隔一设定时间,所述区块链节点自动调用节点划分智能合约中的RandHound协议生成一个随机数;
重新分片子单元,所述区块链节点根据所述随机数和分片数计算该所述区块链节点应划分到的分片的序号,并调用分片加入智能合约加入对应所述分片;
身份识别存储子单元,所述区块链节点调用身份生成智能合约生成唯一的公私钥对,使用可验证随机函数生成随机hash值和零知识证明,将所述公私钥对、所述随机hash值和所述零知识证明共同上传至身份区块链网络中,并在通过共识后存储到身份区块链中;
存储子单元,所述分片接收到所述设备维保数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制共识并存储到对应分片区块链中。
8.根据权利要求6所述的基于区块链的物联网数据扩容存储***,其特征在于,所述数据存储模块还包括第二数据存储单元,所述第二数据存储单元包括:
全局分片表更新子单元,所述区块链节点调用全局分片表获取智能合约从根区块链网络中获取全局分片表,并据此选择已加入节点数最少的分片,调用所述分片加入智能合约加入到该所述分片,更新所述全局分片表;
区块存储子单元,所述分片接收所述设备监测数据存储智能合约监听对应存储请求并发送的数据,利用Raft共识机制对所述数据达成共识后,将所述数据打包成区块并存储到对应分片区块链中;
区块状态更新子单元,所述分片通过网络将所述区块发送至所述根区块链网络再次进行验证并接收返回的验证结果,并据此更新分片区块有效性表中的区块状态。
9.一种计算设备,其特征在于,所述计算设备部署在建筑物联网环境下,所述计算设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任一项所述的方法。
CN202110691268.4A 2021-06-22 2021-06-22 基于区块链的物联网数据扩容存储方法、***及计算设备 Active CN113312005B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110691268.4A CN113312005B (zh) 2021-06-22 2021-06-22 基于区块链的物联网数据扩容存储方法、***及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110691268.4A CN113312005B (zh) 2021-06-22 2021-06-22 基于区块链的物联网数据扩容存储方法、***及计算设备

Publications (2)

Publication Number Publication Date
CN113312005A CN113312005A (zh) 2021-08-27
CN113312005B true CN113312005B (zh) 2022-11-01

Family

ID=77380051

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110691268.4A Active CN113312005B (zh) 2021-06-22 2021-06-22 基于区块链的物联网数据扩容存储方法、***及计算设备

Country Status (1)

Country Link
CN (1) CN113312005B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114338665A (zh) * 2021-12-01 2022-04-12 浪潮软件股份有限公司 基于区块链的申报材料防篡改***
CN114430413A (zh) * 2021-12-20 2022-05-03 青岛鹏海软件有限公司 一种基于区块链的IIoT智慧运维管理方法
CN117544634A (zh) * 2023-11-10 2024-02-09 深圳市卓越信息技术有限公司 基于区块链和分布式边缘计算节点应用的***及方法
CN117319422B (zh) * 2023-11-28 2024-02-02 天津市城市规划设计研究总院有限公司 一种城市规划领域物联网数据的区块链成块方法及***

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104243462A (zh) * 2014-09-05 2014-12-24 中国科学院计算机网络信息中心 一种用于发现服务的用户身份验证方法及***
CN106843745A (zh) * 2015-12-03 2017-06-13 南京中兴新软件有限责任公司 容量扩展方法及装置
CN106844399B (zh) * 2015-12-07 2022-08-09 中兴通讯股份有限公司 分布式数据库***及其自适应方法
CN108256988A (zh) * 2016-12-30 2018-07-06 深圳壹账通智能科技有限公司 征信机构联盟的数据处理方法及装置
CN107566531B (zh) * 2017-10-17 2020-07-10 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的Elasticsearch集群扩展方法
CN108632293B (zh) * 2018-05-16 2021-08-06 山东建筑大学 基于区块链技术的建筑设备物联网***与方法
CN109150972B (zh) * 2018-07-17 2021-07-23 湖南宸瀚信息科技有限责任公司 一种双层分片的高效区块链的共识机制的工作方法
CN109194761B (zh) * 2018-09-18 2021-03-30 北京工业大学 一种基于边缘计算与区块链的lora物联网环境数据采集与上链实现方法
CN110300173A (zh) * 2019-06-28 2019-10-01 杭州复杂美科技有限公司 去中心化数据存储方法、验证方法、设备和存储介质
CN110365707A (zh) * 2019-07-30 2019-10-22 广州致链科技有限公司 面向区块链物联网***的边缘计算网关及其实现方法
CN110648139B (zh) * 2019-09-03 2022-04-12 北京航空航天大学 基于分片技术和博弈论的区块链事务验证扩容方法及装置
CN112446035A (zh) * 2019-09-05 2021-03-05 阿里健康科技(中国)有限公司 数据管理方法及装置
CN110993044B (zh) * 2019-11-28 2023-03-28 周口师范学院 一种医疗联盟链轻量级动态自主跨链交互方法
CN111612393B (zh) * 2020-04-16 2022-08-30 南京邮电大学 基于区块链和边缘计算的药事供应链管理***及方法
CN111858771A (zh) * 2020-07-30 2020-10-30 杭州复杂美科技有限公司 分布式数据存储方法、设备和存储介质
CN111949672B (zh) * 2020-07-30 2021-11-30 杭州电子科技大学 一种支持物联网数据增量更新的区块链存储方法
CN111988338B (zh) * 2020-09-07 2022-06-24 华侨大学 基于区块链的权限可控的物联网云平台及数据交互方法
CN112511590B (zh) * 2020-10-26 2022-07-19 南京辰阔网络科技有限公司 一种区块链分片的高效存储重配置方法
CN112543187B (zh) * 2020-11-26 2022-04-12 齐鲁工业大学 基于边缘区块链的工业物联网安全数据共享方法
CN112615905B (zh) * 2020-12-03 2022-09-20 广州智链未来科技有限公司 区块链分片的调度方法、装置、设备及存储介质
CN112600892B (zh) * 2020-12-07 2022-01-28 北京邮电大学 面向物联网的区块链设备、***及工作方法
CN112804310B (zh) * 2020-12-31 2023-03-24 河南中盾云安信息科技有限公司 一种面向物联网应用的多链智能安全网关及实现方法
CN112862486B (zh) * 2021-02-25 2024-01-05 杭州链网科技有限公司 一种基于镜像跨链的多方跨链方法及***
CN112862423A (zh) * 2021-04-22 2021-05-28 成都协能共创科技有限公司 分布式新能源电站管理方法、***、终端设备及计算机可读存储介质

Also Published As

Publication number Publication date
CN113312005A (zh) 2021-08-27

Similar Documents

Publication Publication Date Title
CN113312005B (zh) 基于区块链的物联网数据扩容存储方法、***及计算设备
CN110535938B (zh) 一种基于智能合约的数据处理方法、设备及存储介质
CN110569251B (zh) 一种数据处理方法、相关设备及计算机可读存储介质
CN108256353B (zh) 一种数据完整性校验方法、装置及客户端
CN111343208B (zh) 基于区块链的数据检测方法、装置及计算机可读存储介质
CN110784495B (zh) 基于区块链的大数据集群***的发现与配置信息管理方法
CN111444211A (zh) 区块链共识节点校验方法、装置、设备以及存储介质
CN112527912A (zh) 基于区块链网络的数据处理方法、装置及计算机设备
CN110598410B (zh) 一种恶意进程的确定方法、装置、电子设备及存储介质
CN113139884B (zh) 智能建筑管理***方法、***、存储介质及电子设备
WO2014206099A1 (zh) 一种多节点服务器***的故障现场信息的收集方法及装置
CN114650302A (zh) 基于区块链的物联网边缘设备可信管理方法
CN111679978A (zh) 一种程序测试方法、程序测试装置、电子设备及存储介质
CN115208779A (zh) 基于区块链和大数据的数据流监测方法及云计算服务平台
CN113377869A (zh) 一种区块链共享信息均衡存储方法
CN117135343A (zh) 故障分析方法、装置、设备及存储介质
CN115396231A (zh) 一种网络安全设备测试***
CN115297009A (zh) 一种基于区块链分布式网络数字加密一致性优化的方法
CN114065301A (zh) 时钟环境可信性验证方法、装置、设备及存储介质
CN116545782B (zh) 一种超融合云计算***的数据监测方法及装置
CN111488306A (zh) 攻防架构***及攻防架构***的搭建方法
CN115695529B (zh) 智能化远程运维方法、装置、计算机设备及存储介质
CN116955074B (zh) 一种数据存储平台智能监控方法
CN108521449B (zh) 网络设备操作记录异地备份方法和***
WO2021082404A1 (zh) 一种信息监控方法、***、设备及存储介质

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
TR01 Transfer of patent right

Effective date of registration: 20221207

Address after: 266525 No.777, Jialingjiang East Road, Huangdao District, Qingdao City, Shandong Province

Patentee after: Qindao University of Technology

Patentee after: QINGDAO PENGHAI SOFTWARE Co.,Ltd.

Address before: 266525 No.777, Jialingjiang East Road, Huangdao District, Qingdao City, Shandong Province

Patentee before: Qindao University of Technology

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240201

Address after: 266000 Building 1, 169 Songling Road, Laoshan District, Qingdao City, Shandong Province

Patentee after: QINGDAO PENGHAI SOFTWARE Co.,Ltd.

Country or region after: China

Address before: 266525 No.777, Jialingjiang East Road, Huangdao District, Qingdao City, Shandong Province

Patentee before: Qindao University of Technology

Country or region before: China

Patentee before: QINGDAO PENGHAI SOFTWARE Co.,Ltd.

TR01 Transfer of patent right