?

基于信譽的二階段溯源區塊鏈共識策略

2021-07-26 11:55許翀寰湯中運
計算機工程 2021年7期
關鍵詞:信譽吞吐量共識

汪 澍,許翀寰,湯中運

(1.浙江工商大學管理工程與電子商務學院,杭州310018;2.浙江工商大學工商管理學院,杭州310018;3.杭州電子科技大學計算機學院,杭州310018)

0 概述

傳統溯源系統采用將溯源信息集中存放在單一節點上的中心化方案[1],這會影響系統的安全性、透明度和互操作性[2],而區塊鏈技術的出現為溯源系統的構建提供了更可信、安全和高效的解決方案[3]。由于公有鏈中實體可隨意加入或離開區塊鏈網絡,而參與溯源系統中代表各利益方的實體則受到約束,因此與比特幣[4]等公有鏈不同,溯源系統更適合采用聯盟鏈。溯源區塊鏈包含來自生產、加工、運輸、存儲和消費等領域中興趣各異的利益方[5],這種復雜性對該聯盟鏈的共識策略提出了拜占庭容錯能力的要求。在區塊鏈技術中,共識策略能夠確保在部分節點失效的情況下整個區塊鏈網絡中的節點仍能達成一致。由于節點通常由不同利益方維護,所構成的共識網絡具有顯著的異構特性,因此溯源區塊鏈的性能開銷較大,受到內外部惡意攻擊的安全風險高,其共識策略還需要保障系統的性能和安全性。然而,傳統基于證明的共識策略主要應用在公有鏈場景下,伴隨巨大的計算開銷和性能瓶頸,導致它們不適用于聯盟鏈場景下的溯源區塊鏈?;诎菡纪ト蒎e狀態機復制的策略(BFT)[6]可以在不引入額外開銷的情況下使全體非故障節點最終都達成共識,其中實用拜占庭容錯(PBFT)是聯盟鏈場景下應用最廣泛的共識策略。但是,由于PBFT 采用主節點(primary node)和多輪相互廣播的方式,并且缺少故障節點排除機制[7],導致其在溯源區塊鏈場景下依然存在通信開銷大、可靠性低、易受惡意攻擊等問題。

本文提出一種基于信譽的二階段溯源區塊鏈共識策略RTsBFT。通過對溯源區塊鏈進行分析,構建將共識節點分散在多個本地組中的系統模型,以模擬溯源系統多利益方、共識網絡異構的特性。同時建立一個信譽模型,將信譽作為節點參與共識過程的憑據,并根據節點信譽來排除故障節點。在此基礎上,將共識設計為一個包含代表選擇和代表共識兩個階段的過程,實現異構網絡通信。

1 背景知識

1.1 溯源區塊鏈

區塊鏈技術可以解決供應鏈系統中信任相關的問題[8],溯源區塊鏈能夠通過信息獲取、傳輸、分享等過程,為供應鏈生產、加工、倉儲、銷售等各環節提供可追溯性的可靠信息[9]。溯源區塊鏈繼承了區塊鏈技術的眾多特性,如提供一種安全可共享的去中心化數據庫,為物品、數據、金融等資源的交易提供基于透明性和可追溯性的信任強化。隨著射頻識別(RFID)、近場通信(NFC)等技術的發展,溯源區塊鏈被應用到眾多領域[10]。溯源區塊鏈可采用無權限(公有鏈)和有權限(聯盟鏈、私有鏈)系統,但無權限系統在設計上允許任意實體隨時加入和退出區塊鏈系統,并且擁有任意的讀寫權限,因此需要花費巨大的代價來保障安全性,如采用資源浪費極為嚴重的基于證明的共識策略[11]。同時,無權限系統的事務吞吐量受其設計的限制,無法滿足供應鏈溯源過程中的高頻交易需求,而有權限系統則可以通過優化共識策略來實現性能的顯著提升[12],因此,共識策略設計對溯源區塊鏈十分重要。

1.2 共識策略

共識策略由傳統分布式系統中的一致性算法演化而來,一致性算法最初由PEASE 等[13]提出,考慮到分布式系統中可能存在故障節點,研究者又在共識策略中引入了拜占庭將軍問題。1985年證明的FLP 不可能性定理指出,對于具有錯誤過程的異步系統的共識問題,沒有有限時間的理論解決方案,只能探索可行的“工程解”[14]。因此,早期探索的共識策略幾乎都是非拜占庭容錯的。直到2008年比特幣被提出,拜占庭容錯共識策略才得到廣泛關注,這類策略大致上可分為基于證明和基于投票兩類。比特幣區塊鏈中采用一種基于證明的共識策略——工作量證明(Proof of Work,PoW)[15]。但是,PoW 是一種十分浪費算力的共識策略[16],因此KING 提出了權益證明(Proof of Stake,PoS)[17]機制來改善PoW。自提出PoW 和PoS 之后,研究者在不同的應用場景下提出了一系列基于證明的共識策略,如改進原始PoW 和PoS 的策略、結合PoW 和PoS 優點的策略[18]等,這類機制要求共識節點提供某種憑據以競爭區塊打包和上鏈并獲得收益,這類共識策略將區塊鏈視作有限狀態機,對于給定的順序輸入,它們能保證分布式系統最終的一致性,代價是犧牲系統的吞吐量和延遲性能。同時,由于上述共識策略的設計主要考慮公有鏈場景,因此并不適用于溯源區塊鏈的聯盟鏈場景。在基于投票的共識策略的每輪共識中,共識節點“相互投票”,將得到超過半數節點投票的節點選為打包區塊上鏈的節點。通?;谕镀钡墓沧R協議在分布式一致性算法中更為常見,如Paxos和Raft[19],當前應用最為廣泛的基于投票的共識策略是實用拜占庭容錯(PBFT)策略。

1.3 PBFT 策略

PBFT 是一種典型的BFT 狀態機復制策略,其將分布式一致性算法的復雜性由指數時間級降低到多項式時間級。PBFT 采用了主節點(Primary Node)和視圖轉換(View Change)的概念,主節點負責對請求和共識過程進行排序,視圖轉換則用于選擇新的主節點。PBFT 最多可容忍個故障節點(N為總節點數)。當前對PBFT 的研究主要集中在對其性能和安全性的改進方面,多數研究從降低通信開銷的角度來改進PBFT 的性能[20],如基于信譽的策略[21]和信譽監督的策略CSBFT[22]。在PBFT 安全性改進方面,則有提高運行環境和網絡基礎設施安全性、增加故障檢測及配備冗余主節點[23]的方案。

溯源區塊鏈吸引著眾多利益方,共識策略需要滿足聯盟鏈對性能和安全性的需求[12],溯源區塊鏈的特性對共識策略的設計十分重要。

2 共識策略設計

不同于比特幣的公有鏈,溯源區塊鏈通常采用聯盟鏈,涉及的各利益方均可執行業務功能和權限管理,并通過投資區塊鏈節點、計算能力、帶寬等,與其他利益方競爭話語權,這形成了溯源區塊鏈多利益方和共識網絡異構的特性,引起了性能和拜占庭容錯的需求。針對上述需求,本文提出基于信譽的兩階段拜占庭容錯共識策略RTsBFT,其主要包括系統建模、信譽建模及共識過程3 個部分,其中,共識過程分為代表選擇階段和代表共識階段。

2.1 系統建模

將溯源區塊鏈中的節點分為3 類,分別為事務節點、共識節點以及存儲節點。為了模擬溯源區塊鏈多利益方、共識網絡異構的特性,共識節點被分為Sseg個本地組,在同一個本地組中的節點性能相近并通過高速本地網絡相連。事務節點產生事務并向各本地組廣播,組內共識節點在其自身的事務隊列中緩存待處理的事務,共識節點驗證事務并打包區塊。在本地組信譽值最高的節點中,完成上述任務最快的節點被選為該組的代表節點。共識將由所有本地組的代表節點參與,結果將分別發送到存儲節點和共識節點,以進行永久存儲和信譽更新。溯源區塊鏈系統模型如圖1所示。

圖1 溯源區塊鏈系統模型Fig.1 Traceability blockchain system model

當事務到達本地組時,組內所有共識節點會在進入共識過程前與一個可靠的NTP 服務器同步時間。同一本地組中的每個共識節點都維護一個本地共識節點表LCNT=<本地組標識,事務標識,節點標識,節點公鑰,節點IP:端口對,節點信譽值,節點狀態>,整個系統中所有LCNT 的初始配置都相同。

2.2 信譽模型

