一、编写智能合约代码HelloWorld.go,go语言实现,代码很简单,每个合约包含两个方法,Init、Invoke。 package main import ( "fmt" "github.com/hyperledger/fabric/core/chaincode/shim" "github.com/hyperledger/fabric
本文是由十点说财经创作,主要讲解的是hyperledger fabric 开发第一个智能合约预计阅读时间2分钟,共计有665个文字,话不多说下面一起来了解一下十点说财经的介绍吧,希望可以帮助到大家!
一、编写智能合约代码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完成了。
上一篇:国内外区块链关键技术现状及差异
下一篇:交易所公链能在公链竞争中胜出吗?
本文内容来自网络,如有侵犯请联系站长,本文主要讲解的事 hyperledger fabric 开发第一个智能合约,如有转载请携带本站链接地址:http://www.tapmw.com/qukuailian/19913.html
-
什么是莱特币 – 比特币是黄金它仍然是白银吗?
在这里,我们再次回顾另一种加密货币。在这篇文章中,我们将讨论市面上最古老的山寨币之一——莱特币。与几乎所有其他数字资产不同的是,莱特币不仅经受...
2019-06-11 03:32:42区块链技术90
-
随机数奖励会对区块链游戏产生哪些经济价值?
重点摘 要 ·游戏中的随机数通常分为两类:输入型和输出型。 ·区块链游戏采用随机数机制发放经济奖励,有潜力推动游戏产业增长至万亿级规模。 ·区块链游戏...
2020-08-22 10:59:22区块链技术89
-
ETH/USDT 深度最佳的以太坊 DEX - Tokenlon
7 月 23 日,福布斯杂志发表了一篇文章,标题是 Ethereum Starts Its DeFi Moon Shot,文章大意是说凭借 DeFi 应用的繁荣,以太坊价格出现了喜人的涨幅。 众所周知,以太...
2020-08-22 10:55:47区块链技术90
-
美国第四修正案不?;け忍乇沂?/a>
第五巡回法院的法官小组最近裁定,第四修正案权利不适用于源自交易所的加密货币交易数据。美国法院判决被告Richard Gratkowski败诉,他试图利用第四修正案提出...
2019-06-11 03:32:42区块链技术90
-
EOS 经济模型详解
本文对 EOS 的经济模型进行了深入研究,重点聚焦 EOS 的供需情况、EOS 网络资源的产生和获得以及 EOS 的投票机制。 EOS的供需情况 EOS 的价格会受到基本面和供需情...
2019-06-11 03:32:42区块链技术95
-
加密货币正在构建自己的文化
很多人看不懂茅台酒价格的上涨,其实行业内人士都明白,其实茅台不单单是卖酒,更重要的是宣传一种酒文化。有人说过,世界上最容易赚钱的就是宗教和文化...
2019-06-11 03:32:42区块链技术94
-
规范化管理的黄金对比特币的借鉴意义
比特币素有数字黄金之称。如果比特币将成为新一代黄金,那么 2020 年的黄金市场或许就是 2030 年比特币市场的写照。 虽然组成黄金的每个分子在物理属性上都是...
2020-08-22 10:58:21区块链技术89
-
如何在您的业务中实现区块链?
自从区块链技术的第一款产品比特币(Bitcoin)在2009年上市以来,它一直是交易员和投资者争论的话题。有人说这项技术一点都不可靠,另一方面,也有些人相信这项...
2019-06-11 03:32:42区块链技术90
-
zk rollup(链上数据)与Deversifi的Validium(链下数据)有什么区别?
DeversiFi最近推出了由StarkEx交易引擎提供支持的交易所的最新版本。这是一项令人难以置信的技术成就,它提高了用户可以从加密货币交易所获得的安全性标准。这...
2019-06-11 03:32:42区块链技术90
-
币安季度合约是什么以及如何进行交易?
在过去一年,期货行业呈爆炸式增长,2020年第一季度总交易量超过2万亿美元。 虽然加密资产期货市场仍是新兴市场,但已对现货市场发起了挑战。 在币安交易平...
2019-06-11 03:32:42区块链技术89
-
以太坊交易签名过程源码解析
向以太坊网络发起一笔交易时,需要使用私钥对交易进行签名。那么从原始的请求数据到最终的签名后的数据,这中间的数据流转是怎样的,经过了什么过程,今...
2019-06-11 03:32:42区块链技术90
-
合约导师安然:一个杀进币圈的十年外汇期货经验职业交易员
2020年7月10日,币安千江月对话币安合约总监Justin币安合约导师安然。安然在直播中和观众分享了他自己多年以来的交易经验,他认为交易手法和风格相适应需要磨...
2019-06-11 03:32:42区块链技术89