0
点赞
收藏
分享

微信扫一扫

hyperledge简要命令

cryptogen组织结构和账号相关的文件
configtxgen区块和交易生成
configtxlator区块和交易解析

安装链码
peer chaincode install -n demo -v 1.0 -p demo
其中-n表示名称,-v表示版本 -p表示路径

实例化链码
peer chaincode instantiate -n demo -v 1.0 -c ‘{“args”:[“john”,“0”]}’ -P ‘OR’
-c表示链码参数

调用链码
peer chaincode invoke -o ​​​order.example.com:7050​​ --tls $CORE_PEER_tTLS

查询链码
peer chaincode query -C mychannel -n demo -c ‘{“Args”:[“query”,“a”]}’

升级链码
安装新版本的链码
peer chaincode install -n demo -v 1.0 -p path/
升级链码upgrade
peer chaincode upgrade -n demo -v 1.0 -c ‘{“Args”:[“d”,“e”]}’ -C mychannel

打包链码和签名
打包链码
peer chaincode package -n demo -p ​​​gitbhub.com/hyperledger/fabric/​​​ 对打包文件进行签名
peer chaincode signpackage ccpak.out signedccpak.out

package main

import (
"fmt"
"github.com/hyperledger/fabric/core/chaincode/shim"
"github.com/hyperledger/fabric/protos/peer"
)

type HelloFabric struct {

}

func main() {
shim.Start(new(HelloFabric))
}

func (t*HelloFabric)init(stub shim.ChaincodeStubInterface)peer.Response {
args := stub.GetStringArgs()
err := stub.PutState(args[0], []byte(args[1]))
if err!=nil {
shim.Error(err.Error())
}

return shim.Success(nil)
}

func (t*HelloFabric) invoke(stub shim.ChaincodeStubInterface)peer.Response {
s, strings := stub.GetFunctionAndParameters()
if s=="set" {
return t.set(stub,strings)
}else if s=="get"{
return t.get(stub,strings)
}
return shim.Error("invoke error")
}
func (t *HelloFabric) set(stub shim.ChaincodeStubInterface, args []string) peer.Response {
err := stub.PutState(args[0], []byte(args[1]))
if err!=nil {
return shim.Error("")
}
return shim.Success(nil)
}
func (t *HelloFabric) get(stub shim.ChaincodeStubInterface, args []string) peer.Response {
value, e := stub.GetState(args[0])
if e!=nil {
return shim.Error("")
}

return shim.Success(value)
}


举报

相关推荐

0 条评论