基于区块链的旅客乘机数据共享方法及相关设备与流程

文档序号:18664140发布日期:2019-09-13 19:51阅读:214来源:国知局
基于区块链的旅客乘机数据共享方法及相关设备与流程

本发明涉及空中交通管理技术领域,尤其涉及一种基于区块链的旅客乘机数据共享方法及相关设备。



背景技术:

由于航空交通运输快捷、舒适、安全、灵活,航线的开辟不受沿线地面各种天然或人为障碍的限制,因此越来越多的用户选择坐飞机出行。

通常,旅客在购票后开始飞行旅程时,乘机人身份、乘机人飞行情况等乘机人信息由航空公司掌握,旅客到达机场后的安检、行李托运、贵宾候机等地面机场服务由机场开展,而机场必须待不同航空公司将乘机人信息上报中航信后,再由中航信统一获取,而针对未接入中航信的航空公司,机场则需要分别从航空公司获取乘机人信息才能开展相关的地面乘机服务。由于中航信的介入,对机场和航空公司带来交互不畅通的问题。



技术实现要素:

有鉴于此,有必要针对由于中航信的介入,对机场和航空公司带来交互不畅通的问题,提供一种基于区块链的旅客乘机数据共享方法及相关设备。

一种基于区块链的旅客乘机数据共享方法,包括:

航空公司节点获取飞行数据,所述飞行数据包括飞机唯一编码,将所述飞行数据生成飞行数据区块,将所述飞行数据区块在区块链网络中进行上链,形成新的主链;

所述航空公司节点获取乘机人数据和飞机唯一编码,所述乘机人数据包括身份信息,将所述乘机人数据生成乘机数据区块,将所述乘机数据区块链接在所述飞机唯一编码对应的所述主链上,将所述身份信息定义为乘机人侧链标识,形成新的乘机人侧链;

机场节点获取乘机人的身份信息和飞机唯一编码,在所述飞机唯一编码对应的所述主链中,通过所述身份信息获取对应的乘机人数据,将所述乘机人数据进行展示;

所述机场节点获取乘机人登机时产生的物资数据和身份信息,将所述物资数据生成物资数据区块,将所述物资数据区块链接在所述身份信息对应的乘机人侧链上,形成新的乘机人侧链。

一种可能的设计中,所述航空公司节点获取飞行数据,所述飞行数据包括飞机唯一编码,将所述飞行数据生成飞行数据区块,将所述飞行数据区块在区块链网络中进行上链,形成新的主链,包括:

创建飞行数据区块,所述飞行数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含飞行数据变量;

将所述飞行数据通过哈希函数计算生成哈希值,将所述哈希值赋值给所述当前区块的哈希值变量,将所述飞机唯一编码赋值给索引,将当前时间赋值给所述时间戳变量,将所述飞行数据赋值给所述飞行数据变量;

从预设的区块链列表中获取与所述飞机唯一编码对应主链的链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项飞行数据区块;

将计算生成的所述哈希值添加到所述区块链列表中所述飞机唯一编码对应的主链中,将新生成的所述飞行数据区块定义为主链的链尾区块,形成了新的主链。

一种可能的设计中,所述航空公司节点获取飞行数据,所述飞行数据包括飞机唯一编码,将所述飞行数据生成飞行数据区块,将所述飞行数据区块在区块链网络中进行上链,形成新的主链后,还包括:

所述航空公司节点将所述飞行数据区块广播到所述区块链网络中的其他节点;

所述其他节点接收到广播的所述飞行数据区块后,对所述飞行数据区块进行验证,当验证通过后,将所述飞行数据区块同步到自身节点中,且将所述飞行数据区块继续广播到与所述其他节点连接的节点上。

一种可能的设计中,所述航空公司节点获取乘机人数据和飞机唯一编码,所述乘机人数据包括身份信息,将所述乘机人数据生成乘机数据区块,将所述乘机数据区块链接在所述飞机唯一编码对应的所述主链上,将所述身份信息定义为乘机人侧链标识,形成新的乘机人侧链,包括:

创建乘机数据区块,所述乘机数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含乘机人数据变量;

将所述乘机人数据通过密钥进行加密,生成密文,将所述密文通过哈希函数计算生成哈希值,将所述哈希值赋值给所述当前区块的哈希值变量,将所述身份信息赋值给索引,将当前时间赋值给所述时间戳变量,将所述密文赋值给所述乘机人数据变量;

从预设的区块链列表中获取与所述飞机唯一编码对应主链的链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项乘机数据区块;

将所述身份信息添加到所述区块链列表中所述飞机唯一编码对应的主链下,并将所述身份信息定义为乘机人侧链标识,将生成的所述哈希值添加到所述身份信息对应的乘机人侧链中,将新生成的所述乘机数据区块定义为乘机人侧链的链尾区块,形成了新的乘机人侧链;

将所述乘机数据区块广播到所述区块链网络中的其他节点,供所述其他节点验证所述乘机数据区块和同步所述乘机数据区块。

一种可能的设计中,所述机场节点获取乘机人的身份信息和飞机唯一编码,在所述飞机唯一编码对应的所述主链中,通过所述身份信息获取对应的乘机人数据,将所述乘机人数据进行展示,包括:

获取乘机人的身份信息和飞机唯一编码,从预设的区块链列表中查找所述主链的主链标识中是否存在所述飞机唯一编码,若不存在,则展示错误提示;

否则,继续查找在所述区块链列表中所述主链标识下的所述乘机人侧链的乘机人侧链标识中是否存在所述身份信息,若不存在,则展示错误提示,否则,获取所述身份信息对应的哈希值;

在区块链网络的区块链数据库中查找所述哈希值对应的乘机数据区块,读取所述乘机数据区块中的乘机人数据;

若所述乘机人数据为密文,则对所述密文通过密钥进行解密,得到解密后的乘机人数据,将所述乘机人数据和所述飞机唯一编码一起进行展示。

一种可能的设计中,所述机场节点获取乘机人登机时产生的物资数据和身份信息,将所述物资数据生成物资数据区块,将所述物资数据区块链接在所述身份信息对应的乘机人侧链上,形成新的乘机人侧链,包括:

获取乘机人登机时产生的物资数据、身份信息和飞机唯一编码,创建物资数据区块,所述物资数据区块中包含区块头和区块体,所述区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,所述区块体中包含物资数据变量;

将所述物资数据通过密钥进行加密,生成密文,将所述密文通过哈希函数计算生成哈希值,将所述哈希值赋值给所述当前区块的哈希值变量,将所述身份信息赋值给索引,将当前时间赋值给所述时间戳变量,将所述密文赋值给所述物资数据变量;

从预设的区块链列表中查找所述飞机唯一编码对应的主链,查找所述主链标识中所述侧链标识为所述身份信息的乘机人侧链,获取所述乘机人侧链的链尾区块的哈希值,将所述链尾区块的哈希值赋值给所述前一区块的哈希值变量,生成一项物资数据区块;

将生成的所述哈希值添加到所述区块链列表中所述身份信息对应的乘机人侧链中,将新生成的所述物资数据区块定义为乘机人侧链的链尾区块,形成了新的乘机人侧链;

将所述物资数据区块广播到所述区块链网络中的其他节点,供所述其他节点对所述物资数据区块和同步所述物资数据区块。

一种可能的设计中,还包括:

所述航空公司节点或所述机场节点获取区块链网络中主链的链尾区块,从所述链尾区块中获取飞机唯一编码、出行始发地、出行目的地、登机时间;

以所述登机时间为时间点的前后一预设时间范围内,定时从天气系统数据库中获取所述出行始发地的天气情况和所述出行目的地的天气情况;

将所述出行始发地及天气情况、所述出行目的地及天气情况一起定义为天气数据,生成天气数据区块,将天气数据区块链接到飞机唯一编码对应的主链上,将所述登机时间定义为天气侧链标识,形成新的天气侧链。

一种基于区块链的旅客乘机数据共享装置,包括:

生成飞行数据区块模块,用于航空公司节点获取飞行数据,所述飞行数据包括飞机唯一编码,将所述飞行数据生成飞行数据区块,将所述飞行数据区块在区块链网络中进行上链,形成新的主链;

