Skip to content
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

Approve new blockheader after disconnect #55

Closed
faboweb opened this issue Nov 11, 2017 · 10 comments
Closed

Approve new blockheader after disconnect #55

faboweb opened this issue Nov 11, 2017 · 10 comments

Comments

@faboweb
Copy link
Collaborator

faboweb commented Nov 11, 2017

When the the light-client disconnects for some time we need to provide it again with information about the block-header. These information should probably come from several trusted sources. We should accept the new information if 2/3 of these trusted sources provide us with the same information.

Questions to @GaMarin

@mappum
Copy link
Contributor

mappum commented Nov 11, 2017

Just pointing out this is only necessary if the client is disconnected longer than the unbonding period (1 month), otherwise they can sync from their last known point in the chain.

@faboweb
Copy link
Collaborator Author

faboweb commented Nov 11, 2017

I wouldn't prio this, but there will be users disconnected for longer than 1 month, so we should do it then probably.

@gamarin2
Copy link

It's also required if there is a contentious fork, e.g. 60% of validators are on one chain and 40% on the other. Light client will stop and wait for new block header

@ethanfrey
Copy link

60/40% fork will halt the light-client.
I could add an unbonding timeout to the light-client or that could be done in the UI.

In any case, if the light-client halts, or the UI detects it is out of date, we need a command to reinit it. I don't think that exists right now.

@gamarin2
Copy link

I think it's important for launch. If light-client stops, UI should at least display a popup/warning and offer the possibility to input a new trusted seed.

@jbibla
Copy link
Collaborator

jbibla commented Dec 20, 2017

how does this relate to #204 ?

@gamarin2
Copy link

This is different than #204, which is about loss of connexion to full node.
Basically light client needs:
1- Connexion to full node which sends header to light client
2- Verify headers

This is about point 2. If header received does not have >2/3rd validator signatures on it, light client will halt. This can happen if validator set changed without the light-client being notified of it (either due to having been disconnected for too long or bec contentious hard fork happened). In this case you need to manually input a new header with correct validator set and start the syncing process from this one.

@jbibla
Copy link
Collaborator

jbibla commented Dec 20, 2017

you need to manually input a new header with correct validator set and start the syncing process from this one.

where would a user get this info from to tell the UI? or is @ethanfrey going to handle this in the light client? also i believe we're calling it LCD for now on.

@mappum
Copy link
Contributor

mappum commented Dec 20, 2017

@jolesbi I wrote a little bit about the UX for this in #100

@faboweb
Copy link
Collaborator Author

faboweb commented Feb 27, 2018

Closing this in favor of of #100

@faboweb faboweb closed this as completed Feb 27, 2018
faboweb added a commit that referenced this issue Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants