1. 程式人生 > >【21天轉型區塊鏈】DAY6

【21天轉型區塊鏈】DAY6

區塊鏈核心技術——智慧合約

鏈碼(智慧合約)的基本概念

智慧合約是由事件驅動的、具有狀態的、儲存和執行在區塊鏈上的程式

Fabric鏈碼基本概念

Channel — 通道,子鏈

1、同一peer可加入不不同channel 鏈碼的操作基於Channel進行

2、同一channel上的peer結點同步其上鍊碼執行的結果

Endorser — 模擬執行鏈碼

1、分離計算任務,減輕共識節點負擔,增加吞吐量

2、支援endorsement policy

Orderer — 對鏈碼執行結果共識

支援solo/kafka/FBFT不同的ordering策略

Committer — 將鏈碼執行結果寫進賬本ledger

交易執行的流程

鏈碼的開發

必須要實現的介面: 

type Chaincode interface {

    // 初始化工作,一般情況下僅被調⽤用一次

       Init(stub ChaincodeStubInterface)

        pb.Response

    // 查詢或更新world state,可多次被調⽤

        Invoke(stub ChaincodeStubInterface)

        pb.Response

}

鏈碼示例和Demo-註冊會員

鏈碼示例和Demo-申請幫助

交易內容的區塊結構

如何除錯

習題:

1. 下列哪些不是fabric支援的可用鏈碼語言? 

A.Go B.python C.C++ D.C

答:BCD

2. 哪些不是基於fabric鏈程式碼的預定義介面? 

A. Init  B. Invoke C.Query  D. Delete

答:D

3. 下列哪些屬於fabric中賬本資料讀寫方法? 

A. GetState  B. Putstate C. Delstate D. GetStateByRange

答:ABCD

4. 同一個鏈程式碼(名字版本一樣)安裝在3個peer上在通道例項化幾次?

a. 1 b. 2 c. 3 d.無限

答:A

5. 同一個(名字版本一樣)鏈程式碼在peer上安裝幾次?

a. 1 b. 2 c. 3 d.無限

答:A

(圖片均來源於課件)