生成乘机数据区块模块,用于所述航空公司节点获取乘机人数据和飞机唯一编码,所述乘机人数据包括身份信息,将所述乘机人数据生成乘机数据区块,将所述乘机数据区块链接在所述飞机唯一编码对应的所述主链上,将所述身份信息定义为乘机人侧链标识,形成新的乘机人侧链;

展示模块,用于机场节点获取乘机人的身份信息和飞机唯一编码,在所述飞机唯一编码对应的所述主链中,通过所述身份信息获取对应的乘机人数据,将所述乘机人数据进行展示;

生成物资数据区块模块,用于所述机场节点获取乘机人登机时产生的物资数据和身份信息,将所述物资数据生成物资数据区块,将所述物资数据区块链接在所述身份信息对应的乘机人侧链上,形成新的乘机人侧链。

一种计算机设备,包括存储器和处理器,所述存储器中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行上述基于区块链的旅客乘机数据共享方法的步骤。

一种存储有计算机可读指令的存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述基于区块链的旅客乘机数据共享方法的步骤。

上述基于区块链的旅客乘机数据共享方法、装置、计算机设备和存储介质,包括航空公司节点获取飞行数据,所述飞行数据包括飞机唯一编码,将所述飞行数据生成飞行数据区块,将所述飞行数据区块在区块链网络中进行上链,形成新的主链;所述航空公司节点获取乘机人数据和飞机唯一编码,所述乘机人数据包括身份信息,将所述乘机人数据生成乘机数据区块,将所述乘机数据区块链接在所述飞机唯一编码对应的所述主链上,将所述身份信息定义为乘机人侧链标识,形成新的乘机人侧链;机场节点获取乘机人的身份信息和飞机唯一编码,在所述飞机唯一编码对应的所述主链中,通过所述身份信息获取对应的乘机人数据,将所述乘机人数据进行展示;所述机场节点获取乘机人登机时产生的物资数据和身份信息,将所述物资数据生成物资数据区块,将所述物资数据区块链接在所述身份信息对应的乘机人侧链上,形成新的乘机人侧链。本发明引入去中心化的区块链网络,基于区块链去中心化的优势,依托区块链的时间戳及不可篡改等特性,由多方共同参与,将多维度旅客乘机信息上链至区块链网络中,记录乘机人旅行过程中的各数据。上链的各数据作为航空公司和机场对于旅客乘机信息数据查询依据,无需经过中航信的介入,共同维护与监管旅行及货运流程,提升信息交互效率,上链的各数据还可以为航空意外理赔或乘机服务纠纷发生时作为信息依据参考。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。

图1为本发明一个实施例中的基于区块链的旅客乘机数据共享方法的流程图;

图2为本发明一个实施例中基于区块链的旅客乘机数据共享装置的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

图1为本发明一个实施例中的基于区块链的旅客乘机数据共享方法的流程图,如图1所示,一种基于区块链的旅客乘机数据共享方法,包括以下步骤:

步骤s1,生成飞行数据区块:航空公司节点获取飞行数据,飞行数据包括飞机唯一编码,将飞行数据生成飞行数据区块,将飞行数据区块在区块链网络中进行上链,形成新的主链。

区块链网络是一种基于区块链技术的系统,也被称为分布式账本技术,是一种互联网数据库技术。其特点是去中心化、公开透明,让每个用户均可参与维护数据库记录。区块链网络是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链网络主要包括数据层、智能合约层等,其中,数据层封装了底层飞行数据区块以及相关的数据加密和时间戳等基础数据和基本算法,而底层飞行数据区块以链式结构呈现,即区块链是一种按照时间顺序将飞行数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

本步骤中的航空公司节点可以为多个,任一在区块链网络中注册的航空公司终端都可以设置为航空公司节点。航空公司节点可以从机票预定系统获取每架待飞行飞机的飞行数据。飞行数据包括飞机唯一编码、航班信息、出行始发地、目的地信息、登机时间、登机口、票价信息等。

在一个实施例中,步骤s1,包括:

步骤s101,创建飞行数据区块:飞行数据区块中包含区块头和区块体,区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,区块体中包含飞行数据变量。

