Notificación de error falso (doble gasto) 'código' => -4, 'mensaje'

Ahora y luego parece que recibo una notificación de error falsa consistente.

Mensaje de error:

Request error: array ( 'code' => -4, 'message' => 'Error: ¡La transacción fue rechazada! Esto podría suceder si algunas de las monedas en su billetera ya se gastaron, como si usó una copia del la billetera y las monedas se gastaron en la copia pero no se marcaron como gastadas aquí.', ).

Después de la notificación, getbalance y getbalance '' '1' están en conflicto. Getbalance ya no muestra correctamente el saldo real. A pesar del error, las transacciones de bitcoin se transmiten correctamente a la red y en un par de días (la mayoría de las veces) las transacciones se procesan con éxito.

Información sobre el cliente

{
  "version": 130000,
  "protocolversion": 70014,
  "walletversion": 130000,
  "balance": 13.56365098,
  "blocks": 455269,
  "timeoffset": 0,
  "connections": 8,
  "proxy": "",
  "difficulty": 440779902286.5892,
  "testnet": false,
  "keypoololdest": 1488349424,
  "keypoolsize": 100,
  "paytxfee": 0.00150000,
  "relayfee": 0.00010000,
  "errors": ""
}

¿Alguien aquí tiene los mismos problemas últimamente?

¿Hay alguna posibilidad de que puedas probar 0.14.0rc1 o posterior? Tiene un mensaje de error más útil para ese error.

Respuestas (1)

La razón de esto podría ser que pasa una larga cadena de transacciones no confirmadas. En 0.14, Core mejoró este comportamiento y agregó una opción de inicio llamada -walletrejectlongchains(debe estar habilitada, la opción predeterminada es desactivada).

De lo contrario, su billetera podría gastar largas cadenas de monedas no confirmadas, pero su nodo/mempool no las aceptará. Además, eche un vistazo a la -limitancestorcountconfiguración y considere leer la solicitud de extracción aquí

Hola Jonas, gracias por tu respuesta! ¿Podría ser que el saldo del cliente se descuente sin que la transacción llegue realmente al mempool? Ayer hice una transacción y recibí el mensaje 404 descrito anteriormente. La cantidad fue deducida del saldo. Al verificar si el tx estaba en el mempool por: getmempoolentry txid la respuesta es: código de error: -5 mensaje de error: Transaction not in mempool ¿Podría ser que el cliente asume que las monedas se envían a pesar de no ser transmitidas a la red? ¿Y cómo gastar/enviar las monedas de nuevo?
Sólo para estar seguro de que te entiendo correctamente. En cuanto a la larga cadena de transacciones no confirmadas. ¿Se considera que el cambio de transacción es parte de la larga cadena de transacciones no confirmadas? Como en este ejemplo cuando empiezo con un saldo de 25 BTC en una sola dirección y empiezo a enviar 100 transacciones en <1 hora sin que ninguna de ellas sea confirmada.
Hola. La transacción probablemente se agregó con éxito a la billetera, pero no se pudo transmitir. Por lo tanto, el saldo es correcto, la transacción se realizó... pero debido a las políticas de su mempool local, no se pudo transmitir. Puede intentar aumentar su -limitancestorcount (pero otros pares podrían rechazarlo) o intentar "abandonar" la transacción (busque abandontransaction).