337e54c672
Moves from concatted Dockerfiles to pseudo-templated Dockerfiles via a dedicated Rust program. Removes the unmaintained kubernetes, not because we shouldn't have/use it, but because it's unmaintained and needs to be reworked before it's present again. Replaces the compose with the work in the new orchestrator binary which spawns everything as expected. While this arguably re-invents the wheel, it correctly manages secrets and handles the variadic Dockerfiles. Also adds an unrelated patch for zstd and simplifies running services a bit by greater utilizing the existing infrastructure. --- * Delete all Dockerfile fragments, add new orchestator to generate Dockerfiles Enables greater templating. Also delete the unmaintained kubernetes folder *for now*. This should be restored in the future. * Use Dockerfiles from the orchestator * Ignore Dockerfiles in the git repo * Remove CI job to check Dockerfiles are as expected now that they're no longer committed * Remove old Dockerfiles from repo * Use Debian for monero-wallet-rpc * Remove replace_cmds for proper usage of entry-dev Consolidates ports a bit. Updates serai-docker-tests from "compose" to "build". * Only write a new dockerfile if it's distinct Preserves the updated time metadata. * Update serai-docker-tests * Correct the path Dockerfiles are built from * Correct inclusion of orchestration folder in Docker builds * Correct debug/release flagging in the cargo command Apparently, --debug isn't an effective NOP yet an error. * Correct path used to run the Serai node within a Dockerfile * Correct path in Monero Dockerfile * Attempt storing monerod in /usr/bin * Use sudo to move into /usr/bin in CI * Correct 18.3.0 to 18.3.1 * Escape * with quotes * Update deny.toml, ADD orchestration in runtime Dockerfile * Add --detach to the Monero GH CI * Diversify dockerfiles by network * Fixes to network-diversified orchestration * Bitcoin and Monero testnet scripts * Permissions and tweaks * Flatten scripts folders * Add missing folder specification to Monero Dockerfile * Have monero-wallet-rpc specify the monerod login * Have the Docker CMD specify env variables inserted at time of Dockerfile generation They're overrideable with the global enviornment as for tests. This enables variable generation in orchestrator and output to productionized Docker files without creating a life-long file within the Docker container. * Don't add Dockerfiles into Docker containers now that they have secrets Solely add the source code for them as needed to satisfy the workspace bounds. * Download arm64 Monero on arm64 * Ensure constant host architecture when reproducibly building the wasm Host architecture, for some reason, can effect the generated code despite the target architecture always being foreign to the host architecture. * Randomly generate infrastructure keys * Have orchestrator generate a key, be able to create/start containers * Ensure bash is used over sh * Clean dated docs * Change how quoting occurs * Standardize to sh * Have Docker test build the dev Dockerfiles * Only key_gen once * cargo update Adds a patch for zstd and reconciles the breaking nightly change which just occurred. * Use a dedicated network for Serai Also fixes SERAI_HOSTNAME passed to coordinator. * Support providing a key over the env for the Serai node * Enable and document running daemons for tests via serai-orchestrator Has running containers under the dev network port forward the RPC ports. * Use volumes for bitcoin/monero * Use bitcoin's run.sh in GH CI * Only use the volume for testnet (not dev) |
||
---|---|---|
.github | ||
audits | ||
coins | ||
common | ||
coordinator | ||
crypto | ||
docs | ||
message-queue | ||
mini | ||
orchestration | ||
patches | ||
processor | ||
substrate | ||
tests | ||
.gitattributes | ||
.gitignore | ||
.rustfmt.toml | ||
AGPL-3.0 | ||
Cargo.lock | ||
Cargo.toml | ||
CONTRIBUTING.md | ||
deny.toml | ||
LICENSE | ||
README.md | ||
rust-toolchain.toml |
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.
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 theff
/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. -
message-queue
: An ordered message server so services can talk to each other, even when the other is offline. -
processor
: A generic chain processor to process data for Serai and process events from Serai, executing transactions as expected and needed. -
coordinator
: A service to manage processors and communicate over a P2P network with other validators. -
substrate
: Substrate crates used to instantiate the Serai network. -
orchestration
: Dockerfiles and scripts to deploy a Serai node/test environment. -
tests
: Tests for various crates. Generally,crate/src/tests
is used, orcrate/tests
, yet any tests requiring crates' binaries are placed here.
Security
Serai hosts a bug bounty program via Immunefi. For in-scope critical vulnerabilities, we will reward whitehats with up to $30,000.
Anything not in-scope should still be submitted through Immunefi, with rewards issued at the discretion of the Immunefi program managers.
Links
- Website: https://serai.exchange/
- Immunefi: https://immunefi.com/bounty/serai/
- Twitter: https://twitter.com/SeraiDEX
- Mastodon: https://cryptodon.lol/@serai
- Discord: https://discord.gg/mpEUtJR3vz
- Matrix: https://matrix.to/#/#serai:matrix.org
- Reddit: https://www.reddit.com/r/SeraiDEX/
- Telegram: https://t.me/SeraiDEX