基于命名数据网络与区块链的分布式数据存储方法与系统与流程

未命名 09-19 阅读:151 评论:0


1.本发明涉及一种基于命名数据网络与区块链的分布式数据存储方法与系统,属于分布式存储技术领域。


背景技术:

2.命名数据网络(named data networking,ndn)是一种全新的网络结构,其在传统tcp/ip体系结构上使用数据名称代替了ip地址,将数据命名为唯一的标识符,并通过名称来寻找和传输数据,实现了基于数据命名的路由和转发。命名数据网络中数据的名称通常由多个命名组件组成,可以包含任意类型的数据,ndn节点可以通过这个名称来发现和请求数据,网络中的路由器则会根据名称来转发数据包。
3.在命名数据网络中,数据消费者若要请求某内容,则产生带有相应名字的兴趣包,通过网络转发,到达存有此内容的结点。当生产者响应消费者请求时,将数据包装成一个带有名称的数据包,并将其发送回消费者。消费者可以通过检查数据包的名称来确定它是否包含所需的数据。如果数据包的名称与请求匹配,则消费者可以从数据包中提取数据并进行后续处理。
4.传统的ip网络面向的是连接,而现代通信关心的是内容,在以分布式存储为核心的网络3.0时代,需要一种新的数据存储和通信方式。这种通信方式期待能够提高网络性能、效率、安全和灵活性,增强网络基础层的信任,解决秘钥管理、访问控制等问题,实现数据的不可篡改和可追溯。而区块链具有的去中心化、信息不可篡改、数据可追溯、智能合约、共识机制等特点均符合分布式存储的要求,将区块链技术与命名数据网络相结合,能够为分布式存储提供一种更安全、透明和可靠的基础架构,具有较好的应用前景。


技术实现要素:

5.发明要解决的技术问题
6.本发明针对传统分布式网络存储方式中存在的数据安全性低、不可追溯、灵活性差、通信方式网络效能利用率低等问题,提出一种基于命名数据网络与区块链的分布式数据存储方法与系统。
7.技术方案
8.为达到上述目的,本发明提供的技术方案为:
9.基于命名数据网络与区块链的分布式数据存储方法,包括如下步骤:
10.步骤1,生产者将以名称命名的待存储数据的哈希值存储在区块链上;
11.步骤2,生产者接收到消费者发送的包含数据名称的数据请求后,查询区块链上存储的哈希值对应的数据;
12.步骤3,生产者将消费者请求数据以及对应区块链上存储的哈希值封装于带有名称的数据包中,通过命名数据网络发送给消费者;
13.步骤4,消费者通过接收数据包中的数据名称验证数据的正确性,通过数据包中的
哈希值与区块链上存储的哈希值进行比较以确保数据没有被篡改或破坏。
14.进一步地,步骤1中将数据的存储地址编码添加到待存储数据名称的头部或尾部。
15.进一步地,步骤1中将数据的生成时间作为时间戳添加到待存储数据特定位置。
16.进一步地,步骤1中包含待存储数据的确认过程,步骤为:
17.步骤11,区块链节点对待存储数据进行验证;
18.步骤12,区块链节点之间进行同步,以确保所有区块链节点中都添加了数据;
19.步骤13,验证通过及数据存储完毕后向数据提交者发送确认信息。
20.执行本发明基于命名数据网络与区块链的分布式数据存储方法的系统,由若干与区块链关联的ndn节点与前端浏览器组成,其中ndn节点用于发送和接收ndn网络的相关存储需求,ndn节点区块链用于存储本节点相关数据,前端浏览器用于浏览ndn网络的拓扑、存储资源等信息。
21.进一步地,上述系统可以加入新的ndn节点方式进行扩展。
22.有益效果
23.本发明将命名数据网络技术与区块链技术进行结合,通过命名数据网络快速传输数据,通过区块链确保数据的不可篡改和可追溯性,通过使用区块链作为存储机制,生产者可以将数据保存在分布式的、不可篡改的区块链上,从而保证数据的安全性。
24.本发明方法通过时间戳机制、确认机制等方法,确保了数据在命名数据网络和区块链之间的一致性,保证了分布式存储数据的可靠性。
附图说明
25.图1为本发明方法的步骤框图;
26.图2为执行本发明方法系统组成图。
具体实施方式
27.为进一步了解本发明的内容,结合附图和具体实施方式对本发明作详细描述。
28.本发明基于命名数据网络与区块链的分布式数据存储方法步骤如图1所示,方法分为以下几个步骤:
29.1)生产者将将数据的哈希值存储在区块链上,这可以减少区块链的负担并提高系统的效率;
30.2)当消费者向生产者发送数据请求时,生产者使用哈希值从区块链上检索数据,使用区块链节点的api查询区块链上存储的哈希值对应的数据;
31.3)生产者将数据、对应存储的哈希值封装在一个带有名称的数据包中,通过ndn网络发送给消费者;
32.4)消费者通过ndn网络接收到数据包后,可以通过名称来验证数据的完整性和正确性。消费者可以将数据包中的哈希值与区块链上存储的哈希值进行比较,以确保接收到的数据是正确的,并且没有被篡改或损坏。
33.通过将ndn和区块链结合起来,这个系统可以提高数据的安全性和可靠性。ndn可以快速地传输数据,而区块链可以确保数据的不可篡改和可追溯性。同时,通过使用区块链作为存储机制,生产者可以将数据保存在分布式的、不可篡改的区块链上,从而保证数据的
可靠性和安全性。
34.方法中,命名数据网络使用名称作为唯一的数据标识,而区块链使用哈希值作为唯一的数据标识,因此,当数据名称与哈希值相同时会产生命名冲突的问题。命名冲突问题可以通过在名称中加入特定的前缀或后缀来解决,从而确保名称和哈希值的唯一性。本实施例将数据存储地址编码添加到待存储数据名称的头部或尾部,这样即使不同的数据有相同的名称时,由于其存储地址的不同也能够确保数据名称的唯一性。
35.命名数据网络中,数据是根据名称进行路由和传输的;而在区块链中,数据是按照时间顺序进行存储和传输的。因此,当数据存储在区块链上时,可能会存在一些延迟和不一致的问题。为了解决这个问题,可以使用特定的协议和算法,例如时间戳、确认机制等,来确保数据在ndn和区块链之间的一致性。
36.具体地,在数据生成时在特定位置,如数据首部或尾部为数据添加时间戳,即记录数据生成的时间。这样,即使数据存储在不同的地方,也可以通过时间戳来区分数据的先后顺序。为了避免时间戳被篡改,可以使用加密算法和数字签名等技术对时间戳进行保护。
37.在将数据存储到区块链上时,使用确认机制来确保数据被正确地写入区块链中,确认方法包括以下步骤:首先由存储数据的区块链节点对数据进行验证,然后区块链节点间进行同步,确保所有区块链节点中都添加了数据;在验证通过及数据存储完毕后向数据提交者发送确认信息。
38.通过上述时间戳、确认机制,当数据被写入区块链中后,其它节点将可以通过区块链来访问数据,同时也可以利用时间戳来确定数据的先后顺序,从而确保数据在命名数据网络和区块链之间的一致性。
39.作为本发明方法的一个实施例,设前缀名称为prefix/video/cat.mp4的视频文件要存储至命名数据网络的b节点,在数据存储阶段,b节点将prefix/video/cat.mp4的待存储数据的哈希值存储在节点区块链上,将数据的存储地址编码添加到待存储数据名称的头部或尾部,将数据的生成时间作为时间戳添加到待存储数据特定位置,存储阶段对待存储数据进行验证及确认。
40.假设有请求节点a想要获取名称为prefix/video/cat.mp4的视频文件,前缀prefix可有多种变化,在本实施例中,prefix格式为:/区域名/地区名/小区名/用户名,基于本发明的数据存储方法,以下为通信过程:
41.1)节点a将数据请求封装为兴趣包,并进行广播;
42.2)命名数据网络中其它节点收到包含数据名称兴趣包后,查询本节点区块链上哈希值对应数据;
43.3)b节点发现其区块链上存储有名称为prefix/video/cat.mp4的视频文件,则b根据视频大小,将对应区块链上的哈希值、视频全部或分块封装至带有名称的数据包中,通过命名数据网络发送至a;
44.4)a节点接收到数据包后,通过其中名称prefix/video/cat.mp4验证数据的正确性,通过数据的哈希值与区块链上存储的哈希值比较验证数据的完整性。
45.设后缀名称为report.pdf/doc/suffix的文件要存储至命名数据网络的c节点,在数据存储阶段,c节点将report.pdf/doc/suffix的待存储数据的哈希值存储在节点区块链上,将数据的存储地址编码添加到待存储数据名称的头部或尾部,将数据的生成时间作为
时间戳添加到待存储数据特定位置,存储阶段对待存储数据进行验证及确认。
46.假设有请求节点d想要获取名称为report.pdf/doc/suffix的文件,后缀suffix可有多种变化,在本实施例中,suffix格式为:/用户名/小区名/地区名/区域名,基于本发明的数据存储方法,以下为通信过程:
47.1)节点d将数据请求封装为兴趣包,并进行广播;
48.2)命名数据网络中其它节点收到包含数据名称兴趣包后,查询本节点区块链上哈希值对应数据;
49.3)c节点发现其区块链上存储有名称为report.pdf/doc/suffix的文件,则c将对应区块链上的哈希值、文件封装至带有名称的数据包中,通过命名数据网络发送至d;
50.4)d节点接收到数据包后,通过其中名称report.pdf/doc/suffix验证数据的正确性,通过数据的哈希值与区块链上存储的哈希值比较验证数据的完整性。
51.实施本发明方法的分布式存储系统架构图如图2所示,系统由若干与区块链关联的ndn节点与前端浏览器组成,其中ndn节点用于发送和接收ndn网络的相关存储需求,ndn节点区块链用于存储本节点相关数据,前端浏览器用于浏览ndn网络的拓扑、存储资源等信息。
52.上述系统可以加入新的ndn节点方式进行扩展,当某个节点要加入系统时,其向ndn网络中其它节点发送加入请求以获得系统的拓扑结构和其它必要信息,节点加入后,可以将自己的存储资源和计算资源共享给其它节点,从而提高系统的可扩展性;某节点成为ndn节点后,其能够根据数据名称信息将数据路由到目标节点。
53.以上示意性的对本发明及其实施方式进行了描述,该描述没有限制性,附图中所示的也只是本发明的实施方式之一,实际的结构并不局限于此。所以,如果本领域的普通技术人员受其启示,在不脱离本发明创造宗旨的情况下,不经创造性的设计出与该技术方案相似的结构方式及实施例,均应属于本发明的保护范围。

