@@ -109,14 +109,15 @@ async fn keep_processing_units_until<U: Unit>(
109109/// We refer to the documentation https://cardinal-cryptography.github.io/AlephBFT/internals.html
110110/// Section 5.1 for a discussion of this component.
111111pub async fn run < U : Unit , MK : MultiKeychain , DP : DataProvider > (
112+ creator : Creator < U :: Hasher > ,
112113 conf : Config ,
113114 mut io : IO < U , MK , DP > ,
114115 keychain : MK ,
115116 mut starting_round : oneshot:: Receiver < Option < Round > > ,
116117 mut terminator : Terminator ,
117118) {
118119 futures:: select! {
119- _ = read_starting_round_and_run_creator( conf, & mut io, keychain, & mut starting_round) . fuse( ) =>
120+ _ = read_starting_round_and_run_creator( creator , conf, & mut io, keychain, & mut starting_round) . fuse( ) =>
120121 debug!( target: LOG_TARGET , "Creator is about to finish." ) ,
121122 _ = terminator. get_exit( ) . fuse( ) =>
122123 debug!( target: LOG_TARGET , "Received an exit signal." ) ,
@@ -126,6 +127,7 @@ pub async fn run<U: Unit, MK: MultiKeychain, DP: DataProvider>(
126127}
127128
128129async fn read_starting_round_and_run_creator < U : Unit , MK : MultiKeychain , DP : DataProvider > (
130+ creator : Creator < U :: Hasher > ,
129131 conf : Config ,
130132 io : & mut IO < U , MK , DP > ,
131133 keychain : MK ,
@@ -144,7 +146,7 @@ async fn read_starting_round_and_run_creator<U: Unit, MK: MultiKeychain, DP: Dat
144146 }
145147 } ;
146148
147- if let Err ( err) = run_creator ( conf, io, keychain, starting_round) . await {
149+ if let Err ( err) = run_creator ( creator , conf, io, keychain, starting_round) . await {
148150 match err {
149151 CreatorError :: OutChannelClosed ( e) => {
150152 warn ! ( target: LOG_TARGET , "Notification send error: {}. Exiting." , e)
@@ -157,17 +159,15 @@ async fn read_starting_round_and_run_creator<U: Unit, MK: MultiKeychain, DP: Dat
157159}
158160
159161async fn run_creator < U : Unit , MK : MultiKeychain , DP : DataProvider > (
162+ mut creator : Creator < U :: Hasher > ,
160163 conf : Config ,
161164 io : & mut IO < U , MK , DP > ,
162165 keychain : MK ,
163166 starting_round : Round ,
164167) -> anyhow:: Result < ( ) , CreatorError > {
165- let node_id = conf. node_ix ( ) ;
166- let n_members = conf. n_members ( ) ;
167168 let create_delay = conf. delay_config ( ) . unit_creation_delay . clone ( ) ;
168169 let max_round = conf. max_round ( ) ;
169170 let session_id = conf. session_id ( ) ;
170- let mut creator = Creator :: new ( node_id, n_members) ;
171171 let packer = Packer :: new ( keychain, session_id) ;
172172 let incoming_parents = & mut io. incoming_parents ;
173173 let outgoing_units = & io. outgoing_units ;
0 commit comments