智能合約開發(fā)以go語言為例,ChaincodeStubInterface為其智能合約的核心接口,本文主要講解此接口的所有常用方法,如需視頻學(xué)習(xí),可以參考視頻教程
- stub.PutState(args[0],[]byte(args[1])) 用于將數(shù)據(jù)進(jìn)行存儲,采用K-V格式進(jìn)行存儲,
- stub.GetState(args[0]) 根據(jù)key獲取value
- stub.DelState(key) 刪除某一key的值
- stub.GetHistoryForKey(key) 根據(jù)某一key獲取他所有的歷史記錄
- stub.GetQueryResult(query) 緊支持couchdb,通過富查詢語句,對數(shù)據(jù)進(jìn)行查詢,當(dāng)存儲數(shù)據(jù)為json的時候,較為有用,如{“id”:"123","name":“l(fā)iwei","age":"18"},可以根據(jù)name屬性來查詢這條記錄。
- stub.GetQueryResultWithPagination(query string, pageSize int32, bookmark string) 分頁查詢根據(jù)query進(jìn)行分頁查詢,pageSize是分頁每頁顯示的個數(shù),bookmark是輸入你要查詢開始的txId,一開始輸入為空,會自動從頭開始查詢,會返回最后一條記錄的txId,作為下次查詢的輸入?yún)?shù)。
- stub.GetStateByRangeWithPagination(startKey, endKey string, pageSize int32, bookmark string) 查詢一定范圍內(nèi)的數(shù)據(jù),參數(shù)依次為起始key,結(jié)束key,分頁尺寸,txId,舉個例子,比如查詢key從a到z的數(shù)據(jù),共有18條,分頁尺寸為10,那么第一次查詢txId為空,查詢結(jié)果返回數(shù)據(jù)并返回下一次的txId,txId作為查詢參數(shù),在進(jìn)行第二次查詢。
私有數(shù)據(jù)的處理
- stub.PutPrivateData(collection string, key string, value []byte) collection為私有數(shù)據(jù)集的名稱
- stub.GetPrivateData(collection, key string) 獲取私有數(shù)據(jù)
- stub.GetPrivateDataByRange(collection, startKey, endKey string) 分局key范圍查詢不分頁
- stub.GetPrivateDataQueryResult(collection, query string) 私有數(shù)據(jù)富查詢
遨游技術(shù),享受生活