999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于區(qū)塊鏈改進(jìn)的代碼共享航班管理系統(tǒng)模型

2023-01-01 00:00:00齊放鐘玲張珊

摘 要:為解決現(xiàn)有的代碼共享航班信息系統(tǒng)分布于各個(gè)航司與GDS,存在信息不一致的問(wèn)題,提出了一種基于區(qū)塊鏈改進(jìn)的代碼共享航班管理系統(tǒng)模型。改進(jìn)模型在保證原系統(tǒng)功能的基礎(chǔ)上,增加區(qū)塊鏈系統(tǒng)的支持,將交易的用戶信息及數(shù)據(jù)的摘要上鏈,來(lái)保證系統(tǒng)的不可竄改特征。并提出四次交互的消息驗(yàn)證機(jī)制,將改進(jìn)系統(tǒng)中涉及業(yè)務(wù)變更的信息進(jìn)行抽象并規(guī)范化。對(duì)實(shí)現(xiàn)的系統(tǒng)進(jìn)行時(shí)間及空間兩個(gè)維度的測(cè)試。結(jié)果表明,系統(tǒng)具有可擴(kuò)展性,并有著較好的吞吐量及可預(yù)估的空間占用,符合企業(yè)級(jí)信息系統(tǒng)上鏈要求。

關(guān)鍵詞:代碼共享;區(qū)塊鏈;超級(jí)賬本;信息摘要

中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)志碼:A 文章編號(hào):1001-3695(2023)02-003-0337-06

doi: 10.19734/j.issn.1001-3695.2022.06.0324

Improved code-sharing flight management system model based on blockchain

Qi Fang1,2, Zhong Ling1, Zhang Shan3

(1. College of Software, Shenyang University of Technology, Shenyang 110870, China; 2. Shenyang Necares Co., Ltd., Shenyang 110167, China; 3. China Civil Aviation Information Network Co., Ltd., Beijing 101318, China)

Abstract:In order to solve the problem that the flight information inconsistency distributed in various airlines and GDS system, this paper proposed an improved code-sharing flight management system model based on blockchain. The improved model increased the support of the blockchain system on the basis of ensuring the functions of the original system, and uploaded the user information and data summaries of the transaction to the chain to ensure the non-tampering characteristics of the system. The improved model could increase the support of the blockchain system on the basis of ensuring the function of the original system, and registered the user information and data summary of the transaction on chain to ensure the system’s tamperability. Meanwhile, it proposed a message verification mechanism of four interactions to abstract and standardize the information related to business changes in the improved system. The implemented system was tested in both time and space dimensions. The results show that the system is scalable, has good throughput and predictable space occupation, and meets the requirements of enterprise-level information system on-chain.

Key words:code-sharing; blockchain; Hyperledger; information summary

0 引言

代碼共享是指一家航空公司的航班號(hào)(即代碼)可以用在另一家航空公司的航班上,即旅客在全程旅行中有一段航程或全程航程是乘坐出票航空公司航班號(hào)但非出票航空公司承運(yùn)的航班[1]。這種模式于20世紀(jì)70年代在美國(guó)國(guó)內(nèi)市場(chǎng)誕生后,由于其能有效促進(jìn)收益提升,目前已成為全球航空運(yùn)輸業(yè)內(nèi)最流行的合作方式[2]。

我國(guó)各個(gè)航司間,及國(guó)內(nèi)航司與國(guó)外航司的代碼共享航班的管理、銷(xiāo)售普遍以各個(gè)航司內(nèi)部中心系統(tǒng)管理或依托全球分銷(xiāo)系統(tǒng)(global distribution system,GDS)的航班信息管理系統(tǒng)為媒介。但是,各個(gè)航司之間、各個(gè)國(guó)際間GDS的信息系統(tǒng)仍存在通過(guò)標(biāo)準(zhǔn)時(shí)刻表信息(standard schedules information,SSIM)文件[3]、Excel文件等進(jìn)行信息交互,各個(gè)系統(tǒng)獨(dú)立性高,且其交互過(guò)程缺少確認(rèn)及驗(yàn)證機(jī)制[4]。此外,由于技術(shù)限制(如數(shù)據(jù)格式不同),航空公司通過(guò)其系統(tǒng)提供的自定義選項(xiàng)無(wú)法在GDS 間有效復(fù)制,不同GDS間數(shù)據(jù)的交互也難以得到驗(yàn)證。在多個(gè)不同航司的信息系統(tǒng)交互中,若承運(yùn)方航司的航班變更、取消,在通知此航班上對(duì)應(yīng)代碼共享航司時(shí)因系統(tǒng)、網(wǎng)絡(luò)原因造成傳遞消息失敗而產(chǎn)生的數(shù)據(jù)不一致問(wèn)題,責(zé)任應(yīng)該如何劃分、如何避免事后的推諉,成為亟待解決的問(wèn)題。

區(qū)塊鏈技術(shù)的去中心化、不可竄改、安全可靠特性[5]為此提供了新思路。目前國(guó)內(nèi)外民航業(yè)信息領(lǐng)域已經(jīng)對(duì)區(qū)塊鏈技術(shù)在本行業(yè)的應(yīng)用進(jìn)行了一系列的探索和研究,并且國(guó)外的腳步明顯早于國(guó)內(nèi)。2017年SITA Lab基于Ethereum[6]發(fā)布了FlightChain[7],并將其應(yīng)用在了英國(guó)航空公司、希思羅機(jī)場(chǎng)、日內(nèi)瓦機(jī)場(chǎng)和邁阿密?chē)?guó)際機(jī)場(chǎng)。2020年,SITA公司推出了Mro-Blockchain[8],將區(qū)塊鏈技術(shù)應(yīng)用在民航備用品配件領(lǐng)域。2019年,德國(guó)哈恩航空公司與區(qū)塊鏈旅游公司W(wǎng)inding Tree[9]合作,于11月18日發(fā)售了從杜塞爾多夫到盧森堡的區(qū)塊鏈機(jī)票[10]。2022年5月16日,南航首份區(qū)塊鏈電子維修記錄正式亮相,將飛機(jī)維修后的電子簽名信息上鏈,確保數(shù)據(jù)信息真實(shí)可靠[11]。高鑫宇等人[12]作為機(jī)場(chǎng)管理人員,對(duì)基于區(qū)塊鏈技術(shù)的機(jī)場(chǎng)運(yùn)行指揮體系進(jìn)行了研究。王天山等人[13]總結(jié)了區(qū)塊鏈技術(shù)在民航業(yè)中的發(fā)展趨勢(shì),并提出了現(xiàn)階段可以有針對(duì)地利用區(qū)塊鏈特點(diǎn)來(lái)優(yōu)化民航業(yè),如數(shù)據(jù)管理、數(shù)字身份認(rèn)證等現(xiàn)有業(yè)務(wù)的觀點(diǎn)。本文針對(duì)目前代碼共享航班信息交流及認(rèn)證方面存在的問(wèn)題,提出了基于區(qū)塊鏈的改進(jìn)代碼共享航班系統(tǒng)方案,在保證原系統(tǒng)功能的基礎(chǔ)上,經(jīng)過(guò)可控、有限的修改,增加區(qū)塊鏈節(jié)點(diǎn)的支持,達(dá)到對(duì)等航司間信息交互防竄改、可追溯的目標(biāo),并提出四次交互的消息驗(yàn)證機(jī)制,將改進(jìn)系統(tǒng)中涉及業(yè)務(wù)變更的信息進(jìn)行抽象并規(guī)范化。

1 基于區(qū)塊鏈改進(jìn)的代碼共享航班管理系統(tǒng)模型

1.1 當(dāng)前代碼共享航班管理系統(tǒng)流程分析

