Files
serai/coordinator
Luke Parker ce3b90541e Make transactions undroppable
coordinator/cosign/src/delay.rs literally demonstrates how we'd need to rewrite
our handling of transactions with this change. It can be cleaned up a bit but
already identifies ergonomic issues. It also doesn't model passing an &mut txn
to an async function, which would also require using the droppable wrapper
struct.

To locally see this build, run

RUSTFLAGS="-Zpanic_abort_tests -C panic=abort" cargo +nightly build -p serai-cosign --all-targets

To locally see this fail to build, run

cargo build -p serai-cosign --all-targets

While it doesn't say which line causes it fail to build, the only distinction
is panic=unwind.

For more context, please see #578.
2025-01-15 03:56:59 -05:00
..
2025-01-15 03:56:59 -05:00
2025-01-14 01:58:26 -05:00
2025-01-11 05:13:43 -05:00
2025-01-11 05:13:43 -05:00

Coordinator

  • tendermint is an implementation of the Tendermint BFT algorithm.

  • tributary-sdk is a micro-blockchain framework. Instead of a producing a blockchain daemon like the Polkadot SDK or Cosmos SDK intend to, tributary is solely intended to be an embedded asynchronous task within an application.

    The Serai coordinator spawns a tributary for each validator set it's coordinating. This allows the participating validators to communicate in a byzantine-fault-tolerant manner (relying on Tendermint for consensus).

  • cosign contains a library to decide which Substrate blocks should be cosigned and to evaluate cosigns.

  • substrate contains a library to index the Substrate blockchain and handle its events.

  • tributary is our instantiation of the Tributary SDK for the Serai processor. It includes the Transaction definition and deferred execution logic.

  • p2p is our abstract P2P API to service the Coordinator.

  • libp2p is our libp2p-backed implementation of the P2P API.

  • src contains the source code for the Coordinator binary itself.