溯源區塊鏈作為一種聯盟鏈,比公有鏈更加可靠和安全,無需應用基于證明的共識策略以及增加額外的開銷。但是,內部利益方和外部對手的惡意行為導致共識節點不能始終被視為值得信賴,從而需要考慮共識策略的拜占庭容錯性。因此,本文建立一種信譽模型,以監督共識節點的行為,識別并排除有缺陷或惡意的故障節點,避免其影響共識過程。在該模型中,共識節點花費一定數量的自身信譽對共識過程中的提案進行簽名,當代表共識階段最終達成共識時,對共識提案簽名的代表節點對應的本地組,可取回其在該輪共識中花費的信譽,這些本地組被標記為獲勝組,其代表被標記為獲勝代表,其他本地組及其代表分別被標記為失敗組(gfailk∈Gfail)和失敗代表。所有簽名了共識提案的節點均將取回其本輪花費的信譽,獲勝組中簽名共識提案的節點還將獲得額外的信譽獎勵,未簽名共識提案的節點將受到信譽懲罰。

2.2.1 代表選擇階段的信譽變化

在系統初始化時,所有共識節點的信譽被設置為相同,對于共識節點,其初始信譽ri=rini。令L(X)表示X中的元素個數,則某一本地組中節點的個數為表示中所有節點在本輪共識中花費的信譽,其計算如下:

其中,wsep是共識節點簽名一個提案花費的信譽值,Trep是節點參與共識過程所需保有的最小信譽值。若ri≤Trep,則將被視作出現故障的拜占庭節點,無法簽名任何新的提案,隨后從本地組中移除或被新節點代替。在代表共識階段前,共識節點的信譽ri的變化如下:

2.2.2 代表共識階段的信譽變化

來自失敗組的信譽首先平均分配給各獲勝組,然后在每個獲勝組內進行分配,RRWD是給的信譽獎勵,其由從失敗組以及花費的信譽中分配而來的信譽共同構成,的信譽則維持本輪花費信譽后的值不變。

對于一個失敗組,其組內共有3 類節點,分別是失敗代表本身、未簽名共識提案的節點以及簽名共識提案的節點,分別用rf、ru和rs表示這3 類節點的信譽,則其變化分別如式(5)~式(7)所示:

若失敗組中有節點簽名了共識提案,則它們應該被視作比同組中其他未簽名共識提案的節點更可靠,失敗代表應該為這些節點的信譽損失負責,并從它們的信譽值中減去這些節點花費的信譽,以補償這些節點的信譽損失,其他節點則不會得到任何形式的信譽補償。

2.3 共識過程

基于PBFT 策略中的主節點在共識過程中發揮著重要作用,但存在引入拜占庭節點作為主節點的風險,從而對系統性能造成影響。RTsBFT 采用代表節點機制,每個代表節點僅對其本地組負責,一個代表節點的錯誤不會影響到整個共識網絡。對于一個有Sseg個本地組的共識網絡,只要該系統中還有個正常代表節點,RTsBFT 就可保證該系統的正常運作。整個共識過程在本地組內和組間分別進行,故可將共識過程分為代表選擇和代表共識兩個階段。

2.3.1 代表選擇階段

在代表選擇階段,事務被共識節點接收,并產生代表節點。RTsBFT 中采用固定區塊大小的方法來生成區塊,當共識節點收到用于生成新區塊的最后一個事務時,它與NTP 服務器同步時鐘,并對區塊進行驗證、摘要和簽名。當完成上述工作且未收到來自其他節點的代表聲名信息Mrep時,節點向本地組內廣播包含自身節點id、完成簽名時間、區塊頭、區塊id 的代表聲名信息Mrep={Nid,Tsign,Hblock,Bid}。若在發出自身Mrep前接收到其他節點Mrep的節點,則切換自身狀態為INHIBITED,并不再發出Mrep。所有節點將接收到的Mrep按照信息對應的簽名完成時間和LCNT 中的信譽值進行排序,從最高信譽值的節點中選出完成時間最早的節點作為代表節點。所有信譽高于Trep的節點對自身提案簽名,并根據信譽模型更新LCNT 中節點的信譽,將信譽高于Trep的節點狀態標記為FUNCTION,其他節點被標記為MALFUNCTION,它們被禁止參與下一輪共識。代表節點在簽名自身提案后,將與提案信息一起發送給其他本地組。代表選擇階段可分為Broadcast、Claim、Preprepare 3 個流程,如圖2所示。

圖2 代表選擇階段的共識過程Fig.2 Consensus process of representative selection stage

代表選擇階段的詳細步驟如下:

步驟1進入Broadcast 流程,用于生成新區塊Bb的最后一個事務被廣播到本地組中。

步驟2中的共識節點驗證,若驗證錯誤,則回滾事務;若驗證通過,則:

1)與NTP 服務器同步時鐘。

3)對區塊進行摘要和簽名。

4)生成Bb的區塊頭Hblock。

5)構造代表聲名信息Mrep。

步驟3進入Claim 流程,若節點未完成步驟1和步驟2 且收到其他節點Mrep,則將狀態標記為INHIBITED;若完成步驟1 和步驟2 且未收到其他節點Mrep,則進行信譽檢查:

1)若其信譽低于Trep或其狀態為INHIBITED,則不進行任何操作。

2)若其信譽高于Trep且狀態為FUNCTION,則廣播其Mrep。

步驟4進入Preprepare 流程,在Tout時長后進行代表節點排序:

1)從LCNT 中檢查發送過Mrep節點的信譽。

2)根據信譽對上述節點進行排序。

3)僅當多個節點信譽值相同時對其按照Tsign進行排序。

4)將排序在第1 位的節點狀態標記為REPRESENT,選其作為代表節點。

步驟5代表節點根據信譽模型計算并向其他本地組發送提案和,所有節點根據信譽模型更新LCNT,將信譽值低于Trep的節點狀態標記為MALFUNCTION。

2.3.2 代表共識階段

與PBFT 不同,RTsBFT 中提案信息只會被本地組的代表節點接收,因此,共識過程會被限定在所有代表節點中進行。代表節點發送含有本地組id、代表節點信息、提案(含區塊頭)、本組等內容的消息。代表節點收到后,對內容進行驗證,根據中的提案與自身提案是否相同,將該消息標記為MATCH或MISMATCH,當MATCH 消息的數量超過時,達成共識,相應提案為共識提案,并向所有代表節點提交該提案。簽名共識提案的代表節點將提案相應的區塊提交給存儲節點,并同時開始反饋流程,共識提案被廣播到各本地組,節點根據信譽模型更新信譽。代表共識階段包含Prepare、Commit、Store&Feedback 這3 個流程,如圖3所示。

圖3 代表共識階段的共識過程Fig.3 Consensus process of representative consensus stage

代表共識階段的詳細步驟如下:

步驟1所有代表節點向其他本地組廣播,并由各本地組代表節點接收。

步驟2進入Prepare 流程,所有代表節點驗證收到的,若消息中的提案與本節點提案一致,則將其存入MATCH 棧中;否則,存入MISMATCH棧中。

步驟3進入Commit 流程,收到MATCH 消息多于的節點,根據INFOrep中其他代表節點的信息將共識提案提交給其他代表節點。

步驟4進入Store & Feedback 流程,獲勝代表節點將提案對應的區塊發送給存儲節點,并將共識提案廣播給所有本地組,在各本地組內節點更新信譽值。

2.4 正確性分析

溯源區塊鏈中的拜占庭節點不可靠,可能會通過惡意行為來阻礙共識的達成,RTsBFT 用信譽模型和二階段過程設計識別這些節點,以避免拜占庭故障節點成為代表節點,從而保障共識過程的安全性。

引理1在本地組中,正確節點的信譽始終高于故障節點的信譽。

證明令Φ>0 為初始信譽值,則在初始時對?nodei,Crep=Frep=Φ,其中,Crep和Frep分別為正確節點和故障節點的信譽。令簽名提案信譽花費為Δ>0,信譽獎勵為δ>0,信譽懲罰為θ>0,則有:

綜上所述,Crep>Frep,即正確節點的信譽始終高于故障節點的信譽,因此,可以避免故障節點成為代表節點。

引理2只要代表節點中的故障節點不超過個,RTsBFT 可保證運行于本文系統模型上的溯源區塊鏈的安全性。

證明Nc和Nf分別表示正確代表節點和故障代表節點的個數。由可得,Nc≥2Nf+1。當故障節點均勻分布于所有本地組時,根據引理1,故障節點無法成為代表節點,Nf=0,故障節點提案不會進入prepare 流程,因此,不會對最終共識的安全性產生影響。當故障節點非均勻分布時,最壞情況下個本地組中全部節點均為故障節點,根據引理1,此時Nc≥2Nf+1 依然成立,RTsBFT 在節點共識階段并沒有放寬PBFT 中的限制,而PBFT 已被證明在該條件下可以保證系統的安全性[24]。因此,RTsBFT 均可保證運行于本文系統模型上溯源區塊鏈的安全性。