如圖1所示,在當(dāng)前的代碼共享管理系統(tǒng)中,新建一個(gè)代碼共享航班一般需要如下幾個(gè)步驟:a)在前端Web頁(yè)面或eTerm(中國(guó)民航購(gòu)票系統(tǒng)前端)發(fā)起新建一個(gè)代碼共享航班請(qǐng)求;b)代碼共享模塊處理請(qǐng)求,并通知本系統(tǒng)內(nèi)其他模塊;c)代碼共享模塊收到其他系統(tǒng)確認(rèn)信息后進(jìn)行數(shù)據(jù)保存;d)代碼共享模塊通過(guò)系統(tǒng)內(nèi)的消息總線發(fā)送新建代碼共享航班給外部系統(tǒng);e)A航司系統(tǒng)的消息總線發(fā)送新建代碼共享航班系統(tǒng)數(shù)據(jù)到B航司的系統(tǒng);f)B航司的消息系統(tǒng)回復(fù)確認(rèn)信息給A航司的消息總線。在此流程中,步驟a)~d)是系統(tǒng)內(nèi)部流程,步驟e)f)是系統(tǒng)外部流程。

在整個(gè)流程中,系統(tǒng)內(nèi)部的各個(gè)模塊部署在同一集成環(huán)境,并且可以統(tǒng)一規(guī)劃管理,互信性較高,可信性較強(qiáng)。但涉及外部系統(tǒng)交互的步驟,因其他航司的外部系統(tǒng)并不由己方控制,并可能涉及公網(wǎng)數(shù)據(jù)交互,在諸如步驟e)f)等需要和外部系統(tǒng)交互的步驟,則要對(duì)輸入和輸出持謹(jǐn)慎態(tài)度。A和B航司的數(shù)據(jù)交互,即使在交互時(shí)達(dá)成一致,但在事后又有可能因己方或?qū)Ψ降南到y(tǒng)異常、非正常手段修改數(shù)據(jù)等原因造成數(shù)據(jù)不一致。沒(méi)有一個(gè)統(tǒng)一處理、雙方互認(rèn)的權(quán)威機(jī)構(gòu)去做認(rèn)證,信息不一致從而產(chǎn)生推諉問(wèn)題就很難得到一個(gè)妥善的處理結(jié)果。

1.2 企業(yè)級(jí)區(qū)塊鏈共享信息系統(tǒng)現(xiàn)狀及問(wèn)題

目前尚無(wú)成熟方案將區(qū)塊鏈技術(shù)應(yīng)用于代碼共享航班業(yè)務(wù)中,本文參照了其他企業(yè)級(jí)區(qū)塊鏈的研究成果。區(qū)塊鏈系統(tǒng)具有靈活的結(jié)構(gòu)。根據(jù)區(qū)塊鏈的開(kāi)放程度,可分為公有鏈、聯(lián)盟鏈、私有鏈三種[14]。聯(lián)盟鏈因其可以設(shè)置用戶權(quán)限及準(zhǔn)入機(jī)制、數(shù)據(jù)默認(rèn)不公開(kāi)等特性,可控性較強(qiáng),更為適用于企業(yè)級(jí)區(qū)塊鏈系統(tǒng),因而企業(yè)及區(qū)塊鏈系統(tǒng)多采用聯(lián)盟鏈作為其技術(shù)選型。朱立等人[15]以上海證券交易所“去中心化的主板核心交易系統(tǒng)”作為業(yè)務(wù)場(chǎng)景,提出了基于高性能聯(lián)盟鏈的業(yè)務(wù)系統(tǒng)架構(gòu)以及關(guān)鍵技術(shù)的實(shí)現(xiàn),極大地提高了去中心化的主板核心交易系統(tǒng)的性能。李玉等人[16]將聯(lián)盟鏈應(yīng)用在眾包系統(tǒng)中,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)去中心化的、可驗(yàn)證和可追溯的眾包服務(wù)平臺(tái)。王旭[17]研究了醫(yī)療數(shù)據(jù)共享的業(yè)務(wù)場(chǎng)景,實(shí)現(xiàn)了基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享,并對(duì)鏈上數(shù)據(jù)的隱私保護(hù)進(jìn)行研究,改進(jìn)了交易過(guò)程中背書(shū)環(huán)節(jié)和排序環(huán)節(jié),以保護(hù)隱私性。鄒杰成[18]將區(qū)塊鏈應(yīng)用在了電力行業(yè)中,并結(jié)合行業(yè)特點(diǎn),對(duì)傳統(tǒng)分布式一致性算法(Paxos)從算法活性和消息通信延遲兩個(gè)方面進(jìn)行改進(jìn)及應(yīng)用。

同時(shí),也有學(xué)者采用公有鏈作為技術(shù)選型來(lái)實(shí)現(xiàn)基于業(yè)務(wù)場(chǎng)景進(jìn)行區(qū)塊鏈創(chuàng)新。朱鵬[19]討論了智慧醫(yī)療下醫(yī)療數(shù)據(jù)高效存儲(chǔ)與隱私保護(hù)的問(wèn)題,使用以太坊實(shí)現(xiàn)了基于區(qū)塊鏈的智慧醫(yī)療數(shù)據(jù)存儲(chǔ)與隱私保護(hù)方案的原型系統(tǒng)。陳岑岳[20]聚焦于電力雙邊市場(chǎng)的分布式新能源發(fā)布場(chǎng)景,提出一種去中心化的小范圍配電網(wǎng)內(nèi)交易模式和市場(chǎng)機(jī)制,并使用了一種使用去中心機(jī)構(gòu)的安全校核方法來(lái)進(jìn)行安全校核。

以上的探索和創(chuàng)新對(duì)區(qū)塊鏈系統(tǒng)的適用場(chǎng)景有了極大擴(kuò)展、對(duì)系統(tǒng)效率有一定提升。目前基于區(qū)塊鏈的企業(yè)級(jí)共享信息系統(tǒng)的主要應(yīng)用及創(chuàng)新有如下幾點(diǎn):

a)使用場(chǎng)景創(chuàng)新,不只局限在金融系統(tǒng),在醫(yī)療系統(tǒng)、電力系統(tǒng)、眾包行業(yè)均有涉及,通過(guò)智能合約、鏈碼技術(shù)來(lái)完成復(fù)雜度較高的共識(shí)提案;

b)鏈上數(shù)據(jù)加密創(chuàng)新,區(qū)塊鏈常規(guī)系統(tǒng)上的數(shù)據(jù)對(duì)全網(wǎng)可見(jiàn),目前的研究針對(duì)區(qū)塊鏈系統(tǒng)在不同的使用場(chǎng)景下數(shù)據(jù)敏感性各不相同的現(xiàn)狀,提出了一系列鏈上數(shù)據(jù)加密的方案,來(lái)保證數(shù)據(jù)上鏈的同時(shí)而又不泄露隱私;

c)共識(shí)協(xié)議創(chuàng)新,除研究實(shí)用拜占庭共識(shí)算法(PBFT)、傳統(tǒng)分布式一致性算法(Paxos),還對(duì)共識(shí)協(xié)議根據(jù)特定場(chǎng)景需求進(jìn)行創(chuàng)新。

對(duì)于像處理航班代碼共享信息這樣涉及多個(gè)系統(tǒng)信息互相確認(rèn)的場(chǎng)景,可以通過(guò)增加一個(gè)在多中心系統(tǒng)中多方可以達(dá)成共識(shí)互認(rèn)結(jié)果的系統(tǒng),在信息交互過(guò)程中達(dá)成互認(rèn)并可追溯,從而較好解決此問(wèn)題。但若將當(dāng)前系統(tǒng)中的所有數(shù)據(jù)均存儲(chǔ)在區(qū)塊鏈中,所有業(yè)務(wù)邏輯均放在區(qū)塊鏈中實(shí)現(xiàn),那么隨著系統(tǒng)的功能點(diǎn)增加,調(diào)用方變多,會(huì)存在諸多問(wèn)題:

a)變更過(guò)大,不可控。

區(qū)塊鏈作為新興技術(shù),在各個(gè)行業(yè)中均屬于探索狀態(tài),區(qū)塊鏈技術(shù)帶來(lái)的去中心化、數(shù)據(jù)分布式存儲(chǔ)、數(shù)據(jù)不可竄改等特性雖前景光明,但部分行業(yè)仍持觀望態(tài)度。民航旅客服務(wù)系統(tǒng)是國(guó)家級(jí)重點(diǎn)信息系統(tǒng),對(duì)系統(tǒng)的安全性和可靠性極高。使用區(qū)塊鏈技術(shù)雖可以很大限度保證數(shù)據(jù)的可靠性,但是拋棄原系統(tǒng)重新開(kāi)發(fā)而導(dǎo)致系統(tǒng)出現(xiàn)潛在風(fēng)險(xiǎn)的問(wèn)題同樣不能忽視。完全基于一個(gè)新的領(lǐng)域重新開(kāi)發(fā)系統(tǒng),在某種意義上是屬于拋棄了較為通用、成熟的技術(shù)棧而選擇了一個(gè)未知的道路,即使充分考慮到困難,在系統(tǒng)開(kāi)發(fā)過(guò)程中勢(shì)必會(huì)引入其他不可控的風(fēng)險(xiǎn)。

