Contract-Design
乙太坊合約如何從網站獲取數據?
乙太坊合約從網站獲取一些數據的過程背後的過程/工作流程是什麼?
您可以使用Oracle。預言機是將現實世界的數據與區塊鏈連接起來的任何設備或實體。
有幾個 oracle 技術的例子。Chainlink和Provable(以前稱為 Oraclize)就是兩個這樣做的例子。
這裡有一些程式碼範例以及我們的 Solidity API 的文件。
Oraclize 在主網和測試網上都可用,因此使用它應該很容易,但是如果您需要任何支持,請隨時詢問 - 我們甚至在這裡有一個 gitter 頻道。
正如您所見,從網站獲取數據就像使用oraclize_query函式一樣簡單。
我們的良好行為由TLSNotary證明授予,並且可以通過這個基於 Web 的客戶端網路監視器輕鬆檢查。
例如,從 Kraken 程式碼中獲取 ETHXBT 價格:
import "dev.oraclize.it/api.sol"; contract KrakenPriceTicker is usingOraclize { string public ETHXBT; function PriceTicker() { oraclize_setNetwork(networkID_testnet); oraclize_setProof(proofType_TLSNotary | proofStorage_IPFS); oraclize_query("URL", "json(https://api.kraken.com/0/public/Ticker?pair=ETHXBT).result.XETHXXBT.c.0"); } function __callback(bytes32 myid, string result, bytes proof) { if (msg.sender != oraclize_cbAddress()) throw; ETHXBT = result; // do something with ETHXBT } }