Author

Topic: process flow of transactions > mempool / full-nodes (Read 118 times)

sr. member
Activity: 336
Merit: 365
The Alliance Of Bitcointalk Translators - ENG>PID

I'm not so sure this is correct.

John's Bitcoincore full node will likely see the transaction, even in an unconfirmed state, because the transaction will be propagated from other nodes' mempools. This is exactly how you can see incoming transactions in your wallet even before they are confirmed.


Apologies for the confusion. I recently remembered a similar scenario and decided to test if both wallets would show the unconfirmed transaction. Initially, the transaction didn't appear on the second wallet, but now I understand why. When I initiated the transaction, the first wallet broadcasted it, expecting the second wallet to synchronize and update accordingly. However, this synchronization didn't happen immediately. Only after I received one confirmation did I check again and noticed the transaction displayed on the second wallet.

This experience taught me that the second wallet may not show unconfirmed transactions until they're added to a block or confirmed, which I now know was wrong. Thank you for the correction, I've also learned from this and corrected a wrong experience or idea.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
I'm not so sure this is correct.

John's Bitcoincore full node will likely see the transaction, even in an unconfirmed state, because the transaction will be propagated from other nodes' mempools. This is exactly how you can see incoming transactions in your wallet even before they are confirmed.

I can confirm this. The transactions both appeared on the full-node. This is why I said ranochigo was correct. However thanks to all of you. I did put this question because I wanted to learn more about the process of mempool, I don't care about if the transactions will get confirmed soon or later. I am interested in learning the mempool process.

My questions have been successfully answered. Thanks again to all of you and have a nice day.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
Thanks to both of you for the explanation. Now after the discussion with a friend I tried this on my own. Ranochigo was correct, both transactions appeared in the full-node. One more question: is there a way to see what minrelayfee setting is used by another node or is this opaque to me as a 'foreigner' ? And is there a default value for minrelayfee that is in effect by Bitcoin core or does this value change within the different Bitcoin core versions ?
The default value is 1 sat/vbyte. The value cannot be seen by the peers, and it is dynamic, depending on the memory constraints of each Bitcoin Core instance and what is contained in each of the mempools. You can have a rough gauge using sites such as mempool.info, but the margin of error is pretty high.

All in all, the confirmation time would be dependent on if the miners are able to see your transactions and thereby mining it. If your transaction suffers from poor propagation, then your transactions wouldn't be confirmed so soon either.
legendary
Activity: 1624
Merit: 2594
Top Crypto Casino
John's full node, doesn't immediately notice a transaction until it's confirmed or added to a block. Because John didn't use his own node for this, but instead used a different Blockchain explorer, the transaction needs to pass through the mempool of that service's node. Other nodes connected to the network might also see the transaction while it's in the mempool. However, John's Bitcoincore full node won't show the updated balance until the transaction is confirmed or added to a block.

I'm not so sure this is correct.

John's Bitcoincore full node will likely see the transaction, even in an unconfirmed state, because the transaction will be propagated from other nodes' mempools. This is exactly how you can see incoming transactions in your wallet even before they are confirmed.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Thanks to both of you for the explanation. Now after the discussion with a friend I tried this on my own. Ranochigo was correct, both transactions appeared in the full-node. One more question: is there a way to see what minrelayfee setting is used by another node or is this opaque to me as a 'foreigner' ? And is there a default value for minrelayfee that is in effect by Bitcoin core or does this value change within the different Bitcoin core versions ?
sr. member
Activity: 336
Merit: 365
The Alliance Of Bitcointalk Translators - ENG>PID
 have been independently from each other transmitted through the described way. One has a very low fee of 1 sat/vB and the other one has a fee of 20 sat/vB. The latter one most likely will be confirmed in the next hour while the first one likely will stay unconf for weeks or months and never gets a confirmation. Will only the ladder one appear in Bitcoin Core ?

Since the fee for the first transaction is very low, it might not show up on Bitcoin core or any block explorer. It will have to remain unconfirmed until it is rebroadcasted with a higher fee. Or might even be dropped after awhile and returns to his wallet.