b)全量遷移,時(shí)間長(zhǎng)。

若完全拋棄目前使用的系統(tǒng),基于區(qū)塊鏈邏輯重新開(kāi)發(fā)航班代碼共享管理系統(tǒng),會(huì)有大量的開(kāi)發(fā)、測(cè)試、調(diào)試工作,大大延長(zhǎng)系統(tǒng)的開(kāi)發(fā)、調(diào)試時(shí)間。民航旅客服務(wù)信息系統(tǒng)涉及多個(gè)子系統(tǒng),對(duì)代碼共享航班管理系統(tǒng)的重新開(kāi)發(fā),也勢(shì)必會(huì)影響多個(gè)上下游系統(tǒng),從而更加延長(zhǎng)系統(tǒng)的開(kāi)發(fā)周期。

為解決以上問(wèn)題,提出傳統(tǒng)信息系統(tǒng)和區(qū)塊鏈系統(tǒng)融合的設(shè)計(jì)思想,在保證原系統(tǒng)功能的基礎(chǔ)上,嵌入?yún)^(qū)塊鏈系統(tǒng)。在集群嵌入?yún)^(qū)塊鏈系統(tǒng)后,可以根據(jù)業(yè)務(wù)需求及實(shí)際情況,逐步將系統(tǒng)功能遷移到區(qū)塊鏈系統(tǒng)中,來(lái)實(shí)現(xiàn)可驗(yàn)證及不可竄改特征。

1.3 改進(jìn)系統(tǒng)模型

圖2為基于區(qū)塊鏈改進(jìn)后的代碼共享航班管理系統(tǒng)模型,主要變更有三點(diǎn):

a)增加超級(jí)賬本Fabric[21]基礎(chǔ)服務(wù)模塊。

Fabric基礎(chǔ)服務(wù)模塊包括但不限于滿足高可用狀態(tài)的orderer節(jié)點(diǎn)群、peer節(jié)點(diǎn)群、Fabric-CA節(jié)點(diǎn)群(證書(shū)頒發(fā)機(jī)構(gòu))及超級(jí)賬本配套非關(guān)系型數(shù)據(jù)庫(kù)LevelDB/CouchDB等。Fabric基礎(chǔ)服務(wù)部分可以無(wú)須外部依賴自行搭建成一個(gè)超級(jí)賬本Fabric環(huán)境,可以在此環(huán)境中進(jìn)行部署智能合約、調(diào)用智能合約、查看區(qū)塊鏈內(nèi)容等功能。Fabric基礎(chǔ)服務(wù)模塊可以根據(jù)實(shí)際業(yè)務(wù)需求,部署在一個(gè)獨(dú)立于各個(gè)航司的組織中,如天合聯(lián)盟、星空聯(lián)盟等,也可部署在有代碼共享關(guān)系的航司聯(lián)盟中的某個(gè)共同認(rèn)可的航司中。

b)在航司系統(tǒng)中增加超級(jí)賬本相關(guān)節(jié)點(diǎn)。

每個(gè)航司系統(tǒng)在融合區(qū)塊鏈系統(tǒng)時(shí),需要對(duì)原有系統(tǒng)進(jìn)行升級(jí),融入peer節(jié)點(diǎn)和blockchain adaptor節(jié)點(diǎn)。peer節(jié)點(diǎn)是超級(jí)賬本的記賬、背書(shū)節(jié)點(diǎn),在每個(gè)航司增加peer節(jié)點(diǎn)來(lái)達(dá)成在各個(gè)航司內(nèi)部和超級(jí)賬本信息的交互。每個(gè)航司可以根據(jù)實(shí)際情況部署一個(gè)或多個(gè)peer節(jié)點(diǎn)。若某全國(guó)性航司在北京和上海有兩個(gè)數(shù)據(jù)中心,則可以在北京和上海兩個(gè)數(shù)據(jù)中心各部署一個(gè)peer節(jié)點(diǎn)。部署在各個(gè)航司中的peer節(jié)點(diǎn)可以與區(qū)塊鏈基礎(chǔ)服務(wù)模塊自交互,來(lái)完成數(shù)據(jù)上鏈及同步。部署在各個(gè)航司的peer節(jié)點(diǎn)部分的運(yùn)行,需要依賴Fabric基礎(chǔ)服務(wù)部分,當(dāng)有新的peer節(jié)點(diǎn)需要加入網(wǎng)絡(luò),經(jīng)基礎(chǔ)服務(wù)部分的允許,即可加入網(wǎng)絡(luò),加入網(wǎng)絡(luò)后的新peer節(jié)點(diǎn)也會(huì)參與后續(xù)的信息共識(shí)。兩個(gè)部分共同組成一個(gè)超級(jí)賬本Fabric分布式網(wǎng)絡(luò)。

blockchain adaptor模塊起到連接傳統(tǒng)服務(wù)和超級(jí)賬本模塊的功能,將blockchain adaptor模塊和獨(dú)立出來(lái),可以方便區(qū)塊鏈相關(guān)功能的開(kāi)發(fā)測(cè)試,并在此模塊開(kāi)放以供其他傳統(tǒng)模塊調(diào)用的統(tǒng)一接口,來(lái)實(shí)現(xiàn)傳統(tǒng)系統(tǒng)服務(wù)和區(qū)塊鏈的交互目的。

c)將需要上鏈的業(yè)務(wù)使用鏈碼實(shí)現(xiàn)。

嵌入?yún)^(qū)塊鏈系統(tǒng)后,可以有選擇性地從傳統(tǒng)系統(tǒng)逐漸遷移業(yè)務(wù)功能到區(qū)塊鏈上,上鏈改造有兩種方式。

(a)業(yè)務(wù)漸進(jìn)平滑上鏈。

對(duì)某個(gè)功能進(jìn)行區(qū)塊鏈改造,鏈上保留全量業(yè)務(wù)數(shù)據(jù)。在區(qū)塊鏈改造完成后,可以使用鏈碼完成此業(yè)務(wù)功能后,先進(jìn)行灰度發(fā)布,傳統(tǒng)系統(tǒng)與區(qū)塊鏈系統(tǒng)共同使用,利用配置開(kāi)關(guān)等,小范圍測(cè)試功能進(jìn)行試點(diǎn)區(qū)塊鏈相關(guān)功能。待功能穩(wěn)定后,再將業(yè)務(wù)功能逐漸遷移到區(qū)塊鏈上。在保證核心系統(tǒng)功能的情況下平滑上鏈。

(b)保留原有業(yè)務(wù)功能,區(qū)塊鏈負(fù)責(zé)涉及外部交互時(shí)信息的驗(yàn)證及歷史記錄。

在原有功能復(fù)雜、難以遷移上鏈時(shí),為保證分布式系統(tǒng)的數(shù)據(jù)可驗(yàn)證,在涉及外部系統(tǒng)交互部分,可利用區(qū)塊鏈做信息驗(yàn)證及交易記錄功能。在發(fā)送外系統(tǒng)數(shù)據(jù)前,將發(fā)送數(shù)據(jù)上鏈保存,上鏈保存的數(shù)據(jù)可以是原數(shù)據(jù)或者是原數(shù)據(jù)的信息摘要。外系統(tǒng)在接收到請(qǐng)求數(shù)據(jù)后,可以先進(jìn)行鏈上數(shù)據(jù)查詢及驗(yàn)證來(lái)保證分布式系統(tǒng)數(shù)據(jù)的一致性,并可利用區(qū)塊鏈天然的歷史保存特性,自行維護(hù)歷史數(shù)據(jù)。

