¿Por qué un contrato no puede activarse y ejecutarse solo?

Esta pregunta no se trata de soluciones externas , pero ¿existen limitaciones técnicas de por qué un contrato que tiene fondos no puede programarse para ejecutarse en un bloque futuro? ¿Podría el protocolo Ethereum haber sido diseñado para incluir esta funcionalidad y, de ser así, qué habría implicado?

Respuestas (2)

En una publicación reciente de Vitalik Buterin en Reddit, menciona varias propuestas que se consideraron en el diseño del protocolo pero que no pasaron el corte.

Una de las propuestas llamadas llamadas retrasadas introduciría una ALARMA de código de operación que permitiría ejecutar un contrato en un bloque futuro. La propuesta tiene varios casos de uso pero fue descartada por falta de tiempo.

Creo que esto fue diseñado como una característica para minimizar la carga en la red y reducir los recursos. Hay varias soluciones si desea "llamar a un contrato":

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

Fuente :

Me enorgullece anunciar el lanzamiento del servicio Ethereum Alarm Clock.

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

El servicio de alarma facilita la programación de llamadas de función de contrato para un número de bloque específico en el futuro. La versión actual debe considerarse software alfa.

  • Programe llamadas de función de contrato para que se ejecuten en un bloque específico en el futuro.
  • Sin esperanzas. No se otorgan API administrativas ni acceso especial a nadie, incluyéndome a mí.
  • Código fuente verificable publicado.
  • Mucha documentación con ejemplos.

Estoy muy interesado en escuchar los comentarios de la gente. No dude en enviarme un mensaje a pipermerriam en gitter.

¿Mencionas "varias" soluciones?
Si la limitación técnica es la red y el uso de recursos aumentaría, ¿puede explicarse o cuantificarse mejor para ilustrar por qué se convierte realmente en una limitación? Un aumento en algo no significa necesariamente que se convierta en una limitación.
Solo me preguntaba... Para que se llame a una función de contrato, se debe escribir una transacción en la cadena de bloques, ya que una función se ejecuta cuando se extrae y verifica esa transacción. Entonces, quizás una forma de implementar esto podría ser usar Eventos. (Solo una idea). Una función en un contrato inteligente podría suscribirse a un Evento. Cuando se activa ese evento, las transacciones podrían enviarse a la cadena de bloques llamando a cada función suscrita a ese evento: una transacción para cada función suscrita. Aún así, depende de que se desencadene un evento. No completamente autoinvocado.
Tengo otra idea sobre la implementación de esta funcionalidad, pero este podría no ser el foro adecuado para ello. Buscará algún lugar donde los poderes fácticos lo consideren seriamente. Tal vez, algo como esto ya está en proceso. Comprobare eso tambien.