From 2382799372734bdafeb148040ed479a764a0e3e9 Mon Sep 17 00:00:00 2001 From: elliedavidson <118024407+elliedavidson@users.noreply.github.com> Date: Thu, 17 Aug 2023 09:29:26 -0400 Subject: [PATCH 1/2] Add diagram, README, and event documentation --- task-impls/HotShot_event_architecture.png | Bin 0 -> 123290 bytes task-impls/README.md | 6 ++++++ task-impls/src/events.rs | 25 ++++++++++++++++++++-- 3 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 task-impls/HotShot_event_architecture.png create mode 100644 task-impls/README.md diff --git a/task-impls/HotShot_event_architecture.png b/task-impls/HotShot_event_architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1891624c2c3a9848ea19963d2c319b7048cff5 GIT binary patch literal 123290 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ℑfZP?E_D^ImGO+`9|#{*EPZX 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 Ma9#hEF7p2W1EktFwg3PC literal 0 HcmV?d00001 diff --git a/task-impls/README.md b/task-impls/README.md new file mode 100644 index 0000000000..9dd0c2ae81 --- /dev/null +++ b/task-impls/README.md @@ -0,0 +1,6 @@ +HotShot uses an event-based architecture. This architecture is made of 4 main tasks: Network Task, View Sync Task, Consensus Task, and DA Task. The Network Task handles all incoming and outgoing messages. It forwards incoming messages to the correct task and listens for outgoing messages from the other tasks. The View Sync Task coordinates the view sync protocol. It listens for timeout events from the Consensus Task. Once a certain threshold of timeouts seen has been reached, the View Sync Task starts the View Sync protocol to bring the network back into agreement on which view it should be in. The Consensus Task handles the core HotShot consensus logic. It manages replicas that listen for quourm propsoals and vote on them, leaders who send quorum proposals, and next leaders who listen for quorum votes and form QCs. The DA task handles the data availability protocol of HotShot. It listens for DA proposals, sends DA proposals, and forms a Data Availability Certificate (DAC) + +A diagram of how events interact with each task is below: +![HotShot Event Architecture](HotShot_event_architecture.png) + +For more information about each event see `./src/events.rs` \ No newline at end of file diff --git a/task-impls/src/events.rs b/task-impls/src/events.rs index 02dac11096..d50e73f60a 100644 --- a/task-impls/src/events.rs +++ b/task-impls/src/events.rs @@ -12,32 +12,53 @@ use crate::view_sync::ViewSyncPhase; #[derive(Eq, Hash, PartialEq, Debug, Clone)] pub enum SequencingHotShotEvent> { + /// Shutdown the task Shutdown, + /// A quorum proposal has been received from the network; handled by the consensus task QuorumProposalRecv(Proposal>, TYPES::SignatureKey), + /// A quorum vote has been received from the network; handled by the consensus task QuorumVoteRecv(QuorumVote), + /// A DA proposal has been received from the network; handled by the DA task DAProposalRecv(Proposal>, TYPES::SignatureKey), + /// A DA vote has been received by the network; handled by the DA task DAVoteRecv(DAVote), + /// A Data Availability Certificate (DAC) has been recieved by the network; handled by the consensus task DACRecv(DACertificate), + /// Send a quorum proposal to the network; emitted by the leader in the consensus task QuorumProposalSend(Proposal>, TYPES::SignatureKey), + /// Send a quorum vote to the next leader; emitted by a replica in the consensus task after seeing a valid quorum proposal QuorumVoteSend(QuorumVote), + /// Send a DA proposal to the DA committee; emitted by the DA leader (which is the same node as the leader of view v + 1) in the DA task DAProposalSend(Proposal>, TYPES::SignatureKey), + /// Send a DA vote to the DA leader; emitted by DA committee members in the DA task after seeing a valid DA proposal DAVoteSend(DAVote), + /// The next leader has collected enough votes to form a QC; emitted by the next leader in the consensus task; an internal event only QCFormed(QuorumCertificate), + /// The DA leader has collected enough votes to form a DAC; emitted by the DA leader in the DA task; sent to the entire network via the networking task DACSend(DACertificate, TYPES::SignatureKey), + /// The current view has changed; emitted by the replica in the consensus task or replica in the view sync task; received by almost all other tasks ViewChange(ViewNumber), + /// Timeout for the view sync protocol; emitted by a replica in the view sync task ViewSyncTimeout(ViewNumber, u64, ViewSyncPhase), + /// Send a view sync vote to the network; emitted by a replica in the view sync task ViewSyncVoteSend(ViewSyncVote), + /// Send a view sync certificate to the network; emitted by a relay in the view sync task ViewSyncCertificateSend( Proposal>, TYPES::SignatureKey, ), + /// Receive a view sync vote from the network; received by a relay in the view sync task ViewSyncVoteRecv(ViewSyncVote), + /// Receive a view sync certificate from the network; received by a replica in the view sync task ViewSyncCertificateRecv(Proposal>), + /// Trigger the start of the view sync protocol; emitted by view sync task; internal trigger only ViewSyncTrigger(ViewNumber), + /// A consensus view has timed out; emitted by a replica in the consensus task; received by the view sync task; internal event only Timeout(ViewNumber), + /// Receive transactions from the network TransactionsRecv(Vec), + /// Send transactions to the network TransactionSend(TYPES::Transaction, TYPES::SignatureKey), - - // Event to send DA block data from DA leader to next quorum leader (which should always be the same node) + // Event to send DA block data from DA leader to next quorum leader (which should always be the same node); internal event only SendDABlockData(TYPES::BlockType), } From ca5774c8d768862ae7c8b172b5e1f4f29f05a10a Mon Sep 17 00:00:00 2001 From: elliedavidson <118024407+elliedavidson@users.noreply.github.com> Date: Thu, 17 Aug 2023 09:32:40 -0400 Subject: [PATCH 2/2] add original drawio file for future editing --- task-impls/HotShot_event_architecture.drawio | 294 +++++++++++++++++++ 1 file changed, 294 insertions(+) create mode 100644 task-impls/HotShot_event_architecture.drawio diff --git a/task-impls/HotShot_event_architecture.drawio b/task-impls/HotShot_event_architecture.drawio new file mode 100644 index 0000000000..ee5702aa4e --- /dev/null +++ b/task-impls/HotShot_event_architecture.drawio @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +