一种集成轻量级区块链的节点操作系统及数据更新的方法
技术领域
本发明涉及通信电子技术领域,特别涉及一种集成轻量级区块链的节点操作系统及数据更新的方法。
背景技术
区块链是数字货币的一个重要概念,是一串使用加密方法关联而产生的数据块,每一个数据块包含一次交易信息,用于验证信息的有效性并生成下一个区块,从而形成一个分布式去中心网络。
物联网中所有的组成元素,比如设备节点、通信资源等,都是个性化和私有化,往往只为单一应用服务,这种现状完全违背了物联网数据共享的愿景。物联网的架构基础是无线传感器网络,它是由大量的传感器节点组成,使用通信协议进行数据传输。未来,物联网的设备数目预计将达到千亿量级,对于如此巨大的网络,若以中心化组网方式,那么中心节点设备的建设和维护投入将无法估量,因此未来的趋势是建立一种分布式网络。对于分布式网络,最大的问题解决节点信任问题,这个解决办法就是区块链技术。将在传感器节点中集成节点操作系统(Node Operating System,NDOS)的应用开发,和区块链去中心化技术相结合,可以实现分布式信息共享网络和节点自我管理数据的功能。此外,区块链可以承载数据信息,然而不同的设备具有不同的数据结构特征,通过专用的节点操作系统(NodeOperating System,NDOS)存储和控制的区块链,将具备广泛的通用性。
面对区块链虚拟机技术的应用需求,在区块链上集成可执行脚本是一种备选方案。现有的区块链技术,正逐步演进为分布式数据存储解决方案,所存储的数据内容主要是构成区块链的区块数据信息,或区块链授权的交易数据信息。某一条区块链仅针对部分数据信息建立分布式数据验证和管理机制,不能接纳外部输入的其他数据格式,因此可以说,在区块链上构建的可执行脚本,其涉及的数据具有封闭性和局限性。现有的嵌入式操作系统大多数是面向控制过程的,它们强调对系统资源的控制与调度,却忽略了对节点之间通信过程的优化。
因此,需要一种优化通信节点之间通信过程的集成轻量级区块链的节点操作系统及数据更新的方法。
发明内容
本发明的目的,一方面在于提供一种集成轻量级区块链的节点操作系统,所述节点操作系统嵌入每个通信节点的通信协议栈的数据链路层底部,所述节点操作系统包括内部管理单元,以及集成在所述节点操作系统中的轻量级区块链,其中,
所述内部管理单元封装有不同网络协议栈的库函数,并提供与所述网络协议栈的库函数进行交互的协议栈接口;
所述轻量级区块链的区块链数据定义统一的数据链表,所述数据链表包括采集节点个数、时间戳、信息摘要和采集节点的身份信息,当通信节点之间通信时,所述轻量级区块链中仅存储所述信息摘要和采集节点的身份信息。
优选地,所述轻量级区块链的区块链数据以数据链表存储在通信芯片的片上存储器中。
优选地,信息摘要为通信节点之间通信时采集到的更新数据的关键词。
优选地,所述采集节点的身份信息包括节点设备号和节点IP地址。
优选地,所述通信节点的通信协议栈包括上层应用层和下层设备层。
优选地,所述节点操作系统还包括文件单元、任务调度单元和系统内核。
本发明的另一个方面在于提供一种区块链数据更新的方法,所述方法包括如下步骤:
a)通信节点接入网络,进行数据通信,目标节点的节点操作系统不断检测是否有其他通信节点采集到的数据发生更新,若检测到某一通信节点更新数据,则进入步骤b);
b)采集节点的节点操作系统提取所述更新数据的信息摘要,将所述更新数据的信息摘要和采集节点的身份信息同时传递给目标节点;
c)目标节点通过任务调度单元将接收到的更新数据的信息摘要和采集节点的身份信息封装后并入数据链表的末端,并记录此次时间戳。
d)将所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要进行对比,更新目标节点的数据链表,形成新的区块链数据。
优选地,所述步骤d)中,若所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要相同,则根据时间戳的先后顺序,保留最新时间戳下更新数据的信息摘要和采集节点的身份信息,并删除目标节点数据链表中与更新数据的信息摘要相同的历史数据。
优选地,所述步骤d)中,若所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要不同,则保留最新时间戳下更新数据的信息摘要和采集节点的身份信息。
优选地,所述步骤a)中,若所述目标节点的节点操作系统在同一时间内检测到多个通信节点到的数据发生更新,则将检测到的所有更新数据按照信息摘要的次序在时间戳下排列。
本发明提供的一种集成轻量级区块链的节点操作系统及数据更新的方法,能够支持不同通信方式和组网方式的底层设备,实现对多种通信方式和协议的兼容,并且针对通信任务进行合理优化,从而协调和控制网络节点之间的高效协作与数据共享。
不发明具可接入更丰富的传感及其他小规模数据集信息、可用于实现高安全性的区块链技术的无线支付功能以及可以和硬件开发流程结合,具有更广泛的适应性。
应当理解,前述大体的描述和后续详尽的描述均为示例性说明和解释,并不应当用作对本发明所要求保护内容的限制。
附图说明
参考随附的附图,本发明更多的目的、功能和优点将通过本发明实施方式的如下描述得以阐明,其中:
图1示意性示出了本发明通信节点的结构示意图;
图2示出了本发明内部管理单元结构示意图;
图3示出了本发明轻量级区块链的区块链数据结构图;
图4示出了本发明一个实施例中通信节点之间通信的示意图;
图5示出了本发明另一个实施例中通信节点之间通信的示意图;
图6示出了本发明轻量级区块链的区块链数据更新流程图;
图7示出了本发明一个实施例中区块链数据更新的示意图;
图8示出了本发明另一个实施例中区块链数据更新的示意图。
具体实施方式
通过参考示范性实施例,本发明的目的和功能以及用于实现这些目的和功能的方法将得以阐明。然而,本发明并不受限于以下所公开的示范性实施例;可以通过不同形式来对其加以实现。说明书的实质仅仅是帮助相关领域技术人员综合理解本发明的具体细节。
在下文中,将参考附图描述本发明的实施例。在附图中,相同的附图标记代表相同或类似的部件,或者相同或类似的步骤。
本领域技术人员可以认识到,以下实施例仅是用来描述本发明内容的一个或多个特定的实施例,对本发明的内容是可以根据实施例做出变通的。以下实施例中,通信节点是指相互通信的通信网络节点,通信过程中,通信节点之间均处于通信范围之内。如图1所示本发明通信节点的结构示意图,通信节点中嵌入本发明所提供的集成轻量级区块链的节点操作系统(NDOS)101,具体地,所述节点操作系统(NDOS)101嵌入通信节点的通信协议栈100的数据链路层底部,本领域技术人员应当理解的是,通信协议栈可以是多层,所述通信节点的通信协议栈包括上层应用层和下层设备层。在一些实施例中,可以是七层通信协议栈;在另一些实施例中可以是五层通信协议栈,本实施例中由本发明所限定的节点操作系统(NDOS)101嵌入到通信协议栈100的数据链路层的底部,不需要用户在应用层发送数据请求,在通信协议层即可实现完整的数据传输过程,节约了通信节点的通信开销,实现了通信节点之间实时、高效的数据通信。
节点操作系统(NDOS)101包括内部管理单元102,以及集成在所述节点操作系统(NDOS)101中的轻量级区块链103,同时,节点操作系统(NDOS)101还包括文件单元、任务调度单元和系统内核。
如图2所示本发明内部管理单元结构示意图,内部管理单元102封装有不同网络协议栈的库函数1022,并提供与所述网络协议栈的库函数1022进行交互的协议栈接口1021,实现多种通信方式和协议兼容,协调和控制通信节点之间的高效协作和数据共享。所述网络协议栈的库函数1022包括但不限于WiFi协议栈的库函数、Linux协议栈的库函数、ZigBee协议栈的库函数或蓝牙协议栈的库函数等。不同的协议栈库函数具有与其相对应的协议栈接口。
根据本发明集成轻量级区块链的节点操作系统,本实施例中轻量级区块链的区块链数据定义统一的数据链表,方便区块链的跟新和维护,同时保证不同通信节点之间可以进行自由地数据共享。如图3所示本发明轻量级区块链的区块链数据结构图,数据链表200包括采集节点个数201、时间戳202、信息摘要202和采集节点的身份信息204,其中采集节点的身份信息204包括节点设备号和节点IP地址。当通信节点之间通信时,考虑到数据同步问题和存储空间问题,轻量级区块链中仅存储数据的信息摘要和采集节点的身份信息,从而降低通信数据信息容量过大的问题。采集节点的身份信息204使通信数据完整,保证了系统的通信的高效和稳定。
为了使本发明得以更加清晰的阐释,结合本实施例对本发明数据链表200做进一步的说明。所述采集节点个数201表示同一个时间戳下发生数据更新的节点个数,例如在通信节点之间通信时,目标节点检测到三个通信节点的数据发生更新,则采集节点个数为3。
所述时间戳202是指采集节点发送数据的时间标志,由采集节点写入,作为区分数据的新旧版本的依据。
信息摘要203为通信节点之间通信时采集到的更新数据的关键词。采集节点的身份信息204包括节点的设备号和IP地址。应当理解的是,某一个时间点可能有若干个通信节点同时采集到数据,采集节点个数来记录此时刻数据变化通信节点的个数,因而,同一个时间戳下可以包含多个信息摘要。本发明完整的区块链表将按照时间戳从旧到新的顺序排列。
优选地,轻量级区块链的区块链数据以数据链表存储在通信芯片的片上存储器中。
如图4所示本发明一个实施例中通信节点之间通信的示意图,当两个通信节点均嵌有本发明轻量化级块链的节点操作系统之间通信时,第一通信节点301的轻量级区块链的数据链表303与第二通信节点302的轻量级区块链的数据链表304之间进行数据传输,保证了数据的一致性,使第一通信节点301与第二通信节点302之间的网络达成共识。
如图5所示本发明另一个实施例中通信节点之间通信的示意图,当相互通信的两个通信节点中的一个通信节点嵌有本发明轻量化级块链的节点操作系统时,本实施例中,第一通信节点401中嵌有本发明轻量化级块链的节点操作系统,第一通信节点401的轻量级区块链的数据链表403与第二通信节点402的区块链的数据链表404之间进行数据传输,保证了数据的一致性,使第一通信节点401与第二通信节点402之间的网络达成共识。
上述共识机制有效解决了不同的网络设备采用不同的通信协议以及不同的数据结构特征对系统可扩展性的限制,使通信节点可以广泛应用于物联网环境中。
下文中将进一步描述本发明节点操作系统(NDOS)的轻量级区块链的区块链数据更新的方法,如图6所示本发明轻量级区块链的区块链数据更新流程图所述区块链数据更新的方法包括如下步骤:
步骤S101、目标节点检测数据更新,通信节点接入网络,进行数据通信,目标节点的节点操作系统不断检测是否有其他通信节点采集到的数据发生更新,若检测到某一通信节点更新数据,则进入步骤b);
步骤S102、采集节点发送数据,采集节点的节点操作系统提取所述更新数据的信息摘要,将所述更新数据的信息摘要和采集节点的身份信息同时传递给目标节点;
步骤S103、目标节点接收数据,目标节点通过任务调度单元将接收到的更新数据的信息摘要和采集节点的身份信息封装后并入数据链表的末端,并记录此次时间戳。
步骤S104、目标节点比较摘要信息,将所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要进行对比,更新目标节点的数据链表,形成新的区块链数据。
若所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要相同,则根据时间戳的先后顺序,保留最新时间戳下更新数据的信息摘要和采集节点的身份信息,并删除目标节点数据链表中与更新数据的信息摘要相同的历史数据。优选地,在设定时间内删除所述历史数据。
若所述更新数据的信息摘要与目标节点数据链表中已有的信息摘要不同,则保留最新时间戳下更新数据的信息摘要和采集节点的身份信息。
优选地,若所述目标节点的节点操作系统在同一时间内检测到多个通信节点的数据发生更新,则将检测到的所有更新数据按照信息摘要的次序在时间戳下排列。
下面对上述的轻量级区块链的区块链数据更新的方法举例说明:
实施例一
如图7所示本发明一个实施例中区块链数据更新的示意图,当某一时刻下(时间戳4),目标节点的节点操作系统(NDOS)检测到采集节点的信息摘要2发生更新,采集节点的身份信息为设备号5、IP地址5。
采集节点提取信息摘要2,采集节点的身份信息设备号5和IP地址5,形成时间戳4发送给目标节点。
目标节点接收到数据后,目标节点的节点操作系统(NDOS)首先将数据并入数据链表的末端,并记录下此次数据更新的时间戳4。
目标节点将更新的时间戳4下的摘要信息与目标节点数据链表中已有的摘要信息进行比较。本实施例中,目标节点检测到数据链表中时间戳2下已经含有信息摘要2,也就是说,更新数据的信息摘要与目标节点数据链表中已有的信息摘要相同,则根据时间戳的先后顺序,保留最新时间戳4下更新数据的信息摘要2和采集节点的身份信息:设备号5、IP地址5,并且,在设定时间内删除时间戳2下方的信息摘要2和采集节点的身份信息:设备号2、IP地址2。保留最新时间戳4下的信息摘要2和采集节点的身份信息:设备号5、IP地址5,形成一条由时间戳1、时间戳2、时间戳3和时间戳4组成的新的数据链表。
在一些实施例中,若目标节点检测到数据链表中时间戳下未含有信息摘要,也就是说,更新数据的信息摘要与目标节点数据链表中已有的信息摘要不相同,则保留最新时间戳下更新数据的信息摘要和采集节点的身份信息,形成一条新的数据链表。
实施例二
如图8所示本发明另一个实施例中区块链数据更新的示意图,当目标节点的节点操作系统(NDOS)在同一时间内(时间戳4)检测到有多个通信节点的数据发生更新,本实施例中采集节点的信息摘要5发生更新,采集节点的身份信息为设备号5、IP地址5;采集节点的信息摘要6发生更新,采集节点的身份信息为设备号6、IP地址6。
采集节点提取信息摘要5,采集节点的身份信息设备号5和IP地址5,同时采集节点提取信息摘要6,采集节点的身份信息设备号6和IP地址,形成时间戳4发送给目标节点。
目标节点接收到数据后,目标节点的节点操作系统(NDOS)将检测到信息摘要5,采集节点的身份信息为设备号5、IP地址5;以及信息摘要6,采集节点的身份信息为设备号6、IP地址6,按照信息摘要的次序在时间戳4下排列。
目标节点对摘要信息的比较与实施例一中的过程相同,这里不再累述。
本发明轻量级区块链的区块链数据更新整个过程实现了一种更新式存储,轻量级区块链中仅存储数据的信息摘要和采集节点的身份信息。对于相同的信息摘要而言,只有时间戳最新的数据被存储下来,而无价值的历史数据在设定时间内及时删除。随着通信过程不断进行,形成一条完整的数据链表,整个链表按照时间戳从旧到新的顺序排列。
本发明提供的一种集成轻量级区块链的节点操作系统及数据更新的方法,在每个通信节点中,将轻量级区块链集成于的节点操作系统(NDOS)中,并且将节点操作系统(NDOS)嵌入通信节点的通信协议栈的数据链路层底部,协议栈上层的APP软件可以方便地调用具有低复杂度、低通信开销、具有广泛扩散性的区块链验证和信息获取方法。此外,本发明可以应用于金融、医疗、互联网等不同的场景中,因此整个系统具备良好的可扩展性。
结合这里披露的本发明的说明和实践,本发明的其他实施例对于本领域技术人员都是易于想到和理解的。说明和实施例仅被认为是示例性的,本发明的真正范围和主旨均由权利要求所限定。