技术特征:
1.基于命名数据网络与区块链的分布式数据存储方法,其特征在于,包括如下步骤:步骤s1,生产者将以名称命名的待存储数据的哈希值存储在区块链上;步骤s2,生产者接收到消费者发送的包含数据名称的数据请求后,查询区块链上存储的哈希值对应的数据;步骤s3,生产者将消费者请求数据以及对应区块链上存储的哈希值封装于带有名称的数据包中,通过命名数据网络发送给消费者;步骤s4,消费者通过接收数据包中的数据名称验证数据的正确性,通过数据包中的哈希值与区块链上存储的哈希值比较以确认数据没有被篡改或破坏。2.如权利要求1所述的基于命名数据网络与区块链的分布式数据存储方法,其特征在于,所述步骤s1中将数据的存储地址编码添加到待存储数据名称的头部或尾部。3.如权利要求1所述的基于命名数据网络与区块链的分布式数据存储方法,其特征在于,所述步骤s1中将数据的生成时间作为时间戳添加到待存储数据特定位置。4.如权利要求1所述的基于命名数据网络与区块链的分布式数据存储方法,其特征在于,所述步骤1中包含待存储数据的确认过程,步骤为:步骤s11,区块链节点对待存储数据进行验证;步骤s12,区块链节点之间进行同步,以确保所有区块链节点中都添加了数据;步骤s13,验证通过及数据存储完毕后向数据提交者发送确认信息。5.执行如权利要求1所述的基于命名数据网络与区块链的分布式数据存储方法的系统,其特征在于,由若干与区块链关联的ndn节点与前端浏览器组成,其中ndn节点用于发送和接收ndn网络的相关存储需求,ndn节点区块链用于存储本节点相关数据,前端浏览器用于浏览ndn网络的拓扑、存储资源等信息。6.如权利要求5所述的基于命名数据网络与区块链的分布式数据存储的系统,其特征在于,系统能够以加入新的ndn节点的方式进行扩展。

技术总结
本发明公开了一种基于命名数据网络与区块链的分布式数据存储方法与系统,属于分布式存储技术领域。存储阶段数据生产者将以名称命名的数据的哈希值存储在区块链上,生产者接收到包含数据名称的数据请求后,查询区块链上存储的哈希值对应的数据,将消费者请求数据以及对应区块链上存储的哈希值封装于带有名称的数据包中,通过命名数据网络发送给消费者,消费者通过接收数据包中的数据名称及哈希值以确认数据的正确性。本发明方法将命名数据网络技术与区块链技术进行结合,将数据保存在分布式的、不可篡改的区块链上,保证数据的安全性;同时通过时间戳机制、确认机制等方法,确保了数据在命名数据网络和区块链之间的可靠性。数据在命名数据网络和区块链之间的可靠性。数据在命名数据网络和区块链之间的可靠性。


技术研发人员:雷志斌 刘扬
受保护的技术使用者:快链城科技(深圳)有限公司
技术研发日:2023.06.16
技术公布日:2023/9/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