Como se indica en el papel amarillo:
Recibo de la transacción. Para codificar información sobre una transacción sobre la cual puede ser útil formar una prueba de conocimiento cero, o indexar y buscar, codificamos un recibo de cada transacción que contiene cierta información relacionada con su ejecución. Cada recibo, denominado BR[i] para la i-ésima transacción) se coloca en un trie con clave de índice y la raíz se registra en el encabezado como He.
El recibo de la transacción es una tupla de cuatro elementos que comprende el estado posterior a la transacción, R, el gas acumulativo utilizado en el bloque que contiene el recibo de la transacción inmediatamente después de que se realizó la transacción, Ru, el conjunto de registros creados mediante la ejecución de la transacción , Rl y el filtro Bloom compuesto a partir de la información de esos registros, Rb:
R = (R;Ru;Rb;Rl)
¿Alguien puede dar más detalles sobre cómo Rl
se estructuran estos (registros) y cómo Rb
se construyen los (filtros de floración) a partir de ellos?
He estado investigando sobre los filtros de floración y Broder y Mitzenmacher afirman que:
Siempre que se use una lista o un conjunto, y el espacio sea escaso, considere usar un filtro Bloom si se puede mitigar el efecto de los falsos positivos.
Entonces, ¿cómo se relaciona esto con el diseño racional de Ethereum?
Los eventos en el sistema Ethereum deben buscarse fácilmente, de modo que las aplicaciones puedan filtrar y mostrar eventos, incluidos los históricos, sin sobrecargas indebidas. Al mismo tiempo, el espacio de almacenamiento es costoso, por lo que no queremos almacenar muchos datos duplicados, como la lista de transacciones y los registros que generan. El filtro de floración de registros existe para resolver esto.
Cuando se genera o verifica un bloque, la dirección de cualquier contrato de registro y todos los campos indexados de los registros generados al ejecutar esas transacciones se agregan a un filtro de floración, que se incluye en el encabezado del bloque. Los registros reales no se incluyen en los datos del bloque, para ahorrar espacio.
Cuando una aplicación quiere encontrar todas las entradas de registro de un contrato determinado, o con campos indexados específicos (o ambos), el nodo puede escanear rápidamente el encabezado de cada bloque, verificando el filtro de floración para ver si puede contener registros relevantes. Si lo hace, el nodo vuelve a ejecutar las transacciones de ese bloque, regenerando los registros y devolviendo los relevantes a la aplicación.
Henrique Barcelos
nick johnson
Henrique Barcelos
nick johnson
Henrique Barcelos
k
hashes, conk>=1
, pero cuandok=1
, se comporta exactamente como un hash. Si usamos solo Keccac-256, ¿cuáles son las ventajas?nick johnson
thomas jay prisa
thomas jay prisa
thomas jay prisa
nick johnson
alper