コード例 #1
0
 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
コード例 #2
0
    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
コード例 #3
0
ファイル: conftest.py プロジェクト: hyperledger/indy-plenum
 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))
コード例 #4
0
ファイル: conftest.py プロジェクト: hyperledger/indy-plenum
def write_manager(db_manager):
    wrm = WriteRequestManager(database_manager=db_manager)
    wrm.node_reg_handler = NodeRegHandler(db_manager)
    return wrm
コード例 #5
0
 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())