以新增代碼共享航班場(chǎng)景為例,發(fā)送方在發(fā)送新增代碼共享航班數(shù)據(jù)到外部系統(tǒng)前,將新增數(shù)據(jù)及一系列驗(yàn)證數(shù)據(jù)通過(guò)adaptor模塊發(fā)送給超級(jí)賬本在此模塊中的peer節(jié)點(diǎn),peer節(jié)點(diǎn)再通過(guò)超級(jí)賬本部署的智能合約,將新增代碼共享航班的數(shù)據(jù)保存到賬本中。

接收方在接收到外部系統(tǒng)發(fā)送的新增代碼共享信息后,先在超級(jí)賬本的區(qū)塊鏈數(shù)據(jù)中查詢此次數(shù)據(jù)是否已經(jīng)上鏈,查詢到上鏈信息并校驗(yàn)通過(guò)后,再對(duì)變更數(shù)據(jù)進(jìn)行處理。

選擇不同的上鏈數(shù)據(jù)方式,會(huì)對(duì)區(qū)塊鏈賬本大小產(chǎn)生影響。在使用相同的區(qū)塊鏈技術(shù)選型的前提下,賬本空間變化計(jì)算如式(1)~(4)所示。

G(t1,t2)為在時(shí)間(t1,t2)生成n1~n2個(gè)區(qū)塊后整個(gè)區(qū)塊鏈賬本的大小。K為初始區(qū)塊和完成區(qū)塊鏈系統(tǒng)構(gòu)建產(chǎn)生的區(qū)塊,可以看做一個(gè)常量值,H(n)為每個(gè)區(qū)塊大小。

每個(gè)區(qū)塊H(n)的大小是區(qū)塊頭C,在此區(qū)塊的出塊時(shí)間段(t3,t4)的交易數(shù)據(jù)I(n),及執(zhí)行智能合約上鏈數(shù)據(jù)J(n)之和。區(qū)塊頭存儲(chǔ)區(qū)塊高度、時(shí)間戳、區(qū)塊哈希值等數(shù)據(jù),其大小可以看做固定常量[22]。每個(gè)區(qū)塊的出塊時(shí)間段取決于區(qū)塊鏈系統(tǒng)配置的出塊時(shí)間時(shí)長(zhǎng)或單個(gè)區(qū)塊的交易數(shù)上限,若未到出塊時(shí)間時(shí)長(zhǎng),但交易數(shù)超限,也會(huì)打包此區(qū)塊,并生成新區(qū)塊。

I(n)的值為(t3,t4)內(nèi)每個(gè)交易tx占用空間S(tx)的和,每個(gè)交易存儲(chǔ)相同格式內(nèi)容,占用大小基本一致。

J(n)的值為(t3,t4)內(nèi)每個(gè)交易tx執(zhí)行智能合約時(shí)寫(xiě)入?yún)^(qū)塊鏈?zhǔn)澜缳~本數(shù)據(jù)值的空間Q(tx)之和,Q(tx)的值大小取決于區(qū)塊鏈智能合約的上鏈數(shù)據(jù)算法,如上述實(shí)驗(yàn)中存儲(chǔ)全量數(shù)據(jù)或存儲(chǔ)數(shù)據(jù)摘要,對(duì)Q(tx)會(huì)有較大影響。

由此可得,在一定時(shí)間內(nèi)的區(qū)塊鏈賬本增量,主要與出塊數(shù)量、交易量及交易涉及的智能合約算法有關(guān)。出塊數(shù)量受系統(tǒng)配置出塊時(shí)間及區(qū)塊鏈系統(tǒng)交易量影響,在實(shí)際使用中,需要根據(jù)系統(tǒng)預(yù)期吞吐量配置合理的出塊時(shí)間及單個(gè)區(qū)塊的交易數(shù)上限。在區(qū)塊鏈交易量數(shù)量級(jí)不變的情況下,智能合約的上鏈數(shù)據(jù)的算法也會(huì)對(duì)區(qū)塊鏈賬本大小產(chǎn)生較大影響。

2 系統(tǒng)實(shí)現(xiàn)及性能分析

基于系統(tǒng)模型,設(shè)計(jì)開(kāi)發(fā)了基于區(qū)塊鏈的改進(jìn)代碼共享航班管理系統(tǒng)(下稱改進(jìn)系統(tǒng))。改進(jìn)系統(tǒng)主要分為兩個(gè)部分:a)完成傳統(tǒng)業(yè)務(wù)的代碼共享航班管理信息系統(tǒng);b)基于超級(jí)賬本Hyperledger Fabric作為底層的區(qū)塊鏈平臺(tái),兩個(gè)部分共同協(xié)作從而實(shí)現(xiàn)改進(jìn)系統(tǒng)的各個(gè)功能。

2.1 功能需求

圖3為改進(jìn)系統(tǒng)的功能需求,整個(gè)系統(tǒng)的功能分為基礎(chǔ)功能、業(yè)務(wù)功能及區(qū)塊鏈相關(guān)功能三個(gè)部分。

基礎(chǔ)功能部分主要涵蓋構(gòu)建系統(tǒng)的基本功能,包括新建修改用戶及角色信息、新建修改系統(tǒng)菜單及菜單權(quán)限管理、在線用戶顯示、操作日志顯示、SQL監(jiān)控等系統(tǒng)監(jiān)控功能。

業(yè)務(wù)功能部分主要涵蓋代碼共享航班管理系統(tǒng)的業(yè)務(wù)功能及實(shí)現(xiàn),在此部分可以完成新建代碼共享航班—航班修改—航班發(fā)布—用戶購(gòu)票整個(gè)代碼共享航班管理的流程。在查看、維護(hù)代碼共享航班功能中可以新建承運(yùn)方、市場(chǎng)方代碼共享航班對(duì),并對(duì)已有數(shù)據(jù)進(jìn)行修改。在發(fā)布代碼共享航班功能中,可以對(duì)尚未確認(rèn)的代碼共享航班對(duì)的數(shù)據(jù)進(jìn)行確認(rèn)及發(fā)布。發(fā)布是個(gè)不可逆操作,進(jìn)行發(fā)布操作后,系統(tǒng)生成市場(chǎng)方、承運(yùn)方的票務(wù)數(shù)據(jù),供用戶購(gòu)買(mǎi)。在用戶購(gòu)票模塊用戶可以查詢已經(jīng)發(fā)布航班的市場(chǎng)方和承運(yùn)方的航班信息,并可購(gòu)買(mǎi)尚有余票的航班。

區(qū)塊鏈相關(guān)功能部分主要涵蓋區(qū)塊鏈的相關(guān)業(yè)務(wù)及功能,區(qū)塊鏈節(jié)點(diǎn)管理功能可以對(duì)區(qū)塊鏈的排序節(jié)點(diǎn)、peer節(jié)點(diǎn)進(jìn)行相應(yīng)地增刪及配置修改。Fabric系統(tǒng)中的鏈碼部署及調(diào)用均需要關(guān)聯(lián)到區(qū)塊鏈的通道(channel)中,通道管理功能可以新建、查看、修改通道。智能合約管理功能可以安裝鏈碼、初始化鏈碼、查詢鏈碼、調(diào)用鏈碼、升級(jí)鏈碼等。區(qū)塊鏈數(shù)據(jù)查詢功能可以根據(jù)區(qū)塊號(hào)查詢區(qū)塊信息,并對(duì)系統(tǒng)產(chǎn)生變更業(yè)務(wù)在區(qū)塊鏈系統(tǒng)中進(jìn)行查證。

2.2 執(zhí)行流程及系統(tǒng)架構(gòu)

在改進(jìn)系統(tǒng)中,涉及變更請(qǐng)求執(zhí)行的流程如圖4所示,先由客戶端發(fā)出變更請(qǐng)求,業(yè)務(wù)模塊前臺(tái)服務(wù)收到請(qǐng)求后轉(zhuǎn)發(fā)到業(yè)務(wù)模塊后臺(tái)服務(wù),后臺(tái)服務(wù)在進(jìn)行業(yè)務(wù)數(shù)據(jù)處理后,調(diào)用Fabric Java-SDK的接口執(zhí)行智能合約,將請(qǐng)求上鏈,上鏈成功后再通知外部系統(tǒng),待外部系統(tǒng)回復(fù)數(shù)據(jù)后,再通過(guò)Fabric Java-SDK的接口執(zhí)行回復(fù)驗(yàn)證驗(yàn)證,完成整個(gè)交易流程。

