技術解析+程式碼實戰,帶你入門華為雲政務區塊鏈平臺

語言: CN / TW / HK
摘要:政務區塊鏈平臺是行業區塊鏈平臺的初步實踐,未來在區塊鏈技術的發展下,還會打造面向其他領域的鏈管平臺,構建多方協同的分散式賬本,讓區塊鏈應用更便捷高效的為產業服務。

本文分享自華為雲社群《技術解析+程式碼實戰,帶你入門華為雲政務區塊鏈平臺》,作者:敏捷的小智。

1、行業區塊鏈平臺誕生背景

網際網路時代下,區塊鏈作為一種分散式的公開賬本,具有去中心化、開放匿名、不可偽造篡改等特點,憑藉其獨特的信任機制和資訊傳遞技術,在金融、醫療、教育等各個領域都有著廣泛的應用,推動著科技領域的變革。

傳統BaaS(Blockchain as a Service)平臺將區塊鏈整合為雲服務提供給客戶,想比於PaaS平臺而言,充分利用了雲端計算的彈性、穩定性和靈活性;而行業區塊鏈平臺又是在BaaS平臺之上的區塊鏈中臺應用,在業界標準不統一、架構參差不齊的大背景下,充分遮蔽了底層鏈在模型和部署流程上的差異,進一步節省了使用者部署業務和應用的成本,實現了跨雲服務的一站式異構鏈管理。即便是技術薄弱的使用者也可通過此平臺實現快速統一的規劃建站,滿足各類業務需求,解決了區塊鏈技術人才短缺、運維人力成本高的難題。

2、政務區塊鏈平臺介紹

政務領域的使用者具有主體多、環節複雜、資訊量大等特點,傳統資料共享模式下,業務辦理效率和資料共享能力較低,不僅需要大量的人工審批,檔案、庫表在複製傳遞的過程中還可能引發資料不一致,資訊洩露,時效性較弱,且不易管理。自2016年起,國家鼓勵探索“政務上鍊”,利用區塊鏈的資料共享模式實現政務資料跨部門、跨區域的共同維護和利用,推動政務數字化改革,實現智慧化的社會治理。

政務區塊鏈平臺UGBaaS(Unified Governmental BaaS)是針對政務行業開發的新型鏈管平臺,一個集中式的運營運維繫統,允許使用者平滑接入名下的各類區塊鏈,實現統一的管理監控。它極大的簡化了業務流程,包含身份認證管理、業務管理、憑證轉換服務、資料採集和展現服務、合約倉庫和應用倉庫、內部api閘道器等功能模組,使得管理員可以輕鬆地治理底層資源,管理租戶配額,一鍵部署聯盟和智慧合約,並監控底層鏈和節點。底層自然支援Hyperledger Fabric區塊鏈,亦可納管Ethereum、Quorum等異構鏈。

3、主要功能模組

管理員視角:

租戶視角:

4、平臺主要技術:

• 元件多活與多region容災:

政務區塊鏈平臺部署在一個多節點高可用叢集上,每個容器都有相同處理業務的能力,部分節點故障時服務仍能繼續使用,達到一定的容災性。平臺內部需要儲存大量資料,因此在部署時同期部署了分散式的資料庫,均勻的部署在叢集的每個節點上。資料庫內部採用高一致性演算法,並維護多個歷史版本資料,在檢測到當前監聽的資料庫節點健康狀態異常後會自動建立新的客戶端連線,切換連線源,保證資料的強一致性和高可用性。

• 雙重快取層與請求訊息佇列:

政務區塊鏈平臺元件對外開放一套標準政務介面,部署時會簽發一套tls證書並提供下載方式,使用者可以通過該證書連線到元件上,通過呼叫開放API執行相應功能。由於涉及大量介面呼叫,元件入口處設定了雙重快取層,保證不必要的底層介面呼叫,加強介面效能。當用戶請求到達元件時,訊息處理的流量控制器會拒絕容量外的請求,容量內的請求會按到達順序依次下發,並在消費請求後以一定的qps繼續填充佇列,保證元件的穩定。

• 流程引擎與任務樹:

平臺內部需維護聯盟、業務鏈、組織和底層BaaS平臺相應的實體關係,通過對映的方式遮蔽了異構鏈模型上的差異(如子鏈、通道的區別,聯盟、網路的概念,組織、節點等最小粒度),通過抽象任務模板物件封裝每個業務操作對應的具體步驟,自動化的並行或序列執行區塊鏈建立、邀請、通知、審批等任務。處理器在任務排程的時候根據反射自動匹配不同的任務型別,並通過分析巢狀深度解析任務下的子任務,生成多個並行任務流。自動化的流程引擎可以處理使用者下發的特定任務、執行定時任務(如監控、日誌、審計、告警、清理等)。任務執行需具備原子性,一旦任務失敗會自動回滾該任務中已經執行的部分。任務下發後,使用者可通過任務進度查詢介面獲取當前業務操作的處理進度,一旦任務失敗會展示詳細的執行記錄和處理建議。樹狀的任務結構能夠保證同級任務併發執行,任務的處理可以使用顏色標記法進行標記,每次執行允許一定的容錯並設定超時時間,父節點在檢測到全部子節點為某個非進行中狀態時便會更新,由底向上,直至根節點狀態變更完成。

• 異構區塊鏈平臺統一接入:

異構鏈統一接入主要有鑑權方式、模型差異、建鏈審批流程差異等難點。對於無管理面的自有區塊鏈,政務區塊鏈平臺制訂了一套統一接入介面,希望被平臺納管的區塊鏈只需實現這套介面便可註冊後接入;對於已有管理面並開放介面的區塊鏈平臺,政務區塊鏈平臺提供介面對映的註冊方式,廠商可以通過注入模板自動將一個或多個自有介面對映到政務區塊鏈平臺的統一介面上,新連結入後平臺會自動執行接入校驗流程,通過預設的內建租戶進行調測,檢查新平臺介面的連通性,並通過伺服器健康狀態的介面定期巡檢平臺的可用性。對於註冊全部變更介面的接入方式,平臺全生命週期的維護該平臺下的所有區塊鏈網路;也提供只註冊管理類介面的納管模式,使使用者對接已部署的區塊鏈。同時,未來還將考慮以跨鏈方式實現異構鏈的互聯互通。

5、UGBaaS客戶端sample程式碼:

從行業區塊鏈平臺新建例項處點選下載證書壓縮包,ugbaascert/tls路徑下包含client.crt client.key兩個檔案,示例程式碼如下

圖1 證書匯入程式碼

匯入證書後,預設連線埠32623,url設定成政務介面文件中的介面,呼叫獲取已註冊組織列表介面並解析返回至結構體。

圖2 獲取已註冊組織列表介面程式碼

使用政務區塊鏈平臺前均需呼叫組織註冊介面/v1/ugbaas/orgs,註冊組織和底層租戶的對應關係(域資訊、專案資訊及aksk等,從IAM處獲取),然後即可進行建立聯盟、業務鏈、部署智慧合約等操作。變更類操作均會返回操作ID,根據操作ID呼叫查詢流程處理進度介面獲取當前任務的進行狀態。

結語:

區塊鏈技術在資料共享、資料安全、隱私保護、確權確責等方面的技術優勢,使其在政府、金融、供應鏈、交通等各個領域展現出廣闊的應用前景。政務區塊鏈平臺是行業區塊鏈平臺的初步實踐,未來在區塊鏈技術的發展下,還會打造面向其他領域的鏈管平臺,構建多方協同的分散式賬本,讓區塊鏈應用更便捷高效的為產業服務。

 

點選關注,第一時間瞭解華為雲新鮮技術~