Contents:
While there have been some calls to incentivize users to run full nodes, it may behoove us to take the opposite approach. However, this might be a futile project because it could be made obsolete if the Bitcoin Core developers implement Merkle Tree Pruning, which would greatly decrease the total size of the blockchain.
It seems to me that if we develop a programmatic way of determining this, we could then automatically spool up new nodes on virtualized servers as needed to meet increases in demand. What are we to do?
By deploying a number of these modified nodes throughout the network mesh, we should be able to gain more insight into the total load that the mesh is experiencing. There seems to be a consensus among the community and the core developers that the network is currently under trivial load, but I would prefer to gain more insight and quantify the health of the network so that we can be proactive rather than reactive as Bitcoin use and thus network demand increases.
Update : after months of research and developing software to help collect and analyze internal Bitcoin node metrics , I posted my findings here. Czech Republic Ukraine Spain Korea, Republic of Italy Austria Poland Lithuania Bulgaria Ireland Belgium Romania Hungary Brazil Norway Portugal Slovakia Slovenia Argentina Malaysia Denmark New Zealand Taiwan Latvia India South Africa Mexico Turkey Thailand Greece Croatia Estonia Moldova, Republic of Israel Iran, Islamic Republic of 9.
Chile 8. Cyprus 8.
Vietnam 8. As your network address is known, so is your approximate geographical location.
Connecting many pseudonymous address clusters through their peer-to-peer transactions, connecting them to well known addresses of exchanges and merchants could give a very detailed account of the whole Bitcoin ecosystem. Of course, we and other providers promise not to misuse this power. But what about legal coercion through a court order? A rogue employee bribed by a malicious actor?
Or a hacker gaining access to the backend applications, altering them just so slightly? In the not so distant future, when big business and central banks realise that Bitcoin is challenging their financial monopolies, the fight will be on. Once we leave the honeymoon phase, Bitcoin cannot afford such centralized choke points. It is dangerous for Bitcoin users to outsource their direct network participation to a centralized node. There are a few really big nodes in the network, processing a lot of economic activity. They are actively validating blocks, processing transactions and updating balances.
They verify how many bitcoin belong to which address and can judge whether miners behave according to the desired consensus rules. Some lightweight Bitcoin wallets like our own BitBox App independently check at least proof-of-work requirements and verify if a transaction has been mined using Merkle branch proofs, but these checks cannot provide definitve proof.
Run it on your regular computer, an old laptop or as an always-on network appliance like a Raspberry Pi. Run a node and support the network! But unless you are using your node to verify your transactions, just running an idle full node is not really achieving anything.
In an ad-hoc network like Bitcoin, more nodes do not make it faster or more efficient. What the Bitcoin network really needs are more nodes that enforce the Nakamoto consensus: rules each node follows and applies to decide whether a block or a transaction is valid. Enforcing consensus: but against whom? Well, anyone that likes to profit just that little bit more.
So pretty much everyone. Miners might give themselves a bigger block reward, regular users spend the same bitcoin twice or a business tries to spend a multi-signature contract unilaterally. Why not cheat on the Lightning Network and create a transaction that ignores a timelock?
But ultimately, it comes down to the miners. Imagine a worst-case scenario, where there are only two big economic nodes, some miners and a hundred idle nodes.
What happens if there is business- or miner-driven desire to change the consensus rules, for example to allow bigger blocks?