come sbloccare stuck o unconfirmed transaction

August 13, 2018
August 13, 2018 filo1504

come sbloccare stuck o unconfirmed transaction

Per alcuni motivi ad esempio:

-invio di una transazione con poche fee

-invio di transazione da wallet non aggiornato all’update mandatario (accade spesso nel caso di masternode)

-fare una transazione con input ancora non confermati

Può succedere che ti ritroverai ad avere delle transazioni bloccate, senza conferme nel proprio wallet e ti vedrai però scalato il saldo disponibile.

Cosa si può fare per risolvere questo problema?

  1. Possiamo aspettare la conferma
  2. Possiamo chiedere al network di dimenticarsi della transazione, e rimandarla
  3. Chiedere ad una pool di miners di confermarla

Aspettare la conferma

Se non ci troviamo a nostro agio con le procedure riportate più in basso in questa guida, possiamo provare ad aspettare la conferma, dobbiamo però ricordare al network della nostra transazione.

Come ripushare una transazione

Puoi ricordare ai miners ed ai nodi della tua transazione, ri-pushandola per non farla uscire dalla mempool sperando che questa volta passi.

In realtà basta tenere il wallet aperto dato che la maggioranza di essi fa rebroadcast in automatico ogni tot tempo.

Puoi anche farlo manualmente da alcuni wallet come i core.

Vai sulla console di debug e digita.

getrawtransaction iddellatransazione

Poi

Sendrawtransaction formatohexcheabbiamoricevutoprima

Se non hai un wallet core hai bisogno di trovare il formato hex della tx e di utilizzare un servizio online.

Vai su https://www.blockchain.com/btc/tx/ digita il tuo txid e al link aggiungi ?format=hex sulla parte finale

Verrà più o meno cosi https://blockchain.info/tx/2bad607a6bdc42db6f8c1bc0edcad83a30794820a44f47a7c62a33c83c6a4649?format=hex

E ti darà il formato hex

01000000018c86646a92755251839ecf4cd0447f00fa669fff8b784f3640e875af55fc81ec01000000fc00473044022070d7b7355abfde413698b30b68611faf7f356391711cca5717a210e4d4797de40220347f7197ad49ab41f0a42f3ecbb84202d392113506e421efebf92d401b07077b0147304402201fc4a019387347a6c29853eee11e29133381405b7096209ebbd6c27e024984590220490759728d056a954a4c927f371f176baf73e63c409c10a2805bf9e93b86832f014c69522103385adff37fd3d0a620ebc4e9866e81dda8ba8616e5ebcae899c7f51899267ae721034c08511718f947d1a3e152195c5e2756588e3e0c2c7730927eb6647af494210721033da9f8938a5b947a723df21b73fbd3985b719249324d2c705acfb97d63a5df9e53aeffffffff0280d1f008000000001976a914c7c8efc4bfab75d612868b802ad765b4e3c5c18388acc3406b0d0000000017a914735d4de855597997b21588cc78ca2db696be1c5d8700000000

Ora puoi utilizzare questi servizi per ri pushare la transazione e non farla scordare dal network.

Possiamo chiedere al network di dimenticarsi della transazione, e rimandarla

Se una transazione rimane unconfirmed per troppo tempo, potrebbe venir scordata dal network e il saldo utilizzato come input tornerebbe nel nostro wallet, generalmente impiega 3 giorni circa senza un rebroadcast.

Da un wallet core puoi provare dalla tab transazioni a cliccare con il destro sulla transazione in questione e selezionare “abbandona transazione”. Se questo non è possibile puoi andare nella cartella del wallet in questione in windows generalmente è su %appdata%/roaming/——core e cancellare il file mempool.dat

Su file di configurazione aggiungi la linea walletbroadcast=0, e riapri il wallet in questo modo dovresti essere in grado di cliccare su abbandona transazione.

Chiudi il wallet e togli dal file di configurazione walletbroadcast=0 salva e riapri il wallet.

Accertandoti di avere il wallet aggiornato (nel caso dei masternode) Rimanda la transazione con gli stessi input ma con fee maggiori.

Utilizza gli stessi input, molti hanno perso soldi utilizzando questa procedura quindi attenzione.

Se anche cosi non dovesse funzionare puoi utilizzare la funzione zapwallettxes=1, puoi scriverla dalla console di debug o per alcuni wallet core lo trovi sulla tab repair wallet. Questo cancella tutte le transazioni non confermate e alla riapertura del portafoglio puoi rimandare la transazione aumentando le fee o magari nel caso di un update mandatario puoi assicurarti di avere il wallet aggiornato e rimandare la transazione.

Possiamo chiedere ai miners di confermarla

Possiamo utilizzare questi due servizi a pagamento, per farci confermare la transazione dai miners.

https://pushtx.btc.com/

https://pool.viabtc.com/tools/txaccelerator/

basta inserire li la tx id della transazione.

Ti lascio altre guide per i casi estremamente rari dove il destinatario ha una transazione non confermata, e altre guide per altri wallet come electrum.

bitcoin core, ricevi transazione non confermata come risolvere

  1. Generate a new address in the same wallet. We’ll call this NEW_ADDR.
  2. On the Transactions tab, right click the stuck transaction and choose “copy transaction ID”. Paste to a text editor in order to save the value somewhere. We’ll call this value STUCK_TX.
  3. Go to Help -> Debug Window -> Console tab.
  4. Type gettransaction STUCK_TX. We are going to collect several pieces of data from the output. First, looking at the “details” section, double-check that this actually is the stuck transaction that you’re thinking of; if you accidentally selected the wrong transaction, you could lose BTC. Under “details”, call the number next to “vout” STUCK_VOUT; call the number next to “amount” STUCK_AMOUNT. When copying values, do not include quotes.
  5. From STUCK_AMOUNT, subtract the total fee which you calculated in the first section on this page. Call this number NEW_AMOUNT. For example, if the stuck transaction sends you 1 BTC and you need to add a fee of 0.001 BTC, NEW_AMOUNT is 0.999.
  6. Type createrawtransaction ‘[{“txid”:”STUCK_TX”,”vout”:STUCK_VOUT}]’ ‘{“NEW_ADDR”:NEW_AMOUNT}’. Note that you must make four substitutions in this command using variables defined previously. When doing so, do not tamper with the quotes; just replace the variable name such as STUCK_TX with the data. Important: If you do not use the correct value for NEW_AMOUNT as previously described, then you could massively overpay the fee. NEW_AMOUNT should be pretty close to the amount of the stuck transaction.
  7. (This step is for double-checking only, but should not be skipped.) Call the output of the previous command NEW_RAWTX. Type decoderawtransaction NEW_RAWTX. Under “vout”, check that “value” is equal to NEW_AMOUNT and “addresses” is equal to NEW_ADDR. Double-check that NEW_AMOUNT is not tons less than STUCK_AMOUNT.
  8. Type signrawtransaction NEW_RAWTX. In the output, copy the data between quotes right after “hex”. Don’t copy the quotes themselves, just what’s in between them. Call this NEW_RAWTX_SIGNED.
  9. Type sendrawtransaction NEW_RAWTX_SIGNED. If you get an error, discard your signed transaction (which may be dangerous) and get help from an expert.

Electrum

As of 2.7.18.

I sent the stuck transaction

If you enabled “Replaceable” when sending the transaction, find the stuck transaction in the History list, right click it, and choose “Increase fee”. Electrum will guide you through it.

If you did not enable “Replaceable” when sending the transaction:

  1. Redo “choosing an appropriate new fee” above using a NEWTX_SIZE of 500.
  2. Create a new address in the same wallet (or a different one, if you want); call this NEW_ADDR.
  3. In your transaction history, right click the stuck transaction and select details.
  4. Under “Outputs”, one of the addresses will usually be highlighted. Copy this address and call it CHANGE_ADDR. If none of the addresses are highlighted, then stop here: you can’t use this method.
  5. Exit the details dialog and go to the “Coins” tab. Find the coin matching the address found above. Right click it and choose “Spend”. If this coin has verylow value, less than what you need to pay in the new fee, then ctrl-click other coins before clicking “spend” in order to add more value.
  6. Send a transaction to NEW_ADDR (ie. a transaction to yourself) with the new, higher fee. The amount of the transaction doesn’t actually matter, but for fee efficiency, it’s best to spend all of the BTC associated with CHANGE_ADDR minus the fee.

I received the stuck transaction

Locate the stuck transaction in the Coins tab. Right click -> Spend. Send this transaction with a high fee. You can send it to an address in the same wallet if you want.

Other wallets

I sent the stuck transaction

Often it’s possible to trick a wallet into bumping fees on sent transactions, but there’s no general set of instructions for doing it on all wallets, unfortunately.

I received the stuck transaction

If you’re using a “wallet” that is actually a Bitcoin bank (eg. Coinbase, Gemini, etc.), then there’s no way to do it.

For real Bitcoin wallets:

Send slightly more than the confirmed balance of your entire wallet to yourself. For example, if you have a 2 BTC confirmed balance and a stuck transaction causing an unconfirmed balance of 0.5 BTC, send 2.01 BTC to yourself. This forces the usage of some of your unconfirmed balance, which is what you want. (Some wallets might not allow this, in which case nothing can be done without switching wallets.) Send this transaction with a very high fee.

Note that sending your entire balance like this totally destroys your privacy by linking together all of the coins in your wallet.

Leave a Reply

Your email address will not be published. Required fields are marked *