Commit graph

506 commits

Author SHA1 Message Date
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
ec7d8ac67b
Remove coin crate
Effective reversion of past few commits by request.
2022-10-16 13:11:32 -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
5ce06cf1b7
Update lib.rs 2022-10-16 07:47:08 -05: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
4866a3e0e9
Fix previous commit 2022-10-16 00:17:51 -04:00
Luke Parker
ad9bf9b240
Remove unused imports 2022-10-15 23:59:44 -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
65664dafa4
Make coin a dedicated library
Closes https://github.com/serai-dex/serai/issues/128.
2022-10-15 23:21:56 -04:00
vrx00
f50148d17a fix for monero docker 2022-10-15 21:42:09 -05:00
Luke Parker
9d376d29e1
Bump FROST version to publish a v11-compliant lib 2022-10-15 22:34:12 -04:00
Luke Parker
e5955f82c7
Remove Monero RPC panics for an invalid/malicious node 2022-10-15 22:32:56 -04:00
Luke Parker
514563cef0
Remove height as a term
Unbeknowst to me, height doesn't have a universal definition of the 
chain length.

Bitcoin defines height as the block number, with getblockcount existing 
for the chain length.

Ethereum uses the unambiguous term "block number".

Monero defines height as both the block number and the chain length.

Instead of arguing about who's right, it's agreed it referring to both 
isn't productive. While we could provide our own definition, taking a 
side, moving to the unambiguous block number prevents future hiccups.

height is now only a term in the Monero code, where it takes its 
Monero-specific definition, as documented in the processor.
2022-10-15 21:39:06 -04:00
Luke Parker
a245ee28c1
Correction for previous commit 2022-10-15 21:07:52 -04:00
Luke Parker
245dcc6083
Have the wallet provide the Monero height for is_confirmed 2022-10-15 21:07:37 -04:00
Luke Parker
826e27c80e
Pin CI to solc-select 0.2.1 2022-10-15 20:04:37 -04:00
vrx00
d96cfdf485 serai Dockerfile & Makefile fixed 2022-10-15 19:03:33 -05:00
Luke Parker
4629e88a28
Add is_confirmed with a TODO: Remove
Closes https://github.com/serai-dex/serai/issues/129.
2022-10-15 19:51:59 -04:00
Luke Parker
e9d5fb25c8
Merge branch 'develop' of github.com:serai-dex/serai into develop 2022-10-13 00:38:44 -04:00
Luke Parker
a0a54eb0de
Update to FROST v11
Ensures random functions never return zero. This, combined with a check 
commitments aren't 0, causes no serialized elements to be 0.

Also directly reads their vectors.
2022-10-13 00:38:36 -04:00
Luke Parker
d081934725
Time code 2022-10-12 21:36:40 -04:00
vrx00
f9310a9968
Cluster Orchestration with Kubernetes (#121)
* 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

* kubernetes deployment implemented with helm charts

* deleted helmignores & added new lines at the end of the file

* deleted duplications & delete unnecessary comments & deactivated service accounts

* deleted generators files

* added a new line to monero/values.yaml

* deleted support for old kubernetes version - ingress.yaml

* added new like to serai/values.yaml

* serai's port name changed

* serai's port name changed

* release name limit was changed to 253

* README.md updated

* fixed Makefile

* deleted platform dependant instructions

* deleted appVersion from .yamls

* added -i parameter for deleting process

* added \ for Makefile

Co-authored-by: TheArchitect108 <75815740+TheArchitect108@users.noreply.github.com>
Co-authored-by: TheArchitect <TheArchitect108@protonmail.com>
2022-10-11 05:27:03 -05:00
Luke Parker
26cbcfb78c
Clarify identation policy 2022-10-11 00:40:50 -05:00
Luke Parker
7fa78a9ac2
Delete old Monero submodule 2022-10-02 22:42:47 -05:00
Luke Parker
b56c88468e
Machine without timeouts 2022-10-02 23:23:58 -04:00
Luke Parker
b334c96906
Allow manually running the tests workflow 2022-09-30 23:26:40 -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