Почему контракт не может проснуться и запуститься сам?

Этот вопрос не о внешних решениях , а о технических ограничениях, почему контракт, у которого есть средства, не может запланировать запуск в будущем блоке? Мог ли протокол Ethereum быть разработан с учетом этой функциональности, и если да, то что для этого требовалось?

Ответы (2)

В недавнем посте Виталика Бутерина на Reddit он упоминает несколько предложений, которые учитывались при разработке протокола, но не вошли в него.

Одно из предложений, называемое отложенными вызовами , должно ввести код операции ALARM, который позволит контракту выполняться в будущем блоке. Предложение имеет несколько вариантов использования, но от него отказались из-за нехватки времени.

Я считаю, что это было разработано для минимизации нагрузки на сеть и сокращения ресурсов. Есть несколько решений, если вы хотите «позвонить по контракту»:

http://www.ethereum-alarm-clock.com/

Источник :

Я с гордостью объявляю о запуске сервиса Ethereum Alarm Clock.

http://www.ethereum-alarm-clock.com/

Служба Alarm облегчает планирование вызовов функций контракта для указанного номера блока в будущем. Текущий выпуск следует рассматривать как альфа-версию программного обеспечения.

  • Запланируйте вызовы функций контракта, которые будут выполняться в указанном блоке в будущем.
  • Ненадежный. Никому, включая меня, не предоставляется ни административный API, ни специальный доступ.
  • Опубликован проверяемый исходный код.
  • Много документации с примерами.

Мне очень интересно услышать отзывы людей. Не стесняйтесь, присылайте мне сообщения на pipermerriam на gitter.

Вы упоминаете «несколько» решений?
Если техническое ограничение связано с сетью, и использование ресурсов будет увеличиваться, можно ли это объяснить или дать количественную оценку, чтобы лучше проиллюстрировать, почему оно на самом деле становится ограничением? Увеличение чего-либо не обязательно означает, что оно становится ограничением.
Просто интересно... Для вызова функции контракта транзакция должна быть записана в блокчейн, поскольку функция выполняется, когда эта транзакция добывается и проверяется. Так что, возможно, одним из способов реализации этого может быть использование событий. (Просто идея). Функция в смарт-контракте может подписаться на событие. Когда это событие инициируется, транзакции могут быть отправлены в блокчейн, вызывая каждую функцию, подписанную на это событие, — по одной транзакции для каждой подписанной функции. Тем не менее, это зависит от запускаемого события. Не полностью самовызывается.
У меня есть другая идея о реализации этой функции, но это может быть не тот форум для нее. Будет искать какое-то место, где это будет серьезно рассмотрено власть имущими. Возможно, что-то подобное уже находится в разработке. Это тоже проверим.