Revision df3eee455c9d2a4a9698a35aa0dfe6d5d2efd53d authored by Callum Waters on 04 February 2020, 12:02:20 UTC, committed by GitHub on 04 February 2020, 12:02:20 UTC
Closes issue #4338 Uses a wrapper function around both the signedHeader and validatorSet calls to the primary provider which attempts to retrieve the information 5 times before deeming the provider unavailable and replacing the primary provider with the first alternative before trying recursively again (until all alternatives are depleted) Employs a mutex lock for any operations involving the providers of the light client to ensure no operations occurs whilst the new primary is chosen. Commits: * created swapProvider function * eliminates old primary provider after replacement. Uses a mutex when changing providers * renamed to replaceProvider * created wrapped functions for signed header and val set * created test for primary provider replacement * implemented suggested revisions * created Witnesses() and Primary() * modified backoffAndJitterTime * modified backoffAndJitterTime * changed backoff base and jitter to functional arguments * implemented suggested changes * removed backoff function * changed exp function to match go version * halved the backoff time * removed seeding and added comments * fixed incorrect test * extract backoff timeout calc into a function Co-authored-by: Anton Kaliaev <anton.kalyaev@gmail.com>
1 parent 9b9f1be
File | Mode | Size |
---|---|---|
client | ||
errors | ||
proxy | ||
base_verifier.go | -rw-r--r-- | 2.0 KB |
base_verifier_test.go | -rw-r--r-- | 1.6 KB |
commit.go | -rw-r--r-- | 2.6 KB |
dbprovider.go | -rw-r--r-- | 6.7 KB |
doc.go | -rw-r--r-- | 5.9 KB |
dynamic_verifier.go | -rw-r--r-- | 8.4 KB |
dynamic_verifier_test.go | -rw-r--r-- | 7.7 KB |
helpers.go | -rw-r--r-- | 4.9 KB |
multiprovider.go | -rw-r--r-- | 2.3 KB |
provider.go | -rw-r--r-- | 1010 bytes |
provider_test.go | -rw-r--r-- | 4.2 KB |
types.go | -rw-r--r-- | 321 bytes |
Computing file changes ...