跨鏈數據連接服務
跨鏈數據連接服務是由螞蟻區塊鏈自主研發的一款面向企業級應用的支持同構/異構區塊鏈之間數據可信交互的服務。通過跨鏈服務在底層區塊鏈中的協議棧和跨鏈合約,實現同構或異構區塊鏈之間可信交互,從而構成區塊鏈價值網絡,實現鏈上價值的可信流轉,完成豐富的鏈間互操作。
基于跨鏈數據連接服務,可以打破不同區塊鏈聯盟之間的數據孤島,完成數據的可信交換,例如打通產業鏈上下游不同聯盟的數據通路,或者為不同的聯盟提供相互增信。
跨鏈數據連接服務目前正在公測中,試用申請
跨鏈服務調用鏈路
使用跨鏈數據連接服務,需要將區塊鏈在跨鏈數據連接服務上進行注冊,并安裝跨鏈合約,用戶的業務合約通過與跨鏈合約交互來完成不同鏈之間的信息交互。
數據交互方式
目前跨鏈數據連接服務支持兩種數據交互方式:
賬本數據訪問:目標區塊鏈能夠通過跨鏈服務直接訪問源區塊鏈的相關數據。
合約消息推送:源區塊鏈能夠通過跨鏈服務發送消息給目標區塊鏈的智能合約,由目標鏈的智能合約完成對消息的處理。
跨鏈數據連接服務使用
開通服務
跨鏈數據連接服務需要在螞蟻區塊鏈跨鏈服務控制臺上進行服務開通申請。
注冊區塊鏈
您需要將要跨鏈的區塊鏈在跨鏈服務中進行注冊,注冊后,區塊鏈將會擁有一個唯一的鏈域名作為標識。注冊區塊鏈后,跨鏈數據連接服務將通過跨鏈合約訪問您的區塊鏈,用于跨鏈信息傳遞。
單擊注冊區塊鏈進入注冊頁面。
選擇要注冊的區塊鏈類型,完成相應的注冊步驟。目前該服務支持螞蟻區塊鏈和 HyperLedger Fabric,如果您需要注冊其他類型的區塊鏈,請 提交工單 聯系我們。
注冊螞蟻區塊鏈
區塊鏈類型中選擇螞蟻區塊鏈,系統將自動讀取您在螞蟻金服螞蟻區塊鏈BaaS平臺上的區塊鏈列表,從列表中選擇您要注冊的區塊鏈。
說明僅螞蟻區塊鏈的聯盟管理員有權限進行此操作。
然后,為區塊鏈創建一個域名,該域名將會是跨鏈授權時區塊鏈的唯一識別身份。
注冊 HyperLedger Fabric
準備工作。
需要創建好組織,并加入到一個聯盟中,為需要跨鏈的業務創建通道,并為跨鏈服務創建一個用戶。跨鏈服務將以該用戶的身份完成數據同步操作。
說明HyperLedger Fabric使用通道來進行業務的隔離,不同的通道需要跨鏈操作時,均需要在跨鏈服務中進行注冊。
打開注冊頁面,填寫相關信息。
區塊鏈類型中選擇Hyperledger Fabric,可按照頁面上的操作提示進行注冊。
下載跨鏈鏈碼包,并在阿里云BaaS的通道上傳跨鏈鏈碼。 鏈碼上傳請參考管理鏈碼,并將跨鏈鏈碼安裝并完成實例化。
重要跨鏈鏈碼需要與業務鏈碼在同一個通道中。
為跨鏈服務創建用戶,并下載該用戶的SDK配置。
解壓并上傳SDK配置文件。
獲取
connection-profile-standard.yaml
的配置文件,將其上傳。配置其他信息。
由于
connection-profile-standard.yaml
包含了全部通道和peer節點的信息,需要選擇此次需要跨鏈的通道,以及相關驗證的peer節點,填寫為跨鏈服務創建的用戶名及用戶密碼。
注冊完成
注冊完成后,可以在控制臺上看到已經注冊的鏈信息。
跨鏈授權
單擊已注冊區塊鏈右側的詳情按鈕,進入到詳情頁。
單擊跨鏈授權功能,進入到跨鏈授權頁面。
賬本數據訪問授權
授權已經注冊的另外一條區塊鏈通過跨鏈服務訪問當前區塊鏈的賬本數據。
支持訪問的數據類型如下:
螞蟻區塊鏈交易
螞蟻區塊鏈區塊
螞蟻區塊鏈區塊頭
上圖的授權示例中,區塊鏈 crosschain1.oracle.chain 允許區塊鏈crosschain2.oracle.chain 直接通過跨鏈服務讀取鏈上的交易信息 。
合約消息推送授權
授權已經注冊的另外一條區塊鏈的指定合約向當前區塊鏈的指定合約發送消息。
上圖的授權示例中,區塊鏈 crosschain1.oracle.chain 允許區塊鏈crosschain2.oracle.chain 的合約 sourceContract 發送消息給本區塊鏈上的合約 destContract,由destContract完成對消息的處理。
授權查看
授權成功后,可以在我的權限中查看相關授權的信息。
業務合約開發
賬本數據訪問開發流程
用戶智能合約使用賬本數據訪問 API 接口,開發流程如下:
在螞蟻區塊鏈BaaS平臺上獲取賬本數據合約名稱。
獲取賬本數據訪問 API 接口定義(ChainDataInterface.sol)。
在用戶合約中引入賬本數據訪問 API 定義。
用戶合約實現回調接口,用于異步接收賬本數據回調使用。
用戶合約構建賬本數據訪問請求(ChainDataCmdHelper.sol)。
用戶合約向賬本數據合約發送請求,具體參考API使用示例。
賬本數據服務返回數據為 JSON 格式,具體格式參考賬本數據結構部分。
業務合約開發參考:
合約消息推送開發流程
用戶智能合約使用合約消息推送服務API接口,開發流程如下:
在BaaS平臺上獲取消息合約名稱。
獲取合約消息推送 API 接口定義。
在用戶合約中引入合約消息推送 API 接口。
用戶合約實現接收消息接口,供跨鏈消息收發合約調用。
用戶合約調用跨鏈消息收發合約發送消息接口。
業務合約開發參考: