1. 程式人生 > 其它 >雲小課|如何實現資料跨鏈互動?

雲小課|如何實現資料跨鏈互動?

摘要:隨著區塊鏈技術的發展,多鏈並存是當下市場的顯著格局,因此鏈與鏈之間的資產互通,打破資料孤島成為鏈上使用者的迫切需求,而保證跨鏈過程的可信安全尤為重要。

本文分享自華為雲社群《【雲小課】應用平臺第38課 如何實現資料跨鏈互動?》,作者: 應用萬花筒.。

可信跨鏈服務(Trusted Cross-Chain Service,簡稱TCS)是基於一系列制定的可信區塊鏈標準跨鏈協議,保證跨鏈交易全棧可追溯、可擴充套件性及可靠性等,實現基於不同區塊鏈核心所構建的同構及異構鏈之間的互聯互通,打破區塊鏈資料孤島,助力不同企業聯盟鏈可信互聯,促進區塊鏈產業生態可信融合。

接下來使用以下例子介紹如何實現兩個區塊鏈服務的跨鏈交易,打破資料孤島,瞭解跨鏈服務全過程,幫助您快速上手可信跨鏈服務。

主要以兩個HyperLedger Fabric增強版區塊鏈Cross-ChainA和Cross-ChainB為例,進行跨鏈交易演示。交易過程如圖1所示,orgA和orgB分別是兩個區塊鏈上的組織,A1是orgA組織的一個賬戶,B1是orgB組織的一個賬戶,主要實現A1,B1互轉賬,互查詢的操作。

圖1 交易圖

準備工作

請參考準備工作完成以下操作。

  1. 訂購區塊鏈服務
  2. 鏈程式碼安裝及例項化鏈程式碼
  3. 下載配置檔案和證書

使用跨鏈服務

準備工作完成後,即可通過可信跨鏈服務(以下簡稱TCS服務)進行跨鏈交易演示。

一、註冊區塊鏈

將區塊鏈服務註冊到可信跨鏈服務上才可以進行跨鏈交易,接下來分別將區塊鏈Cross-ChainA和區塊鏈Cross-ChainB註冊到TCS服務。

1.登入可信跨鏈服務管理控制檯,進入“已註冊區塊鏈”頁面。

2.單擊“註冊區塊鏈”,填寫區塊鏈Cross-ChainA的註冊資訊,參考表1 註冊Cross-ChainA資訊。

3.單擊右下角“立即註冊”,等待註冊完成即可在“已註冊區塊鏈”頁面生成一條記錄。

4.再次單擊“註冊區塊鏈”,填寫區塊鏈Cross-ChainB的註冊資訊,參考表2 註冊Cross-ChainB資訊。

5.單擊右下角“立即註冊”,等待註冊完成即可在“已註冊區塊鏈”頁面生成一條記錄。

二、購買跨鏈通道

兩條鏈上的交易通過一個通道作為媒介來達成交易,需要購買一條跨鏈通道來連線兩個獨立的區塊鏈服務。

1.登入可信跨鏈服務管理控制檯,進入“跨鏈通道”頁面。

2.單擊“購買跨鏈通道”,填寫基本資訊,請參考表3 購買跨鏈通道資訊。

3.單擊右下角“立即購買”跳轉至付款頁面,付款完成之後,等待4~5分鐘時間建立跨鏈通道,在跨鏈通道介面可以看到transfercross-demo跨鏈通道資訊,狀態顯示“正常”即為購買成功。

三、使用跨鏈交易

介紹區塊鏈Cross-ChainA和區塊鏈Cross-ChainB的交易過程。

(1)配置許可權

基於不同鏈上的不同合約,主要有三種許可權:跨鏈讀,跨鏈寫,查詢賬本。不同型別的跨鏈交易需要不同的許可權,例如:發起一次跨鏈交易需要“跨鏈寫”許可權,查詢跨鏈交易結果需要“跨鏈讀”許可權,因此需要在進行跨鏈交易之前設定對應許可權。

  • 跨鏈讀:訪問鏈任意合約可以執行被訪問鏈指定合約的讀操作。
  • 跨鏈寫:訪問鏈任意合約可以執行被訪問鏈指定合約的寫操作。
  • 跨鏈查詢賬本:訪問鏈可以查詢被訪問鏈賬本中的區塊、交易資訊。

1.登入可信跨鏈服務管理控制檯,進入“跨鏈通道”頁面。

2.單擊跨鏈通道transfercross-demo名稱,進入詳情頁面。

3.在跨鏈許可權配置下方,通過檢視許可權對應圖示是否高亮判斷是否有許可權。若是灰色,代表沒有許可權。

4.單擊許可權圖示後,勾選查詢賬本、跨鏈讀、跨鏈寫的許可權。

5.單擊“確認”,許可權圖示顯示高亮。

(2)交易演示

以區塊鏈Cross-ChainA和Cross-ChainB的兩個賬號為例子進行相互轉賬的跨鏈交易演示。

Cross-ChainA鏈上的A1,初值為100,註冊區塊鏈名稱為AAAA;Cross-ChainB鏈上的B1,初值為300,註冊的區塊鏈名稱BBBB。

Cross-ChainA鏈作為交易發起方

1.單擊跨鏈通道transfercross-demo名稱,進入詳情頁面。

2.查詢B1的值。

    1. 在跨鏈許可權配置下方,配置“AAAA”到“BBBB”的跨鏈讀許可權。
    2. 單擊“跨鏈通道測試”,呼叫“AAAA”的query方法,將引數“args”改為B1,其它預設即可。查詢B1的值,B1值為返回的“payload”欄位,B1的初值為300。

3.觸發跨鏈交易。

    1. 在跨鏈許可權配置下方,配置“AAAA”到“BBBB”的跨鏈寫許可權。
    2. 單擊“跨鏈通道測試”,呼叫“AAAA”的invoke方法,將引數“args”改為“A1,B1,50”(此處逗號為英文逗號,且A1,B1順序不可更換),其它預設即可。發起一個由A1向B1轉賬50的交易,返回“success”說明交易成功。

4.參考第2步,查詢B1的值為350,說明交易成功。

Cross-ChainB鏈作為交易發起方

1.單擊跨鏈通道transfercross-demo名稱,進入詳情頁面。

2.查詢A1的值。

    1. 在跨鏈許可權配置下方,配置“BBBB”到“AAAA”的跨鏈讀許可權。
    2. 單擊“跨鏈通道測試”,呼叫“BBBB”的query方法,將引數“args”改為A1,其它預設即可。查詢A1的值,A1值為返回的“payload”欄位,A1的初值為50。

3.觸發跨鏈交易。

    1. 在跨鏈許可權配置下方,配置“BBBB”到“AAAA”的跨鏈寫許可權。
    2. 單擊“跨鏈通道測試”,呼叫“BBBB”的invoke方法,將引數“args”改為“B1,A1,100”(此處逗號為英文逗號,且A1,B1順序不可更換),其它預設即可。發起一個由B1向A1轉賬100的交易,返回“success”說明交易成功。

4.參考第2步,查詢A1的值為150,說明交易成功。

說明:當前僅“華北-北京四”區域支援可信跨鏈服務。

 

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