Antecedentes sobre eventos: https://github.com/ethereum/wiki/wiki/Solidity-Features
Los eventos permiten el uso conveniente de las instalaciones de registro de EVM. Los eventos son miembros hereditarios de los contratos. Cuando se les llama, hacen que los argumentos se almacenen en el registro de transacciones. Hasta tres parámetros pueden recibir el atributo indexado, lo que hará que los argumentos respectivos se traten como temas de registro en lugar de datos. El hash de la firma del evento es siempre uno de los temas. Todos los argumentos no indexados se almacenarán en la parte de datos del registro.
Si no está dentro del contenedor del contrato inteligente, ¿dónde residen los datos de registro?
Los registros son parte de los recibos de transacciones. Los generan los clientes al ejecutar transacciones y se almacenan junto con la cadena de bloques para permitir su recuperación.
Los registros no forman parte de la cadena de bloques en sí, ya que no se requieren para el consenso (son solo datos históricos); sin embargo, la cadena de bloques los verifica, ya que los hashes de recepción de transacciones se almacenan dentro de los bloques.
Para ayudar con la respuesta de @ Peter, es útil darse cuenta de qué son los eventos y los registros. Los eventos, registros y registros de eventos suelen ser términos de Ethereum que son intercambiables (en algunos contextos se prefiere un término en particular, por ejemplo, eventos en Solidity y web3.js, y registros como en EVM y Yellow Paper).
Los eventos/registros son el resultado de los códigos de operación LOG que se ejecutan en el EVM. Forman parte de las "transacciones internas" que se derivan de la ejecución de datos de transacciones a través de EVM.
Por lo tanto, siempre que tenga la cadena de bloques, tendrá todos los eventos/registros. Para mayor eficiencia, se almacenan como describe @Peter, pero conceptualmente no es necesario almacenarlos, ya que podrían volver a calcularse a partir de la cadena de bloques (que, por definición, consta de todos los bloques y datos de transacciones).
Finalmente, la poda no tiene efecto en los eventos/registros porque la poda se realiza en el estado trie y no se pierden bloques.
De la documentación oficial: https://solidity.readthedocs.io/en/v0.4.24/contracts.html#events
Los eventos son miembros hereditarios de los contratos. Cuando se les llama, hacen que los argumentos se almacenen en el registro de transacciones, una estructura de datos especial en la cadena de bloques. Estos registros están asociados con la dirección del contrato y se incorporarán a la cadena de bloques y permanecerán allí mientras se pueda acceder a un bloque (para siempre a partir de Frontier y Homestead, pero esto podría cambiar con Serenity). No se puede acceder a los datos de registro y eventos desde los contratos (ni siquiera desde el contrato que los creó).
Satoshi Nakanishi
Péter Szilágyi
Satoshi Nakanishi
Péter Szilágyi
Cabra teletransportadora