官术网_书友最值得收藏!

  • Hyperledger Cookbook
  • Xun (Brian) Wu Chuanfeng Zhang Andrew Zhang
  • 187字
  • 2021-06-24 14:59:38

Writing chaincode using Go

Every chaincode needs to implement a Chaincode interface. There are two methods defined in the interface:

type Chaincode interface {
Init (stub ChaincodeStubInterface) pb.Response
Invoke (stub ChaincodeStubInterface) pb.Response
}

Here, the Init method is called to allow the chaincode to create an initial state and the data initialization after the chaincode container has been established for the first time. The Invoke method is called to interact with the ledger (to query or update the asset) in the proposed transaction.

ChaincodeStubInterface provides the API for apps to access and modify their ledgers. Here are some important APIs:

type ChaincodeStubInterface interface {
InvokeChaincode(chaincodeName string, args [][]byte, channel string) pb.Response
GetState(key string) ([]byte, error)
PutState(key string, value []byte) error
DelState(key string) error
GetQueryResult(query string) (StateQueryIteratorInterface, error)
GetTxTimestamp() (*timestamp.Timestamp, error)
GetTxID() string
GetChannelID() string
}

Examples of important APIs include the following:

  • InvokeChaincode: Calls the chaincode function
  • GetState: Returns the value of the specified key from the ledger
  • PutState: Adds the key and the value to the ledger

Now that we understand some basic chaincode APIs, let's start to write our chaincode for IT asset management.

主站蜘蛛池模板: 西吉县| 乐平市| 冷水江市| 安庆市| 温泉县| 岑巩县| 元阳县| 阳城县| 安新县| 年辖:市辖区| 华池县| 江达县| 德令哈市| 阿克苏市| 苗栗市| 林口县| 醴陵市| 武威市| 简阳市| 泰宁县| 北碚区| 宜宾县| 大悟县| 江华| 通渭县| 山阴县| 江油市| 宣汉县| 凌源市| 台安县| 磐石市| 永嘉县| 三都| 娄底市| 遂川县| 名山县| 长沙市| 安化县| 襄垣县| 文化| 当雄县|