Recebi a seguinte pergunta em PM. Como não tenho uma resposta definitiva, trouxe a questão em publico porque isso beneficia mais gente e dá a mais pessoas a oportunidade de opinar. A pergunta foi assim (devidamente anonimizada):
Gostaria de saber se você me ensinaria a executar um double spend pela carteira BitcoinQT
Tenho uma transação em que coloquei um valor de taxa muito baixo e por isso a mesma não foi confirmada...
pelo que entendi, a carteira que estou usando vai continuar a reenviar a transação para a blockchain até que essa seja confirmada... Tem como eu quebrar esse loop?
Vamos começar pelo fácil: como quebrar o loop?
- Excluindo a transação diretamente na carteira com ferramentas "avançadas" como essa:
https://github.com/jackjack-jj/pywallet (obs. nunca usei, então não sei nem se funciona com as versões atuais)
- Exportando todas as PK da carteira e importando em uma nova carteira. (
veja aqui como exportá-las e
aqui como importá-las).
Lembrando que é necessário deixar a carteira offline por 48 a 72h para que a rede "esqueça" a transação. Senão sua carteira vai recer a transação de outro node e começar o loop todo de novo.
Agora existe a solução de fazer o double spend. (nunca fiz, então minha reposta é só uma indicação do caminho a seguir, mas vc vai precisar trilhar ele sozinho). Após a versão 0.12.0 o bitcoin-qt permite a substituição de transações por outra com fee maior. Só que ela não te dá uma interface pra fazer isso, então vc tem de criar a transação "manualmente". Existe essa ferramenta que encontrei, desenvolvida pelos proprios devs do bitcoin para testar essa funcionalidade:
https://github.com/petertodd/replace-by-fee-toolsSe você quer apenas que a transação se complete, use essa ferramenta para aumentar a fee.
Eu passei por um problema semelhante, mas como meu full node estava desatualizado, no tempo que eu levei para sincronizar meu bitcoin-qt a transação original foi confirmada, então acabei não tendo a oportunidade de testar.
Se mais alguem tiver ideias de como tratar esse problema, sintam-se a vontade de postar abaixo.