http://www.7klian.com

如何从DeFi协议获取生意业务数据

该端点返回的工具指示事件,事件的参数以及指向“next”页面的链接,以引入新的数据块。

  }
Number of events with web3js: 31809
alethio:一个api rest以友好的方法从区块链获取数据。
我们利用以上三种要领举办数据获取方法,我们将同时执行它们,查察我们是否会拥有沟通数量的存款,而且来自三个差异来历的信息是否正确的,为此我们执行这三个要领并编写事件总数:
}
console.log(‘Number of events with Alethio:’, (await getDepositsAlethio()).length)
在本文中,我们将以DeFi Aavesome协议为例,先容三种实现要领,我们将利用三种差异的要领来获取平台上的汗青生意业务数据:
  deposits(first:1000, skip:0){

我们必需反复这个查询n次,将skip参数从1000推进到1000,以显示下一个数据块。
返回沟通的数据

   toBlock: endBLock
为了会见区块链上的某些数据,最简朴的要领是查询事件。当挪用智能合约中的某个函数时,假如执行了某个操纵,则可以发出一个事件,该事件可以在此时由正在侦听该特定事件的客户端侦听,可能在未来会见其记录在区块链上的汗青记录。
{
功效较量
   amount
}, function (error, events) { return events })
作为一个例子,我们想提取存款id,以及存款中的金额,然后举办阐明,为此我们利用查询
各人老是在谈论的透明度,所有的数据都是可追踪的,每小我私家都可以看到所有的内容,可是会见这些信息容易吗?
如何故简朴的方法得到数据举办阐明?

我们通过增加现有“Deposit”事件的数量来迭代所有这些“next”链接。
Graph:利用GraphQL构建分手应用措施的协议。
Alethio
一旦我们弄清楚我们要找的是什么,我们将以三种差异的方法得到这些数据。
0x398eC7346DcD622eDc5ae82352F02bE94C62d119&filter[hasLogTopics.0]=
作为第三个选项,我们将直接从区块链读取事件,为此我们将利用web3js库,并利用以下剧本获取Aave合约中所有“ deposit”范例的事件:
console.log(‘Number of events with web3js:’, (await getEventsWeb3js()).length)
我们获得的数据存有差别,在Alethio和web3js的环境下,这只是一个事件,但与graph对比的差别更大。

获取数据

那么让我们看一下在主网上陈设的智能合约,然后在该部门中查察代码:

   fromBlock: initBlock,
功效输出显示:
console.log(‘Number of events with The graph:’, (await getDepositsGQL()).length)
Number of events with The graph: 31682
Number of events with Alethio: 31810

在其文档中,我们看到是否存在与此相关的事件,而且个中包括以下数据:

Web3 Foundation team:利用web3js库直接在区块链上读取事件。
   id,
return contract.getPastEvents(‘Deposit’, {
0xc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82

个中包括此事件,假如我们想具体查察它生成的那一刻,我们会看到它在完成deposit函数后就完成了,因此我们寻找:

https://api.aleth.io/v1/log-entries?filter[loggedBy]=
在这种环境下,我们想查察在Aave协议中举办的存款的汗青记录,因此假如有与此相关的事件,我们可以在其代码内部查察。

举办了屡次测试,我已履历证了从事件的生成到在graph中将其索引之前存在必然的延迟,所以假如查询这个事件,在graph中将找不到其他任何对象,可是几分钟后,记录的事件数量纷歧致。
Aave的团队建设了一个subgraph,可以在这个用例中对其举办测试,,而且他们的网站上有相关的技能文档以及利用要领的示例
const contract = new web3.eth.Contract(LendingPoolABI, LendingPoolAddress)
此刻我们将利用Alethio api获取它,为此我们将利用端点:
Graph
通过这三种方法,您可以查阅数据,利用构建模子建设本身的数据集,并验证这些协议显示的信息是否正确。

web3Js

简  介
我们在这里查询Aave合约地点的日志,并利用Deposit函数的哈希值过滤日志。
如何获取这些数据

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读