改進(jìn)系統(tǒng)模型的實(shí)現(xiàn)的主要分為兩個(gè)部分:a)傳統(tǒng)代碼共享航班管理信息系統(tǒng);b)基于超級(jí)賬本Hyperledger Fabric作為底層的區(qū)塊鏈平臺(tái)。圖5為改進(jìn)系統(tǒng)的架構(gòu)設(shè)計(jì)。此實(shí)現(xiàn)使用了三臺(tái)虛擬機(jī)進(jìn)行系統(tǒng)搭建,以模擬現(xiàn)實(shí)民航業(yè)務(wù)中的信息系統(tǒng)。Fabric infrastructure cluster虛擬機(jī)代表提供區(qū)塊鏈基礎(chǔ)服務(wù)的系統(tǒng)集群(下稱區(qū)塊鏈服務(wù)虛擬機(jī)),XX airline service和YY airline service虛擬機(jī)代表兩個(gè)不同航司的業(yè)務(wù)系統(tǒng),不同航司業(yè)務(wù)系統(tǒng)之間通過(guò)后臺(tái)業(yè)務(wù)模塊進(jìn)行數(shù)據(jù)交互。

表1為區(qū)塊鏈服務(wù)虛擬機(jī)上部署的服務(wù)及描述,其提供區(qū)塊鏈的基礎(chǔ)服務(wù)。此虛擬機(jī)節(jié)點(diǎn)部署兩個(gè)Fabric orderer排序節(jié)點(diǎn)來(lái)實(shí)現(xiàn)Fabric服務(wù)的高可用;部署一個(gè)Fabric CA節(jié)點(diǎn)用來(lái)向Fabric的各個(gè)節(jié)點(diǎn)提供用戶信息、證書(shū)的管理工作;部署一個(gè)Fabric peer節(jié)點(diǎn),用于進(jìn)行記賬、背書(shū)等操作;部署一個(gè)Fabric CLI節(jié)點(diǎn),用于使用命令進(jìn)行創(chuàng)建通道、安裝鏈碼等操作,F(xiàn)abric的鏈碼均通過(guò)此虛擬機(jī)節(jié)點(diǎn)安裝、初始化,并生成對(duì)應(yīng)的Docker鏈碼容器。以上節(jié)點(diǎn)均通過(guò)Docker進(jìn)行部署和管理。

表2為XX airline service和YY airline service虛擬機(jī)部署的服務(wù)及描述,兩臺(tái)虛擬機(jī)采用基本相同的結(jié)構(gòu)。分別部署前臺(tái)顯示服務(wù)、后臺(tái)業(yè)務(wù)服務(wù)、Blockchain adaptor服務(wù)、Fabric-peer節(jié)點(diǎn)及Redis、MySQL數(shù)據(jù)庫(kù)。前臺(tái)顯示模塊使用Java-Script語(yǔ)言,Vue框架實(shí)現(xiàn)。后臺(tái)業(yè)務(wù)模塊使用Java語(yǔ)言,Spring Boot框架實(shí)現(xiàn),其業(yè)務(wù)數(shù)據(jù)保存在MySQL數(shù)據(jù)庫(kù)中。Blockchain adaptor服務(wù)使用Java語(yǔ)言,內(nèi)嵌Fabric官方發(fā)布的Fabric-SDK-Java jar包,起到連接傳統(tǒng)服務(wù)和超級(jí)賬本節(jié)點(diǎn)模塊的功能,在系統(tǒng)內(nèi)部的其他傳統(tǒng)模塊可以通過(guò)HTTP或RPC請(qǐng)求adaptor模塊來(lái)達(dá)到和超級(jí)賬本交互的功能。Fabric-peer負(fù)責(zé)執(zhí)行鏈碼及與超級(jí)賬本集群數(shù)據(jù)同步作用。在改進(jìn)系統(tǒng)的實(shí)現(xiàn)中,區(qū)塊鏈負(fù)責(zé)涉及外部交互時(shí)信息的驗(yàn)證及歷史記錄,其功能使用鏈碼實(shí)現(xiàn)。

2.3 鏈碼實(shí)現(xiàn)

在進(jìn)行系統(tǒng)架構(gòu)搭建后,需要通過(guò)實(shí)現(xiàn)鏈碼來(lái)連接傳統(tǒng)系統(tǒng)和區(qū)塊鏈系統(tǒng),以完成改進(jìn)系統(tǒng)的實(shí)現(xiàn)。選用改進(jìn)模型中的“區(qū)塊鏈負(fù)責(zé)涉及外部交互時(shí)信息的驗(yàn)證及歷史記錄”方式作為實(shí)現(xiàn)。

圖6為添加四次交互消息驗(yàn)證機(jī)制的變更邏輯設(shè)計(jì)。整個(gè)流程總體可以歸納為“四次交互,兩次上鏈”。四次交互消息驗(yàn)證機(jī)制涵蓋一個(gè)完整的交易請(qǐng)求返回流程,涉及兩個(gè)傳統(tǒng)系統(tǒng)及一個(gè)區(qū)塊鏈系統(tǒng)。下面從一個(gè)交易的開(kāi)始到一個(gè)交易的截止,按時(shí)間流程的順序介紹四次交互消息驗(yàn)證機(jī)制,四次交互的位置用數(shù)字①~④表示。①②為請(qǐng)求上鏈的交互,對(duì)應(yīng)的鏈碼算法邏輯如算法1所示。③④為回復(fù)上鏈的交互,對(duì)應(yīng)的鏈碼算法邏輯如算法2所示。

首先,交易發(fā)起方(圖中為XX航司)處理業(yè)務(wù)數(shù)據(jù),需要發(fā)起一個(gè)變更請(qǐng)求到交易接收方(圖中為YY航司)。在發(fā)布變更請(qǐng)求前,先執(zhí)行四次交互驗(yàn)證邏輯的第一次交互。

a)將變更請(qǐng)求的完整數(shù)據(jù)數(shù)據(jù)請(qǐng)求規(guī)范化成固定格式JSON數(shù)據(jù)(圖中為req JSON),連帶用戶數(shù)據(jù)、請(qǐng)求時(shí)間等數(shù)據(jù)發(fā)送給peer節(jié)點(diǎn),觸發(fā)peer節(jié)點(diǎn)部署的特定智能合約(圖中為request chaincode),執(zhí)行此智能合約的插入操作,在區(qū)塊鏈中生成新的區(qū)塊,將信息上鏈。上鏈過(guò)程中,智能合約根據(jù)合約生成信息摘要(圖中的sha256),生成摘要的方式是使用規(guī)范化后的JSON,通過(guò)單向散列函數(shù)SHA-256計(jì)算而來(lái),并在新區(qū)塊中記錄請(qǐng)求用戶信息及信息摘要。智能合約執(zhí)行完成后,將生成的信息摘要和新生成的區(qū)塊的區(qū)塊唯一標(biāo)識(shí)(圖中為blocknum1)返回給交易發(fā)起方(圖中的XX航司)。

當(dāng)交易發(fā)起方收到了區(qū)塊鏈返回的區(qū)塊唯一標(biāo)識(shí)數(shù)據(jù)后,將生成的最新區(qū)塊鏈的區(qū)塊號(hào)保存到關(guān)系數(shù)據(jù)庫(kù)中此次變更對(duì)應(yīng)的數(shù)據(jù)條目中,則關(guān)系數(shù)據(jù)庫(kù)中涉及此業(yè)務(wù)的每條數(shù)據(jù)都會(huì)有一個(gè)區(qū)塊號(hào)指向區(qū)塊鏈中的此條數(shù)據(jù)最新變更產(chǎn)生的交易塊號(hào)。進(jìn)行如上操作后,交易發(fā)起方再將請(qǐng)求數(shù)據(jù)和區(qū)塊號(hào)(圖中為req message+blocknum1)發(fā)送給交易接收方(圖中為YY航司)。

當(dāng)交易接收方接收到請(qǐng)求數(shù)據(jù)后,并不直接進(jìn)行業(yè)務(wù)處理,而是對(duì)接收到消息先進(jìn)行鏈上確認(rèn),此時(shí)執(zhí)行四次交互驗(yàn)證邏輯的第二次交互。

b)使用發(fā)送方傳遞過(guò)來(lái)的區(qū)塊號(hào)(圖中為blocknum1)作為入?yún)ⅲ^(qū)塊鏈中執(zhí)行對(duì)應(yīng)智能合約(圖中為request chaincode),執(zhí)行此智能合約的查詢操作,查詢blocknum1中的信息摘要(圖中為sha256),并將信息摘要的數(shù)據(jù)返回給交易接收方。

在交易接收方接收到對(duì)應(yīng)的信息摘要后(圖中為sha256),在本地將請(qǐng)求數(shù)據(jù)(圖中為req JSON)使用SHA-256算法計(jì)算信息摘要,設(shè)為sha256′。并比對(duì)sha256和sha256′的數(shù)據(jù)是否相同,相同則可認(rèn)為此次變更請(qǐng)求數(shù)據(jù)可信且變更請(qǐng)求信息已經(jīng)上鏈,并進(jìn)行業(yè)務(wù)數(shù)據(jù)的處理。

當(dāng)交易接收方業(yè)務(wù)數(shù)據(jù)處理完成后,需要告知交易發(fā)起方消息處理成功,在告知交易發(fā)起方處理成功前需要先執(zhí)行四次交互驗(yàn)證邏輯的第三次交互。

c)交易接收方收到區(qū)塊鏈傳遞回來(lái)的新區(qū)塊號(hào)后,將生成的區(qū)塊號(hào)和回復(fù)成功標(biāo)識(shí)返回發(fā)送方(圖中的succ+blocknum2)。

當(dāng)交易發(fā)送方接收到標(biāo)識(shí)為返回成功返回信息后,再去執(zhí)行四次交互驗(yàn)證邏輯的第四次交互。

d)使用接收方傳遞過(guò)來(lái)的區(qū)塊號(hào)(圖中為blocknum2)作為入?yún)ⅲ^(qū)塊鏈中執(zhí)行對(duì)應(yīng)智能合約(圖中為response chaincode),執(zhí)行此智能合約的查詢操作,查詢blocknum2中標(biāo)識(shí)字段及記錄的區(qū)塊號(hào),將查詢結(jié)果返回給交易發(fā)送方。

交易發(fā)送方在接收到區(qū)塊鏈的返回值后,先確定返回標(biāo)識(shí)是否為標(biāo)識(shí)成功字段,并將返回的區(qū)塊號(hào)與之前發(fā)送信息前上鏈的區(qū)塊號(hào)比對(duì)是否一致,一致則驗(yàn)證結(jié)束。整個(gè)交易在四次交互消息驗(yàn)證機(jī)制的驗(yàn)證下完成。

算法1 請(qǐng)求上鏈的鏈碼算法邏輯

reqType==JudgeReqType() /*根據(jù)請(qǐng)求的參數(shù)判斷交易類(lèi)型是對(duì)交易req請(qǐng)求還是交易req的查詢*/

if reqType==FirstTransactionType then /*交易類(lèi)型是req請(qǐng)求上鏈,對(duì)應(yīng)四次交互中的第一次交互*/

calculationRequestBodySHA256() //獲取請(qǐng)求體的信息摘要

dataDseaitizatiea() /*保留請(qǐng)求頭數(shù)據(jù),將請(qǐng)求體內(nèi)容替換為生成的JSON*/

putDataOnTheBlockChain() /*將脫敏后的請(qǐng)求數(shù)據(jù)保存到區(qū)塊鏈的世界狀態(tài)中,上鏈數(shù)據(jù)有請(qǐng)求頭及信息摘要*/

return blocknum

end if

if reqType==SecondTransactionType then /*交易類(lèi)型是查詢r(jià)eq的交易結(jié)果,對(duì)應(yīng)四次交互中第二次交互*/

resDataOnChain=getDataOnTheBlockChain() /*根據(jù)區(qū)塊號(hào)查詢世界狀態(tài)中的請(qǐng)求數(shù)據(jù)*/

if 1 !=resDataOnChain then

return resDataOnChain //返回第一次交互的上鏈數(shù)據(jù)

else

throw exception //未查詢到對(duì)應(yīng)數(shù)據(jù)則拋出異常

end if

算法2 回復(fù)上鏈的鏈碼算法邏輯

respType=JudgeRespType() /*根據(jù)請(qǐng)求的參數(shù)判斷交易類(lèi)型是對(duì)交易resp請(qǐng)求還是交易resp的查詢*/

if respType==ThirdTransactionType then /*交易類(lèi)型是resp請(qǐng)求上鏈應(yīng)對(duì)四次交互中的第三次交互*/

leagelTag=putRespDataOnTheBlockChain() /*交易req與交易resp均成對(duì)出現(xiàn),此處驗(yàn)證交易resp是否找到對(duì)應(yīng)的交易req,找到則為請(qǐng)求合法*/

if leagelTag==true then

putDataOnTheBlockChain() /*將交易resp的請(qǐng)求數(shù)據(jù)保存在區(qū)塊鏈的世界狀態(tài)中,上鏈數(shù)據(jù)有第一次交互生成的區(qū)塊標(biāo)識(shí),及回復(fù)succ標(biāo)識(shí)*/

return resDataOnChain //數(shù)據(jù)上鏈后會(huì)生成新的區(qū)塊號(hào)

else

throw exception //未查詢到對(duì)應(yīng)交易req信息拋出異常

end if

if respType==FourthTransactionType then /*查詢交易resp結(jié)果應(yīng)對(duì)四次交互中的第四次交互*/

respDataOnChain=getRespDataOnTheBlockChain() /*根據(jù)區(qū)塊號(hào)查詢世界狀態(tài)中的第三次交互上鏈數(shù)據(jù)*/

if respDataOnChain!=1 then //返回第三次交互的上鏈數(shù)據(jù)

return resDataOnChain

else

throw exception //未查詢到對(duì)應(yīng)交易resp信息拋出異常

end if

在回復(fù)上鏈的鏈碼中,傳遞給鏈碼的信息格式使用JSON傳遞,JSON中信息包括回復(fù)人、回復(fù)信息狀態(tài)、對(duì)應(yīng)的請(qǐng)求messageId、對(duì)應(yīng)請(qǐng)求上鏈時(shí)產(chǎn)生的區(qū)塊號(hào)等數(shù)據(jù)。

2.4 性能評(píng)估

系統(tǒng)實(shí)現(xiàn)后,對(duì)改進(jìn)系統(tǒng)進(jìn)行擴(kuò)展和壓力測(cè)試,以測(cè)試系統(tǒng)在一定規(guī)模的環(huán)境和業(yè)務(wù)場(chǎng)景下的系統(tǒng)可擴(kuò)展性及穩(wěn)定性。

2.4.1 增加區(qū)塊鏈節(jié)點(diǎn)

使用Ubuntu 16.04虛擬機(jī),配置8 GB內(nèi)存,2核8線程CPU。在選擇選擇實(shí)用拜占庭容錯(cuò)(practical Byzantine fault tolerance,PBFT)[23]共識(shí)算法的情況下,對(duì)區(qū)塊鏈的peer節(jié)點(diǎn)數(shù)量進(jìn)行擴(kuò)展,分別部署4、8個(gè)peer節(jié)點(diǎn),使用JMerter進(jìn)行5 000次業(yè)務(wù)交易來(lái)判斷增加區(qū)塊鏈節(jié)點(diǎn)后系統(tǒng)吞吐量的變化情況。在實(shí)驗(yàn)過(guò)程中,對(duì)Linux系統(tǒng)進(jìn)行實(shí)時(shí)監(jiān)控,均未觸及系統(tǒng)CPU及內(nèi)存物理上限。圖7為4節(jié)點(diǎn)情況下系統(tǒng)每秒事務(wù)處理量(transaction per second,TPS)及響應(yīng)時(shí)間,圖8為8節(jié)點(diǎn)情況系統(tǒng)TPS及響應(yīng)時(shí)間。

