Use the Genesis state as a Trusted State in the light client
It seems verify_single need a TrustedState 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).
https://github.com/informalsystems/tendermint-rs/issues/186
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.