打字猴:1.703878404e+09
1703878404 如果在实际查询之前想知道查询需要多少费用,可以使用Oraclize.getPrice()函数获取所需的wei的数量。第一个实参是数据源,第二个实参是可选项,即自定义gas。
1703878405
1703878406 一个常见的使用示例是,当以太币余额不足以进行查询时,通知客户端向合约添加以太币。
1703878407
1703878408
1703878409
1703878410
1703878411 区块链项目开发指南 [:1703875373]
1703878412 区块链项目开发指南 7.1.6 加密查询
1703878413
1703878414 有时,用户可能不想暴露数据源和/或数据源的输入。例如,可能不想暴露URL中的API(如果有)。Oraclize提供了一种在智能合约中存储加密查询的方式,只有Oraclize的服务端才能解码。
1703878415
1703878416 Oraclize提供一个Python工具(https://github.com/Oraclize/encrypted-queries),可以用于加密数据源和/或数据源的输入。它生成一个非确定性的加密字符串。
1703878417
1703878418 用于加密任意文本字符串的CLI命令如下:
1703878419
1703878420
1703878421
1703878422
1703878423 其中长长的十六进制字符串是Oraclize服务端的公钥。现在用户可以使用前面命令的输出代替数据源和/或数据源的输入。
1703878424
1703878425
1703878426 为了防止误用加密的查询(即重播攻击),第一个用一个特定加密查询Oraclize的合约成为合法的所有者。任何重复使用完全相同的字符串的合约将不被允许使用它,并且将接收一个空的结果。因此,切记在使用加密查询重新部署合约时,总是要生成新的加密字符串。
1703878427
1703878428 解码数据源
1703878429
1703878430 还有一个称为decrypt的数据源,它用于解码加密的字符串。但是这个数据源不返回任何结果,否则任何人就都有能力解码数据源和数据源的输入了。
1703878431
1703878432 它是专门应用于嵌套数据源的,用于对部分查询进行加密。这是它唯一的使用例子。
1703878433
1703878434
1703878435
1703878436
1703878437 区块链项目开发指南 [:1703875374]
1703878438 区块链项目开发指南 7.1.7 Oraclize Web IDE
1703878439
1703878440 Oraclize提供了一个Web IDE,使用它就可以编写、编译和测试以Oraclize为基础的应用(参见http://DApp.Oraclize.it/browser-Solidity/)。
1703878441
1703878442 如果访问该链接,将注意到它和Browser Solidity看起来一模一样,它实际上就是Browser Solidity添加的一个额外功能。为了理解这个功能是什么,我们需要更深入地理解Browser Solidity。
1703878443
1703878444 Browser Solidity不仅允许用户为合约编写、编译和生成web3.js代码,还允许测试合约。到目前为止,为了测试合约,我们设置一个以太坊节点并向它发送交易。但是Browser Solidity可以不用连接至任何节点就执行合约,所有操作都在内存中进行。之所以能够这样,是因为使用了ethereumjs-vm(EVM的一种JavaScript实现)。用户可以使用ethereumjs-vm创建自己的EVM和运行字节码,也可以通过提供目标URL来配置Browser Solidity,以使用以太坊节点。UI的信息量很大,用户可以自己尝试一遍。
1703878445
1703878446 Oraclize Web IDE的特殊之处在于,它在in-memory执行环境下部署Oraclize合约,这样就不需要连接到测试网或者主网节点,但是使用Browser Solidity时必须连接到测试网或者主网节点,以测试Oraclize API。
1703878447
1703878448
1703878449 如需更多关于Oraclize的资源,请访问https://dev.Oraclize.it/。
1703878450
1703878451
1703878452
1703878453
[ 上一页 ]  [ :1.703878404e+09 ]  [ 下一页 ]