For hash-pinned dependencies, adds comments documenting the associated versions. Adds a pin to `slither-analyzer` which was prior missing. Updates to Monero 0.18.4.4. `mimalloc` now has the correct option set when building for `musl`. A C++ compiler is no longer required in its Docker image. The runtime's `Dockerfile` now symlinks a `libc.so` already present on the image instead of creating one itself. It also builds the runtime within the image to ensure it only happens once. The test to ensure the methodology is reproducible has been updated to not simply create containers from the image, yet rebuild the image entirely, accordingly. This also is more robust and arguably should have already been done. The pin to the exact hash of the `patch-polkadot-sdk` repo in every `Cargo.toml` has been removed. The lockfile already serves that role, simplifying updating in the future. The latest Rust nightly is adopted as well (superseding https://github.com/serai-dex/serai/pull/697). The `librocksdb-sys` patch is replaced with a `kvdb-rocksdb` patch, removing a git dependency, thanks to https://github.com/paritytech/parity-common/pull/950.
Coordinator
-
tendermintis an implementation of the Tendermint BFT algorithm. -
tributary-sdkis a micro-blockchain framework. Instead of a producing a blockchain daemon like the Polkadot SDK or Cosmos SDK intend to,tributaryis 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).
-
cosigncontains a library to decide which Substrate blocks should be cosigned and to evaluate cosigns. -
substratecontains a library to index the Substrate blockchain and handle its events. -
tributaryis our instantiation of the Tributary SDK for the Serai processor. It includes theTransactiondefinition and deferred execution logic. -
p2pis our abstract P2P API to service the Coordinator. -
libp2pis our libp2p-backed implementation of the P2P API. -
srccontains the source code for the Coordinator binary itself.