Note sure if this is the right place to ask but here it goes…
In the library
librustzcash and in particular in
https://github.com/zcash/librustzcash/blob/master/zcash_client_sqlite/src/wallet/init.rs, there is a function to initialize the blocks table at a given height, understandingly to avoid having to scan from the activation height. The last parameter is the
sapling_tree which is the serialized Sapling commitment tree.
I looked at a few implementation that provide checkpoints. For instance
I don’t get why the
sapling_tree are so short. I thought they would contain all the note commitments as a incremental merkle tree and I was expecting thousands of hashes per tree. How is this tree constructed exactly?