1. 程式人生 > >快速了解鏈碼是什麽?

快速了解鏈碼是什麽?

信息 節點 peer 檢查 系統 證書 app 用戶 版本

鏈碼是什麽?鏈碼也就是所謂的智能合約。智能合約是由事件驅動的,具有狀態的存儲和運行在區塊鏈上的程序。它通過預置了一些條件和規則,在一定的事件下觸發智能合約的執行。智能合約最終的目標是在區塊上生成賬本數據,也就是說所有對賬本的操作都是由智能合約來完成的。
技術分享圖片
我們可以認為它是生成交易的唯一來源。我們的賬本是由不同的區塊組成,而每一個區塊又包含了一條到多條的交易。那麽就是說通過智能合約來完成每一條交易,最終通過區塊鏈的底層來完成每個賬本的落盤。接下來我們來看一下鏈碼的基本概念和交易的基本流程。這裏我們列了一些基本的概念,Channel就是通道或者子鏈。在一個Channel中,可以加入不同組織的不同peer。而同一個peer是可以加入到不同的Channel中,鏈碼的操作是基於Channel執行的,同一個Channel上的peer節點同步執行我們的鏈碼。
在Fabric節點中又分為了Endorser、Orderer和Committer三種類型。Endorser負責分離計算任務,減輕共識節點的負擔,從而增加整個系統的吞吐量。Endorser節點被我們稱為背書節點。Orderer節點是對我們的鏈碼執行結果進行共識。我們支持solo、kafka、拜占庭等不同的共識策略。Committer節點是最終將鏈碼的執行結果寫入賬本,並將它同步到所有的peer節點。peer節點的身份是可以同時為Endorser或者是Committer的。下圖介紹了一個交易的基本流程,我們的APP集成Fabric SDK通過CA來獲取認證證書。
技術分享圖片
當交易發生時,它通過SDK向我們的peer節點提交一個Proposal,也就是交易預案。peer節點進行一些簡單的檢查,比如說簽名以及ACL,最後他模擬執行交易,也就是執行我們的鏈碼,並將結果進行簽名,最後將結果返回給SDK。當SDK收集到所有的背書節點的返回值的時候,會把這些讀寫及打包發給我們的Orderer節點進行排序。Orderer節點收到排序請求後,會對整個交易進行排序,並構造區塊,構造好的區塊,Orderer加點會下發給我們的Committer節點,Committer節點進行交易結構的完整性驗證,簽名以及重復性的驗證,同時會驗證我們的背書策略是否收集到了全部的背書策略以及是否合格,同時會檢查交易結果中數據的版本是否與賬本中保持一致,最後將合法的交易更新到賬本中。
最終的賬本數據會通過peer之間的P2P網絡進行同步。我們華為雲區塊鏈服務提供了可視化的鏈碼查看、安裝以及實例化的界面,稍後我們的示例中會進行演示,同時我們也提供了多種的調用模式,我們支持基本的APP封裝SDK來調用遠端的peer節點上的鏈碼,也支持通過APP直接調用我們Fabric RESTFul API。這樣的話用戶就不用去集成我們的SDK。最後我們還提供了FabricJDBC,用戶可以用非常簡單的方式來訪問鏈碼,而不用去寫非常復雜的接口。
關於鏈碼(智能合約)的介紹就到這裏,想要更詳細的了解,請訪問華為雲學院( edu.huaweicloud.com/courses/ ),課程獲取密碼,搜索:區塊鏈,可以收獲更多區塊鏈信息!

快速了解鏈碼是什麽?