从零学本体dApp开发(16): 如何调用Block dAPI?

写在前面

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

 

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

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

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

 

学习本篇的目的:

    我们都知道区块链就是由一个一个区块首尾相接组成的链。每个区块中包含了当前所有转账记录等其他信息。这一篇我们就来学习一下如何调用Block dAPI获得区块内的信息。

 

目录:

1. Block dAPI有哪些?

   1.1 GetTransactions

    1.2 GetTransactionCount

    1.3 GetTransactionByIndex  

2. 如何调用dAPI?

    2.1 编译代码

   2.2 部署

   2.3 预执行

1.Block dAPI有哪些?

 

Block dAPI相关的dAPI有三个,如下图所示:

从零学本体dApp开发(16): 如何调用Block dAPI?_第1张图片

1.1 GetTransactions,

  作用是:得到每个区块中的交易信息

  调用该dAPI的智能合约如下,实现的功能是得到第1408个区块的交易信息

 

从零学本体dApp开发(16): 如何调用Block dAPI?_第2张图片

 

1.2 GetTransactionCount

    作用是:得到每个区块中的总交易数量

 调用该dAPI的智能合约如下,实现的功能是得到第1408个区块的总的交易量

从零学本体dApp开发(16): 如何调用Block dAPI?_第3张图片

 

1.3 GetTransactionByIndex  

   作用是:根据区块高度得到交易信息

   调用该dAPI的智能合约如下,实现的功能是得到第1408个区块的总的交易量

从零学本体dApp开发(16): 如何调用Block dAPI?_第4张图片

 

 

2.如何调用Block dAPI?

  这里我们以GetTransactionCount这个dAPI来举例操作

 

2.1 编译代码

  把这个dAPI对应的合约代码copy到SmartX中,编译,如下图:

从零学本体dApp开发(16): 如何调用Block dAPI?_第5张图片

 

 

我们要现在程序里设定要查询哪一个块中的交易总量,打开solo-chain查看下哪个区块里有交易,如下图:

从零学本体dApp开发(16): 如何调用Block dAPI?_第6张图片

我们可以看到第645个块里有交易信息,所以程序中设定区块高度为645

 

2.2 部署

    编译通过后,部署合约,成功如下图:

 

从零学本体dApp开发(16): 如何调用Block dAPI?_第7张图片

 

2.3 预执行

    如果想减少ONG消耗,我们可以采用预执行,选择运行函数为“demo”,然后点击“运行与执行”,如下图:

 

从零学本体dApp开发(16): 如何调用Block dAPI?_第8张图片

执行结果如下图:

 

从零学本体dApp开发(16): 如何调用Block dAPI?_第9张图片

可以看到返回的值是1,说明这个区块里只有一笔交易。

到这里说明我们执行GetTransactionCount这个dAPI成功了,其他dAPI也是使用这个过程进行调用,这里就不再赘述,有兴趣的朋友可以自行测试。

 

写在最后

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

你可能感兴趣的:(开发者杂谈)