一种区块链中节点数据同步方法与流程

文档序号:16248459发布日期:2018-12-11 23:47阅读:1363来源:国知局
一种区块链中节点数据同步方法与流程

本发明涉及数据通信领域,特别涉及一种区块链中节点数据同步方法。

背景技术

区块链是由一连串使用密码学方法产生的数据块组成的分布式账簿系统。区块链包括“数据块”(block)和“链接”(chain)。区块是一种记录交易的数据结构,交易记录就是被验证的转账或是挖矿记录。每个数据块包含系统中一定时间内全部加密的交流信息数据,用于验证信息的有效性并生成次个区块;链接则指每一区块与下一区块间的链接关系,从而构成区块链。一个区块包含交易信息、前个区块形成的哈希散列、随机数等三个部分。交易双方的私钥、交易数量、电子货币数字签名等组成交易信息,是区块所承载的任务数据。数字签名(digitalsignature)是一个可以证明所有权的数学机制,涉及哈希函数、发送者的公钥、发送者的私钥。它能确定消息确实是由发送方签名、发出,并能确定消息的完整性;哈希散列(hash)是把任意长度的输入经哈希算法变换成由字母和数字组成的固定长度的输出,前一个区块形成的哈希散列将区块连接起来,实现过往交易的按顺序排列。随机数(nonce)在密码学中是一个只被使用一次的任意或非重复的随机数值,在各类验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击。它是交易达成的核心,是用来判断是否完成了本区块的验证工作。

区块链原本是比特币等加密货币存储数据的一种独特方式,是一种自引用的数据结构,用来存储大量交易信息,每条记录从后向前有序链接起来,具备公开透明、无法篡改、方便追溯的特点。实际上,这种特性也直接体现了整个比特币的特点,因此使用区块链来概括加密货币背后的技术实现是非常直观和恰当的。区块链是一项技术,加密货币是其开发实现的一类产品(含有代币,也有不含代币的区块链产品),不能等同或混淆。与加密货币相比,区块链这个名字抛开了代币的概念,更加形象化、技术化、去政治化,更适合作为一门技术去研究、去推广。

所以,目前当大家单独说到区块链的时候,就是指的区块链技术,是实现了数据公开、透明、可追溯的产品的架构设计方法,算作广义的区块链。而当在具体产品中谈到区块链的时候,可以指类似比特币的数据存储方式,或许是数据库设计,或许是文件形式的设计,这算作狭义的区块链。广义的区块链技术,必须包含点对点网络设计、加密技术应用、分布式算法的实现、数据存储技术的使用等4个方面,其他的可能涉及到分布式存储、机器学习、vr、物联网、大数据等。狭义的区块链仅仅涉及到数据存储技术,数据库或文件操作等。本申请中的区块链,指的是广义的区块链。

区块链技术根据实际应用场景和需求具有公共链(publiclockchain)、联盟链(consortiumblockchain)和私有链(privateblockchain)三种应用模式。公共链是完全去中心化的区块链,无官方组织及管理机构,无中心服务器,参与的节点按照系统规则自由接入网络、不受控制,节点间基于共识机制开展工作。公有区块链是最早的区块链,也是目前应用最广泛的区块链,其典型代表是比特币。联盟链则是部分去中心化的区块链,由若干机构联合发起,介于公有链和私有链之间,取舍两者权利和义务的分配,并对分布式账本的访问做一定的访问控制。适用于多个实体构成的组织或联盟;私有链则是完全中心化的区块链,其写入权限由中心机构控制,读取权限可视需求有选择性地对外开放,适用于特定机构的内部数据管理与审计等。

随着区块链技术的应用,其去中心化和公开加密的方式将应用于各种数据处理环境中,而私有大数据同步共享也将是其未来的重要应用方向,因此效率和保密性将成为技术发展所关注的重点问题。

现有技术中专利申请号为:201710625330.3的专利申请中提到现有区块链技术是将定长数据以区块方式写入区块链,在组织信息进入区块链的时候,区块链处理节点是按照待处理信息的顺序,依次处理各种信息请求,例如,对数据加工、打包数据进入区块链以及将打包到区块链的数据进行网络同步等,由于顺序依次处理各种信息请求的原因,这样会带来峰值处理瓶颈问题,如果瞬间消息请求过多会导致系统产生瓶颈,系统资源耗尽,这在联盟链情形之下更为严重。为解决以上问题,该篇现有技术中提出了一种基于区块链技术的信息处理方法,包括:在组织信息进入区块链的各信息处理环节中,将接收的待处理信息缓存至指定的消息队列中;从所述指定的消息队列中提取本次信息处理的信息内容进行处理。在组织信息进入区块链的各信息处理环节中,通过消息队列的形式将待处理的信息缓存,然后再从消息队列中提取本次信息处理的信息内容进行处理,以避免出现峰值处理瓶颈问题,提高系统的稳定性。该现有技术中通过设置缓存模块进行消息排序处理,在进行高频访问过程中保证了访问的正确性,但对于大型数据文件的并发式访问可能造成长时间等待从而造成文件传输错误,且对于消息队列本身的管理也导致了中心化服务方式,削弱了区块链的作用。

鉴于以上现有技术中存在的问题,本申请采用以下技术方案。



技术实现要素:

为解决上述技术问题,本发明提供一种区块链中节点数据同步方法,用于解决多节点并发同步大型数据文件,以及私有链和公有链切换过程中不同访问权限和访问顺序的问题。通过将大型数据文件进行分割,采用特定格式进行私有链中节点进行存储,通过私有链内部时间管理同步机制保证私有链内部节点访问顺序,通过同步请求的区块链广播方式进行数据同步请求发布,采用密钥验证的方式进行数据传输控制,对于请求和传输记录均按照文件进行各节点的账本记录,保证了操作记录的可追溯性。通过大型文件的分割式备份节点存储,提高了整个私有链文件存储的安全性,采用p2p的文件传输模式提高传输速度。该方法适用于具有大型文件保密管理传输、使用的领域。

本发明通过以下技术方案实现:

一种区块链中节点数据同步方法,其特征在于,具体包括以下步骤:时间同步、数据同步请求发布、区块链广播、节点验证、文件传输、历史记录;所同步的文件为大型数据文件。

区块链为公有链、联盟链、私有链三种中的一种或多种结合。

时间同步步骤具体包括,每个私有链具有一个时间同步管理节点,定时进行私有链内部的各节点的时间同步,所述定时步骤包括时间同步频率设定,设定方式为人工设定或自动设定。

根据数据同步的最小文件大小,结合传输速率计算数据同步最短时间,时间同步频率的时间设定要小于该最短时间。

联盟链中包括一个或多个私有链,其中个私有链采用单一数据接口,且各私有链中通过联盟链的时间同步管理节点进行时间同步管理;公有中包括一个或多个联盟链,其中个联盟链采用单一数据接口,且各联盟链中通过公有链的时间同步管理节点进行时间同步管理。

数据同步请求发布步骤,具体包括:私有链中,具有数据同步需求的节点通过发布数据同步请求的方式进行数据操作管理,数据请求中包括所需进行操作文件指针、请求发布时间、操作类型、文件密钥,并将生成的请求进行私有链广播。

区块链广播步骤具体包括,收到节点发布的数据同步请求后,将该请求同步至私有链中的全部节点,各节点进行请求记录和验证。

节点验证步骤通过文件密钥进行节点和文件的访问权限控制,当目标节点通过反加密运算得出目标文件后,即为验证通过,进行后续文件传输操作;若结果为未通过,则仅进行请求历史记录。

文件传输方式包括:ftp、http、smtp、pop3、bt、p2p,其中优选p2p进行文件传输。

大型数据文件的构成采用分块形式,文件块包含文件指针和用于确定版本的时间信息。

大型数据文件采用分块备份存储的方式,存储于私有链的各节点中。

本发明的有益效果是:

1、通过特定的大型文件分块备份存储存储方式有效利用区块链区中心化的特点。

2、通过多种访问顺序排序方式,结合分块式文件访问机制,加快文件传输效率。

3、通过大型数据文件指针管理,有效加快数据访问记录在区块链中的保存和管理方式。

附图说明

图1本发明的大型数据文件存储结构图

图2本发明的系统流程图

一种区块链中节点数据同步方法,用于解决多节点并发同步大型数据文件,以及私有链和公有链切换过程中不同访问权限和访问顺序的问题。通过将大型数据文件进行分割,采用特定格式进行私有链中节点进行存储,通过私有链内部时间管理同步机制保证私有链内部节点访问顺序,通过同步请求的区块链广播方式进行数据同步请求发布,采用密钥验证的方式进行数据传输控制,对于请求和传输记录均按照文件进行各节点的账本记录,保证了操作记录的可追溯性。通过大型文件的分割式备份节点存储,提高了整个私有链文件存储的安全性,采用p2p的文件传输模式提高传输速度。该方法适用于具有大型文件保密管理传输、使用的领域。

具体实施方式

以下结合具体实施方式对本发明作进一步详细的描述,但本发明的实施方式并不限于此,在不冲突的情况下,本发明中的实施方式及实施方式中的特征可以相互组合:

实施例1:

某大型航天仿真科研实验室采用本发明的方法进行航天实验模拟数据的管理,更具体的,将用于仿真计算的计算机和具有数据访问请求科研人员使用计算机加入到节点中,形成私有链进行实验数据的管理和使用。

具体包括以下步骤:时间同步、数据同步请求发布、区块链广播、节点验证、文件传输、历史记录;所同步的文件为大型数据文件。

时间同步步骤具体包括,每个私有链具有一个时间同步管理节点,定时进行私有链内部的各节点的时间同步,所述定时步骤包括时间同步频率设定,设定方式为人工设定或自动设定。

更具体的,在该私有链中具有一个时间管理节点,用于定时同步各节点中的时间信息。

根据数据同步的最小文件大小,结合传输速率计算数据同步最短时间,时间同步频率的时间设定要小于该最短时间。

数据同步请求发布步骤,具体包括:私有链中,具有数据同步需求的节点通过发布数据同步请求的方式进行数据操作管理,数据请求中包括所需进行操作文件指针、请求发布时间、操作类型、文件密钥,并将生成的请求进行私有链广播。

更具体的,在该同步请求发布步骤中包括文件版本信。

区块链广播步骤具体包括,收到节点发布的数据同步请求后,将该请求同步至私有链中的全部节点,各节点进行请求记录和验证。

更具体的,在区块链广播步骤中包括防冲突模块,由于大文件采取分块多节点备份的存储方式,当多个节点访问同一大型数据文件时,可以进行访问时间排序、访问文件分解排序、备份节点访问排序,极大提高了数据访问效率,具体为按访问请求时间进行文件访问验证,若为同时则将访问该文件的备份节点,若备份节点已被同时访问,则进行大型数据文件的分块文件其他节点访问。

节点验证步骤通过文件密钥进行节点和文件的访问权限控制,当目标节点通过反加密运算得出目标文件后,即为验证通过,进行后续文件传输操作;若结果为未通过,则仅进行请求历史记录。

更具体的,所有节点的数据同步请求均进行区块链中的全部数据节点的账本同步,其中同步的信息为数据文件的指针信息,可以进行定长编码,避免了大型数据的多次传输,在利用区块链区中心化和保密性的基础上,实现了大型数据有效保密的可能性。

文件传输方式包括:ftp、http、smtp、pop3、bt、p2p,其中优选p2p进行文件传输。

更具体的,通过验证的数据节点之间进行p2p对等网络数据快速传输。

大型数据文件的构成采用分块形式,文件块包含文件指针和用于确定版本的时间信息。

更具体的,大型仿真数据进行分块存储,各块之间通过文件指针和版本信息进行识别控制,用于进行节点验证过程中进行文件查找。

大型数据文件采用分块备份存储的方式,存储于私有链的各节点中。

更具体的,大型数据文件以整块的方式存储在两个或更多的节点中,进行备份存储。

实施例2:

本发明的数据同步方式适用于具有保密管理需求的大型数据同步环境中。

具体包括以下步骤:时间同步、数据同步请求发布、区块链广播、节点验证、文件传输、历史记录;所同步的文件为大型数据文件。

时间同步步骤具体包括,每个私有链具有一个时间同步管理节点,定时进行私有链内部的各节点的时间同步,所述定时步骤包括时间同步频率设定,设定方式为人工设定或自动设定。

更具体的,在该私有链中具有一个时间管理节点,用于定时同步各节点中的时间信息。

区块链为公有链、联盟链、私有链三种中的一种或多种结合。

更具体的区块链的结构设定可以采用多种链结合的方式,及公有链下设联盟链,联盟链下设私有链的树形结构,其中各私有链中设置一个数据出入口进行联盟链对私有链的数据访问管理,包括权限设定和加密文件验证,以及时间同步;同时联盟链中设置一个数据出入口进行公有链对联盟链的数据访问管理,包括权限设定和加密文件验证,以及时间同步;不同私有链之间仅能通过联盟链数据接口进行数据访问,不同联盟链之间仅能通过公有链进行数据访问。

根据数据同步的最小文件大小,结合传输速率计算数据同步最短时间,时间同步频率的时间设定要小于该最短时间。

数据同步请求发布步骤,具体包括:私有链中,具有数据同步需求的节点通过发布数据同步请求的方式进行数据操作管理,数据请求中包括所需进行操作文件指针、请求发布时间、操作类型、文件密钥,并将生成的请求进行私有链广播。

更具体的,在该同步请求发布步骤中包括文件版本信。

区块链广播步骤具体包括,收到节点发布的数据同步请求后,将该请求同步至私有链中的全部节点,各节点进行请求记录和验证。

更具体的,在区块链广播步骤中包括防冲突模块,由于大文件采取分块多节点备份的存储方式,当多个节点访问同一大型数据文件时,可以进行访问时间排序、访问文件分解排序、备份节点访问排序,极大提高了数据访问效率,具体为按访问请求时间进行文件访问验证,若为同时则将访问该文件的备份节点,若备份节点已被同时访问,则进行大型数据文件的分块文件其他节点访问。

节点验证步骤通过文件密钥进行节点和文件的访问权限控制,当目标节点通过反加密运算得出目标文件后,即为验证通过,进行后续文件传输操作;若结果为未通过,则仅进行请求历史记录。

更具体的,所有节点的数据同步请求均进行区块链中的全部数据节点的账本同步,其中同步的信息为数据文件的指针信息,可以进行定长编码,避免了大型数据的多次传输,在利用区块链区中心化和保密性的基础上,实现了大型数据有效保密的可能性。

文件传输方式包括:ftp、http、smtp、pop3、bt、p2p,其中优选p2p进行文件传输。

更具体的,通过验证的数据节点之间进行p2p对等网络数据快速传输。

大型数据文件的构成采用分块形式,文件块包含文件指针和用于确定版本的时间信息。

更具体的,大型仿真数据进行分块存储,各块之间通过文件指针和版本信息进行识别控制,用于进行节点验证过程中进行文件查找。

更具体的,如本发明中附图1,将大型数据文件分割为甲、乙、丙、丁等块,其中该处仅为示意行命名,具体的文件分块命名方式以具体存储格式为准。

其中各块均具有时间信息和文件指针,其中文件指针用户保证大型文件数据的连续性,以及作为密钥的组成部分使用。在进行验证过程中通过文件名和文件指针等信息查找到对应的文件后进行密钥验证,当通过后进行数据传输;时间信息用于进行版本控制。

大型数据文件采用分块备份存储的方式,存储于私有链的各节点中。

更具体的,大型数据文件以分块的方式存储在两个或更多的节点中,进行备份存储,区块链中的管理模块在进行排序访问时可以优先访问某大型文件的其他分块数据。

以上已对本发明创造的较佳实施例进行了具体说明,但本发明并不限于实施例,熟悉本领域的技术人员在不违背本发明创造精神的前提下还可作出种种的等同的变型或替换,这些等同的变型或替换均包含在本申请的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1