Commit graph

381 commits

Author SHA1 Message Date
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
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
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
Luke Parker
2c3f36fd3f Single quotes 2022-09-29 10:22:39 -05:00
Luke Parker
9ff4cfab0d
Add a repository field to monero-generators 2022-09-29 10:37:25 -04:00
Luke Parker
503ae02cae
Version bump monero-generators to consolidate a dependency 2022-09-29 10:36:40 -04:00
Luke Parker
695f7ec5f9
Version bump Monero for documentation purposes 2022-09-29 10:35:11 -04:00
Luke Parker
95aa1ab827
Lock the cache to a specific rustc + dependencies
Apparently, GitHub doesn't write back to the cache, leading to massive 
build times a few moments after its initialization (when a change 
happens invalidating it). While this forces a new cache whenever 
dependencies change, it'll restore from an older set of dependencies in 
that case, still minimizing build times.
2022-09-29 10:34:20 -04:00
Luke Parker
8da0743361
Use sha3 in monero-generators 2022-09-29 08:08:49 -04:00
Luke Parker
2b7c9378c0
Update to FROST v10
Further expands documentation to near-completion.
2022-09-29 07:08:20 -04:00
Luke Parker
7870084b9e
Add further FROST documentation 2022-09-29 06:02:43 -04:00
Luke Parker
8d9315b797
Use HashMarker for Transcript and when generating scalars from digests 2022-09-29 05:33:46 -04:00
Luke Parker
ca091a5f04
Expand and correct documentation 2022-09-29 05:25:29 -04:00
Luke Parker
19cd609cba
Use doc_auto_cfg 2022-09-29 04:47:55 -04:00
Luke Parker
8b0f0a3713
Publish an alpha version of the Monero crate (#123)
* Label the version as an alpha

* Add versions to Cargo.tomls

* Update to Zeroize 1.5

* Drop patch versions from monero-serai Cargo.toml

* Add a repository field

* Move generators to OUT_DIR

IIRC, I didn't do this originally as it constantly re-generated them. 
Unfortunately, since cargo is complaining about .generators, we have to.

* Remove Timelock::fee_weight

Transaction::fee_weight's has a comment, "Assumes Timelock::None since 
this library won't let you create a TX with a timelock". Accordingly, 
this is dead code.
2022-09-29 01:24:33 -05:00
Luke Parker
49749d96a0
Replace tiny_keccak with sha3 in Monero 2022-09-28 09:29:58 -04:00
Luke Parker
fd48bbd15e
Initial documentation for the Monero libraries (#122)
* Document all features

* Largely document the Monero libraries

Relevant to https://github.com/serai-dex/serai/issues/103 and likely 
sufficient to get this removed from 
https://github.com/serai-dex/serai/issues/102.
2022-09-28 07:44:49 -05:00
Luke Parker
f48a48ec3f
Support v1 transactions
Closes https://github.com/serai-dex/serai/issues/117.
2022-09-28 05:28:42 -04:00
Luke Parker
5a4eb0a076
cargo update
Removes the potential applicability of CVE-2021-3520.
2022-09-18 15:30:38 -04:00
Luke Parker
2edf61614f
Revert nightly workflow testing data 2022-09-18 15:27:47 -04:00
Luke Parker
0431089592
Correct PR creation in workflow 2022-09-18 15:25:43 -04:00
Luke Parker
a52b2e2148
Add a workflow file to update the nightly version every month (#118)
Part of https://github.com/serai-dex/serai/issues/116
2022-09-18 13:49:18 -05:00
Luke Parker
2393cdfe8c
Specify shell in build-dependencies 2022-09-17 16:29:44 -04:00
Luke Parker
34ffdfa8be
Use a fixed nightly version for the wasm toolchain 2022-09-17 16:26:56 -04:00
Luke Parker
b2f6c23e2f
clippy --all-features 2022-09-17 06:07:49 -04:00
Luke Parker
7e17b4f2db
Correct the fmt workflow 2022-09-17 04:40:50 -04:00
Luke Parker
c96b595f42
Pin nightly used for fmt/clippy
As per https://github.com/serai-dex/serai/issues/116.
2022-09-17 04:37:43 -04:00
Luke Parker
65c20638ce
fmt/clippy 2022-09-17 04:35:08 -04:00