Open yihuang opened 4 years ago
Great point. We'll need to ensure you can use the genesis as a TrustedState somehow.
The light client API is undergoing pretty heavy restructuring, but will make sure this gets addressed.
Essentially the problem is that the Genesis State does not contain a header, though it does have a timestamp and an initial validator set. We should still be able to initialize from it - we can consider it height 0.
Container issue is somewhat related with this.
This blocked by specification work, perhaps @josef-widder can help here.
It seems
verify_single
need aTrustedState
from previous block,TrustedState
contains a signed header and validator set, but when verifying the first block, there is no previous signed header.Maybe we should make
TrustedState
into(Option<SignedHeader>, ValidatorSet)
, then genesis trusted state would be(None, genesis validator set)
.