Full Clients in the future - Blockchain management



Summary:

The developer of Armory's blockchain utilities has decided to upgrade the system as a result of a poor code decision. In an effort to avoid such mistakes in the future, he wants to do it "right" this time around and is inviting discussion from other developers who will have to deal with this eventually. However, the developer is struggling with the idea that in a few years, it may not be feasible to hold transaction files/pointers in RAM, as even this could overwhelm standard RAM sizes. Without any degree of blockchain compression, the most general solution would likely be a complicated one. One solution proposed by the developer involves storing all transactions as 10-byte "file-references," which are stored in a multimap indexed by the first 6 bytes of the tx-hash. While this allows for better trade-offs compared to storing all 32 bytes, if there are a billion transactions in the blockchain, each node would require approximately 48 GB of RAM to track all the data. The developer is unsure whether mmap() is the right solution for this issue.The developer is seeking other ways to maintain a multi-terabyte blockchain, assuming that storing references to each transaction would overwhelm available RAM. He believes that blockchain compression will become ubiquitous in the future but acknowledges that not everyone shares this belief, and some users/devs may want to maintain everything under all circumstances. The developer is open to hearing serious proposals on how to handle this issue.


Updated on: 2023-06-06T04:51:22.972038+00:00