According to your description (having problems while syncing full node), I wonder if your "unconfirmed transaction" is really unconfirmed? Is it already confirmed, or discarded (due to double-spending etc)?
The first problem: "stuck" 0-confirmation transaction
First of all, replace-by-fee is there to deal with "low-fee stuck transactions" problem, you would be able to bump fee with ease if the transaction had RBF enabled.
If your stuck transaction is not so urgent, you may just wait for the mempool to be cleared naturally, then your transaction will finally be confirmed, since the mempool is not so crowded (like old times in 2017) nowadays.
Just watch the last "Mempool size in MB" chart here: https://core.jochen-hoenicke.de/queue/#24h
If you want to "accelerate" or "revert" this transaction, you have two options.
The first option: you may contact a mining pool which provides "transaction accelerating (prioritising)" service, like Poolin or BTC.COM. However, this option can be expensive, and, there won't be any refund.
The second option: "double-spend" by yourself with Electrum, which is usually much cheaper than transaction prioritising services mentioned above, but a bit complicated.
Find out the previous transaction(s) which the stuck transaction is spending from. You may use the getrawtransaction STUCK_TXID true (replace STUCK_TXID with your own stuck transaction ID) command in debug console of Bitcoin Core, or just query it on an online block explorer like https://blockstream.info.
Blockstream explorer shows previous outpoints clearly, where the outpoint is represented in TXID(long alphanumeric text string):INDEX(number) format. For example: this transaction spent 2 previous transactions, which have TXIDs of 00f5854cebdcd318edd325ab07e4157964f225a659302f3f5949ffe07020db4e and 6d4a34592200324f716a92d8d84db8c85bc97189610b1d4bee4fcb7d56713857
Copy raw transaction data of previous transaction(s). You may simply double-click each transaction showed on Bitcoin Core GUI in turn, to find them by transaction ID, and then right-click -> Copy raw transaction.
You may also use the getrawtransaction PREVIOUS_TXID command instead, you need to run this command separately on each PREVIOUS_TXID, if multiple previous transactions were spent.
Create a new Electrum wallet on an offline device, then choose the Import Bitcoin addresses or private keys option.
Import your private keys to Electrum. The wallet won't sync, because there's no internet - that's fine, because we don't want Electrum to fetch back the stuck transaction.
Import the previous transaction(s) by clicking Tools menu -> Load transaction -> From text.
Click the View menu -> Show Coins to show the Coins tab. Then switch to the Coins tab, select all of them, and right-click -> Spend.
Of course, if you are sure about exactly which coins were spent, you won't need to spend all available coins this time, which could reduce the fee cost a bit - but this situation is relatively rare. To keep yourself from off-by-one human errors, you'd better just spend all of them.
Now, you are about to construct a double-spending transaction which will send these coins back to your own wallet, or any other address(es) you want, by clicking Preview button. This time you should choose a higher fee rate (sat/Byte), at least higher than the stuck transaction.
By the way, it is highly recommended to enable replace-by-fee on this transaction, in case of further fee-bumping.
Electrum is able to show QR code of this double-spending transaction. Use another online device to scan it with Electrum, then it could be sent out. You may also try to send it directly after reconnecting the device to Internet.
If the stuck transaction has not yet expired on the Electrum server you are using, broadcasting the double-spending transaction might face some errors. You may try to broadcast it through other methods, eg. block explorers, and sendrawtransaction of Bitcoin Core.
The second problem: Bitcoin Core full node is painful to sync
First, the performance bottleneck usually lies at frequent I/O operations on the chainstate subdirectory, which stores the UTXO database, especially the data directory was placed on an HDD (which is supposed to make the situation worse if the HDD is SMR).
Second, currently, I'm personally not in favor of pruning, because almost all historical transaction history (which is exactly what the gigantic block chain contains) is discarded, thus rescanning becomes limited within recent blocks only. Rescanning happens if you are importing keys/addresses/wallet.dat, or zapwallettxes. In the future, this problem might be finally relieved by some improvements.
If your computer has plenty of available RAM, you may allocate more than 6GB (depends on historical peak UTXO size) of RAM for the database cache (see the Options window) of Bitcoin Core. This tweak effectively removes the I/O bottleneck. (well, you may still face this problem if you are catching up from some date before, you may cat (Linux/Mac) or type all files (use the * wildcard) into /dev/null (Linux/Mac) or nul (Windows) to force the OS to read them once, then they could be cached into the RAM)
If you have both HDD and SSD, you can configure the blocksdir parameter to migrate the gigantic block chain to a cheap-but-slow HDD, while keeping the frequently-accessed chainstate etc on a fast-but-expensive SSD.
2
Possible duplicate of How do I get rid of an unconfirmed transaction on Bitcoin Core 0.14.1?
– chytrik – 2019-10-19T21:16:04.577If you once provided "zapwallettxes" parameter to bitcoin-qt, it would start rescan process, this would be more tricky if you had pruning enabled... – Chris Chen – 2019-10-20T14:53:13.500
It's possible to make your own node forget the unconfirmed transaction, but the process would be a little complicated: https://en.bitcoin.it/wiki/Fee_bumping#Bitcoin_Core_GUI You would need to temporarily break connectivity. You also have to be sure that the newer transaction is spending same coins with the older transaction, thus the two transactions would conflict with each other. You are still not able to make every node on the network to forget the unconfirmed transaction transaction, that's why you should do such "double-spend".
– Chris Chen – 2019-10-20T14:54:34.540Should I export my keys to a software wallet, like electrum? How do I actually do the double spend? Can you refer a link or bitchute channel? Or something, lol. It's been two weeks and I'm kind of getting worried about coinbase. That's who the transaction was to. Do you know if they offer any customer service to remedy this? – dave – 2019-10-20T16:14:14.527