首先面临着 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
最佳答案
好的,我解决了。
当您有无限的待处理交易时,您需要做的第一件事是确保其标记为“replace-by-fee”,您可以通过调用以下命令来执行此操作:
ArrayList<Transaction> pendingList = new ArrayList<>(wallet.getPendingTransactions());
pendingList.get(0).verify(); // Read console to see transaction info
之后需要使用下面的代码来实现replace-by-fee算法:
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。
就是这样
关于java - 如何使用 BitcoinJ 创建费用替代 TX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51527896/