Datetime
需要周期時間計算oracle
我想每天在同一時間用區塊鏈進行計算。我知道每個礦工都有自己的時間。我想我必須找到一個神諭。任何的想法 ?
檢查https://www.ethereum-alarm-clock.com - 看起來像你需要的。不隸屬。
乙太坊鬧鐘旨在激勵分散的時間節點網路,確保您的預定交易將按時執行。
您可以在合約中編寫一個函式來進行計算,然後您可以使用名為 Aion (aion.ethpanrhron.com) 的服務安排該函式在 24 小時內執行。
在 GitHub 頁面 ( https://github.com/ETH-Pantheon/Aion/blob/master/README.md )中有幾個範例說明如何執行此操作
例如:
pragma solidity ^0.4.24; // interface Aion contract Aion { uint256 public serviceFee; function ScheduleCall(uint256 blocknumber, address to, uint256 value, uint256 gaslimit, uint256 gasprice, bytes data, bool schedType) public payable returns (uint,address); } // Main contract contract MyContract{ uint256 public sqrtValue; Aion aion; address aionAccount; function schedule_sq(uint256 number) public { aion = Aion(0x10999AE703401312798EA437b02A9849fa43E5AB); bytes memory data = abi.encodeWithSelector(bytes4(keccak256('sq(uint256)')),number); uint callCost = 200000*1e9 + aion.serviceFee(); uint256 txId; (txId, aionAccount) = aion.ScheduleCall.value(callCost)( block.timestamp+1 day, address(this), 0, 200000, 1e9, data, true); } function sq(uint256 number) public { sqValue = number**2; schedule_sq(sqValue) } function () public payable {} }
在此範例
sq(uint256 number)
中,每 24 小時呼叫一次執行平方運算的函式 ( )。Aion 有幾個優點,最重要的是可以返回所有未使用的氣體。
您可以在上面的連結中獲得更多資訊。也可以在測試網上免費使用(ropsten)
希望這可以幫助。