Conversation
Codecov Report
@@ Coverage Diff @@
## master #3841 +/- ##
==========================================
- Coverage 66.99% 66.94% -0.05%
==========================================
Files 219 219
Lines 18191 18207 +16
==========================================
+ Hits 12187 12189 +2
- Misses 5121 5130 +9
- Partials 883 888 +5
|
ebuchman
left a comment
There was a problem hiding this comment.
Great writeup, thanks Josef.
Would still love to see the client framed in a way that makes it easy to derive the kinds of evidence we need to detect (double signing, invalid state, counterfactual, etc.) for the different conditions - something along the lines of "how could a lite client be fooled in a way a full node couldn't be". Seems that might be orthogonal to this write up, but we'll probably want it for completeness.
I'm also wondering if we may want to include connecting to more than one node as an integral part of the protocol, and run the algorithm concurrently on all nodes, looking for conflicts. This way we can build in the possibility of finding and submitting evidence as a kind of first class citizen, which is actually integral to the security of the system (ie. to enforcing the "Tendermint Failure Model")
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com>
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com>
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com>
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com>
Co-Authored-By: Anca Zamfir <ancazamfir@users.noreply.github.com>
Co-Authored-By: Anton Kaliaev <anton.kalyaev@gmail.com>
…into josef/lite-client
Co-Authored-By: Ethan Buchman <ethan@coinculture.info>
Co-Authored-By: Ethan Buchman <ethan@coinculture.info>
Co-Authored-By: Ethan Buchman <ethan@coinculture.info>
…into josef/lite-client
| *Stalling* | ||
|
|
||
| With Bisection, a faulty full node could stall a lite client by creating a long sequence of headers that are queried one-by-one by the lite client and look OK, before the lite client eventually detects a problem. There are two ways to address this: | ||
| * Each call to ```Commit``` could be issued to a different full node |
There was a problem hiding this comment.
as an alternative: can we set a time limit for how long the bisection can take?
There was a problem hiding this comment.
I added timeout as another way of how we can address the problem.
closes #1413