大家总是在谈论区块链的透明度,所有的数据都是可追踪的,每个人都可以看到所有的内容,但是访问这些信息容易吗?如何以简单的方式获得数据进行分析? 在本文中,我们将以DeFi Aavesome协议为例,介绍三种实现方法,我们将使用三种不同的方法来获取平台上的历史交易数据: Graph:使用GraphQL构建分散应用程序的协议。 alethio:一个api rest以友好的方式从区块链获取数据。 Web3 Foundation team:使用web3js库直接在区块链上读取事件。 如何获取这些数据 为了访问区块链上的某些数据,最简单的方法是查询事件。当调用智能合约中的某个函数时,如果执行了某个操作,则可以发出一个事件,该事件可以在此时由正在侦听该特定事件的客户端侦听,或者在将来访问其记录在区块链上的历史记录。 在这种情况下,我们想查看在Aave协议中进行的存款的历史记录,因此如果有与此相关的事件,我们可以在其代码内部查看。 在其文档中,我们看到是否存在与此相关的事件,并且其中包含以下数据: 那么让我们看一下在主网上部署的智能合约,然后在该部分中查看代码: 其中包含此事件,如果我们想详细查看它生成的那一刻,我们会看到它在完成deposit函数后就完成了,因此我们寻找: 获取数据 一旦我们弄清楚我们要找的是什么,我们将以三种不同的方式获得这些数据。 Graph Aave的团队创建了一个subgraph,可以在这个用例中对其进行测试,并且他们的网站上有相关的技术文档以及使用方法的示例 作为一个例子,我们想提取存款id,以及存款中的金额,然后进行分析,为此我们使用查询 {deposits(first:1000,skip:0){id,amount}} 返回相同的数据 我们必须重复这个查询n次,将skip参数从1000推进到1000,以显示下一个数据块。 Alethio 现在我们将使用Alethio api获取它,为此我们将使用端点: https://api.aleth.io/v1/log-entries?filter[loggedBy]=0x398eC7346DcD622eDc5ae82352F02bE94C62d119&filter[hasLogTopics.0]=0xc12c57b1c73a2c3a2ea4613e9476abb3d8d146857aab7329e24243fb59710c82 我们在这里查询Aave合约地址的日志,并使用Deposit函数的哈希值过滤日志。 该端点返回的对象指示事件,事件的参数以及指向“next”页面的链接,以引入新的数据块。 我们通过增加现有“Deposit”事件的数量来迭代所有这些“next”链接。 web3Js 作为第三个选项,我们将直接从区块链读取事件,为此我们将使用web3js库,并使用以下脚本获取Aave合约中所有“ deposit”类型的事件: constcontract=newweb3.eth.Contract(LendingPoolABI,LendingPoolAddress)returncontract.getPastEvents(‘Deposit’,{fromBlock:initBlock,toBlock:endBLock},function(error,events){returnevents}) 结果比较 我们使用以上三种方法进行数据获取方式,我们将同时执行它们,查看我们是否会拥有相同数量的存款,并且来自三个不同来源的信息是否正确的,为此我们执行这三个方法并编写事件总数: console.log(‘NumberofeventswithAlethio:’,(awaitgetDepositsAlethio()).length)console.log(‘Numberofeventswithweb3js:’,(awaitgetEventsWeb3js()).length)console.log(‘NumberofeventswithThegraph:’,(awaitgetDepositsGQL()).length) 结果输出显示: NumberofeventswithAlethio:31810Numberofeventswithweb3js:31809NumberofeventswithThegraph:31682 我们得到的数据存有差异,在Alethio和web3js的情况下,这只是一个事件,但与graph相比的差异更大。 进行了几次测试,我已经验证了从事件的生成到在graph中将其索引之前存在一定的延迟,所以如果查询这个事件,在graph中将找不到其他任何东西,但是几分钟后,记录的事件数量不一致。 通过这三种方式,您可以查阅数据,使用构建模型创建自己的数据集,并验证这些协议显示的信息是否正确。 --------------------------------------------------- 原文作者:Iván Alberquilla 原文链接:https://medium.com/coinmonks/defi-protocol->译者:链三丰 本文来源:陀螺财经 —- 编译者/作者:陀螺财经 玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。 |
如何从DeFi协议获取交易数据
2020-06-20 陀螺财经 来源:火星财经
- 上一篇:6.20BTC行情分析
- 下一篇:Compound疯狂增长,有水吗?
LOADING...
相关阅读:
- 您应该知道的5个市值较小的DeFi项目2020-08-06
- 欧洲加密货币交易所2gether受到最新威胁2020-08-06
- Ethereum.org通过新内容和总督插图进行了重新设计2020-08-06
- 一文读懂DeFi(DeFi是什么?)2020-08-06
- 30天内达到70%-以太坊的增长速度快于Eth2测试网2020-08-06