在创建飞行数据区块时,航空公司节点通过预设的blockchain类中的new_block方法进行创建。通过blockchain类创建新的区块时,若航空公司节点第一次创建区块,则还创建一个空的区块链列表,用于存储已上链的区块的信息。若航空公司节点已含有区块链列表,则无需创建空的区块链列表。通常在区块链网络中的节点,在注册时,均会自动的生成区块链列表,用于记录区块链网络中上链的数据区块对应的区块信息。

步骤s102,赋值:将飞行数据通过哈希函数计算生成哈希值,将哈希值赋值给当前区块的哈希值变量,将飞机唯一编码赋值给索引,将当前时间赋值给时间戳变量,将飞行数据赋值给飞行数据变量。

哈希函数是信息技术领域非常基础也非常重要的技术,它能将任意长度的二进制值(明文)映射为较短的固定长度的二进制值(hash值),并且不同的明文很难映射为相同的hash值。常用的哈希函数包括md4(messagedigest消息摘要)、md5(md4的改进版)、sha-1等。在采用哈希函数对飞行数据计算生成哈希值,能保证飞行数据的完整性。本步骤将当前时间赋值给时间戳变量,作为时间证据,确保飞行数据的真实可靠。本步骤还将飞机唯一编码进行赋值,作为后续通过飞机唯一编码可以方便的查找对应的飞行数据区块。

在将哈希值赋值给当前区块的哈希值变量前,航空公司节点还可以将哈希值进行签名,将签名后的哈希值赋值给当前区块的哈希值变量,签名可以确定飞行数据区块生成方的节点身份。

步骤s103,生成飞行数据区块:从预设的区块链列表中获取与飞机唯一编码对应主链的链尾区块的哈希值,将链尾区块的哈希值赋值给前一区块的哈希值变量,生成一项飞行数据区块。

每个区块链网络中的数据区块必须包含前一区块的哈希值,因此本步骤从自身节点的区块链列表中获取与飞机唯一编码对应主链的链尾区块的哈希值作为前一区块的哈希值。其中,链尾区块为最新添加入区块链中的区块。

在区块链网络中的所有节点均预设有一张区块链列表,区块链列表记录的区块信息例如下表1:

表1

本步骤中,在区块链列表中包含有多条主链,每条主链以飞机唯一编码作为主链标识,同一条主链链接有不同哈希值对应的飞行数据区块,用于记录同一架飞机的不同飞行任务对应的飞行数据。飞机每进行一次飞行任务,均会由航空公司节点生成一次飞行数据区块。每条主链的初始区块可以由航空公司节点在某一飞机首次飞行前生成,初始区块可以记录某一飞机的首次飞行前的飞机信息和飞机唯一编码。每条主链中的任一哈希值均对应有多条独立的乘机人侧链,用于记录每个乘机人各自的乘机人数据、物资数据。还对应有一条天气侧链,用于记录登机时间前后出行始发地和目的地的天气情况。

步骤s104,添加数据:将计算生成的哈希值添加到区块链列表中飞机唯一编码对应的主链中,将新生成的飞行数据区块定义为主链的链尾区块,形成了新的主链。

航空公司节点在生成一项飞行数据区块后,还对自身区块链列表进行更新,保证自身数据的完整性。如表1所示,飞机唯一编码为飞机唯一编码1,若原链尾区块为哈希值11,则本实施例新生成的哈希值为哈希值12,则将哈希值12添加到飞机唯一编码1对应的主链中。

本实施例通过预设的blockchain类中的new_block方法创建飞行数据区块,依托区块链网络的时间戳及不可篡改等特性,保证了创建的飞行数据区块无法被篡改,为大众提供可靠真实的飞行数据。

在一个实施例中,步骤s1后,包括:

步骤s111,广播:航空公司节点将飞行数据区块广播到区块链网络中的其他节点。

为了保证区块链网络中各节点数据的完整性和一致性,本步骤航空公司节点在上链完成后,还将新上链的飞行数据区块通过广播的方式传送给其他节点,供其他节点同步飞行数据。

航空公司节点在进行广播时,启动共识orderer节点,通过orderer节点与多个对等网络peer节点建立连接,将飞行数据区块广播至peer节点,并将飞行数据区块存储在peer节点中。

步骤s112,同步:其他节点接收到广播的飞行数据区块后,对飞行数据区块进行验证,当验证通过后,将飞行数据区块同步到自身节点中,且将飞行数据区块继续广播到与其他节点连接的节点上。

