首先在BitcoinJ FrameWork中面临无尽的未决交易
主要文档说它可以由Replace-By-Fee制造。因此,您需要采用旧交易并根据之前的交易创建新交易。
听起来不错,但是如何使用Bitcoinj框架正确地创建另一个框架?
NetworkParameters params = MainNetParams.get();
WalletAppKit wallet = new WalletAppKit(params, new File("."), "_mywallet");
walletKit.startAsync();
walletKit.awaitRunning();
Wallet wallet = walletKit.wallet();
... 有一个待处理
ArrayList<Transaction> pendingList = new ArrayList<>(wallet.getPendingTransactions()); Transaction nextTx = new Transaction(pendingList.get(0)); // → throws Exeption
答案 0 :(得分:1)
好的,我解决了。
当您有无限个待处理的交易时,首先需要确保将其标记为“按费用替换”,您可以致电:
ArrayList<Transaction> pendingList = new ArrayList<>(wallet.getPendingTransactions());
pendingList.get(0).verify(); // Read console to see transaction info
之后,您需要使用以下代码来实现按费用替换算法:
Transaction transaction = pendingList.get(0);
SendRequest request = SendRequest.forTx(transaction);
request.feePerKb = Transaction.REFERENCE_DEFAULT_MIN_TX_FEE; // Or you can make other highter fee to spped it up
wallet.completeTx(request);
wallet.commitTx(request);
在输出中,您将在此事务详细信息中看到更多的TransactionOutputs。
就这样