4節(jié)點(diǎn)網(wǎng)絡(luò)環(huán)境下,每秒事務(wù)處理量(transaction per second,TPS)為128.3,平均響應(yīng)時(shí)間為621 ms。8節(jié)點(diǎn)網(wǎng)絡(luò)環(huán)境下,TPS為86,平均響應(yīng)時(shí)間843 ms。經(jīng)實(shí)驗(yàn)可知,使用PBFT算法雖可以將共識(shí)算法降到多項(xiàng)式級(jí)別,擴(kuò)展節(jié)點(diǎn)數(shù)量仍會(huì)對(duì)系統(tǒng)效率產(chǎn)生一定影響。

考慮到民航業(yè)務(wù)的特殊性,航司數(shù)量不多,不同航司中部署區(qū)塊鏈peer節(jié)點(diǎn)并不會(huì)對(duì)聯(lián)盟鏈系統(tǒng)造成過(guò)大壓力。同時(shí),代碼共享航班的新建及變更是一個(gè)較為低頻操作,對(duì)實(shí)時(shí)性要求較弱,可以采用異步方式來(lái)進(jìn)行跨航司間的數(shù)據(jù)交互。因此可推測(cè),增加區(qū)塊鏈特性后,系統(tǒng)的效率及時(shí)效性可以滿足代碼共享航班業(yè)務(wù)需求。

2.4.2 增加交互次數(shù)

使用4個(gè)peer節(jié)點(diǎn)的區(qū)塊鏈配置,在進(jìn)行新建代碼共享航班業(yè)務(wù)操作時(shí),分別選用全量業(yè)務(wù)數(shù)據(jù)上鏈及業(yè)務(wù)數(shù)據(jù)摘要進(jìn)行上鏈。全量上鏈場(chǎng)景的數(shù)據(jù)選取脫敏后生產(chǎn)環(huán)境中的JSON作為樣例,長(zhǎng)度為2 200字符左右。數(shù)據(jù)摘要上鏈場(chǎng)景,使用SHA-256對(duì)業(yè)務(wù)數(shù)據(jù)進(jìn)行處理,來(lái)獲取摘要,處理后的數(shù)據(jù)摘要長(zhǎng)度為64 Byte。對(duì)兩種場(chǎng)景分別進(jìn)行十輪,每輪1 000次的用例執(zhí)行,在每輪次執(zhí)行完成后,記錄區(qū)塊鏈賬本的大小,得到的賬本空間增量如圖9所示。

兩種場(chǎng)景的賬本大小總體上隨測(cè)試輪次線性增加,并且鏈上存儲(chǔ)全量數(shù)據(jù)的場(chǎng)景賬本大小大于存儲(chǔ)摘要數(shù)據(jù)場(chǎng)景。在8 000~9 000次時(shí),全量上鏈場(chǎng)景賬本大小超過(guò)配置的切分賬本文件塊大小(64 MB),在執(zhí)行到9 000次時(shí)生成了64 MB和4.4 MB兩個(gè)文件。在執(zhí)行10 000次用例后,上鏈全量數(shù)據(jù)和數(shù)據(jù)摘要,產(chǎn)生的區(qū)塊鏈賬本大小相差20 MB,并有隨交易量增加遞增的趨勢(shì)。因此,在進(jìn)行業(yè)務(wù)上鏈改造時(shí),智能合約的上鏈數(shù)據(jù)算法需要根據(jù)業(yè)務(wù)場(chǎng)景及交易量具體考慮。

由測(cè)試結(jié)果可推測(cè),對(duì)某業(yè)務(wù)場(chǎng)景進(jìn)行區(qū)塊鏈改造時(shí),既使采用全量數(shù)據(jù)上鏈的方案進(jìn)行區(qū)塊鏈改造,預(yù)估日業(yè)務(wù)量在萬(wàn)次左右,區(qū)塊鏈賬本的日增長(zhǎng)為百M(fèi)B量級(jí),年賬本增長(zhǎng)為30 GB級(jí)別,對(duì)于企業(yè)級(jí)應(yīng)用的設(shè)備是可以接受的。并且可以考慮在實(shí)際使用中通過(guò)按年為周期的新建賬本,將正在運(yùn)行的區(qū)塊鏈的賬本的空間控制在一定量級(jí)內(nèi)。同時(shí)需要注意的是,在進(jìn)行業(yè)務(wù)上鏈評(píng)估時(shí)改造時(shí),需要考慮上鏈的不同業(yè)務(wù)間是否存在互相調(diào)用互相影響,而不可將每個(gè)業(yè)務(wù)孤立看待。

3 結(jié)束語(yǔ)

本文針對(duì)目前分布式代碼共享航班管理系統(tǒng)沒(méi)有一個(gè)集中控制、雙方互認(rèn)的權(quán)威機(jī)構(gòu)做認(rèn)證,從而可能產(chǎn)生推諉、扯皮并帶來(lái)糾紛的問(wèn)題,結(jié)合區(qū)塊鏈技術(shù)和密碼學(xué)技術(shù),給出了基于區(qū)塊鏈的改進(jìn)方案。在此基礎(chǔ)上,實(shí)現(xiàn)了一個(gè)具備較完善信息管理功能和具有交易可溯源、竄改可被驗(yàn)證的特點(diǎn)的共享航班信息管理改進(jìn)系統(tǒng),并對(duì)系統(tǒng)進(jìn)行一定規(guī)模的時(shí)間空間測(cè)試,針對(duì)測(cè)試結(jié)果給出區(qū)塊鏈上鏈建議。改進(jìn)系統(tǒng)將主要問(wèn)題聚焦在提升傳統(tǒng)分布式系統(tǒng)的交易過(guò)程的安全性,不可否認(rèn)的是,改進(jìn)系統(tǒng)仍有一定的提升空間。在改進(jìn)系統(tǒng)完成區(qū)塊鏈引入從0到1的過(guò)程后,未來(lái)將會(huì)結(jié)合實(shí)際場(chǎng)景,從更多維度嘗試區(qū)塊鏈系統(tǒng)與傳統(tǒng)系統(tǒng)相結(jié)合的方式。

參考文獻(xiàn):

[1]中國(guó)民用航空局飛行標(biāo)準(zhǔn)司. AC-121-FS-2014-122,對(duì)代碼共享的外國(guó)航空運(yùn)營(yíng)人安全審計(jì)指南 [S]. 北京: 中國(guó)民用航空局飛行標(biāo)準(zhǔn)司,2014. (Civil Aviation Administration of China. AC-121-FS-2014-122,Safety audit guidelines for foreign air operators for code sharing [S]. Beijing: Flight Standards Department,Civil Aviation Administration of China,2014.)

[2]王彩麗. 航空代碼共享承運(yùn)人民事責(zé)任研究 [D]. 天津: 中國(guó)民航大學(xué),2016. (Wang Caili. Study on civil liability of aviation code-sharing carriers [D]. Tianjin: Civil Aviation University of China,2016.)

[3]IATA. Standard schedules information [M]. Montreal: Plan Stan-dards Board,2022.

[4]IATA. Travel agencies’enabler to success [R/OL]. (2015-10-01) [2022-05-20]. https://www. iata. org/contentassets/6de4dce5f3 8b45ce82b0db42acd23d1c/ndc-report-v6-online. pdf.

[5]邵奇峰,張召,朱燕超,等. 企業(yè)級(jí)區(qū)塊鏈技術(shù)綜述 [J]. 軟件學(xué)報(bào),2019,30(9): 2571-2592. (Shao Qifeng,Zhang Zhao,Zhu Yanchao,et al. Survey of enterprise blockchains [J]. Journal of Software,2019,30(9): 2571-2592.)

[6]Buterin V. A next-generation smart contract and decentralized application platform [EB/OL]. (2014) [2022-05-30]. https://nft2x. com/wp-content/uploads/2021/03/EthereumWP. pdf.

[7]SITA. Flightchain-whitepaper [S/OL]. (2017) [2022-05-30]. https://www. sita. aero/globalassets/docs/white-papers/flightchain-whitepaper. pdf.

[8]SITA. Mro-blockchain-services-white-paper [R/OL]. (2021) [2022-05-30]. https://www. sita. aero/globalassets/docs/white-papers/mro-blockchain-services-white-paper. pdf.

[9]Winding Tree. Winding tree [EB/OL]. (2022-05-01) [2022-05-29]. https://windingtree. com.

