From 1a0a45727f6b948bc0a1d33e64eb327625cb5671 Mon Sep 17 00:00:00 2001 From: mjalalzai <33738574+MForensic@users.noreply.github.com> Date: Sun, 26 Mar 2023 15:43:18 -0700 Subject: [PATCH] syncMsg+Happy path --- carnot/spec.md | 118 +++++++++++++++++-------------------------------- 1 file changed, 40 insertions(+), 78 deletions(-) diff --git a/carnot/spec.md b/carnot/spec.md index 57ce739..70a28e8 100644 --- a/carnot/spec.md +++ b/carnot/spec.md @@ -89,8 +89,7 @@ class Vote: ### TimeoutMsg view: View ### Currently the 3 QC fields are not being used. But I am keeping it as it might be useful to save a roundtrip during unhappy path. high_qc: Qc -high_committed_qc : Qc -timeout_qc: Qc +timeout_qc: TimeoutMsg_qc sender: Id ``` ```python @@ -98,7 +97,6 @@ sender: Id class TimeoutMsg: view: View high_qc: Qc - high_committed_qc: Qc timeout_qc: Qc sender: Id @@ -113,7 +111,6 @@ class Timeout: ### TimeoutMsg_qc view: View ### Currently the 3 QC fields are not being used. But I am keeping it as it might be useful to save a roundtrip during unhappy path. high_qcs: list[Qc] -high_committed_qc : Qc sender: Id ``` @@ -122,7 +119,6 @@ sender: Id @dataclass class TimeoutMsg_qc: high_qcs: list[Qc] - high_committed_qc : Qc timeout_qc: Qc sender: Id ``` @@ -139,26 +135,12 @@ Participants in the protocol are expected to mainting the following data in addi CURRENT_VIEW: View LOCAL_HIGH_QC: Qc LATEST_COMMITTED_VIEW: View -HIGH_COMMITTED_QC:Qc # This is not needed for consensus but actually helps a lot for any node fallen behind to catchup. PENDING_VOTE_COLLECTION: dict() #id here presents Hash of the block returnd by block.Id() PENDING_TIMEOUTMSG_COLLECTION: dict() LAST_VIEW_TIMEOUT_QC: Timeout_qc ``` -```python -def member_of_internal_com(): - return True - - -def member_of_root(): - return True - - -def member_of_leaf(): - return True - -``` ## Available Functions The following functions are expected to be available to participants during the execution of the protocol: @@ -181,7 +163,7 @@ The following functions are expected to be available to participants during the * For leader: returns if the number of distinct voters for a block is 2/3 + 1 for both children committees of root committee and overall 2/3 + 1 * `morethanSsupermajority(votes)`: returns if the number of distinctive signers of votes for a block is is more than the threshold: TODO -* `parent_committe`: return the parent committee of the participant executing the function withing the committee tree overlay. Result is undefined if called from a participant in the root committee. +* `parent_committee`: return the parent committee of the participant executing the function withing the committee tree overlay. Result is undefined if called from a participant in the root committee. * `oblivious_adjacent_committees()`: returns the committees from which a node has not received the timeout_qc.