Closed mrnaveira closed 1 month ago
570 tests ±0 569 :white_check_mark: ±0 3h 14m 37s :stopwatch: - 21m 42s 64 suites ±0 0 :zzz: ±0 2 files ±0 1 :x: ±0
For more details on these failures, see this check.
Results for commit ba313103. ± Comparison against base commit 3ecc6713.
:recycle: This comment has been updated with latest results.
Description
tx_gossip_messages_by_topic
) that maps topic prefixes to a channel. On startup we register a channel for mempool (topic prefixtransactions
) and another for consensus (topic prefixconsensus
). Then, on gossip message received, the networking layer simply relays it to the appropriate channel based on the topic prefix. This design allows us to easily use gossip for other purposes in the future.ConsensusGossipService
in the Validator node, that listens for epoch events and subscribes to the appropriate gossip topics. It also does message encoding/decoding.MempoolGossip
module to adapt it to the new gossip design, by implementing message encoding/decoding and to receive the messages from networking.ConsensusInboundMessaging
now also listens to consensus messages coming from the newConsensusGossipService
.ConsensusOutboundMessaging
uses the newConsensusGossipService
for broadcasting.OutboundMessaging
trait for themulticast
function now expects aShardGroup
instead of a committee.Motivation and Context
Hotstuff and cerberus are message based protocols. Currently we implement a message protocol that requires nodes to connect to every other node in the local shard. For cross shard messaging, we implement a strategy that limits the number of messages sent but relies on multiple connections per peer across shards.
We want to leverage libp2p's gossipsub for all consensus broadcasts to local/foreign shards.
consensus-{start}-{end}
(start
andend
are the start/end shards in theShardGroup
type, similar to the mempool service)How Has This Been Tested?
Manually by starting a local network using
tari_spawn
, performing transactions and inspecting the logs.What process can a PR reviewer use to test or verify this change?
See previous section
Breaking Changes