Luke Parker
bc1dec7991
Move TRANSACTION_MESSAGE to 1
2024-04-28 04:04:53 -04:00
Luke Parker
b39c751403
Reduce target peers a bit
2024-04-23 12:59:45 -04:00
Luke Parker
cc7202e0bf
Correct recv to try_recv when exhausting channel
2024-04-23 12:40:21 -04:00
Luke Parker
19e68f7f75
Correct selection of to-try peers to prevent infinite loops when to-try < target
2024-04-23 12:04:30 -04:00
Luke Parker
d94c9a4a5e
Use a constant for the target amount of peer
2024-04-23 11:59:51 -04:00
Luke Parker
43dc036660
Use a HashSet for which networks to try peer finding for
...
Prevents a flood of retries from individually failed attempts within a batch of
peer connection attempts.
2024-04-23 10:55:56 -04:00
Luke Parker
95591218bb
Remove cbor
2024-04-23 07:01:07 -04:00
Luke Parker
7dd587a864
Inline broadcast_raw now that it doesn't have multiple callers
2024-04-23 06:44:21 -04:00
Luke Parker
023275bcb6
Properly diversify ReqResMessageKind/GossipMessageKind
2024-04-23 06:37:41 -04:00
Luke Parker
8cef9eff6f
Move keep alive, heartbeat, block to request/response
2024-04-23 05:44:58 -04:00
Luke Parker
a41329c027
Update clippy now that redundant imports has been reverted
2024-04-23 04:31:27 -04:00
Luke Parker
c73acb3d62
Log on new tendermint message debug -> trace
2024-04-21 19:28:21 -04:00
Luke Parker
933b17aa91
Revert coordinator/tributary to fd4f247917
...
\#560 is causing notable CI failures, with its logs including slashes at 10x
the prior rate.
2024-04-21 10:16:12 -04:00
Luke Parker
5fa7e3d450
Line for prior commit
2024-04-21 08:55:29 -04:00
Luke Parker
749d783b1e
Comment the insanely aggressive timeout future trace log
2024-04-21 08:53:35 -04:00
Luke Parker
5a3ea80943
Add missing continue to prevent dialing a node we're connected to
2024-04-21 08:36:52 -04:00
Luke Parker
fddbebc7c0
Replace expect with debug log
2024-04-21 08:02:34 -04:00
Luke Parker
e01848aa9e
Correct boolean NOT on is_fresh_dial
2024-04-21 07:30:31 -04:00
Luke Parker
320b5627b5
Retry if initial dials fail, not just upon disconnect
2024-04-21 07:26:16 -04:00
Luke Parker
be7780e69d
Restart coordinator peer finding upon disconnections
2024-04-21 07:02:49 -04:00
Luke Parker
0ddbaefb38
Correct timing around when we verify precommit signatures
2024-04-21 06:12:01 -04:00
Luke Parker
43083dfd49
Remove redundant log from tendermint lib
2024-04-21 05:32:41 -04:00
Luke Parker
523d2ac911
Rewrite tendermint's message handling loop to much more clearly match the paper ( #560 )
...
* Rewrite tendermint's message handling loop to much more clearly match the paper
No longer checks relevant branches upon messages, yet all branches upon any
state change. This is slower, yet easier to review and likely without one or
two rare edge cases.
When reviewing, please see page 5 of https://arxiv.org/pdf/1807.04938.pdf .
Lines from the specified algorithm can be found in the code by searching for
"// L".
* Sane rebroadcasting of consensus messages
Instead of broadcasting the last n messages on the Tributary side of things, we
now have the machine rebroadcast the message tape for the current block.
* Only rebroadcast messages which didn't error in some way
* Only rebroadcast our own messages for tendermint
2024-04-21 05:30:31 -04:00
Luke Parker
fd4f247917
Correct log which didn't work as intended
2024-04-20 19:54:16 -04:00
Luke Parker
ac9e356af4
Correct log targets in tendermint-machine
2024-04-20 19:15:15 -04:00
Luke Parker
bba7d2a356
Better logs in tendermint-machine
2024-04-20 18:13:44 -04:00
Luke Parker
4c349ae605
Redo how tendermint-machine checks if messages were prior sent
...
Instead of saving, for every sent message, if it was sent or not, we track the
latest block/round participated in. These two keys are comprehensive to all
prior block/rounds. We then use three keys for the latest round's
proposal/prevote/precommit, enabling tracking current state as necessary to
prevent equivocations with just 5 keys.
The storage of the latest three messages also enables proper rebroadcasting of
the current round (not implemented in this commit).
2024-04-20 18:10:51 -04:00
Luke Parker
593aefd229
Extend time in sync test
2024-04-18 02:51:38 -04:00
Luke Parker
5830c2463d
fmt
2024-04-18 02:03:28 -04:00
Luke Parker
bcc88c3e86
Don't broadcast added blocks
...
Online validators should inherently have them. Offline validators will receive
from the sync protocol.
This does somewhat eliminate the class of nodes who would follow the blockchain
(without validating it), yet that's fine for the performance benefit.
2024-04-18 01:48:11 -04:00
Luke Parker
fea16df567
Only reply to heartbeats after a certain distance
2024-04-18 01:39:34 -04:00
Luke Parker
4960c3222e
Ensure we don't reply to stale heartbeats
2024-04-18 01:24:38 -04:00
Luke Parker
6b4df4f2c0
Only have some nodes respond to latent heartbeats
...
Also only respond if they're more than 2 blocks behind to minimize redundant
sending of blocks.
2024-04-17 21:54:10 -04:00
Luke Parker
bc44fbdbac
Add TODO to coordinator P2P
2024-03-23 23:32:21 -04:00
Luke Parker
4cacce5e55
Perform key share amortization on-chain to avoid discrepancies
2024-03-23 23:32:14 -04:00
Luke Parker
b7d49af1d5
Track total peer count in the coordinator
2024-03-23 18:02:48 -04:00
Luke Parker
4914420a37
Don't add as an explicit peer if already connected
2024-03-22 23:51:51 -04:00
Luke Parker
f11a08c436
Peer finding which won't get stuck on one specific network
2024-03-22 23:47:43 -04:00
Luke Parker
35b58a45bd
Split peer finding into a dedicated task
2024-03-22 23:40:15 -04:00
Luke Parker
af9b1ad5f9
Initial pruning of backlogged consensus messages
2024-03-22 23:18:53 -04:00
Luke Parker
2f07d04d88
Extend timeout for rebroadcast of consensus messages in coordinator
2024-03-22 16:06:31 -04:00
Luke Parker
0889627e60
Typo fix for prior commit
2024-03-11 02:20:51 -04:00
Luke Parker
ace41c79fd
Tidy the BlockHasEvents cache
2024-03-11 01:44:00 -04:00
Luke Parker
f7d16b3fc5
Fix 0 - 1 which caused a panic
2024-03-09 05:37:41 -05:00
Luke Parker
6374d9987e
Correct how we save the block to scan from
2024-03-09 03:48:44 -05:00
Luke Parker
c93f6bf901
Replace yield_now with sleep 100 to prevent hammering a task, despite still being over-eager
2024-03-09 03:34:31 -05:00
Luke Parker
61a81e53e1
Further optimize cosign DB
2024-03-09 03:31:06 -05:00
Luke Parker
89b237af7e
Correct the return value of block_has_events
2024-03-09 02:44:04 -05:00
Luke Parker
2347bf5fd3
Bound cosign work and ensure it progress forward even when cosigns don't occur
...
Should resolve the DB load observed on testnet.
2024-03-09 02:20:23 -05:00
Luke Parker
454bebaa77
Have the TendermintMachine domain-separate by genesis
...
Enbables support for multiple machines over the same DB.
2024-03-08 01:22:02 -05:00