Make the key pair field optional in the header. This allows a) to make a breaking change later (doubt we will) b) more importantly to support static cores easily later on (ie no keypair -> static core)
Always persist the tree hash in the header. This has negligle overhead (we are writing 32 bytes more on each upgrade, benchs showed no diff), but always static cores easily and to more easily do audits in the future, as the header is fully self describing.
By self describing we mean:
Has rootHash, length, fork and signature. From there we can checkout and verify the full stored merkle tree. From there we can verify which data blocks we have fully and from there we can generate the bitfield we have.
This is a minor breaking change that'll
By self describing we mean:
Has rootHash, length, fork and signature. From there we can checkout and verify the full stored merkle tree. From there we can verify which data blocks we have fully and from there we can generate the bitfield we have.