教你如何部署智能合约
发布时间:2019-07-15 作者:超哥
本周为各位开发者带来百度超级链学院第三讲
“如何部署智能合约”
---不方便看视频的小伙伴,欢迎阅读文字内容---
合约的编写可以参考源码的样例:github.com/xuperchain/xuperunion/tree/master/contractsdk/cpp/example/counter.cc
编译合约需要安装docker环境,执行sh build.sh编译,在./contractsdk/cpp/build下产出counter.wasm。
一、先创建一个合约账号:
1. 创建合约账号,acl选取阈值模型,总权重为0.6,AK设置为网络中前两个节点的address,权重分别为0.5。创建合约账号需要fee;
2. 创建成功后,返回合约账号的account name;通过acl query可以查看已经创建的合约账号的acl;
3. 将合约账号ACL的AK写入到./data/acl/addrs,以便后续签名使用。
二、部署合约前需要:
1. 给刚才创建的合约账号转一笔钱;
2. 编译好要部署的合约
三、部署合约:
1. 通过合约账号发起,需要合约账号的acl签名;
2. 通过multisiggen产出tx.out,对tx.out进行查看,可以获得部署的详细信息,其中initiator部署合约的发起者,authRequire是需要的acl签名地址;
3. 对tx.out进行签名;
4. 将tx.out连同所需要的签名一起send出去,获得部署合约的txid。
四、调用合约:
执行成功后返回contract response就是执行合约后的结果,以及生成的txid。
五、查询合约:
获得调用合约后,key对应的value,通过执行ip:port来获得不同节点的结果。