3 性能評估

本文構建一個模擬溯源區塊鏈特性的原型系統,并在相同條件下運行RTsBFT、PBFT 和CSBFT,以驗證本文RTsBFT 模型的性能。

3.1 原型系統構建

本文構建一個簡單的聯盟鏈原型系統,包含一個事務模塊和一個共識模塊,原型系統架構如圖4所示。事務模塊生成事務,并將事務通過組間鏈路廣播至共識模塊的本地組內,該模塊生成的事務大小一致(256 B),以確保達到RTsBFT 設計中固定區塊大小的要求。共識模塊通過分別運行這些共識策略來監測其性能。為了模擬溯源區塊鏈的共識節點分布于受不同利益方管理的異構網絡的特性,將同一本地組內的節點用高速本地鏈路連接,各本地組間則通過相對低速的組間鏈路連接。整個原型系統的共識模塊由10臺多核計算機組成(Intel Core i5-9500,32 GB 內存),每臺計算機作為一個本地組宿主,在其上運行整個本地組的節點。組間鏈路由一個1 000 Mb/s 的交換網絡實現,高速本地鏈路則由Hypervisor 的system bus 實現。

圖4 原型系統架構Fig.4 Prototype system architecture

3.2 評估指標

溯源區塊鏈的特點對共識策略的性能和安全性提出了更高的要求。本文通過吞吐量、延遲和故障節點率3 個指標[25]來評估共識策略的性能和安全性。

1)吞吐量:衡量共識策略在給定時間內處理的事務數量,用每秒事務處理量(Transaction Per Second,TPS)來表示,TPS 越高,系統性能越好。

2)延遲:從一個區塊被生成到它的共識過程完成所需要的時間,由新生成區塊的時刻Tgen到共識達成的時刻Tcon的時間差表示,Delay=Tcon-Tgen,延遲越低表示系統性能越高。

3)故障節點率:當前共識網絡中故障節點的數量與總節點數量的比值,故障節點率反映當前區塊鏈系統共識策略的安全性和可靠性,該指標越低,系統安全性和可靠性越高。

由于RTsBFT 采用固定區塊大小的策略,區塊生成時間不可控,因此可以考察區塊大小對系統性能的影響。同時,節點數量決定共識網絡的復雜性,本文將在不同區塊大小和節點數量情況下對比RTsBFT、PBFT 和CSBFT 的吞吐量、延遲以及故障節點率。

3.3 吞吐量和延遲對比

本文分別設計0.5 KB、1.0 KB、2.0 KB、4.0 KB和8.0 KB 這5 個不同的區塊大小,原型系統配置為5 個本地組宿主,每宿主運行10 個節點。評估指標取運行中某一段20 s 時間內的平均值,結果如圖5所示。從圖5 可以看出,在相同區塊大小下,RTsBFT 的吞吐量總是高于PBFT 和CSBFT,延遲低于PBFT。隨著區塊大小的增加,所有共識策略的吞吐量均有下降,延遲均有升高,說明區塊大小會影響共識策略的性能。

圖5 不同區塊大小下吞吐量和延遲的對比Fig.5 Comparison of throughput and latency under different block sizes

將原型系統分別配置為運行35 個、70 個、105 個和140 個節點,這些節點以兩種方式分別分配到5 個(每宿主運行7 個、14 個、21 個和28 個節點)和7 個(每宿主運行5 個、10 個、15 個和20 個節點)本地組宿主上。區塊大小配置為1 KB,評估指標也取運行中某一段20 s 時間內的平均值,結果如圖6所示。從圖6 可以看出,在不同節點數量和分組方式下,RTsBFT 的吞吐量均高于PBFT 和CSBFT,延遲均低于PBFT 和CSBFT,節點數量的增加降低了共識策略的吞吐量,但PBFT 和CSBFT 的吞吐量下降更為顯著,同時,節點數量的增加提高了共識策略的延遲,但PBFT 和CSBFT 的延遲提高幅度更大。

圖6 不同節點數量下吞吐量和延遲的對比Fig.6 Comparison of throughput and latency under different numbers of nodes

