Revision 86adc2c89f80fa21579877d3f3e198f794e2ab9a authored by Anton Kaliaev on 13 January 2020, 07:56:48 UTC, committed by GitHub on 13 January 2020, 07:56:48 UTC
* rename adjusted to adjacent

Refs https://github.com/tendermint/tendermint/pull/3989#discussion_r352140829

* rename ErrTooMuchChange to ErrNotEnoughVotingPowerSigned

Refs https://github.com/tendermint/tendermint/pull/3989#discussion_r352142785

* verify commit is properly signed

* remove no longer trusted headers

* restore trustedHeader and trustedNextVals

* check trustedHeader using options

Refs https://github.com/tendermint/tendermint/pull/4209#issuecomment-562462165

* use correct var when checking if headers are adjacent

in bisection func
+ replace TODO with a comment

https://github.com/tendermint/tendermint/pull/3989#discussion_r352125455

* return header in VerifyHeaderAtHeight

because that way we avoid DB call

+ add godoc comments
+ check if there are no headers yet in AutoClient

https://github.com/tendermint/tendermint/pull/3989#pullrequestreview-315454506

* TestVerifyAdjacentHeaders: add 2 more test-cases

+ add TestVerifyReturnsErrorIfTrustLevelIsInvalid

* lite: avoid overflow when parsing key in db store!

* lite: rename AutoClient#Err to Errs

* lite: add a test for AutoClient

* lite: fix keyPattern and call itr.Next in db store

* lite: add two tests for db store

* lite: add TestClientRemovesNoLongerTrustedHeaders

* lite: test Client#Cleanup

* lite: test restoring trustedHeader

https://github.com/tendermint/tendermint/pull/4209#issuecomment-562462165

* lite: comment out unused code in test_helpers

* fix TestVerifyReturnsErrorIfTrustLevelIsInvalid after merge

* change defaultRemoveNoLongerTrustedHeadersPeriod

and add docs

* write more doc

* lite: uncomment testable examples

* use stdlog.Fatal to stop AutoClient tests

* make lll linter happy

* separate errors for 2 cases

- the validator set of a skipped header cannot be trusted, i.e. <1/3rd
  of h1 validator set has signed (new error, something like
  ErrNewValSetCantBeTrusted)
- the validator set is trusted but < 2/3rds has signed
  (ErrNewHeaderCantBeTrusted)

https://github.com/tendermint/tendermint/pull/4209#discussion_r360331253

* remove all headers (even the last one) that are outside

of the trusting period. By doing this, we avoid checking the
trustedHeader's hash in checkTrustedHeaderUsingOptions (case #1).

https://github.com/tendermint/tendermint/pull/4209#discussion_r360332460

* explain restoreTrustedHeaderAndNextVals better

https://github.com/tendermint/tendermint/pull/4209#discussion_r360602328

* add ConfirmationFunction option

for optionally prompting for user input Y/n before removing headers

Refs https://github.com/tendermint/tendermint/pull/4209#discussion_r360602945

* make cleaning optional

https://github.com/tendermint/tendermint/pull/4209#discussion_r364838189

* return error when user refused to remove headers

* check for double votes in VerifyCommitTrusting

* leave only ErrNewValSetCantBeTrusted error

to differenciate between h2Vals.VerifyCommit and
h1NextVals.VerifyCommitTrusting

* fix example tests

* remove unnecessary if condition

https://github.com/tendermint/tendermint/pull/4209#discussion_r365171847

It will be handled by the above switch.

* verifyCommitBasic does not depend on vals

Co-authored-by: Marko <marbar3778@yahoo.com>
1 parent db235c8
History
File Mode Size
proto3
time
block.go -rw-r--r-- 26.8 KB
block_meta.go -rw-r--r-- 1.6 KB
block_meta_test.go -rw-r--r-- 92 bytes
block_test.go -rw-r--r-- 17.7 KB
canonical.go -rw-r--r-- 2.4 KB
codec.go -rw-r--r-- 528 bytes
encoding_helper.go -rw-r--r-- 271 bytes
errors.go -rw-r--r-- 1.0 KB
event_bus.go -rw-r--r-- 8.7 KB
event_bus_test.go -rw-r--r-- 10.8 KB
events.go -rw-r--r-- 5.9 KB
events_test.go -rw-r--r-- 379 bytes
evidence.go -rw-r--r-- 10.4 KB
evidence_test.go -rw-r--r-- 5.9 KB
genesis.go -rw-r--r-- 3.9 KB
genesis_test.go -rw-r--r-- 4.8 KB
keys.go -rw-r--r-- 80 bytes
params.go -rw-r--r-- 6.0 KB
params_test.go -rw-r--r-- 3.5 KB
part_set.go -rw-r--r-- 6.3 KB
part_set_test.go -rw-r--r-- 3.9 KB
priv_validator.go -rw-r--r-- 3.3 KB
proposal.go -rw-r--r-- 2.7 KB
proposal_test.go -rw-r--r-- 3.9 KB
proto3_test.go -rw-r--r-- 2.8 KB
protobuf.go -rw-r--r-- 6.4 KB
protobuf_test.go -rw-r--r-- 5.2 KB
results.go -rw-r--r-- 2.0 KB
results_test.go -rw-r--r-- 1.5 KB
signable.go -rw-r--r-- 713 bytes
signed_msg_type.go -rw-r--r-- 440 bytes
test_util.go -rw-r--r-- 1.8 KB
tx.go -rw-r--r-- 4.2 KB
tx_test.go -rw-r--r-- 4.9 KB
utils.go -rw-r--r-- 762 bytes
validation.go -rw-r--r-- 1.2 KB
validator.go -rw-r--r-- 2.7 KB
validator_set.go -rw-r--r-- 30.0 KB
validator_set_test.go -rw-r--r-- 42.3 KB
vote.go -rw-r--r-- 4.6 KB
vote_set.go -rw-r--r-- 18.0 KB
vote_set_test.go -rw-r--r-- 15.4 KB
vote_test.go -rw-r--r-- 9.0 KB

back to top