1703878391
·为了抓取一个特定tweet的文本,使用html(https://twitter.com/oraclizeit/status/671316655893561344).xpath(//*[contains(@class,‘tweettext’)]/text())。
1703878392
1703878393
·binary(..)助手用于获得诸如证书文件的二进制文件,例如证书文件:
1703878394
1703878395
·为了抓取二进制文件的一部分,可以使用slice(offset,length)。其中第一个参数是位移,第二个参数是所需的slice长度(二者都用字节表示)。
1703878396
1703878397
·示例:从一个二进制CRL中只抓取开头300个字节,用binary(https://www.sk.ee/crls/esteid/esteid2015.crl).slice(0,300)。二进制助手必须和slice选项同时使用,且只接受二进制文件(不接受编译文件)。
1703878398
1703878399
1703878400
如果服务端不响应或连接不上,用户将收到一个空回应。可以在http://app.Oraclize.it/home/test_query测试查询。
1703878401
1703878402
7.获取查询价格
1703878403
1703878404
如果在实际查询之前想知道查询需要多少费用,可以使用Oraclize.getPrice()函数获取所需的wei的数量。第一个实参是数据源,第二个实参是可选项,即自定义gas。
1703878405
1703878406
一个常见的使用示例是,当以太币余额不足以进行查询时,通知客户端向合约添加以太币。
1703878407
1703878408
1703878409
1703878410
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
1703878438
区块链项目开发指南 7.1.7 Oraclize Web IDE
1703878439
1703878440
Oraclize提供了一个Web IDE,使用它就可以编写、编译和测试以Oraclize为基础的应用(参见http://DApp.Oraclize.it/browser-Solidity/)。
[
上一页 ]
[ :1.703878391e+09 ]
[
下一页 ]