Published on: 2015-11-20T14:15:20+00:00
The discussions focused on the issue of consensus failures in Bitcoin. There are two types of consensus failures to consider: Type 1, where one implementation says "yes" or "no" while the other says "I don't know," and Type 2, where one implementation says "yes" and the other says "no" due to a bug. It was suggested that multiple competing implementations should be used to address these issues. In the event of a Type 2 failure, it was proposed that Core should accept a rogue transaction that creates more bitcoins and allow other implementations to fork away from it. The conversation also touched on the classification of consensus failures and the philosophical aspects of Bitcoin governance.In another discussion, the use of RocksDB as a replacement for LevelDB in Bitcoin was mentioned. While RocksDB is optimized for big databases running on multiple cores, concerns were raised about its suitability for spinning disks. The reliability of LevelDB was also discussed, with participants expressing their intention to explore alternative options due to bugs and reliability issues. Despite its challenges, LevelDB has remained popular among Bitcoin developers for its simplicity and ease of use.The importance of UTXO storage in Bitcoin was emphasized, as the choice of database technology can impact consensus protocol failure. Consistency between all nodes was deemed more important than having "right" UTXO storage. Inconsistencies in database behavior can lead to inconsistencies in consensus state and potential theft. The need for vigilance in identifying possible errors and ensuring equivalence under all inputs was highlighted.Bitcoin Unlimited explored the concept of "meta-cognition" to decentralize development and promote bottom-up governance. The conversation discussed the challenges of using multiple database technologies in Bitcoin and the potential for inconsistencies in determining the validity of transactions across nodes.Jeff Garzik has started working on an implementation to replace LevelDB with SQLite. The implementation is still a work in progress and needs further testing. It has been suggested that instead of implementing it as a replacement, multiple backends should be supported to allow for migration. The author also recommends considering LMDB as an alternative, but notes its limitations on 32-bit systems requiring over 2gb of storage.Overall, the Bitcoin project is actively exploring alternatives to the unmaintained LevelDB database. Jeff Garzik's implementation to replace LevelDB with SQLite is currently underway, but still needs further testing and refinement. The goal is to find a maintained and reliable alternative to LevelDB.
Updated on: 2023-08-01T16:45:02.908700+00:00