Commit graph

23 commits

Author SHA1 Message Date
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
9db42f7d83
Minor SignatureScheme API changes 2022-10-20 03:40:46 -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