日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

fabric shim安装合约_hyperledger fabric 开发第一个智能合约

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fabric shim安装合约_hyperledger fabric 开发第一个智能合约 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、編寫智能合約代碼HelloWorld.go,go語言實現,代碼很簡單,每個合約包含兩個方法,Init、Invoke。

package main

import (

"fmt"

"github.com/hyperledger/fabric/core/chaincode/shim"

"github.com/hyperledger/fabric/protos/peer"

)

type Helloworld struct {

}

func (t * Helloworld) 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 *Helloworld) Invoke (stub shim.ChaincodeStubInterface) peer.Response{

fn, args := stub.GetFunctionAndParameters()

if fn =="set" {

return t.set(stub, args)

}else if fn == "get"{

return t.get(stub , args)

}

return shim.Error("Invoke fn error")

}

func (t *Helloworld) set(stub shim.ChaincodeStubInterface , args []string) peer.Response{

err := stub.PutState(args[0],[]byte(args[1]))

if err != nil {

return shim.Error(err.Error())

}

return shim.Success(nil)

}

func (t *Helloworld) get (stub shim.ChaincodeStubInterface, args [] string) peer.Response{

value, err := stub.GetState(args[0])

if err != nil {

return shim.Error(err.Error())

}

return shim.Success(value)

}

func main(){

err := shim.Start(new(Helloworld))

if err != nil {

fmt.Println("start error")

}

}

二、將代碼文件夾拷貝到fabric-samples下面的chaincode文件夾

三、進入到fabric-samples/chaincode-docker-devmode,啟動網絡

docker-compose -f docker-compose-simple.yaml up

四、新開一個終端,編譯鏈碼,并啟動

docker exec -it chaincode bash

cd hello/

go build

CORE_PEER_ADDRESS=peer:7052 CORE_CHAINCODE_ID_NAME=mycc:0 ./hello

五、新開一個終端,進入docker容器,操作鏈碼

docker exec -it cli bash

安裝鏈碼

peer chaincode install -p chaincodedev/chaincode/hello -n mycc -v 0

實例化鏈碼

peer chaincode instantiate -n mycc -v 0 -c '{"Args":["str","HelloWorld"]}' -C myc

查詢鏈碼

peer chaincode query -n mycc -c '{"Args":["get","str"]}' -C myc

修改鏈碼

peer chaincode invoke -n mycc -c '{"Args":["set","str","newHelloWorld"]}' -C myc

再次查詢

至此,第一個智能合約demo完成了。

聲明:鏈世界登載此文僅出于分享區塊鏈知識,并不意味著贊同其觀點或證實其描述。文章內容僅供參考,不構成投資建議。投資者據此操作,風險自擔。此文如侵犯到您的合法權益,請聯系我們kefu@lianshijie.com

總結

以上是生活随笔為你收集整理的fabric shim安装合约_hyperledger fabric 开发第一个智能合约的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。