def _register_node_reg_handlers(self): node_reg_handler = NodeRegHandler(self.db_manager) primary_reg_handler = PrimaryBatchHandler(self.db_manager, node_reg_handler) self.write_manager.register_req_handler(node_reg_handler) for lid in self.ledger_ids: # register NodeRegHandler first self.write_manager.register_batch_handler(node_reg_handler, ledger_id=lid) self.write_manager.register_batch_handler(primary_reg_handler, ledger_id=lid) return node_reg_handler
def __init__(self, tmpdir, config=None): node_names = ['Node1', 'Node2', 'Node3', 'Node4'] self.basedirpath = tmpdir self.name = node_names[0] self.viewNo = 0 self.db_manager = DatabaseManager() self.timer = QueueTimer() self.f = 1 self.replicas = dict() self.requests = Requests() self.rank = None self.allNodeNames = node_names self.nodeReg = {name: HA("127.0.0.1", 0) for name in self.allNodeNames} self.nodeIds = [] self.totalNodes = len(self.allNodeNames) self.poolManager = FakeSomething( node_names_ordered_by_rank=lambda: node_names) self.mode = Mode.starting self.monitor = FakeSomething(isMasterDegraded=lambda: False) self.config = config or getConfigOnce() self.nodeStatusDB = None self.quorums = Quorums(self.totalNodes) self.nodestack = FakeSomething(connecteds=set(self.allNodeNames)) self.write_manager = FakeSomething( node_reg_handler=NodeRegHandler(self.db_manager)) self.primaries_selector = RoundRobinConstantNodesPrimariesSelector( node_names) self.replicas = { 0: Replica(node=self, instId=0, isMaster=True, config=self.config), 1: Replica(node=self, instId=1, isMaster=False, config=self.config), 2: Replica(node=self, instId=2, isMaster=False, config=self.config) } self.requiredNumberOfInstances = 2 self._found = False self.ledgerManager = LedgerManager(self) ledger0 = FakeLedger(0, 10) ledger1 = FakeLedger(1, 5) self.ledgerManager.addLedger(0, ledger0) self.ledgerManager.addLedger(1, ledger1) self.quorums = Quorums(self.totalNodes) self.metrics = NullMetricsCollector() # For catchup testing self.view_change_in_progress = False self.ledgerManager.last_caught_up_3PC = (0, 0) self.master_last_ordered_3PC = (0, 0) self.seqNoDB = {} # callbacks self.onBatchCreated = lambda self, *args, **kwargs: True
def __init__(self, viewNo, quorums, ledger_ids): node_names = ["Alpha", "Beta", "Gamma", "Delta"] node_stack = FakeSomething(name="fake stack", connecteds=set(node_names)) self.replicas = [] self.viewNo = viewNo audit_ledger = FakeSomething(size=0, get_last_txn=lambda *args: None, getAllTxn=lambda *args, **kwargs: []) db_manager = DatabaseManager() db_manager.register_new_database(AUDIT_LEDGER_ID, audit_ledger) super().__init__( name="fake node", ledger_ids=ledger_ids, _viewNo=viewNo, quorums=quorums, nodestack=node_stack, utc_epoch=lambda *args: get_utc_epoch(), mode=Mode.participating, view_change_in_progress=False, monitor=FakeSomething(isMasterDegraded=lambda: False), requests=Requests(), onBatchCreated=lambda self, *args, **kwargs: True, applyReq=lambda self, *args, **kwargs: True, primaries=[], get_validators=lambda: [], db_manager=db_manager, write_manager=FakeSomething( database_manager=db_manager, node_reg_handler=NodeRegHandler(db_manager), apply_request=lambda req, cons_time: None), timer=QueueTimer(), poolManager=FakeSomething( node_names_ordered_by_rank=lambda: node_names), primaries_selector=RoundRobinConstantNodesPrimariesSelector( node_names))
def write_manager(db_manager): wrm = WriteRequestManager(database_manager=db_manager) wrm.node_reg_handler = NodeRegHandler(db_manager) return wrm
def _register_node_reg_handlers(self): node_reg_handler = NodeRegHandler(self.db_manager) self.write_manager.register_req_handler(node_reg_handler) for lid in self.ledger_ids: self.write_manager.register_batch_handler(node_reg_handler, ledger_id=lid)
def node_reg_handler(): return NodeRegHandler(DatabaseManager())