mirror of
https://github.com/serai-dex/serai.git
synced 2025-12-08 12:19:24 +00:00
Tweak Heartbeat configuration so LibP2P can be expected to deliver messages within latency window
This commit is contained in:
@@ -274,6 +274,11 @@ pub struct TendermintNetwork<D: Db, T: TransactionTrait, P: P2p> {
|
||||
pub(crate) p2p: P,
|
||||
}
|
||||
|
||||
pub const BLOCK_PROCESSING_TIME: u32 = 999;
|
||||
pub const LATENCY_TIME: u32 = 1667;
|
||||
// TODO: Add test asserting this
|
||||
pub const TARGET_BLOCK_TIME: u32 = BLOCK_PROCESSING_TIME + (3 * LATENCY_TIME);
|
||||
|
||||
#[async_trait]
|
||||
impl<D: Db, T: TransactionTrait, P: P2p> Network for TendermintNetwork<D, T, P> {
|
||||
type ValidatorId = [u8; 32];
|
||||
@@ -285,8 +290,8 @@ impl<D: Db, T: TransactionTrait, P: P2p> Network for TendermintNetwork<D, T, P>
|
||||
// The block time is the latency on message delivery (where a message is some piece of data
|
||||
// embedded in a transaction) times three plus the block processing time, hence why it should be
|
||||
// kept low.
|
||||
const BLOCK_PROCESSING_TIME: u32 = 999;
|
||||
const LATENCY_TIME: u32 = 1667;
|
||||
const BLOCK_PROCESSING_TIME: u32 = BLOCK_PROCESSING_TIME;
|
||||
const LATENCY_TIME: u32 = LATENCY_TIME;
|
||||
|
||||
fn signer(&self) -> Arc<Signer> {
|
||||
self.signer.clone()
|
||||
|
||||
@@ -189,7 +189,8 @@ impl<N: Network + 'static> TendermintMachine<N> {
|
||||
// Push it on to the queue. This is done so we only handle one message at a time, and so we
|
||||
// can handle our own message before broadcasting it. That way, we fail before before
|
||||
// becoming malicious
|
||||
self.queue.push_back(msg);
|
||||
// push_front to prioritize our own messages
|
||||
self.queue.push_front(msg);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user