-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ICS03: Historical header module for Handshaking #5078
Comments
I'm not sure what are the actionable items here. cc: @cwgoes |
We need internal header introspection in SDK state (or retrieved from Tendermint). |
I assume the introspection is related to retrieving past light client headers? |
Past Tendermint headers (which the light client uses, yes) for the running chain. |
ok, yeah this def needs an ADR. cc: @mossid @jackzampolin |
@mossid do you have some bandwidth to write up this ADR? |
There is no way for the application to retrieve past headers from Tendermint through ABCI, right? I am writing an ADR for the SDK right now and thinking that it might be easiest to just store duplicate data in the store (for the past n heights - validator set and commit hash, basically, the same data the light client keeps), but if there is some way for the application to query this from Tendermint (which stores it I presume) that would be more space-efficient |
Suggestion by @zmanian - RPC queries to 26657 from the application I am a bit concerned about the reliability of this approach. |
Options Retaining deliver-only direction (@warner):
Whenever the process is started, App could also instruct on return of BeginBlock to send more headers & retry. |
Some applications do that. Should be okay if you don't expose RPC to the outer world (i.e. i'd say reliability is same in such case). |
We depend on this in consensus though - if anyone disabled RPC in the config, used any sort of authentication, or there were any sort of HTTP errors, the process would crash. |
Outstanding question: validator sets vs. validator set hashes. We should only need to verify that the hashes match, not store / track the entire validator set. |
Connection handshaking requires to check the existence of a header of the verifying chain on the verified chain.
Opening handshake
under ICS03This requires the verifying chain able to introspect its own headers.
ICS02
module needs to hold the reference to the historical header module and retrieve headers from recentn
heights.Dependent on: #4647
Replaces [^2] in #4723
The text was updated successfully, but these errors were encountered: