Full Clients in the future [combined summary]



Individual post summaries: Click here to read the original discussion on the bitcoin-dev mailing list

Published on: 2012-06-03T14:17:42+00:00


Summary:

The writer discusses the challenges of storing transactions in a blockchain, particularly when it comes to scaling down to smaller devices. While the current approach used by Satoshi is sensible, it requires storing all chain headers in RAM, which may not be feasible for devices with limited memory. BitcoinJ avoids this problem but introduces other issues by avoiding the use of a database engine, which can impact performance on older phones. The goal is to find a solution that works for both small and large devices without compromising efficiency.In light of a poor code decision, the developer of Armory's blockchain utilities is planning to upgrade the system and wants to do it "right" this time. They are seeking input from other developers who will eventually have to deal with similar challenges. However, the developer is concerned about the feasibility of holding transaction files or pointers in RAM in the future, as even this could overwhelm standard RAM sizes. Without blockchain compression, the most viable solution would likely be complex.One proposed solution involves storing all transactions as 10-byte "file-references" in a multimap indexed by the first 6 bytes of the tx-hash. This allows for better trade-offs compared to storing all 32 bytes, but if there are billions of transactions in the blockchain, each node would require around 48 GB of RAM to track all the data. The developer is unsure if mmap() is the right solution for this issue and is looking for alternative ways to manage a multi-terabyte blockchain if storing references to each transaction becomes too burdensome for available RAM.The developer believes that blockchain compression will become more widespread in the future, but acknowledges that not everyone shares this belief. Some users and developers may want to maintain everything under all circumstances. Therefore, the developer is open to serious proposals on how to address this issue and find a suitable solution for managing a large blockchain.


Updated on: 2023-08-01T03:33:33.227597+00:00