Commit Graph

101 Commits

Author SHA1 Message Date
Luke Parker
56afb13ed5 Move documentation to the top of the file 2022-10-21 02:14:48 -04:00
Luke Parker
2cf1573c52 Dummy Weights 2022-10-21 02:13:44 -04:00
Luke Parker
21fd56d4d3 Remove extraneous clone 2022-10-21 01:08:15 -05:00
Luke Parker
5c46edbe98 Implement tendermint_machine::Block for Substrate Blocks
Unfortunately, this immediately makes Tendermint machine capable of 
deployment as  crate since it uses a git reference. In the future, a 
Cargo.toml patch section for serai/substrate should be investigated. 
This is being done regardless as it's the quickest way forward and this 
is for Serai.
2022-10-21 02:06:48 -04:00
Luke Parker
280683142a Rename import to import_queue 2022-10-20 04:28:26 -04:00
Luke Parker
49a26e5841 Properly use check_block 2022-10-20 04:27:53 -04:00
Luke Parker
eb59dd5a55 Initial work on an import queue 2022-10-20 03:50:06 -04:00
Luke Parker
975c9d7456 Map TM SignatureScheme to Substrate's sr25519 2022-10-20 03:46:09 -04:00
Luke Parker
9db42f7d83 Minor SignatureScheme API changes 2022-10-20 03:40:46 -04:00
Luke Parker
3c6ea6e55d Replace MultiSignature with sr25519::Signature 2022-10-20 03:40:16 -04:00
Luke Parker
cc8284ad40 Merge branch 'develop' into tendermint 2022-10-20 01:34:59 -04:00
Luke Parker
f6bbc6c89e Correct weight code 2022-10-20 01:27:35 -04:00
Luke Parker
6c996fb3cd Update substrate
Also removes the patch for zip since a new release was issued.

Closes https://github.com/serai-dex/serai/issues/81.

Contracts RPC purged as according to 
https://github.com/paritytech/substrate/pull/12358.
2022-10-20 01:05:36 -04:00
Luke Parker
ff41e9f031 Correct timing issues
1) Commit didn't include the round, leaving the clock in question.

2) Machines started with a local time, instead of a proper start time.

3) Machines immediately started the next block instead of waiting for 
the block time.
2022-10-20 00:21:14 -04:00
Luke Parker
6b56510da9 Remove async recursion
Greatly increases safety as well by ensuring only one message is 
processed at once.
2022-10-17 12:04:59 -04:00
Luke Parker
8b6eb1172f Litany of bug fixes
Also attempts to make the code more readable while updating/correcting 
documentation.
2022-10-17 10:37:30 -04:00
Luke Parker
5724f52816 Sign the ID directly instead of its SCALE encoding
For a hash, which is fixed-size, these should be the same yet this helps 
move past the dependency on SCALE. It also, for any type where the two 
values are different, smooths integration.
2022-10-17 08:16:01 -04:00
Luke Parker
f28d412f78 Document tendermint 2022-10-17 08:07:23 -04:00
Luke Parker
0501ff259e Tidy README 2022-10-17 03:15:22 -04:00
Luke Parker
6155d12160 Dedicated Commit object
Restores sig aggregation API.
2022-10-17 03:15:13 -04:00
Luke Parker
b993ff1cc8 Provide a dedicated signature in Precommit of just the block hash
Greatly simplifies verifying when syncing.
2022-10-17 02:32:45 -04:00
Luke Parker
1c71e25234 Make the infinite test non-infinite 2022-10-16 10:25:36 -04:00
Luke Parker
329a48c19d Implement usage of the signature scheme 2022-10-16 10:20:29 -04:00
Luke Parker
987aa5189a Implement serialization via parity's scale codec
Ideally, this would be generic. Unfortunately, the generic API serde 
doesn't natively support borsh, nor SCALE, and while there is a serde 
SCALE crate, it's old. While it may be complete, it's not worth working 
with.

While we could still grab bincode, and a variety of other formats, it 
wasn't worth it to go custom and for Serai, we'll be using SCALE almost 
everywhere anyways.
2022-10-16 10:06:27 -04:00
Luke Parker
85962c00a9 Define a signature scheme trait 2022-10-16 09:42:33 -04:00
Luke Parker
a0bc9dc3e5 Misc cleanup 2022-10-16 09:16:44 -04:00
Luke Parker
c53c15fd95 Finish timeouts 2022-10-16 09:09:14 -04:00
Luke Parker
3b2352baed Fix test 2022-10-16 09:09:05 -04:00
Luke Parker
079eee931a Calculate timeouts 2022-10-16 07:54:07 -04:00
Luke Parker
77ba1c00e2 Successfully compiling 2022-10-16 07:30:11 -04:00
Luke Parker
f79321233d Refactor <V, B> to type V, type B 2022-10-16 03:55:39 -04:00
Luke Parker
a5f1ddaf1b Refactor out external parts to generics
Also creates a dedicated file for the message log.
2022-10-16 03:29:55 -04:00
Luke Parker
1237c41c53 Delete the old paper doc 2022-10-16 03:29:16 -04:00
Luke Parker
ccd4ef193c Move substrate/consensus/tendermint to substrate/tendermint 2022-10-16 01:32:54 -04:00
Luke Parker
19488cf446 Fill out Cargo.tomls
Updated missing fields/sections, even if some won't be used, to 
standardize.