Question:
What would John's full node see when John fires up Bitcoin core? Does it notice anything at all? Does John's full node poll all his connected node partners at regular intervals and see this unconfirmed TX? Would John now see a lower account balance in his full node, even though the TX was not performed on his full node but is still known in the network and even though it is unconfirmed? Or will John's full node never seen anything as long as the TX gets a confirmation ?


John's full node, doesn't immediately notice a transaction until it's confirmed or added to a block. Because John didn't use his own node for this, but instead used a different Blockchain explorer, the transaction needs to pass through the mempool of that service's node. Other nodes connected to the network might also see the transaction while it's in the mempool. However, John's Bitcoincore full node won't show the updated balance until the transaction is confirmed or added to a block.
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
Can you elaborate on your last sentence, please. Let's compare two transactions that have been independently from each other transmitted through the described way. One has a very low fee of 1 sat/vB and the other one has a fee of 20 sat/vB. The latter one most likely will be confirmed in the next hour while the first one likely will stay unconf for weeks or months and never gets a confirmation. Will only the ladder one appear in Bitcoin Core ?
No. Propagation is affected by a myriad of factors and one of which is the minimum relay fee. This determines whether each individual nodes (or even your own node) would accept the transaction into a mempool and continue to propagate. Let's say the MinRelayFee is set at 5 sat/vB for your node and a good proportion of the other nodes on the network, your 1sat/vB would not be propagated well and wouldn't be seen by your node. Conversely, the 20sat/vB transaction is likely to have a decent propagation as it doesn't face the MinRelayFee limitation. If the MinRelayFee is 1sat/vB for the majority of the network, then you would likely be able to see that transaction because it is propagated well.

You would have to understand how Bitcoin works first, by how the transaction propagates and how nodes interacts on the network. Nodes communicate new blocks or transactions by sending inv messages to notify each other. If the transaction is propagated to your node, then you would be able to see the transaction, or else you won't be able to see it.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
Your node would see the transaction as per normal.

Your blockexplorer is well connected to their peers as well and your transactions will be propagated normally to the rest of the network. As such, you would see your transaction in your Bitcoin Core as if you have broadcasted it from your own Bitcoin Core.

Propagation takes place rather quickly and your peers would see it within a minute or two. It would be a different story if your transaction is non standard or pays a low fee. Propagation could be bad in that case.

Can you elaborate on your last sentence, please. Let's compare two transactions that have been independently from each other transmitted through the described way. One has a very low fee of 1 sat/vB and the other one has a fee of 20 sat/vB. The latter one most likely will be confirmed in the next hour while the first one likely will stay unconf for weeks or months and never gets a confirmation. Will only the ladder one appear in Bitcoin Core ?
legendary
Activity: 3038
Merit: 4418
Crypto Swap Exchange
Your node would see the transaction as per normal.

Your blockexplorer is well connected to their peers as well and your transactions will be propagated normally to the rest of the network. As such, you would see your transaction in your Bitcoin Core as if you have broadcasted it from your own Bitcoin Core.

Propagation takes place rather quickly and your peers would see it within a minute or two. It would be a different story if your transaction is non standard or pays a low fee. Propagation could be bad in that case.
hero member
Activity: 630
Merit: 731
Bitcoin g33k
The following scenario: John is the owner of the private key for the address 123EX456 and uses Bitcoin Core. He operates a full node that is correctly connected and up to date. John manually creates a raw transaction, signs it and feeds it into the Bitcoin network, but does not use his full node but one of the well-known large blockchain explorers that allows a signed transaction to be sent. The transaction has 123EX456 as input and the output address of his friend Bill. The transaction is successfully submitted, and the transaction can be viewed on the block explorers, even though it is unconfirmed.

Question:
What would John's full node see when John fires up Bitcoin core? Does it notice anything at all? Does John's full node poll all his connected node partners at regular intervals and see this unconfirmed TX? Would John now see a lower account balance in his full node, even though the TX was not performed on his full node but is still known in the network and even though it is unconfirmed? Or will John's full node never seen anything as long as the TX gets a confirmation ?

I am trying to understand the context of the workflow. I am not yet clear what types of mempool there are and I do not yet understand in which mempool the TX submitted by John has ended up. He had used a public service on the web to submit the transaction, so did the TX just end up in the mempool of the full node of that web service and is waiting for confirmation?
Jump to: