obtener error de transacción? [Código -5]

Estoy tratando de leer transacciones sin procesar pero hay un problema; Parece que getrawtransaction solo funciona para transacciones recientes, las transacciones antiguas me dan el siguiente error:

No information available about transaction (code -5)

¿Porqué es eso? ¿Cómo puedo ver transacciones sin procesar de transacciones antiguas? Cuando digo "viejo" es como de hace 5 días. Realmente necesito esas transacciones para obtener las direcciones de los remitentes de cada una, si el "envejecimiento" es el caso, puedo mantener esos datos en mi propia base de datos antes de que envejezcan, pero... Tal vez no se trate de transacciones antiguas/nuevas, tal vez haya otro factor que no me permite leer algunas transacciones sin procesar, ¿saben algo al respecto?

Así es como estoy usando el comando:

Laboral:

getrawtransaction 94628caff8b926f1247779aa687fc5cce5063f3389f291192ce1e52fae9a2655 1

No funciona:

getrawtransaction 6e0f6cc64a08241c62eb93427923e95319c1e16db56ddeefa0c837944ce63d4b 1

¡Gracias!

¿Es esto de BitcoinJ o del cliente estándar?
Es de la consola de depuración de Bitcoind y Bitcoin-qt. Sinceramente, no sé nada de BitcoinJ.
¿Puedes darnos el comando que estás ejecutando?
getrawtransaction 94628caff8b926f1247779aa687fc5cce5063f3389f291192ce1e52fae9a2655 1
getrawtransaction 6e0f6cc64a08241c62eb93427923e95319c1e16db56ddeefa0c837944ce63d4b 1
Esto puede sonar como una pregunta de si está enchufado, pero ¿hay alguna transacción que responda a eso? blockchain.info no parece saberlo.
Esos son dos ejemplos, el primero es una transacción nueva y funciona, el segundo es una transacción antigua y me trae el error, ambas transacciones son transacciones de testnet. ambos se usaron en la consola de depuración de bitcoin-qt
Sí, eso es porque esas son transacciones de testnet.

Respuestas (1)

Desde bitcoind/Bitcoin-qt 0.8, ya no se mantiene ningún índice de transacción de forma predeterminada, ya que no es necesario para la validación en el nuevo modelo de base de datos.

En cambio, solo hay una base de datos de salidas de transacciones no gastadas, que tiene suficiente información para (lentamente) ubicar transacciones en archivos de bloque. getrawtransactionusa esto, pero solo funciona para transacciones que aún no se gastan en la cadena de bloques.

Si desea poder buscar transacciones históricas, debe establecer la txindex=1opción de configuración (o comenzar con el -txindexindicador de línea de comando). Como esta configuración solo se puede establecer cuando se crea la base de datos, deberá reconstruirla desde cero (usando -reindex).

¡Gracias! lo estoy haciendo ahora mismo, ¿cuanto tiempo debe durar el proceso?. "bitcoind.exe -reindex" es la forma de hacerlo, ¿verdad?
"bitcoind.exe -reindex" funcionará, si configuró txindex=1 en bitcoin.conf. Puede tardar entre media hora y varias horas, según el hardware.
Sí, lo hice, supongo que me sentaré y esperaré a que la línea de comando me diga algo, te responderé cuando haya terminado. ¡Gracias!
Como se señaló en el hilo de bitcointalk, no funciona por alguna extraña razón en la primera transacción de bitcoin blockexplorer.com/tx/…
Eso es perfectamente normal, ya que la base de monedas del bloque génesis en realidad no existe desde el punto de vista de las reglas de validación del bloque. No se sabe si esto es un error o intencional, pero esta transacción nunca se agregó a ninguna base de datos, por lo que no se puede gastar. Sin embargo, esto no se puede cambiar de forma segura en este momento (eso técnicamente sería una bifurcación dura...).
@PieterWuille, ¿podría explicar por qué ya no se mantiene un índice tx completo? Por ejemplo, sin el índice tx, ¿cómo puede bitcoind realizar un seguimiento de lo que es una salida no gastada frente a una salida que se ha gastado?
Manteniendo una base de datos compacta separada con solo las salidas no gastadas de las transacciones.