21
21
from hathor .conf .get_settings import get_settings
22
22
from hathor .conf .settings import HathorSettings as HathorSettingsType
23
23
from hathor .consensus import ConsensusAlgorithm
24
+ from hathor .daa import DifficultyAdjustmentAlgorithm
24
25
from hathor .event import EventManager
25
26
from hathor .event .storage import EventMemoryStorage , EventRocksDBStorage , EventStorage
26
27
from hathor .event .websocket import EventWebsocketFactory
@@ -102,6 +103,8 @@ def __init__(self) -> None:
102
103
self ._feature_service : Optional [FeatureService ] = None
103
104
self ._bit_signaling_service : Optional [BitSignalingService ] = None
104
105
106
+ self ._daa : Optional [DifficultyAdjustmentAlgorithm ] = None
107
+
105
108
self ._vertex_verifiers : Optional [VertexVerifiers ] = None
106
109
self ._verification_service : Optional [VerificationService ] = None
107
110
@@ -162,6 +165,7 @@ def build(self) -> BuildArtifacts:
162
165
feature_service = self ._get_or_create_feature_service (tx_storage )
163
166
bit_signaling_service = self ._get_or_create_bit_signaling_service (tx_storage )
164
167
verification_service = self ._get_or_create_verification_service ()
168
+ daa = self ._get_or_create_daa ()
165
169
166
170
if self ._enable_address_index :
167
171
indexes .enable_address_index (pubsub )
@@ -186,6 +190,7 @@ def build(self) -> BuildArtifacts:
186
190
network = self ._network ,
187
191
pubsub = pubsub ,
188
192
consensus_algorithm = consensus_algorithm ,
193
+ daa = daa ,
189
194
peer_id = peer_id ,
190
195
tx_storage = tx_storage ,
191
196
p2p_manager = p2p_manager ,
@@ -441,10 +446,18 @@ def _get_or_create_verification_service(self) -> VerificationService:
441
446
def _get_or_create_vertex_verifiers (self ) -> VertexVerifiers :
442
447
if self ._vertex_verifiers is None :
443
448
settings = self ._get_or_create_settings ()
444
- self ._vertex_verifiers = VertexVerifiers .create (settings = settings )
449
+ daa = self ._get_or_create_daa ()
450
+ self ._vertex_verifiers = VertexVerifiers .create (settings = settings , daa = daa )
445
451
446
452
return self ._vertex_verifiers
447
453
454
+ def _get_or_create_daa (self ) -> DifficultyAdjustmentAlgorithm :
455
+ if self ._daa is None :
456
+ settings = self ._get_or_create_settings ()
457
+ self ._daa = DifficultyAdjustmentAlgorithm (settings = settings )
458
+
459
+ return self ._daa
460
+
448
461
def use_memory (self ) -> 'Builder' :
449
462
self .check_if_can_modify ()
450
463
self ._storage_type = StorageType .MEMORY
@@ -547,6 +560,11 @@ def set_vertex_verifiers(self, vertex_verifiers: VertexVerifiers) -> 'Builder':
547
560
self ._vertex_verifiers = vertex_verifiers
548
561
return self
549
562
563
+ def set_daa (self , daa : DifficultyAdjustmentAlgorithm ) -> 'Builder' :
564
+ self .check_if_can_modify ()
565
+ self ._daa = daa
566
+ return self
567
+
550
568
def set_reactor (self , reactor : Reactor ) -> 'Builder' :
551
569
self .check_if_can_modify ()
552
570
self ._reactor = reactor
0 commit comments