fabric学习笔记10
20201303张奕博 2023.1.22
测试实践
- 1.启动网络
命令:
cd fabric-samples/chaincode-docker-devmode/
docker-compose -f docker-compose-simple.yaml up -d
- 2.构建并启动链码
(1)
cd ../chaincode
mkdir hello && cd hello
vim hello.go
(2)导入链码依赖包
package main
import (
"github.com/hyperledger/fabric/core/chaincode/shim"
"github.com/hyperledger/fabric/protos/peer"
"fmt"
)
(3)编写主函数
func main() {
err := shim.Start(new(HelloChaincode))
if err != nil {
fmt.Printf("Chaincode start err: %v", err)
}
}
(4)自定义结构体
type HelloChaincode struct {
}
具体代码如下:
// 实例化/升级链码时被自动调用
// -c '{"Args":["Hello","World"]'
func (t *HelloChaincode) Init(stub shim.ChaincodeStubInterface) peer.Response {
fmt.Println("实例化....")
_, args := stub.GetFunctionAndParameters()
// 判断参数长度是否为2个
if len(args) != 2 {
return shim.Error("Args Err!")
}
fmt.Println("Save data......")
// 通过调用PutState方法将数据保存在账本中
err := stub.PutState(args[0], []byte(args[1]))
if err != nil {
return shim.Error("Save data err...")
}
fmt.Println("实例化成功")
return shim.Success(nil)
}
-
3.构建并启动链码
-
4.测试