Thank you for all the great information man. If I may just ask one more thing. When a transaction happens, how's the entry point to the bitcoin network figured out? Suppose, I make a transaction on my machine. This transaction is turned into a data packet, and sent to my machines default gateway. Where does it go to from there? Where are the packets from my machine routed to? Because Bitcoin is a decentralized network, there's no central point of entry( or is there? ) I'm just confused with how this part works
Thank you for the reply man. I just have one more question. Every individual miner is responsible for validating the transaction that they include in their block, right? How do they do that? How do they make sure that a tx is valid? And not insert fake transactions of their own in there?
Hi, I wanted to ask if my understanding of how bitcoin works was correct.
A transaction is made The transaction gets sent across the miners network The miners validate that transaction and it gets added to the transactions pool From there some miner will pick up that tx and add to his block Once the miners block is filled he will start calculating the value for nonce required to validate that block Once nonce is achieved, the block gets added to the blockchain In the meantime, if someone else managed to publish a new block then this block is cancelled and the miner then again picks up new transactions from the tx pool.
Is this all right? Or are there any additions to it?
There are a few newer tools written in Go, namely btcd and lnd. I think a lot of it is that more people are familiar with using C and have been using C for longer. I'm not sure anybody is particularly against using Go, it's just the nature of a newer language.
So just like the C source code for bitcoin, I can fork this code and experiment?