1703878175
区块链项目开发指南 第7章 创建投注App
1703878176
1703878177
有时,智能合约需要访问来自其他DApp或者万维网的数据。但是技术和共识方面的挑战,使得允许智能合约访问外面的数据异常复杂。因此,目前以太坊智能合约本身不支持访问外面的数据。但是有一些第三方解决方案可以让以太坊智能合约访问来自其他DApp或者万维网的数据。在本章中,我们将学习如何使用Oraclize从以太坊智能合约发出HTTP请求,以访问来自万维网的数据。我们还将学习如何访问存储在IPFS中的文件、如何使用字符串库处理字符串等。我们将通过创建一个足球投注智能合约和一个客户端,来学习这些内容。
1703878178
1703878179
在本章中,我们将讲解如下内容:
1703878180
1703878181
·Oraclize的工作原理。
1703878182
1703878183
·什么是Oraclize的多种数据源,它们各自如何工作。
1703878184
1703878185
·在Oraclize中共识的工作原理。
1703878186
1703878187
·在以太坊智能合约中整合Oraclize。
1703878188
1703878189
·用Solidity库使处理字符串变得容易。
1703878190
1703878191
·创建足球投注App。
1703878192
1703878193
1703878194
1703878195
1703878197
区块链项目开发指南 7.1 Oraclize概述
1703878198
1703878199
Oraclize是一种服务,旨在使智能合约可以访问来自其他区块链或者万维网的数据。该服务目前在比特币以及以太坊测试网和主网上可用。Oraclize的特殊之处是你不需要信任它,因为它可以为所提供给智能合约的全部数据做真实性证明。
1703878200
1703878201
在本章中,我们将学习如何在以太坊智能合约中使用Oraclize服务从万维网中抓取数据。
1703878202
1703878203
1703878204
1703878205
1703878207
区块链项目开发指南 7.1.1 Oraclize的工作原理
1703878208
1703878209
下面来看以太坊智能合约使用Oraclize从其他区块链和万维网中抓取数据的过程。
1703878210
1703878211
为了抓取外部数据,以太坊智能合约需要发送一个查询给Oraclize,指定数据源(表示从哪里抓取数据)和数据源的参数(表示抓取什么数据)。
1703878212
1703878213
向Oraclize发送一个查询,意味着发送一个合约调用(即内部交易)给以太坊区块链中出现的Oraclize合约。
1703878214
1703878215
Oraclize服务端不断寻找新传入智能合约的查询。当它发现一个新的查询时,就抓取结果,并调用合约的_callback方法将结果返回。
1703878216
1703878217
1703878218
1703878219
1703878221
区块链项目开发指南 7.1.2 数据源
1703878222
1703878223
Oraclize允许智能合约抓取数据的源列表如下:
[
上一页 ]
[ :1.703878174e+09 ]
[
下一页 ]