您的位置:首页 > 移动开发

从零学本体dApp开发(17):本体分片技术理解与实战

2019-09-23 16:50 1411 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/ontologycoding/article/details/101212916

原创 | 工匠 (来自本体社区的技术人员)

---------------

写在前面

最近在利用业余时间学习本体的开发。我打算把自己学习的过程记录下来,一方面便于自己梳理学到的东西,另一方面希望可以通过笔记的共享,能使本体后来的开发者少走弯路。

 

由于是初学者,学习本体开发的过程中遇到了很多问题,在此,特别感谢本体社区的各位老师(宏雷、楚笙、Mickey、雪飞的逆袭、Andy季、周佩文等)耐心地为我解答各种各样的问题,本体有你们,真好!

 

学习本篇的目的:

 

    在本体主网上线一周年纪念日之际,经过研发人员半年多来紧锣密鼓的筹备与反复测试,本体分片测试网终于正式上线,开发者们可以开始体验和测试了。

采用了分片技术的智能合约就是分片合约,官方介绍分片合约的调用由两种方式:一是使用本体CLI命令行,另一个是 ontology-go-sdk。

这一篇我们就来学学如何用CLI部署和调用智能合约。

 

目录:

1. 分片合约的编译 

2. 用CLI部署分片合约

3. 用CLI调用分片合约 

1.分片合约的编译 

 

我们知道本体CLI不能编译合约,所以我们需要在SmartX中近些合约编写和编译,编译出来的AVM字节码是我们需要的,

 

我们把它的内容copy到一个文本文件中,待用。

 

2.用CLI部署分片合约

部署之前我们需要先确认钱包中是否由充足的ONG,在CLI中执行如下命令(查询之前需要启动solo-chain,即启动私有网,执行命令会出错,也不然查不到):

 

可以看到我们钱包中的ONG是充足的

执行部署命令 ./ontology contract deploy,参数 -- code需要写我们之前保存的AVM字节码的文本文件的路径,其他参数可以随便填写,如下图:

 

 

输入密码成功后,返回这部署的状态,如下图:

 

 

我们再通过根据哈希值查询状态的命令查询部署是否成功,如下图:

 

 

看到State为“1”,说明部署合约成功了。

 

 

2.用CLI调用分片合约

 

调用通过如下命令

./ontology contract invoke --address=XXX --params=XXX --return=XXX --p

参数--address=后面填写刚刚部署的合约的地址,--params后面填写函数名即demo,执行过程如下图:

 

 

然后我们再通过根据哈希值查询状态的命令查询执行是否成功,如下图:

 

可以看到state是“1”,所以我们合约调用成功了。

 

写在最后

希望有更多的小伙伴参与到本体开发学习中来,让我们共同为本体的生态建设添砖加瓦!感兴趣的小伙伴可以联系我,共同学习!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: