mirror of
https://github.com/logos-co/nomos-specs.git
synced 2025-02-12 23:36:29 +00:00
Refactor FlatOverlay
This commit is contained in:
parent
34617dc911
commit
9ae2f99b5c
@ -1,25 +1,34 @@
|
|||||||
import random
|
import random
|
||||||
from abc import abstractmethod
|
from abc import abstractmethod
|
||||||
from typing import Set, Optional, List
|
from typing import Set, Optional, List, Self
|
||||||
from carnot import Overlay, Id, Committee, View
|
from carnot import Overlay, Id, Committee, View
|
||||||
|
|
||||||
|
|
||||||
class EntropyOverlay(Overlay):
|
class EntropyOverlay(Overlay):
|
||||||
@abstractmethod
|
@abstractmethod
|
||||||
def set_entropy(self, entropy: bytes):
|
def advance(self, entropy: bytes) -> Self:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
class FlatOverlay(EntropyOverlay):
|
class FlatOverlay(EntropyOverlay):
|
||||||
def set_entropy(self, entropy: bytes):
|
|
||||||
|
def __init__(self, current_leader: Id, nodes: List[Id], entropy: bytes):
|
||||||
|
self.current_leader = current_leader
|
||||||
|
self.nodes = nodes
|
||||||
|
self.entropy = entropy
|
||||||
|
|
||||||
|
def next_leader(self) -> Id:
|
||||||
|
random.seed(a=self.entropy, version=2)
|
||||||
|
return random.choice(self.nodes)
|
||||||
|
|
||||||
|
def advance(self, entropy: bytes):
|
||||||
self.entropy = entropy
|
self.entropy = entropy
|
||||||
|
|
||||||
def is_leader(self, _id: Id):
|
def is_leader(self, _id: Id):
|
||||||
return _id == self.leader()
|
return _id == self.leader()
|
||||||
|
|
||||||
def leader(self) -> Id:
|
def leader(self) -> Id:
|
||||||
random.seed(a=self.entropy, version=2)
|
return self.current_leader
|
||||||
return random.choice(self.nodes)
|
|
||||||
|
|
||||||
def is_member_of_leaf_committee(self, _id: Id) -> bool:
|
def is_member_of_leaf_committee(self, _id: Id) -> bool:
|
||||||
return True
|
return True
|
||||||
@ -48,9 +57,5 @@ class FlatOverlay(EntropyOverlay):
|
|||||||
def super_majority_threshold(self, _id: Id) -> int:
|
def super_majority_threshold(self, _id: Id) -> int:
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def __init__(self, nodes: List[Id]):
|
|
||||||
self.nodes = nodes
|
|
||||||
self.entropy = None
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user