Commit Graph

88 Commits

Author SHA1 Message Date
Luke Parker
e2e7a70f1e Clean up time code in tendermint-machine 2022-11-12 07:12:05 -05:00
Luke Parker
b53759c6ec Have the machine respond to advances made by an external sync loop 2022-11-12 05:35:41 -05:00
Luke Parker
ca3a29f616 Correct time-adjustment code on round skip 2022-11-12 05:12:20 -05:00
Luke Parker
ecde185bbf Correct the Duration timing
The proposer will build it, send it, then process it (on the first 
round). Accordingly, it's / 3, not / 2, as / 2 only accounted for the 
latter events.
2022-11-12 05:03:45 -05:00
Luke Parker
32ad6de00c Properly define and pass around the block size 2022-11-11 06:38:06 -05:00
Luke Parker
43b43bdbd9 Support running TendermintMachine when not a validator
This supports validators who leave the current set, without crashing 
their nodes, along with nodes trying to become validators (who will now 
seamlessly transition in).
2022-11-11 06:04:37 -05:00
Luke Parker
dbcddb2fb0 Don't spam slash
Also adds a slash condition of failing to propose.
2022-11-11 05:53:20 -05:00
Luke Parker
fffb7a6914 Separate the block processing time from the latency 2022-11-11 05:42:13 -05:00
Luke Parker
2411660bd8 Update to the latest substrate 2022-11-11 03:49:02 -05:00
Luke Parker
6f74bade8b Only recheck blocks with non-fatal inherent transaction errors 2022-11-11 02:17:10 -05:00
Luke Parker
7d46daa36e Use futures pin instead of tokio 2022-11-08 22:56:46 -05:00
Luke Parker
f7b1ff9f3b Update Substrate to the new TendermintHandle 2022-11-08 22:51:31 -05:00
Luke Parker
1c8192218a Move from a yielding loop to select in tendermint-machine 2022-11-08 22:37:06 -05:00
Luke Parker
2cb1d35d89 Timeout futures 2022-11-08 21:14:57 -05:00
Luke Parker
56a21ca6a6 Use futures mpsc instead of tokio 2022-11-08 21:14:03 -05:00
Luke Parker
16a2c9a2dc Correct protocol name handling 2022-11-08 02:14:49 -05:00
Luke Parker
5dab3352f2 Move from polling loops to a pure IO model for sc_tendermint's gossip 2022-11-08 02:14:39 -05:00
Luke Parker
1ff51c1a37 Add a version to sp-runtime in tendermint-machine 2022-11-03 00:24:04 -04:00
Luke Parker
2315b3c79b Localize the LibP2P protocol to the blockchain
Follows convention by doing so. Theoretically enables running multiple 
blockchains over a single LibP2P connection.
2022-11-03 00:20:50 -04:00
Luke Parker
bd08cd3c9b Add message expiry to the Tendermint gossip 2022-11-02 23:46:21 -04:00
Luke Parker
131355b10f Correct Dave, Eve, and Ferdie to not run as validators 2022-11-02 23:31:19 -04:00
Luke Parker
cf8bdf2126 Stop returning errors on already existing blocks entirely 2022-11-02 22:52:20 -04:00
Luke Parker
de0e6724bf Remove error case which shouldn't be an error 2022-11-02 22:39:49 -04:00
Luke Parker
f4d622a34c Restore cache 2022-11-02 22:39:39 -04:00
Luke Parker
2b503b6f42 Update sc_tendermint per previous commit 2022-11-02 21:37:06 -04:00
Luke Parker
f3e177109d Reduce Arcs in TendermintMachine, split Signer from SignatureScheme 2022-11-02 21:04:26 -04:00
Luke Parker
83caa8b413 Add a _ to the validator arg in slash 2022-11-02 05:03:00 -04:00
Luke Parker
40b6cb7106 Add an already in chain check to block import
While the inner should do this for us, we call verify_order on our end 
*before* inner to ensure sequential import. Accordingly, we need to 
provide our own check.

Removes errors of "non-sequential import" when trying to re-import an 
existing block.
2022-11-02 03:35:46 -04:00
Luke Parker
16065ccd4e Remove an attempt at caching I don't believe would ever hit 2022-11-02 03:29:04 -04:00
Luke Parker
ca043f55ad Use a rounded genesis to obtain sufficient synchrony within the Docker env 2022-11-02 03:05:04 -04:00
Luke Parker
38cee041d6 Fix handling of the GossipEngine 2022-11-02 02:43:08 -04:00
Luke Parker
e3fc3f28fb Configure node for a multi-node testnet 2022-11-01 23:10:36 -04:00
Luke Parker
86aaadaea0 Update node to latest sc_tendermint 2022-11-01 21:32:18 -04:00
Luke Parker
9a26ac6899 Remove unnecessary PhantomDatas 2022-11-01 20:58:59 -04:00
Luke Parker
5832007a45 Take in a Keystore and validator ID 2022-11-01 20:06:42 -04:00
Luke Parker
aa0a4cf106 Implement proper checking of inherents 2022-11-01 16:37:50 -04:00
Luke Parker
19154cf8e1 Move sc_tendermint to async sign 2022-11-01 16:28:08 -04:00
Luke Parker
2947ef08e3 Make sign asynchronous
Some relation to https://github.com/serai-dex/serai/issues/95.
2022-11-01 15:10:50 -04:00
Luke Parker
45a5d3eb1d Add another missing comment 2022-10-31 23:56:13 -04:00
Luke Parker
8f065533dc Add documentation to public structs/functions in sc_tendermint 2022-10-30 12:27:16 -04:00
Luke Parker
c4976ff97d Consolidate references to sr25519 in sc_tendermint 2022-10-30 11:24:52 -04:00
Luke Parker
503adfee2f Replace best_* with finalized_*
We test their equivalency yet still better to use finalized_* in 
general.
2022-10-30 11:13:47 -04:00
Luke Parker
c0056643c8 Consolidate file structure in sc_tendermint 2022-10-30 11:08:12 -04:00
Luke Parker
91ae2b7112 Move serai_runtime specific code from tendermint/client to node
Renames serai-consensus to sc_tendermint
2022-10-30 10:54:17 -04:00
Luke Parker
a0e0545c49 Deleted comment code related to PoW 2022-10-30 10:10:17 -04:00
Luke Parker
3d7c12adcd Create a dedicated file for being a Tendermint authority 2022-10-30 10:08:35 -04:00
Luke Parker
066bc40a88 Merge Verifier into block_import.rs
These two files were largely the same, just hooking into sync structs 
with almost identical imports. As this project shapes up, removing dead 
weight is appreciated.
2022-10-30 06:30:44 -04:00
Luke Parker
f37adf4feb Remove machine from TendermintImport
It's not used there at all.
2022-10-30 06:29:37 -04:00
Luke Parker
aee0bde45d Connect broadcast 2022-10-30 05:37:23 -04:00
Luke Parker
6c54289fb4 Connect the Tendermint machine to a GossipEngine 2022-10-30 05:16:25 -04:00