serai/coordinator/tributary
Luke Parker 523d2ac911
Rewrite tendermint's message handling loop to much more clearly match the paper (#560)
* Rewrite tendermint's message handling loop to much more clearly match the paper

No longer checks relevant branches upon messages, yet all branches upon any
state change. This is slower, yet easier to review and likely without one or
two rare edge cases.

When reviewing, please see page 5 of https://arxiv.org/pdf/1807.04938.pdf.
Lines from the specified algorithm can be found in the code by searching for
"// L".

* Sane rebroadcasting of consensus messages

Instead of broadcasting the last n messages on the Tributary side of things, we
now have the machine rebroadcast the message tape for the current block.

* Only rebroadcast messages which didn't error in some way

* Only rebroadcast our own messages for tendermint
2024-04-21 05:30:31 -04:00
..
src Rewrite tendermint's message handling loop to much more clearly match the paper (#560) 2024-04-21 05:30:31 -04:00
tendermint Rewrite tendermint's message handling loop to much more clearly match the paper (#560) 2024-04-21 05:30:31 -04:00
Cargo.toml Add workspace lints 2023-12-17 00:04:47 -05:00
LICENSE Create a folder for tributary, the micro-blockchain 2023-04-11 10:18:31 -04:00
README.md Clarify Arc RwLocks and sleeps in coordinator 2023-04-23 18:29:50 -04:00

Tributary

A verifiable, ordered broadcast layer implemented as a BFT micro-blockchain.