Nyzo version 482 (commit on GitHub) adds the block file consolidation process to the sentinel.
This version does not alter behavior of the verifier, but it is an important update for the sentinel.
If you have a sentinel already configured, SSH to your sentinel instance and run the following commands:
git pull origin master
sudo supervisorctl reload
If the disk on your sentinel is full and is causing problems, run the following command to clear the individual block directory. All required blocks can be obtained again from your managed verifiers:
sudo rm -r /var/lib/nyzo/production/blocks/individual/
If you want to set up a new sentinel, follow these instructions. You will also find helpful tips at the end of the instructions for checking if your sentinel is operating properly.
The code in this update is very simple. The BlockFileConsolidator class, developed for the verifier, bundles blocks behind the retention edge into files of 1000 blocks each and then deletes the individual blocks. In this update, the consolidator process is started just after the Genesis block is loaded in the sentinel initialization.
The BlockFileConsolidator is necessary because individual block files, while very efficient for processing, are quite inefficient in terms of both storage space and number of inodes used on the file system. Nyzo produces over 12,300 blocks in an average day, which can quickly exhaust the inodes on some small virtual servers. Bundling block files reduces inode consumption by 99.9%.
Also, blocks tend to be quite small, but balance lists are not. In Nyzo block files, balance lists are only stored at the beginning of the file and when blocks are missing in the middle of the file. For all other blocks, the balance lists can be easily derived. So, while individual block files are all over 90KB for blocks being produced at the time of this update, the consolidated files of 1000 blocks tend to be about 434KB. So, bundling block files also reduces typical storage consumption by more than 99.5%.