Development

是否可以安排對乙太坊智能合約的函式呼叫?

  • November 8, 2018

我想知道 - 是否可以根據目前區塊高度或時間戳來安排或以某種方式觸發對乙太坊智能合約的函式呼叫?可以理解,這將涉及為執行預付一些氣體,但有類似的東西可能是有益的:

  • 如果目前區塊高度為 1'000'000,則向區塊礦工發送 1000 乙太幣
  • 如果是 2016-01-01 00:00:00,則從託管中釋放資金

當然,這些功能可以由事務在適當的時間觸發,但某種“執行調度”可能是流程的有用自動化。

可悲的是,事實並非如此。有一個關於 ALARM 操作碼的提案,但它被標記為 WONTFIX -

<https://github.com/ethereum/go-ethereum/issues/117>

我明白為什麼 - 計時器要求你在合約中充值乙太幣,並且讓它們太容易創建可能會在區塊鏈中亂扔垃圾並對礦工施加成本。

你要麼必須為你的函式有一個外部呼叫者(如在 chriseth 的解決方案中),要麼使用你從合約中的每個函式呼叫的 PHP 風格的“窮人的 cron”函式來檢查並查看應該觸發哪些週期性任務 -

<https://stackoverflow.com/questions/1857741/run-php-script-every-5-10-minutes-without-cron-perl-etc>

這種解決方案也可以在 LambdaMOO 程式碼中看到,其中只有當有人說話時才會周期性地觸發事件,但這有點深奧。;-)

引用自:https://bitcoin.stackexchange.com/questions/37663