tendermint-rs icon indicating copy to clipboard operation
tendermint-rs copied to clipboard

Use the Genesis state as a Trusted State in the light client

Open yihuang opened this issue 5 years ago • 4 comments

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).

yihuang avatar Apr 01 '20 06:04 yihuang

https://github.com/informalsystems/tendermint-rs/issues/186

tomtau avatar Apr 02 '20 02:04 tomtau

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.

ebuchman avatar Jun 03 '20 01:06 ebuchman

Container issue is somewhat related with this.

OStevan avatar Jul 03 '20 13:07 OStevan

This blocked by specification work, perhaps @josef-widder can help here.

brapse avatar Aug 05 '20 12:08 brapse