区块链网络中的其他节点可以通过peer节点接收包含飞行数据的飞行数据区块。其他节点在对飞行数据区块进行验证时,采用的验证方法:对飞行数据区块中区块体中的飞行数据通过哈希函数计算得到验证哈希值;将验证哈希值和飞行数据区块的区块头中的哈希值进行对比,判断是否相等,若不同则认为已被篡改,定义为验证失败,不做任何动作并结束,若相同则定义为验证通过。区块链网络中所有节点通过共识机制和同步机制获取此飞行数据区块最终的验证结果,当验证结果为验证失败情况下,航空公司节点还将已上链的飞行数据区块从区块链网络中下链,即将飞行数据区块在区块链网络中删除,且区块链网络中所有的节点还将验证失败的飞行数据区块在区块链列表中添加的对应数据同步删除。以便于实现区块链网络中所有节点的数据高度一致。

本步骤的其他节点在对飞行数据区块进行同步时,其他节点读取飞行数据区块中的索引、前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当区块链列表中索引对应的主链的链尾是前一区块的哈希值时,将当前区块的哈希值添加入区块链列表中,将新生成的飞行数据区块定义为主链的链尾区块,完成同步。

本实施例在生成飞行数据区块后,还进行区块的广播和数据的同步,保证了区块链网络中所有节点的数据完整性和一致性。

步骤s2,生成乘机数据区块:航空公司节点获取乘机人数据和飞机唯一编码,乘机人数据包括身份信息,将乘机人数据生成乘机数据区块,将乘机数据区块链接在飞机唯一编码对应的主链上,将身份信息定义为乘机人侧链标识,形成新的乘机人侧链。

航空公司节点可以从机票预定系统获取乘机人数据,乘机人数据包括乘机人的身份信息、购票信息等。其中,身份信息可以是姓名、身份证信息、港澳台身份证、护照或军官证号码等。购票信息包括购票终端信息、购票日期和时间、航班信息、出行始发地、目的地信息、登机时间、登机口、舱位、序号、座位号、票号、票价等。

在一个实施例中,步骤s2,包括:

步骤s201,创建乘机数据区块:乘机数据区块中包含区块头和区块体,区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,区块体中包含乘机人数据变量。

步骤s202,赋值:将乘机人数据通过密钥进行加密生成密文,将密文通过哈希函数计算生成哈希值,将哈希值赋值给当前区块的哈希值变量,将身份信息赋值给索引,将当前时间赋值给时间戳变量,将密文赋值给乘机人数据变量。

为了保证乘机人数据的安全,在对乘机人数据生成哈希值前,还对乘机人数据通过密钥进行加密。本步骤的密钥采用对称加密算法的密钥,采用对称加密算法对乘机人数据进行加密得到密文。

步骤s203,生成乘机数据区块:从预设的区块链列表中获取与飞机唯一编码对应主链的链尾区块的哈希值,将链尾区块的哈希值赋值给前一区块的哈希值变量,生成一项乘机数据区块。

步骤s204,添加数据:将身份信息添加到区块链列表中飞机唯一编码对应的主链下,并将身份信息定义为乘机人侧链标识,将生成的哈希值添加到身份信息对应的乘机人侧链中,将新生成的乘机数据区块定义为乘机人侧链的链尾区块,形成了新的乘机人侧链。例如,航空公司节点获取乘机人数据和飞机唯一编码1,乘机人数据包括身份信息b,生成一项乘机数据区块,此乘机数据区块的哈希值为哈希值12b1,如上表1所示,航空公司节点将身份信息b添加到区块链列表中飞机唯一编码1对应的主链下,将哈希值12b1添加到身份信息b对应的乘机人侧链中。

步骤s205,广播和同步:将乘机数据区块广播到区块链网络中的其他节点,供其他节点验证乘机数据区块和同步乘机数据区块。

本实施例的航空公司节点生成乘机数据区块的过程与步骤s1相似,为了保证乘机人数据的安全和隐私,与步骤s1具有一定的区别,其区别在于步骤s202,在将计算哈希值前,对乘机人数据进行了加密处理,将密文通过哈希函数计算生成哈希值。另一区别在于步骤s205,其他节点在对乘机数据区块验证和同步时略有不同,不同点如下:

其他节点接收到广播的乘机数据区块后,对乘机数据区块中的密文通过哈希函数计算得到验证哈希值;将验证哈希值和乘机数据区块的区块头中的哈希值进行对比,判断是否相等,若不同则认为密文被篡改或签名有误,定义为验证失败,不做任何动作并结束,若相同则定义为验证通过。当验证通过后,读取乘机数据区块中的索引、前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当前一区块的哈希值对应的主链下未含有索引时,将索引添加到区块链列表中前一区块的哈希值对应的主链下,并将索引定义为乘机人侧链标识,将当前区块的哈希值添加到索引对应的乘机人侧链中,将新生成的乘机数据区块定义为乘机人侧链的链尾区块,完成同步。

本实施例通过加密的方式确保乘机人数据的安全可靠,在生成的乘机数据区块后,还进行区块的广播和数据的同步,保证了区块链网络中所有节点的数据完整性和一致性。

步骤s3,展示乘机人数据:机场节点获取乘机人的身份信息和飞机唯一编码,在飞机唯一编码对应的主链中,通过身份信息获取对应的乘机人数据,将乘机人数据进行展示。

本步骤中的机场节点也可以为多个,任一在区块链网络中注册的机场公司终端都可以设置为机场节点。

在一个实施例中,步骤s3,包括:

步骤s301,查找飞机唯一编码:获取乘机人的身份信息和飞机唯一编码,从预设的区块链列表中查找主链的主链标识中是否存在飞机唯一编码,若不存在,则展示错误提示。

机场节点通过预设的扫描设备或查询界面获取乘机人的身份信息和飞机唯一编码。由于区块链网络中所有节点均对已上链的数据区块进行了同步,因此机场节点直接从自身预设的区块链列表中查找,查找时,先采用飞机唯一编码与主链标识进行查找比对,若区块链列表中不存在飞机唯一编码,则认为此飞机唯一编码错误,或此飞机唯一编码无对应已上链的数据区块。

步骤s302,查找身份信息:否则,继续查找在区块链列表中主链标识下的乘机人侧链的乘机人侧链标识中是否存在身份信息,若不存在,则展示错误提示,否则,获取身份信息对应的哈希值。

若区块链列表中存在飞机唯一编码,则继续在此主链标识下查找乘机人侧链标识是否存在该身份信息。例如,机场节点获取乘机人的身份信息b和飞机唯一编码1,如上表1所示,在区块链列表中查找飞机唯一编码1,存在此飞机唯一编码1,则继续查找身份信息b,存在身份信息b的侧链标识,则获取身份信息b对应的哈希值为哈希值12b1。

步骤s303,读取乘机人数据:在区块链网络的区块链数据库中查找哈希值对应的乘机数据区块,读取乘机数据区块中的乘机人数据。

区块链网络中的区块链是一种去中心化的数据库,区块链数据库中存储有每一个已上链的多个数据区块,由于各个数据区块的哈希值唯一,因此本步骤通过哈希值在区块链数据库中查找对应的数据区块,查找到的数据唯一且无篡改。在区块链数据库中查找时,可以通过调用预设的api查询接口的方式访问区块链数据库,也可以通智能合约中限定的访问方式查找数据区块。

步骤s304,展示:若乘机人数据为密文,则对密文通过密钥进行解密,得到解密后的乘机人数据,将乘机人数据和飞机唯一编码一起进行展示。

本步骤在对密文进行解密时,采用密钥通过预设的对称加密算法进行解密,得到乘机人数据。本步骤的密钥是航空公司节点授权给机场节点的密钥,且与步骤s202的密钥相同。本步骤在展示时,可以通过查询界面进行展示,供机场服务人员核对乘机人提供的信息,顺利进行安检流程。例如,机场节点通过扫描设备获取机票上的票务信息,通过自动识别系统识别出票务信息中的乘机人的身份信息b和飞机唯一编码1,如上表1所示,从区块链列表中查找到主链标识为飞机唯一编码1,侧链标识为身份信息b的哈希值12b1,根据哈希值12b1从区块链数据库中查找对应乘机人区块,获取乘机人数据后,进行展示。

本实施例通过获取的飞机唯一编码和身份信息在自身区块链列表中查找是否存在于列表中,存在时,认为乘机人数据已上链,通过哈希值的唯一性,在区块链数据库中查找对应的乘机人区块,获取乘机人数据,并进行展示。

步骤s4,生成物资数据区块:机场节点获取乘机人登机时产生的物资数据和身份信息,将物资数据生成物资数据区块,将物资数据区块链接在身份信息对应的乘机人侧链上,形成新的乘机人侧链。

本步骤中的物资数据包括行李托运时间、行李重量、产生的费用、获取行李地点等信息。机场节点可以通过安检系统获取上述物资数据,也可以通过交互界面获取安检人员输入的上述物资数据。

在一个实施例中,步骤s4,包括:

步骤s401,创建物资数据区块:获取乘机人登机时产生的物资数据、身份信息和飞机唯一编码,创建物资数据区块,物资数据区块中包含区块头和区块体,区块头中包含索引、前一区块的哈希值变量、当前区块的哈希值变量、时间戳变量,区块体中包含物资数据变量。

步骤s402,赋值:将物资数据通过密钥进行加密生成密文,将密文通过哈希函数计算生成哈希值,将哈希值赋值给当前区块的哈希值变量,将身份信息赋值给索引,将当前时间赋值给时间戳变量,将密文赋值给物资数据变量。

步骤s403,生成物资数据区块:从预设的区块链列表中查找飞机唯一编码对应的主链,查找主链标识中侧链标识为身份信息的乘机人侧链,获取乘机人侧链的链尾区块的哈希值,将链尾区块的哈希值赋值给前一区块的哈希值变量,生成一项物资数据区块。

步骤s404,添加数据:将生成的哈希值添加到区块链列表中身份信息对应的乘机人侧链中,将新生成的物资数据区块定义为乘机人侧链的链尾区块,形成了新的乘机人侧链。

例如,机场节点获取物资数据、身份信息b和飞机唯一编码1,将物资数据生成物资数据区块,此物资数据区块的哈希值为哈希值12b2,如上表1所示,机场节点将身份信息b添加到区块链列表中飞机唯一编码1对应的主链下,将哈希值12b2添加到身份信息b对应的乘机人侧链中。

步骤s405,广播和同步:将物资数据区块广播到区块链网络中的其他节点,供其他节点验证物资数据区块和同步物资数据区块。

本实施例的机场节点生成物资数据区块的过程与步骤s2相似,与步骤s2具有一定的区别,其区别在于步骤s403中生成物资数据区块时,前一区块的哈希值获取方式不同。本实施例需要将物资数据区块链接到身份信息对应的乘机人侧链中。另一区别在于步骤s404,中添加数据时,新生成的哈希值是直接添加入身份信息对应的乘机人侧链中。其次,在其他节点在对物资数据区块验证和同步时略有不同,不同点如下:

当验证通过后,读取物资数据区块中的索引、前一区块的哈希值、当前区块的哈希值,与自身节点中的区块链列表进行比较,当索引对应的乘机人侧链的链尾是前一区块的哈希值时,将当前区块的哈希值添加入索引对应的乘机人侧链中,将新生成的物资数据区块定义为乘机人侧链的链尾区块,完成同步。

本实施例通过加密的方式确保物资数据的安全可靠,在生成的物资数据区块后,还进行区块的广播和数据的同步,保证了区块链网络中所有节点的数据完整性和一致性。

在一个实施例中,还包括步骤s5:

步骤s501,获取数据:航空公司节点或机场节点获取区块链网络中主链的链尾区块,从链尾区块中获取飞机唯一编码、出行始发地、出行目的地、登机时间。

本步骤可以由航空公司节点或机场节点中的任一节点实现,节点通过自身区块链列表中获取所有主链的链尾区块对应的哈希值,在区块链网络的区块链数据库中查找哈希值对应的飞行数据区块,读取飞行数据区块中的飞机唯一编码、出行始发地、出行目的地、登机时间。

步骤s502,获取天气数据:以登机时间为时间点的前后一预设时间范围内,定时从天气系统数据库中获取出行始发地的天气情况和出行目的地的天气情况。

预设时间范围可以是24小时或48小时等时间范围,定时时间可以为3小时、6小时等,节点通过定时任务,定时通过api接口从外部天气系统数据库中获取出行始发地的天气情况和出行目的地的天气情况。例如,登机时间为晚上19:20分,预设时间范围为24小时,定时时间为12小时,则节点从登机时间的前一天晚上19:20分开始执行本步骤,获取一次出行始发地的天气情况和出行目的地的天气情况,登机时间当天的早上7:20分、晚上19:20分、登机时间第二天的早上7:20分、晚上19:20分分别再次获取一次出行始发地的天气情况和出行目的地的天气情况。

步骤s503,生成天气数据区块:将出行始发地及天气情况、出行目的地及天气情况一起定义为天气数据,生成天气数据区块,将天气数据区块链接到飞机唯一编码对应的主链上,将登机时间定义为天气侧链标识,形成新的天气侧链。

在步骤s502获取一次出行始发地的天气情况和出行目的地的天气情况,本步骤就生成一项天气数据区块并上链。在生成天气数据区块,并形成新的天气侧链时,采用的生成过程与步骤s201-s205除步骤s202在赋值时,天气数据无需加密就直接生成哈希值外,都相同。例如,航空公司节点获取区块链网络中的其中一条主链的链尾区块的哈希值为哈希值12,从区块链数据库中获取对应的飞行数据区块,读取飞行数据区块中的飞机唯一编码1、出行始发地、出行目的地、登机时间d。通过登机时间获取一次出行始发地的天气情况和出行目的地的天气情况,定义为天气数据,生成天气数据区块,此天气数据区块对应的哈希值为哈希值12d1。如上表1所示,将登机时间d加到区块链列表中飞机唯一编码1对应的主链下,将哈希值12d1添加到登机时间d对应的天气侧链中。

在一个实施例中,还包括:在区块链网络中的任一节点均预设有查询界面,用户通过查询界面输入某一飞机唯一编码,节点通过查询界面获取飞机唯一编码后,将飞机唯一编码对应的飞行数据、最新的天气数据均通过查询界面进行展示。授权用户通过查询界面输入对应乘机人的身份信息,节点通过查询界面获取身份信息后,将身份信息对应的密文经过授权的密钥进行解密后,将乘机人数据通过查询界面进行展示。

本实施例基于区块链的旅客乘机数据共享方法,通过引入区块链网络,实现旅客乘机过程中,多方共同参与,共同维护旅行过程中的飞行数据、乘机人数据、物资数据和天气数据等,且所有数据均在区块链网络中进行上链,上链的数据不可篡改,且可追溯,作为航空公司和机场对于旅客乘机信息数据查询依据,无需经过中航信的介入。

在一个实施例中,提出了一种基于区块链的旅客乘机数据共享装置,如图2所示,包括如下模块:

生成飞行数据区块模块,用于航空公司节点获取飞行数据,飞行数据包括飞机唯一编码,将飞行数据生成飞行数据区块,将飞行数据区块在区块链网络中进行上链,形成新的主链;

生成乘机数据区块模块,用于航空公司节点获取乘机人数据和飞机唯一编码,乘机人数据包括身份信息,将乘机人数据生成乘机数据区块,将乘机数据区块链接在飞机唯一编码对应的主链上,将身份信息定义为乘机人侧链标识,形成新的乘机人侧链;

展示模块,用于机场节点获取乘机人的身份信息和飞机唯一编码,在飞机唯一编码对应的主链中,通过身份信息获取对应的乘机人数据,将乘机人数据进行展示;

生成物资数据区块模块,用于机场节点获取乘机人登机时产生的物资数据和身份信息,将物资数据生成物资数据区块,将物资数据区块链接在身份信息对应的乘机人侧链上,形成新的乘机人侧链。

在一个实施例中,提出了一种计算机设备,包括存储器和处理器,存储器中存储有计算机可读指令,计算机可读指令被处理器执行时,使得处理器执行计算机可读指令时实现上述各实施例的基于区块链的旅客乘机数据共享方法中的步骤。

在一个实施例中,提出了一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行上述各实施例的基于区块链的旅客乘机数据共享方法中的步骤。其中,存储介质可以为非易失性存储介质。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明一些示例性实施例,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

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