智能合約開發以go語言爲例,ChaincodeStubInterface爲其智能合約的核心接口,本文主要講解此接口的全部經常使用方法,如需視頻學習,能夠參考視頻教程json
- stub.PutState(args[0],[]byte(args[1])) 用於將數據進行存儲,採用K-V格式進行存儲,
- stub.GetState(args[0]) 根據key獲取value
- stub.DelState(key) 刪除某一key的值
- stub.GetHistoryForKey(key) 根據某一key獲取他全部的歷史記錄
- stub.GetQueryResult(query) 緊支持couchdb,經過富查詢語句,對數據進行查詢,當存儲數據爲json的時候,較爲有用,如{「id」:"123","name":「liwei","age":"18"},能夠根據name屬性來查詢這條記錄。
- stub.GetQueryResultWithPagination(query string, pageSize int32, bookmark string) 分頁查詢根據query進行分頁查詢,pageSize是分頁每頁顯示的個數,bookmark是輸入你要查詢開始的txId,一開始輸入爲空,會自動從頭開始查詢,會返回最後一條記錄的txId,做爲下次查詢的輸入參數。
- stub.GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) 查詢必定範圍內的數據,參數依次爲起始key,結束key,分頁尺寸,txId,舉個例子,好比查詢key從a到z的數據,共有18條,分頁尺寸爲10,那麼第一次查詢txId爲空,查詢結果返回數據並返回下一次的txId,txId做爲查詢參數,在進行第二次查詢。
私有數據的處理學習
- stub.PutPrivateData(collection string, key string, value []byte) collection爲私有數據集的名稱
- stub.GetPrivateData(collection, key string) 獲取私有數據
- stub.GetPrivateDataByRange(collection, startKey, endKey string) 分局key範圍查詢不分頁
- stub.GetPrivateDataQueryResult(collection, query string) 私有數據富查詢