Serai is a new DEX, built from the ground up, initially planning on listing Bitcoin, Ethereum, DAI, and Monero, offering a liquidity-pool-based trading experience. Funds are stored in an economically secured threshold-multisig wallet.
Find a file
Luke Parker 997dd611d5
Don't add blocks which aren't valid
Previously, Tendermint needed to be live more than it needed to be correct.
Under the original intention for it, correctness would fail if any coin
desynced, which would cause the node to fail entirely. By accepting a
supermajority's view of state, despite its own, a single coin's failure would
only lead to inability to participate with that single coin.

Now that Tendermint is solely for Tributary, nodes should halt a coin-specific
chain if their view of the chain differs. They are unable to meaningless
participate regardless.

This also means a supermajority of validators can no longer fake messages from
other validators, allowing the Tributary chain to use uniform weights with much
less impact. There is still enough impact they can't be used (ability to cause
a fork), yet they should allow uniform block production (as that's solely a DoS
concern).

While we prior could've simply additionally checked signatures, add_block's
lack of a failure case would've meant it had to panic. This would've been a DoS
possible a minority-weight *which affected the entire coordinator* and
therefore *the entire validator for all coins*.
2023-04-12 16:18:42 -04:00
.github Update nightly 2023-04-01 05:44:42 -04:00
audits/Cypher Stack crypto March 2023 Correct audit file upload 2023-03-20 17:35:45 -04:00
coins Update to bitcoin 0.30 2023-04-09 02:31:13 -04:00
common/zalloc Merge branch 'develop' into crypto-tweaks 2023-03-16 16:43:04 -04:00
coordinator Don't add blocks which aren't valid 2023-04-12 16:18:42 -04:00
crypto Remove k256/p256 git revision patch 2023-04-11 09:23:57 -04:00
deploy Remove the genesis volume added for Tendermint 2023-03-26 20:20:32 -04:00
docs Update to the latest Substrate commit 2023-03-31 02:34:52 -04:00
processor Tweak processor's slice handling due to a CI failure 2023-04-11 10:37:50 -04:00
substrate Test the processor's Substrate signer 2023-04-10 12:48:48 -04:00
.gitattributes Correct audit file upload 2023-03-20 17:35:45 -04:00
.gitignore fix for #166 & cleanup (#184) 2022-12-07 10:08:04 -05:00
.rustfmt.toml Apply an initial set of rustfmt rules 2022-07-16 15:16:30 -05:00
AGPL-3.0 Add an initial Substrate instantiation 2022-07-15 00:05:00 -04:00
Cargo.lock Extensively test transactions 2023-04-12 08:51:40 -04:00
Cargo.toml Create a folder for tributary, the micro-blockchain 2023-04-11 10:18:31 -04:00
CONTRIBUTING.md Clarify identation policy 2022-10-11 00:40:50 -05:00
deny.toml Create a folder for tributary, the micro-blockchain 2023-04-11 10:18:31 -04:00
LICENSE Update licenses 2023-01-11 23:05:31 -05:00
README.md Remove Tendermint for GRANDPA 2023-03-26 16:49:18 -04:00

Serai

Serai is a new DEX, built from the ground up, initially planning on listing Bitcoin, Ethereum, DAI, and Monero, offering a liquidity-pool-based trading experience. Funds are stored in an economically secured threshold-multisig wallet.

Getting Started

Layout

  • audits: Audits for various parts of Serai.

  • docs: Documentation on the Serai protocol.

  • common: Crates containing utilities common to a variety of areas under Serai, none neatly fitting under another category.

  • crypto: A series of composable cryptographic libraries built around the ff/group APIs achieving a variety of tasks. These range from generic infrastructure, to our IETF-compliant FROST implementation, to a DLEq proof as needed for Bitcoin-Monero atomic swaps.

  • coins: Various coin libraries intended for usage in Serai yet also by the wider community. This means they will always support the functionality Serai needs, yet won't disadvantage other use cases when possible.

  • processor: A generic chain processor to process data for Serai and process events from Serai, executing transactions as expected and needed.

  • tendermint: An abstracted implementation of the Tendermint BFT algorithm, planned to be used in our own micro-blockchain for temporal data needed to coordinate the Serai validators, yet irrelevant to the Serai network as a whole.

  • substrate: Substrate crates used to instantiate the Serai network.

  • deploy: Scripts to deploy a Serai node/test environment.