Lunie: Approve new blockheader after disconnect

Created on 11 Nov 2017  路  10Comments  路  Source: luniehq/lunie

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

All 10 comments

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.

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

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

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.

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.

how does this relate to #204 ?

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.

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.

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

Closing this in favor of of #100

Was this page helpful?
0 / 5 - 0 ratings