在相同區塊大小和相同節點數量這兩種情況下,RTsBFT 在吞吐量和延遲上的性能表現均優于PBFT 和CSBFT。盡管隨著區塊大小的增加和節點數量的增加,各策略性能均有一定程度的下降,但RTsBFT 下降得更少。因此,RTsBFT 具有更高的性能,且在系統復雜性增加的情況下能夠更好地控制性能下降。研究表明,通信復雜性對共識策略的性能有重要影響[26],在RTsBFT 的設計中,本地組內的通信發生在代表選擇階段,組間通信只發生在代表共識階段,同時共識的核心過程僅在少數代表節點中發生,降低了節點間通信開銷,特別是組間節點的通信開銷。而在兩階段的共識過程中,不需要向所有節點廣播區塊并等待它們的響應,這與引入的信譽模型一起簡化了共識過程,同時避免了故障節點帶來的額外開銷,降低了共識過程的復雜性。在不同的節點分組方式中,RTsBFT 的延遲差異幾乎是恒定的,而PBFT 和CSBFT 在不同節點分組下的延遲差異隨著節點數量的增加而提高,這也證明對通信開銷的控制給RTsBFT 帶來了性能提升。

3.4 性能與安全性隨時間的變化情況

故障節點引入了拜占庭錯誤,本文對比2 個共識策略在開始運行20 s 內的吞吐量、延遲和故障節點率的變化情況。原型系統配置為在5 個本地組宿主上運行50 個共識節點,區塊大小為1 KB,初始故障節點為12 個。該過程中3 個共識策略的吞吐量和延遲隨時間變化的統計信息如表1所示,變化趨勢如圖7所示。

表1 3個共識策略吞吐量和延遲隨時間變化的統計信息Table 1 Statistics of the throughput and latency of three consensus strategies over time

圖7 吞吐量和延遲隨時間的變化情況Fig.7 The change of throughput and latency with time

從表1 和圖7 可以看出,RTsBFT 的吞吐量隨時間變化的均值高于另兩個策略,延遲低于另兩個策略,且RTsBFT 的吞吐量和延遲隨時間變化的波動比另兩個策略平緩。

3 個共識策略故障節點率隨時間的變化趨勢如圖8所示,可以看出,PBFT 的故障節點率保持在24%左右,而RTsBFT 幾乎在前5 s 就將所有故障節點排除在外,CSBFT 大約在10 s 完成故障節點的排除。RTsBFT 具有排除故障節點的能力,因此相比PBFT,其具有更好的安全性和可靠性,相比CSBFT 的故障節點排除能力更強。RTsBFT 在性能和安全性波動上的優勢來自于其設計中的信譽模型所帶來的排除拜占庭故障節點的能力,故障節點會加重系統的負載,從而對系統性能和安全性產生不利影響。RTsBFT 能消除故障節點惡意行為對共識過程的影響,減少共識過程中需要通信的節點數量,從而提高系統性能和安全性。而CSBFT 在沒有擺脫PBFT 主節點和視圖轉換弊端的情況下引入信譽模型,雖然具備一定的故障節點排除能力,但增加了大量額外開銷[21],因此,其性能較PBFT 差。

圖8 故障節點率隨時間的變化情況Fig.8 The change of failure node rate with time

4 結束語

本文提出一種基于信譽的二階段溯源區塊鏈共識策略RTsBFT,在多利益方、共識網絡異構的聯盟鏈場景下實現對溯源區塊鏈性能和安全性的提升。通過建立溯源區塊鏈系統模型與信譽模型及設計二階段共識過程,使得RTsBFT 具有排除拜占庭故障節點的能力并降低節點通信開銷。實驗結果表明,在不同區塊大小和節點數量的情況下,RTsBFT 的吞吐量、延遲和故障節點率均優于PBFT 和CSBFT 策略。下一步將對RTsBFT 中的信譽模型進行優化,使其適用于更多類型的聯盟鏈系統模型架構。

猜你喜歡
信譽吞吐量共識
以質量求發展 以信譽贏市場
基于單片機MCU的IPMI健康管理系統設計與實現
共識 共進 共情 共學:讓“溝通之花”綻放
論思想共識凝聚的文化向度
信譽如“金”
商量出共識
2017年3月長三角地區主要港口吞吐量
2016年10月長三角地區主要港口吞吐量
2016年11月長三角地區主要港口吞吐量
江蘇德盛德旺食品:信譽為翅飛五洲
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合