Al leer el papel amarillo , puedo ver que cada encabezado de bloque incluye el hash Keccak 256 de la raíz del trie para transacciones y recibos de transacciones. Me cuesta entender cómo y dónde se crean.
¿Cómo se relacionan el Trie de transacciones y el Trie de recibos de transacciones para un bloque dado?
¿Es cierto que, a medida que se actualiza el estado mundial al pasar por las transacciones, las transacciones y los recibos de transacciones se almacenan en sus respectivos intentos?
Los intentos de transacciones y los intentos de recepción de transacciones son, de hecho , estructuras de datos independientes con distintas raíces almacenadas en el encabezado de la cadena de bloques y difieren tanto en el propósito como en el contenido .
Propósito :
Intentos de transacción : registra los vectores de solicitud de transacción
Intentos de recepción de transacciones : registra el resultado de la transacción
Contenido :
Parámetros utilizados en la composición de un Transaction Trie [detalles en la sección 4.3 del libro amarillo] :
Parámetros utilizados en la composición de un recibo de transacción Trie [detalles en la sección 4.4.1 del libro amarillo] :
En https://blog.ethereum.org/2015/11/15/merkling-in-ethereum Vitalik Buterin dio un ejemplo del uso de los diferentes árboles (transacciones, recibos, árboles de estado).
El primero es manejado por el árbol de transacciones ; el tercero y cuarto son manejados por el árbol de estados, y el segundo por el árbol de recibos . Los primeros cuatro son bastante sencillos de calcular; el servidor simplemente encuentra el objeto, busca la rama de Merkle (la lista de hashes que van desde el objeto hasta la raíz del árbol) y responde al cliente ligero con la rama. el quintotambién es manejado por el árbol de estado, pero la forma en que se calcula es más compleja. Aquí, necesitamos construir lo que se puede llamar una prueba de transición de estado de Merkle. Esencialmente, es una prueba que hace la afirmación "si ejecuta la transacción T en el estado con raíz S, el resultado será un estado con raíz S', con log L y salida O" ("salida" existe como un concepto en Ethereum porque cada transacción es una llamada de función; no es teóricamente necesario).
Los recibos son básicamente para probar registros y eventos .
Sotavento
zanzú
Sotavento
zanzú
alper
transaction request vectors
@zanzu?