Also made FROST tests feature-gated.
2022-10-15 23:46:22 -04:00
Luke Parker
d081934725 Time code 2022-10-12 21:36:40 -04:00
Luke Parker
b56c88468e Machine without timeouts 2022-10-02 23:23:58 -04:00
Luke Parker
482a8ec209 Update to the latest Serai Substrate (#125)
* Update to the latest Serai Substrate

* Add Protobuf to build dependencies

Docker shouldn't need updating as this should've been added to the image 
in 
2dbace5b01.

* Get substrate to build

* Correct protoc build step

* Remove the benchmarking code

There's some macro resolution error that isn't apparent. I worked on it 
for about half an hour but...

* Remove unnecessary clone

* Correct runtime-benchmarks flag usage
2022-09-29 13:33:09 -05:00
Luke Parker
ca091a5f04 Expand and correct documentation 2022-09-29 05:25:29 -04:00
TheArchitect108
978304e224 Cluster Orchestration with Docker Compose (#114)
* add file

* builds + caching fixed

* bitcoin orchestration

* remove default entrypoint

* eth image and cleanup

* working monero

* remove signature file

* cleanup on aisle eth

* cleanup on aisle btc

* eth working

* remove docker ignore

* remove bitcoin image readme

* fix serai builds

* serai clusters

* added readme for docker

* formatting

* share the image

* newlines at EOF

* add multi profile example

* coin order

* coin order

* profile order

* fix grammar

* fix whitespace

* reduce trusted signature set, require at least 3 signatures.

* remove echo

* update comment to ref trusted keys

* comment fix

* use 16 keys, check for laanwj, name compose

* don't use bash

* monero fingerprints & eth fixes

* eth fixes

* remove extra eth keys
2022-09-12 15:01:14 -05:00
Luke Parker
546b772be3 Clarify licensing per https://github.com/serai-dex/serai/issues/13
Implements bullets 2-4 of 
https://github.com/serai-dex/serai/issues/13#issuecomment-1212689876.
2022-08-25 04:02:13 -04:00
Luke Parker
0543f3c469 Patch Benchmark 2022-08-16 17:43:46 -04:00
Luke Parker
755dc84859 Replace rand with rand_core where possible
Turns out rand_core offers OsRng.
2022-07-27 05:45:08 -04:00
Luke Parker
3711e13009 Remove old duplicates of the AGPL-3.0 2022-07-24 09:33:08 -04:00
noot
bd93d6ec8a set up CI (#45)
* begin to setup ci

* attempt to fix build

* fix paths in build script

* fix

* satisfy clippy

* update fmt check to use nightly

* use nightly for build

* fmt

* fix fmt install

* update test script

* try to fix fmt

* merge w develop

* maybe fix build script

* install wasm toolchain

* install solc-select, use stable rust to build

* Correct clippy warnings

Currently intended to be done with:
cargo clippy --features "recommended merlin batch serialize experimental 
ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity 
-A dead_code

* Remove try-runtime

I tried to get this to work for an hour. I have no idea why it doesn't, 
yet it doesn't.

* Rewrite workflow

Splits tasks into a more modular structure. Also uses 
actions-rs/toolchain.

* Add a cache

* Immediately try building ETH/Monero while this is fixed

Adds solc-select use.

* Revert selective advance building of ETH/XMR

ETH builds now, so it hopefully should work now.

Also moves from on push to on push to develop.

* Install Monero runtime dependencies

Specify missing Rust toolchain setting.

* Correct multi-line commands

* Fix multi-line commands again

Cache Ethereum artifacts.

* Add Foundry

* Move Clippy under build

* Minimal rustup

Adds wasm Clippy. Puts Clippy before build.

* Use nightly clippy

* Remove old clippy call from under build

* Have the Monero build script support ARCH specification

Requirement for CI.

* Add WASM toolchain to tests

* Remove Ethereum cache which did not work as needed

* Remove extraneous quotes which broke builds on Arch

Co-authored-by: Luke Parker <lukeparker5132@gmail.com>
2022-07-22 11:31:29 -05:00
Luke Parker
76a7160ea5 Correct clippy warnings
Currently intended to be done with:
cargo clippy --features "recommended merlin batch serialize experimental 
ed25519 ristretto p256 secp256k1 multisig" -- -A clippy::type_complexity 
-A dead_code
2022-07-22 02:35:17 -04:00
Luke Parker
c0cac7591d Correct a missing fmt 2022-07-17 17:18:56 -04:00
Luke Parker
9cb2d8aa4a Integrate ink! 2022-07-16 21:06:54 -04:00
Luke Parker
314c9cd8f7 Clean Substrate Cargo.tomls 2022-07-16 20:53:28 -04:00
Luke Parker
e67033a207 Apply an initial set of rustfmt rules 2022-07-16 15:16:30 -05:00