Files
tendermint/docs
Callum Waters a25faed5f0 lite2: cache headers in bisection (#4562)
Closes: #4546

The algorithm uses an array to store the headers and validators and populates it at every bisection (which is an unsuccessful verification). When a successful verification finally occurs it updates the new trusted header, trims that header from the cache (the array) and sets the depth pointer back to 0. Instead of retrieving new headers it will use the cached headers, incrementing in depth until it reaches the end of the cache which by then it will start to retrieve new headers from the provider. 

Mathematically, this method doesn't properly bisect after the first round but it will always choose a pivot header that is within 1/8th of the upper header's height. I.e. if we are trying to jump 128 headers, the maximum offset from bisection height (64) is 64 + 16(128/8) = 80, therefore a better heuristic would be to obtain the new pivot header height as the middle of these two numbers which would therefore mean to multiply it by 9/16ths instead of 1/2  (sorry this might be a bit more complicated in writing but I can try better explain if someone is interested). Therefore I would also, upon consensus, propose that we change the pivot height to 9/16th's of the previous height
2020-03-26 12:38:02 +01:00
..
2020-03-13 14:34:31 +00:00
2020-03-05 10:48:29 +00:00
2020-03-05 10:48:29 +00:00
2020-03-23 17:51:54 +01:00
2019-10-11 18:07:58 +02:00
2020-03-05 10:48:29 +00:00
2020-03-13 14:34:31 +00:00
2020-03-13 14:34:31 +00:00
2019-11-25 15:34:40 +01:00
2019-11-25 15:34:40 +01:00
2020-03-05 10:48:29 +00:00

Tendermint

Welcome to the Tendermint Core documentation!

Tendermint Core is a blockchain application platform; it provides the equivalent of a web-server, database, and supporting libraries for blockchain applications written in any programming language. Like a web-server serving web applications, Tendermint serves blockchain applications.

More formally, Tendermint Core performs Byzantine Fault Tolerant (BFT) State Machine Replication (SMR) for arbitrary deterministic, finite state machines. For more background, see What is Tendermint?.

To get started quickly with an example application, see the quick start guide.

To learn about application development on Tendermint, see the Application Blockchain Interface.

For more details on using Tendermint, see the respective documentation for Tendermint Core, benchmarking and monitoring, and network deployments.

To find out about the Tendermint ecosystem you can go here. If you are a project that is using Tendermint you are welcome to make a PR to add your project to the list.

Contribute

To contribute to the documentation, see this file for details of the build process and considerations when making changes.