Published on: 2012-08-13T20:00:36+00:00
BitcoinJS is implementing a Distributed Hash Table (DHT) to store a user-defined percentage of the blockchain index locally, with any missed data being resolved through network queries. This feature allows users to run BitcoinJS nodes of varying sizes, providing equal querying capabilities without the need to download the entire blockchain. The DHT network is extensible, allowing for the inclusion of decentralized pool protocols. The aim of this implementation is to make it easier to incorporate custom services into the standard protocol and encourage compatibility with Bitcoin's mechanisms. However, there may be resistance to adding extra functionality to the core Bitcoin network.In August 2012, Jeff Garzik discussed the need for basic rules on extending the P2P command set, as some cases require introduction mechanisms. Stefan Thomas proposed a solution to announce custom protocol extensions, addressing the limitation of using up the available NODE_* flags. Jeff Garzik responded with alternative suggestions, including modifying 'version' and introducing a new "getcaps" command. However, gmaxwell highlighted the issue of discovering and utilizing these capabilities effectively. Jeff emphasized the importance of establishing rules for extending the P2P command set, considering that clients will inevitably implement their own commands.Discussions have taken place regarding the addition of extra functionality to the core Bitcoin network. It is anticipated that there will be opposition to this idea, leading individuals to create separate P2P networks for new applications by reusing existing code with different peer discovery seeds. For instance, if someone wants to develop a language translation app requiring floodfill broadcasting of invalid transactions, an independent network may be more suitable. A more thorough exploration of use cases is needed to determine the feasibility of incorporating additional functionality into the core Bitcoin network.Stefan Thomas has devised a standardized approach to announce custom protocol extensions without depleting the available NODE_* flags. Recognizing the limited capacity provided by the current mechanism, Stefan's solution can be found on his BIP draft page on the Bitcoin wiki. Feedback from Amir Taaki, Mike Hearn, and Pieter Wuille has contributed to refining this solution. A separate BIP addressing peer exchange for custom services has been separated from Stefan's proposal and will undergo further refinement before submission.
Updated on: 2023-08-01T03:52:14.730040+00:00