1. 程式人生 > >區塊鏈總結(一)

區塊鏈總結(一)

  區塊鏈技術讓參與系統中任意多個節點通過密碼學演算法把系統的全部資訊資料計算和記錄到一個數據塊,並且生成該資料塊的指紋用於chain下個數據塊和校驗,系統中所有參與節點達成共識。

  特點:只可新增記錄不能篡改記錄的一條鏈;通過達成共識分散式控制;密碼學機制無法抵賴和破壞,保護使用者資訊和隱私。

  個人認為區塊鏈的應用不是完全的去中心化而是分散式或者多中心化,本人主要學習的是hyperledger1.0。

  每個環境變數名稱都有一個字首,每個模組都是單獨設定的,比如ORDERER_GENERAL_LEDGERTYPE的字首ORDERER,代表排序服務節點(Peer節點字首CORE),對應orderer.yaml配置檔案的General.LedgerType。

Gossip協議:提供原子廣播服務(邏輯上所有節點接收到訊息的順序相同、相同序號都是相同內容),Gossip模組負責連線排序服務和Peer節點上,實現資料分發。

共享賬本:採用背書、共識模型。交易模擬:讀集包含鍵的版本、寫集只會包含鍵的最新值。版本採用高度來表示,高度為一個二元組Height(blockNumber--區塊號,txNuber--區塊內的交易編號)。

gossip目的:不需要所有節點都連線到排序服務獲取賬本區塊資料的情況下,超級賬本網路中所有節點還能有相同的賬本資料、狀態資訊。系統執行中新加入節點或者落後節點可以不直接連線到排序服務從網路中獲取賬本、狀態資訊。

智慧合約:chaincode簽名表明誰建立的連碼以及驗證連碼內容和連碼是否被篡改。(步驟一)應用程式通過gRPC請求向背書節點發起鏈碼的呼叫請求,背書節點再轉發給鏈碼執行,應用程式不能直接和鏈碼通訊。(步驟二)背書節點檢查鏈碼是否啟動,檢查方法檢視本地維護的對映表裡是否有指定的鏈碼名稱和版本記錄,如果沒有通過Docker API發起建立或者啟動容器的命令(步驟三)鏈碼和背書節點建立好gRPC連線,轉發應用程式請求,呼叫背書節點的ESCC對模擬執行的結果進行背書,ESCC對模擬執行進行簽名,返回背書的結果。背書節點將結果給應用程式。鏈碼在業務邏輯的處理過程中會讀取和操作賬本資料。

peer節點:可以作為記賬節點、背書節點(背書節點是動態的角色,與具體鏈碼繫結,應用程式向背書節點發起交易時才是背書節點,其餘只是記賬節點)、主節點(和排序節點通訊的節點)。

order節點:接收包含已經背書籤名的交易,對未打包的交易進行排序生成區塊,廣播給peer節點。

ca節點:客戶認證節點,ca節點接收客戶端的註冊申請,返回註冊密碼用於使用者登入。