链码概念与结构
Chaincode 接口
type Chaincode interface {
Init(stub ChaincodeStubInterface) pb.Response
Invoke(stub ChaincodeStubInterface) pb.Response
}链码结构
package main
// 引入必要的包
import (
"github.com/hyperledger/fabric-chaincode-go/shim"
pb "github.com/hyperledger/fabric-protos-go/peer"
)
// 声明一个结构体
type SimpleChaincode struct {}
// 为结构体添加 Init 方法
func (t *SimpleChaincode) Init(stub shim.ChaincodeStubInterface) pb.Response {
// 在该方法中实现链码初始化或升级时的处理逻辑
// 编写时可灵活使用 stub 中的 API
}
// 为结构体添加 Invoke 方法
func (t *SimpleChaincode) Invoke(stub shim.ChaincodeStubInterface) pb.Response {
// 在该方法中实现链码运行中被调用或查询时的处理逻辑
// 编写时可灵活使用 stub 中的 API
}
// 主函数,需要调用 shim.Start() 方法
func main() {
err := shim.Start(new(SimpleChaincode))
if err != nil {
fmt.Printf("Error starting Simple chaincode: %s", err)
}
}依赖包
Contract API 示例(推荐)
Init 和 Invoke 方法
最后更新于