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

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時(shí)間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 fabric shim安装合约_hyperledger fabric 开发第一个智能合约 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一、編寫(xiě)智能合約代碼HelloWorld.go,go語(yǔ)言實(shí)現(xiàn),代碼很簡(jiǎn)單,每個(gè)合約包含兩個(gè)方法,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文件夾

三、進(jìn)入到fabric-samples/chaincode-docker-devmode,啟動(dòng)網(wǎng)絡(luò)

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

四、新開(kāi)一個(gè)終端,編譯鏈碼,并啟動(dòng)

docker exec -it chaincode bash

cd hello/

go build

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

五、新開(kāi)一個(gè)終端,進(jìn)入docker容器,操作鏈碼

docker exec -it cli bash

安裝鏈碼

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

實(shí)例化鏈碼

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

查詢(xún)鏈碼

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

修改鏈碼

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

再次查詢(xún)

至此,第一個(gè)智能合約demo完成了。

聲明:鏈?zhǔn)澜绲禽d此文僅出于分享區(qū)塊鏈知識(shí),并不意味著贊同其觀點(diǎn)或證實(shí)其描述。文章內(nèi)容僅供參考,不構(gòu)成投資建議。投資者據(jù)此操作,風(fēng)險(xiǎn)自擔(dān)。此文如侵犯到您的合法權(quán)益,請(qǐng)聯(lián)系我們kefu@lianshijie.com

總結(jié)

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

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。