Published on: 2013-08-19T21:57:06+00:00
In an email exchange from August 2013, John Dillon expressed his support for decentralization and questioned Gavin's target of 10,000 full nodes, believing it to be too few for a distributed system. He also brought up the idea of partial UTXO sets, wondering if they were being ignored and urging for a separate thread to discuss the topic. Wendell agreed with John's points and asked for any GitHub links related to the subject. John criticized Gavin's priorities, specifically the payment protocol's lack of options beyond SSL certified merchants and the absence of a safe way to get money into wallets. He mentioned his own pull request for decentralization and asked which way Gavin planned on voting.In another email conversation, Peter Todd suggested that SPV peers should be deprioritized since they don't contribute back to the network. He proposed a scoring function for node importance, which would prioritize the nodes he connected to over nodes that connected to him to prevent attacks. He also suggested using subsets and considering the active duration of connections. To address I/O exhaustion, a patch should include a thread pool for load requests and a background process for load/parse/filter operations. The network thread message loop would be adjusted to receive futures/callbacks/closure objects with scores of the node. The handling of "getdata" would call a function that requests a load of a block from disk and runs a closure when finished. The function that takes a CBlockIndex and yields a future would add the new task to the job queue(s) and sort the queue using the scoring function. This approach would prioritize good nodes over bad nodes for disk I/O.In their email exchange, Gavin Andresen and Peter Todd discussed the importance of Simplified Payment Verification (SPV) peers to the growth of Bitcoin. Peter argued that SPV peers are more important than nodes because many lightweight devices rely on them. He suggested that SPV peers should be allowed to contribute back to the network with spare bandwidth for decentralization. Gavin was criticized for his priorities regarding the payment protocol, which only included options for SSL certified merchants. The exchange ended with a question about how Gavin planned to vote on Peter's decentralization pull request.Gavin Andresen argued that SPV peers are incredibly important to the growth of Bitcoin and should not be heavily deprioritized. He stated that Bitcoin would be just fine with 10,000 full nodes as the backbone of the network, but would be nothing without support for lightweight SPV devices. He preferred the decentralized SPV model over the Electrum model where lightweight devices rely solely on a full node. However, he emphasized the importance of maintaining consensus and security while serving SPV peers. Measures such as requiring a bitcointalk account or a small fee for an account could limit abuse. Supporting SPV peers while ensuring consensus and security is crucial.In a recent statement, Peter suggested deprioritizing SPV peers if they don't contribute back to the network. However, Gavin argued that SPV peers are vital to Bitcoin's growth and should not be deprioritized. Prioritizing SPV peers and supporting their growth is essential for the healthy development of Bitcoin.The writer of a post conducted tests with a variant of attack and discovered that it is easy to saturate a node's disk IO bandwidth, rendering it useless to its peers. The writer plans to repeat the attack by distributing it from multiple peers to make it indistinguishable from SPV wallets rescanning the chain for old transactions. Since SPV peers do not contribute back to the network, the writer suggests deprioritizing them and serving them only with spare resources. The challenge is finding a limited resource that can prioritize SPV nodes over attackers. Time and transaction fees have limitations, so other solutions need to be explored.
Updated on: 2023-08-01T05:40:29.585825+00:00