v9 specifies and standardizes the Reward Tree File. This supersedes the current specification for RPL Inflation and Smoothing Pool reward allocation.
The proposal seeks to:
RPIP-52 will go into effect and the oDAO will adopt the new format and process for computing the IPFS CID. The JSON format will continue to be made available until such a time as tooling (Smart Node and external applications) can be adjusted to use the SSZ format.
The current 'official' implementation of watchtower uses a compression library prior to calculating the CID which does not produce stable output across versions. While this reduces the size of the files dramatically, it means that the oDAO must use the same version of the same library across all seats, which prevents custom implementations of treegen from being used.
In order to remove compression, we must either reduce the size of the file, or accept larger storage costs. Switching from JSON to SSZ produces files which are the same size as compressed JSON in their uncompressed state.
SSZ was chosen for its speed, size, and its status as the defacto Ethereum binary format.
Finally, formally defining the format in which the IPFS CID should be calculated makes the Rewards Tree File generation process fully specified from start to finish.