-
Notifications
You must be signed in to change notification settings - Fork 224
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
Light Node Initialization #293
Comments
This isn't just for the Light Node - any use of the Light Client will require some way to subjectively initialize it, so it should expose some initialization method that takes a height and hash and be able to start from there. Note for off chain uses (eg. light node, relayer), we specify a height and hash and the LC fetches the header and validator set, checks everything matches, and trusts it and starts from there. For on chain uses (eg. IBC on chain), the header and validator set would be provided directly and just trusted (ie. as part of client creation on chain), since on chain logic can't "fetch" things |
My current thinking is ideally there would be two commands:
|
This landed with #430 |
The light node already support config file and flags through Abscissa.
Configuration file for a light node should include:
When starting the light node for the first time, we need to provide subjective initialization in the form of a block height and hash, eg.
--height 962118 --hash 28B97BE9F6DE51AC69F70E0B7BFD7E5C9CD1A595B7DC31AFF27C50D4948020CD
. See thetendermint lite
command.If we restart the process, we shouldn't need to provide this info, as we should have a trusted state in our db by then.
Of course if the trusted state has expired, the node should fail, and we should be required to re-initialize with a new hash and height.
Another possible situation for initialization is starting from a new blockchain, in which case we can potentially pass in a
--genesis
flag with a path to a tendermint genesis file to initialize the trusted state from. But we also need to add support for initializing from genesis (see #201).We might want to separate initialization and normal operation into two distinct commands.
The text was updated successfully, but these errors were encountered: