Cada vez que un nodo recibe una transacción, el nodo verifica su validez. Con ese fin, verifica para cada entrada de transacción si esa entrada es parte del conjunto UTXO. Tengo entendido que el conjunto UTXO se almacena en la base de datos chainstate, que se mantiene en una LevelDB
estructura.
Anteriormente pensé que el conjunto UTXO se mantenía disponible en la memoria, pero como supe que actualmente tiene un tamaño de aproximadamente 1.2GiB , parece poco probable.
Entonces, asumo que chainstate-db está almacenado en el disco, pero se accede varias veces por segundo para verificar las entradas de transacciones. ¿Qué cantidad de uso de memoria induce esto en un nodo?
Tiene razón, el conjunto UTXO se almacena en el disco en el directorio .bitcoin/chainstate usando leveldb. Se almacena en estado comprimido y el tamaño actual es de alrededor de 1,5 GB.
Para acelerar el acceso, bitcoind usa un caché en la memoria que se puede configurar usando la opción -dbcache.
Entonces, asumo que chainstate-db está almacenado en el disco, pero se accede varias veces por segundo para verificar las entradas de transacciones. ¿Qué cantidad de uso de memoria induce esto en un nodo?
Acceder a la base de datos leveldb en sí es como acceder a cualquier otra base de datos nosql. Básicamente, busca la clave que es el utxo y obtiene un valor como salida que necesita deserializar y almacenar en una variable de memoria
-dbcache
la cantidad de memoria a largo plazo con algunos picos cada vez que acceda a la base de datos?
Janes