@@ -17,8 +17,6 @@ module type CONTEXT = sig
17
17
val constraint_constants : Genesis_constants.Constraint_constants .t
18
18
19
19
val consensus_constants : Consensus.Constants .t
20
-
21
- val compile_config : Mina_compile_config .t
22
20
end
23
21
24
22
type Structured_log_events.t + = Bootstrap_complete
@@ -65,9 +63,11 @@ let time_deferred deferred =
65
63
(Time. diff end_time start_time, result)
66
64
67
65
let worth_getting_root ({ context = (module Context); _ } as t ) candidate =
68
- let module Context = struct
66
+ let module Consensus_context = struct
69
67
include Context
70
68
69
+ let compile_config = precomputed_values.compile_config
70
+
71
71
let logger =
72
72
Logger. extend logger
73
73
[ ( " selection_context"
@@ -76,7 +76,7 @@ let worth_getting_root ({ context = (module Context); _ } as t) candidate =
76
76
end in
77
77
Consensus.Hooks. equal_select_status `Take
78
78
@@ Consensus.Hooks. select
79
- ~context: (module Context )
79
+ ~context: (module Consensus_context )
80
80
~existing:
81
81
( t.best_seen_transition |> Mina_block.Validation. block_with_hash
82
82
|> With_hash. map ~f: Mina_block. consensus_state )
@@ -152,7 +152,7 @@ let to_consensus_state h =
152
152
the existing one, then reset the Sync_ledger's target by calling
153
153
[start_sync_job_with_peer] function. *)
154
154
let on_transition ({ context = (module Context); _ } as t ) ~sender
155
- ~root_sync_ledger ~ genesis_constants candidate_header =
155
+ ~root_sync_ledger candidate_header =
156
156
let open Context in
157
157
let candidate_consensus_state =
158
158
With_hash. map ~f: to_consensus_state candidate_header
@@ -175,7 +175,7 @@ let on_transition ({ context = (module Context); _ } as t) ~sender
175
175
match % bind
176
176
Sync_handler.Root. verify
177
177
~context: (module Context )
178
- ~verifier: t.verifier ~genesis_constants candidate_consensus_state
178
+ ~verifier: t.verifier candidate_consensus_state
179
179
peer_root_with_proof.data
180
180
with
181
181
| Ok (`Root root , `Best_tip best_tip ) ->
@@ -189,7 +189,7 @@ let on_transition ({ context = (module Context); _ } as t) ~sender
189
189
incoming transitions, add those to the transition_cache and calls
190
190
[on_transition] function. *)
191
191
let sync_ledger ({ context = (module Context); _ } as t ) ~preferred
192
- ~root_sync_ledger ~transition_graph ~sync_ledger_reader ~ genesis_constants =
192
+ ~root_sync_ledger ~transition_graph ~sync_ledger_reader =
193
193
let open Context in
194
194
let query_reader = Sync_ledger.Db. query_reader root_sync_ledger in
195
195
let response_writer = Sync_ledger.Db. answer_writer root_sync_ledger in
@@ -232,11 +232,15 @@ let sync_ledger ({ context = (module Context); _ } as t) ~preferred
232
232
] ;
233
233
234
234
Deferred. ignore_m
235
- @@ on_transition t ~sender ~root_sync_ledger ~genesis_constants
236
- header_with_hash )
235
+ @@ on_transition t ~sender ~root_sync_ledger header_with_hash )
237
236
else Deferred. unit )
238
237
239
238
let external_transition_compare ~context :(module Context : CONTEXT ) =
239
+ let module Consensus_context = struct
240
+ include Context
241
+
242
+ let compile_config = precomputed_values.compile_config
243
+ end in
240
244
let get_consensus_state =
241
245
Fn. compose Protocol_state. consensus_state Mina_block.Header. protocol_state
242
246
in
@@ -250,7 +254,9 @@ let external_transition_compare ~context:(module Context : CONTEXT) =
250
254
then 0
251
255
else if
252
256
Consensus.Hooks. equal_select_status `Keep
253
- @@ Consensus.Hooks. select ~context: (module Context ) ~existing ~candidate
257
+ @@ Consensus.Hooks. select
258
+ ~context: (module Consensus_context )
259
+ ~existing ~candidate
254
260
then - 1
255
261
else 1 )
256
262
~f: (With_hash. map ~f: get_consensus_state)
@@ -273,10 +279,6 @@ let run ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network
273
279
~persistent_frontier ~initial_root_transition ~catchup_mode =
274
280
let open Context in
275
281
O1trace. thread " bootstrap" (fun () ->
276
- let genesis_constants =
277
- Precomputed_values. genesis_constants precomputed_values
278
- in
279
- let constraint_constants = precomputed_values.constraint_constants in
280
282
let rec loop previous_cycles =
281
283
let sync_ledger_pipe = " sync ledger pipe" in
282
284
let sync_ledger_reader, sync_ledger_writer =
@@ -331,14 +333,21 @@ let run ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network
331
333
temp_persistent_root_instance
332
334
in
333
335
(* step 1. download snarked_ledger *)
336
+ let module Consensus_context = struct
337
+ include Context
338
+
339
+ let compile_config = precomputed_values.compile_config
340
+ end in
334
341
let % bind sync_ledger_time, (hash, sender, expected_staged_ledger_hash) =
335
342
time_deferred
336
343
(let root_sync_ledger =
337
- Sync_ledger.Db. create temp_snarked_ledger ~logger ~trust_system
344
+ Sync_ledger.Db. create temp_snarked_ledger
345
+ ~context: (module Consensus_context )
346
+ ~trust_system
338
347
in
339
348
don't_wait_for
340
349
(sync_ledger t ~preferred: preferred_peers ~root_sync_ledger
341
- ~transition_graph ~sync_ledger_reader ~genesis_constants ) ;
350
+ ~transition_graph ~sync_ledger_reader ) ;
342
351
(* We ignore the resulting ledger returned here since it will always
343
352
* be the same as the ledger we started with because we are syncing
344
353
* a db ledger. *)
@@ -565,7 +574,7 @@ let run ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network
565
574
[% log info] " Synchronizing consensus local state" ;
566
575
let % map result =
567
576
Consensus.Hooks. sync_local_state
568
- ~context: (module Context )
577
+ ~context: (module Consensus_context )
569
578
~local_state: consensus_local_state ~trust_system
570
579
~glue_sync_ledger:
571
580
(Mina_networking. glue_sync_ledger t.network)
@@ -616,7 +625,7 @@ let run ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network
616
625
bootstrapping: " ^ msg )
617
626
in
618
627
Transition_frontier. load
619
- ~context: (module Context )
628
+ ~context: (module Consensus_context )
620
629
~retry_with_fresh_db: false ~verifier ~consensus_local_state
621
630
~persistent_root ~persistent_frontier ~catchup_mode ()
622
631
>> | function
@@ -658,7 +667,7 @@ let run ~context:(module Context : CONTEXT) ~trust_system ~verifier ~network
658
667
in
659
668
Consensus.Hooks. equal_select_status `Take
660
669
@@ Consensus.Hooks. select
661
- ~context: (module Context )
670
+ ~context: (module Consensus_context )
662
671
~existing: root_consensus_state
663
672
~candidate:
664
673
(With_hash. map
@@ -741,8 +750,6 @@ let%test_module "Bootstrap_controller tests" =
741
750
742
751
let constraint_constants = precomputed_values.constraint_constants
743
752
744
- let compile_config = Mina_compile_config.For_unit_tests. t
745
-
746
753
module Context = struct
747
754
let logger = logger
748
755
@@ -752,8 +759,6 @@ let%test_module "Bootstrap_controller tests" =
752
759
Genesis_constants.For_unit_tests.Constraint_constants. t
753
760
754
761
let consensus_constants = precomputed_values.consensus_constants
755
-
756
- let compile_config = compile_config
757
762
end
758
763
759
764
let verifier =
@@ -800,8 +805,7 @@ let%test_module "Bootstrap_controller tests" =
800
805
let % bind fake_network =
801
806
Fake_network.Generator. (
802
807
gen ~precomputed_values ~verifier ~max_frontier_length
803
- ~compile_config [ fresh_peer; fresh_peer ]
804
- ~use_super_catchup: false )
808
+ [ fresh_peer; fresh_peer ] ~use_super_catchup: false )
805
809
in
806
810
let % map make_branch =
807
811
Transition_frontier.Breadcrumb.For_tests. gen_seq ~precomputed_values
@@ -829,16 +833,21 @@ let%test_module "Bootstrap_controller tests" =
829
833
let bootstrap =
830
834
make_non_running_bootstrap ~genesis_root ~network: me.network
831
835
in
836
+ let module Consensus_context = struct
837
+ include Context
838
+
839
+ let compile_config = precomputed_values.compile_config
840
+ end in
832
841
let root_sync_ledger =
833
842
Sync_ledger.Db. create
834
843
(Transition_frontier. root_snarked_ledger me.state.frontier)
835
- ~logger ~trust_system
844
+ ~context: (module Consensus_context )
845
+ ~trust_system
836
846
in
837
847
Async.Thread_safe. block_on_async_exn (fun () ->
838
848
let sync_deferred =
839
849
sync_ledger bootstrap ~root_sync_ledger ~transition_graph
840
850
~preferred: [] ~sync_ledger_reader
841
- ~genesis_constants: Genesis_constants.For_unit_tests. t
842
851
in
843
852
let % bind () =
844
853
Deferred.List. iter branch ~f: (fun breadcrumb ->
@@ -935,7 +944,7 @@ let%test_module "Bootstrap_controller tests" =
935
944
Quickcheck. test ~trials: 1
936
945
Fake_network.Generator. (
937
946
gen ~precomputed_values ~verifier ~max_frontier_length
938
- ~use_super_catchup: false ~compile_config
947
+ ~use_super_catchup: false
939
948
[ fresh_peer
940
949
; peer_with_branch
941
950
~frontier_branch_size: ((max_frontier_length * 2 ) + 2 )
0 commit comments