Published on: 2012-07-06T17:19:59+00:00
Pieter Wuille's performance numbers are considered conservative due to the reference client wasting time in redundant serialization and hashing operations. Profiles on ultraprune support this information, showing that it is the major time sink. Resolving this issue would significantly improve the system's performance. It is important to note that this issue is not directly related to recent proposals for pruning involving an alt chain with an index of unspent coins and addresses merged mined with the main chain, but it could be a step towards such a system.The implementation of a new block/transaction validation system called "ultraprune" has been introduced for the reference client. Instead of using a fully indexed blockchain, which was deemed wasteful, ultraprune keeps a database with only the unspent transaction outputs. This reduces the required storage for such a dataset to less than 70 MB. The stored data is kept in a BDB database file (coins.dat) with indexing and overhead, taking around 130 MB. However, additional non-indexed blocks with metadata about all stored blocks were added to compensate for various functions, such as block connections, wallet transactions, and serving the chain to other nodes.The ultraprune system allows for running a full node with significantly reduced storage requirements. Coins.dat takes up 130 MB, chain.dat occupies 40 MB, and the size of retained blocks plus approximately 12% of that is needed for undo information. Furthermore, the ultraprune system is faster, with a benchmark on a laptop showing that a full import of the blockchain took only 22 minutes. Those interested in experimenting with ultraprune can find the ultraprune branch on GitHub.Despite its advantages, ultraprune also has some drawbacks. Firstly, it is not possible to find a full transaction from its txid. Secondly, transactions that depend on unconfirmed transactions will not be rebroadcasted. Thirdly, only block download and reorganization have been somewhat tested, so caution is advised when using ultraprune. Lastly, fewer consistency checks are possible on the database, and few have been implemented.Although ultraprune is not directly related to recent pruning proposals involving an alt chain with an index of unspent coins and addresses merged mined with the main chain, it could be seen as a step towards such a system.
Updated on: 2023-08-01T03:45:00.398613+00:00