Bitcoin Full Node: Key ConceptsBitcoin Full Node: Key Concepts
Let's explore the main components and connections of a bitcoin full node
1. Full Node Basics1. Full Node Basics
A Full Node downloads and verifies all blocks and transactions on the Bitcoin network
2. Inbound/Outbound Connections2. Inbound/Outbound Connections
- Inbound Connections:
-- Initiated by external nodes connecting to your node.
-- Accepts up to 117 connections from other nodes requesting data. - Outbound Connections:
-- Initiated by your node connecting to external nodes.
-- Establishes 8 outbound connections for data synchronization.
3. Core Components3. Core Components
- Chain State: Tracks UTXOs (Unspent Transaction Outputs).
- Blocks DB: Stores all block data.
- Mempool: Temporary storage for unconfirmed transactions.
4. Communication Protocols4. Communication Protocols
- RPC: Allows local applications to interact with the node.
- HTTP & GUI: Provides user interfaces for interaction.
- ZMQ: Asynchronous messaging for transaction/block notifications.
5. Banlist & Whitelist5. Banlist & Whitelist
- Banlist: Blocks nodes with suspicious behavior.
- Whitelist: Grants special permissions to trusted nodes.
Upcoming PostsUpcoming Posts
- MuSig
- MuSig2
Awesome work! I'd like to ask if you can expand some more on the contents, as I think that this is an amazing start! Also, shouldn't policy rules have a place in the above as well?
I think I might need to make a separate illustration for policy rules if that’s something you’re interested in
Make it as wild and technical as possible!Make it as wild and technical as possible!
deal 🤝
Awesome illustrations! Thanks.
Questions:
The
bitcoindclient has a-maxconnectionsconfiguration option. Setting-maxconnections=Nspecifies the total number of connections, including both incoming and ourbound connections (the default is 125, 8 outbound and 117 inbound)Nodes are identified by their IP addresses. If a node misbehaves => it gets added to its "ban list" => so it won’t listen to that node anymore (The more people that "ban" that node, the less effect it has on the network)
Misbehaving includes things like spamming mempool messages, relaying invalid transactions, and broadcasting invalid blocks (Reference: https://bitcoin.stackexchange.com/questions/48834#48835)
Thank you for following up and explaining that in detail!
Nice illustrations!
Thank you @Bit_Alb
Great explanation, thanks a lot.
Glad to hear that! thanks