教你如何部署智能合约

发布时间: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来获得不同节点的结果。