[10]Insights L. Hahn air issues blockchain tickets over Winding Tree platform [EB/OL] (2019-11-19) [2022-05-29]. https://www. ledgerinsigh ts. com/blockchain-airline-tickets-hahn-air-winding-tree/.

[11]國(guó)務(wù)院國(guó)有資產(chǎn)監(jiān)督管理委員會(huì). 南航首份區(qū)塊鏈電子維修記錄正式亮相 [EB/OL]. (2022-05-18) [2022-05-29]. http://www. sasac. gov. cn/n2588025/n2588124/c24639124/content. html. (State-owned Assets Supervision and Administration Commission of the State Council. China Southern’s first blockchain electronic maintenance record officially unveiled [EB/OL]. (2022-05-18) [2022-05-29]. http://www. sasac. gov. cn/n2588025/n2588124/c24639124/content. html.)

[12]高鑫宇,施東杰. 基于區(qū)塊鏈技術(shù)的機(jī)場(chǎng)運(yùn)行指揮體系研究 [J]. 民航學(xué)報(bào),2021,5(6): 21-23. (Gao Xinyu,Shi Dongjie. Research on airport operation command system based on blockchain technology [J]. Journal of Civil Aviation,2021,5(6): 21-23.)

[13]王天山,楊健,王堯. 區(qū)塊鏈技術(shù)在民航領(lǐng)域的應(yīng)用 [J]. 信息技術(shù)與網(wǎng)絡(luò)安全,2018,37(11): 109-112. (Wang Tianshan,Yang Jian,Wang Yao. Application of blockchain technology in civil aviation [J]. Information Technology and Network Security,2018,37(11): 109-112.)

[14]Yang Xinyi,Zhang Yi,He Yulin. Technical characteristics and model of blockchain [C]// Proc of the 10th International Conference on Communication Software and Networks. Piscataway,NJ: IEEE Press,2018: 562-566.

[15]朱立,俞歡,詹士瀟,等. 高性能聯(lián)盟區(qū)塊鏈技術(shù)研究 [J]. 軟件學(xué)報(bào),2019,30(6): 1577-1593. (Zhu Li,Yu Huan,Zhan Shixiao,et al. Research on high-performance consortium blockchain technology [J]. Journal of Software,2019,30(6): 1577-1593.)

[16]李玉,段宏岳,殷昱煜,等. 基于區(qū)塊鏈的去中心化眾包技術(shù)綜述 [J]. 計(jì)算機(jī)科學(xué),2021,48(11): 12-27. (Li Yu,Duan Hongyue,Yin Yuyu,et al. Survey of crowdsourcing applications in blockchain systems [J]. Computer Science,2021,48(11): 12-27.)

[17]王旭. 基于區(qū)塊鏈的醫(yī)療數(shù)據(jù)共享隱私保護(hù)問(wèn)題的研究與實(shí)現(xiàn) [D]. 西安: 西安電子科技大學(xué),2019. (Wang Xu. Research and implementation of privacy protection for medical data sharing based on blockchain [D]. Xi’an: Xidian University,2019.)

[18]鄒杰成. 基于區(qū)塊鏈的電力數(shù)據(jù)存儲(chǔ)方案研究與實(shí)現(xiàn) [D]. 成都: 電子科技大學(xué),2020. (Zou Jiecheng. Research and implementation of power data storage scheme based on blockchain [D]. Chengdu: University of Electronic Science and Technology of China,2020.)

[19]朱鵬. 基于區(qū)塊鏈的智慧醫(yī)療數(shù)據(jù)存儲(chǔ)與隱私保護(hù)研究 [D]. 南京: 南京郵電大學(xué),2021. (Zhu Peng. A blockchain-based scheme for privacypreserving and secure sharing of medical data [D]. Nanjing: Nanjing University of Posts and Telecommunications,2021.)

[20]陳岑岳. 基于區(qū)塊鏈技術(shù)的配電網(wǎng)交易策略研究 [D]. 西安: 西安理工大學(xué),2020. (Chen Cenyue. Research on distribution network trading strategy based on blockchain technology [D]. Xi’an: Xi’an University of Technology,2020.)

[21]Androulaki E,Barger A,Bortnikov V,et al. Hyperledger fabric: a distributed operating system for permissioned blockchains [C]// Proc of the 13th EuroSys Conference. 2018: 1-15.

[22]孫靖超. 基于區(qū)塊鏈的可擴(kuò)展電子取證模型研究 [J]. 計(jì)算機(jī)應(yīng)用研究,2021,38(3): 671-674,679. (Sun Jingchao. Research on scalable digital forensics model based on blockchain [J]. Application Research of Computers,2021,38(3): 671-674,679.)

[23]Castro M,Liskov B. Practical Byzantine fault tolerance and proactive recovery [J]. ACM Trans on Computer Systems (TOCS),2002,20(4): 398-461.

收稿日期:2022-06-14;修回日期:2022-08-18 基金項(xiàng)目:國(guó)家自然科學(xué)基金項(xiàng)目(61540069);遼寧省教育廳科研基金項(xiàng)目(LJGD2020017)

作者簡(jiǎn)介:齊放(1991-),男,遼寧沈陽(yáng)人,工程師,碩士研究生,主要研究方向?yàn)閰^(qū)塊鏈系統(tǒng)、軟件工程;鐘玲(1970-),女(通信作者),浙江瑞安人,副教授,碩導(dǎo),碩士,主要研究方向?yàn)閿?shù)據(jù)挖掘、圖像處理(2968042016@qq.com);張珊(1987-),女,北京人,高級(jí)工程師,碩士研究生,主要研究方向?yàn)槊窈叫畔⑾到y(tǒng)、分布式系統(tǒng).

主站蜘蛛池模板: 又黄又湿又爽的视频| 88av在线看| 色九九视频| 国产精品久久久久鬼色| 欧美另类一区| 精品视频免费在线| 亚洲日韩每日更新| 性视频一区| 欧美成人一区午夜福利在线| 91精品人妻互换| 久久久久88色偷偷| 国产女人爽到高潮的免费视频| JIZZ亚洲国产| 亚洲 日韩 激情 无码 中出| 农村乱人伦一区二区| 国产办公室秘书无码精品| 国产精品欧美日本韩免费一区二区三区不卡 | 亚洲三级a| 91精品国产丝袜| 成年人免费国产视频| 亚洲AⅤ综合在线欧美一区| 久久香蕉国产线看观看式| 亚洲中文字幕国产av| 日本午夜三级| v天堂中文在线| 日韩少妇激情一区二区| 国产97区一区二区三区无码| 日本一区高清| 69免费在线视频| 国产成人精品一区二区三区| 成人一区在线| 91精品人妻一区二区| 欧美成人午夜视频免看| 欧美国产日韩一区二区三区精品影视| 欧美精品色视频| 欧美日韩免费观看| 国产乱子伦视频在线播放| 国产一区自拍视频| 中文字幕在线日本| 成人国产三级在线播放| 免费在线成人网| 久久性视频| 天天综合网色| 免费人成在线观看成人片 | 国产香蕉在线| 久久99蜜桃精品久久久久小说| 91视频日本| 国产成人精品亚洲77美色| 99这里只有精品在线| AV无码国产在线看岛国岛| 伊人五月丁香综合AⅤ| 小蝌蚪亚洲精品国产| 精品国产www| 欧美日韩久久综合| 91久久偷偷做嫩草影院| 久久99精品久久久久久不卡| 呦女精品网站| 欧美精品在线免费| 蜜桃臀无码内射一区二区三区| 亚洲国语自产一区第二页| 亚洲国产成人无码AV在线影院L| 亚洲熟妇AV日韩熟妇在线| 日韩福利视频导航| 色综合天天操| 欧美色图第一页| 免费无码AV片在线观看中文| 美女潮喷出白浆在线观看视频| 一本大道视频精品人妻| 亚洲免费人成影院| 国产成人喷潮在线观看| 亚洲视频三级| 色国产视频| 丁香五月亚洲综合在线| 日韩午夜片| 免费国产无遮挡又黄又爽| 99热国产这里只有精品9九 | 精品欧美视频| 男女性午夜福利网站| 色婷婷久久| 国产美女视频黄a视频全免费网站| 91麻豆精品视频| 无码久看视频|