Skip to content

Commit 2034a63

Browse files
committed
refactor(p2p_channels_snark): Combine all action types of the p2p_channels_snark module into the parent action type
1 parent 5ce4c57 commit 2034a63

File tree

12 files changed

+264
-506
lines changed

12 files changed

+264
-506
lines changed

node/src/effects.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use p2p::channels::snark::P2pChannelsSnarkAction;
12
use redux::ActionMeta;
23

34
use crate::block_producer::{block_producer_effects, BlockProducerWonSlotProduceInitAction};
@@ -8,7 +9,6 @@ use crate::logger::logger_effects;
89
use crate::p2p::channels::rpc::{
910
P2pChannelsRpcRequestSendAction, P2pChannelsRpcTimeoutAction, P2pRpcKind, P2pRpcRequest,
1011
};
11-
use crate::p2p::channels::snark::P2pChannelsSnarkRequestSendAction;
1212
use crate::p2p::connection::incoming::P2pConnectionIncomingTimeoutAction;
1313
use crate::p2p::connection::outgoing::{
1414
P2pConnectionOutgoingRandomInitAction, P2pConnectionOutgoingReconnectAction,
@@ -210,7 +210,7 @@ fn p2p_request_snarks_if_needed<S: Service>(store: &mut Store<S>) {
210210
.collect::<Vec<_>>();
211211

212212
for (peer_id, limit) in snark_reqs {
213-
store.dispatch(P2pChannelsSnarkRequestSendAction { peer_id, limit });
213+
store.dispatch(P2pChannelsSnarkAction::RequestSend { peer_id, limit });
214214
}
215215
}
216216

node/src/event_source/event_source_effects.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
use p2p::channels::snark::P2pChannelsSnarkAction;
12
use p2p::listen::{
23
P2pListenClosedAction, P2pListenErrorAction, P2pListenExpiredAction, P2pListenNewAction,
34
};
@@ -8,9 +9,6 @@ use crate::block_producer::vrf_evaluator::BlockProducerVrfEvaluatorEvaluationSuc
89
use crate::external_snark_worker::ExternalSnarkWorkerEvent;
910
use crate::p2p::channels::best_tip::P2pChannelsBestTipAction;
1011
use crate::p2p::channels::rpc::P2pChannelsRpcReadyAction;
11-
use crate::p2p::channels::snark::{
12-
P2pChannelsSnarkLibp2pReceivedAction, P2pChannelsSnarkReadyAction,
13-
};
1412
use crate::p2p::channels::snark_job_commitment::P2pChannelsSnarkJobCommitmentAction;
1513
use crate::p2p::channels::{ChannelId, P2pChannelsMessageReceivedAction};
1614
use crate::p2p::connection::incoming::{
@@ -177,7 +175,7 @@ pub fn event_source_effects<S: Service>(store: &mut Store<S>, action: EventSourc
177175
}
178176
ChannelId::SnarkPropagation => {
179177
// TODO(binier): maybe dispatch success and then ready.
180-
store.dispatch(P2pChannelsSnarkReadyAction { peer_id });
178+
store.dispatch(P2pChannelsSnarkAction::Ready { peer_id });
181179
}
182180
ChannelId::SnarkJobCommitmentPropagation => {
183181
// TODO(binier): maybe dispatch success and then ready.
@@ -207,7 +205,7 @@ pub fn event_source_effects<S: Service>(store: &mut Store<S>, action: EventSourc
207205
}
208206
},
209207
P2pChannelEvent::Libp2pSnarkReceived(peer_id, snark, nonce) => {
210-
store.dispatch(P2pChannelsSnarkLibp2pReceivedAction {
208+
store.dispatch(P2pChannelsSnarkAction::Libp2pReceived {
211209
peer_id,
212210
snark,
213211
nonce,

node/src/logger/logger_effects.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -382,20 +382,20 @@ pub fn logger_effects<S: Service>(store: &Store<S>, action: ActionWithMetaRef<'_
382382
_ => {}
383383
},
384384
P2pChannelsAction::Snark(action) => match action {
385-
P2pChannelsSnarkAction::Init(action) => {
385+
P2pChannelsSnarkAction::Init { peer_id } => {
386386
openmina_core::log::debug!(
387387
meta.time();
388388
kind = kind.to_string(),
389-
summary = format!("peer_id: {}", action.peer_id),
390-
peer_id = action.peer_id.to_string()
389+
summary = format!("peer_id: {peer_id}", ),
390+
peer_id = peer_id.to_string()
391391
);
392392
}
393-
P2pChannelsSnarkAction::Ready(action) => {
393+
P2pChannelsSnarkAction::Ready { peer_id } => {
394394
openmina_core::log::debug!(
395395
meta.time();
396396
kind = kind.to_string(),
397-
summary = format!("peer_id: {}", action.peer_id),
398-
peer_id = action.peer_id.to_string()
397+
summary = format!("peer_id: {peer_id}", ),
398+
peer_id = peer_id.to_string()
399399
);
400400
}
401401
_ => {}

node/src/p2p/channels/snark/p2p_channels_snark_actions.rs

Lines changed: 1 addition & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,6 @@
11
use super::*;
22

3-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkInitAction {
4-
fn is_enabled(&self, state: &crate::State) -> bool {
5-
self.is_enabled(&state.p2p)
6-
}
7-
}
8-
9-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkPendingAction {
10-
fn is_enabled(&self, state: &crate::State) -> bool {
11-
self.is_enabled(&state.p2p)
12-
}
13-
}
14-
15-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkReadyAction {
16-
fn is_enabled(&self, state: &crate::State) -> bool {
17-
self.is_enabled(&state.p2p)
18-
}
19-
}
20-
21-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkRequestSendAction {
22-
fn is_enabled(&self, state: &crate::State) -> bool {
23-
self.is_enabled(&state.p2p)
24-
}
25-
}
26-
27-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkPromiseReceivedAction {
28-
fn is_enabled(&self, state: &crate::State) -> bool {
29-
self.is_enabled(&state.p2p)
30-
}
31-
}
32-
33-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkReceivedAction {
34-
fn is_enabled(&self, state: &crate::State) -> bool {
35-
self.is_enabled(&state.p2p)
36-
}
37-
}
38-
39-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkRequestReceivedAction {
40-
fn is_enabled(&self, state: &crate::State) -> bool {
41-
self.is_enabled(&state.p2p)
42-
}
43-
}
44-
45-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkResponseSendAction {
46-
fn is_enabled(&self, state: &crate::State) -> bool {
47-
self.is_enabled(&state.p2p)
48-
}
49-
}
50-
51-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkLibp2pReceivedAction {
52-
fn is_enabled(&self, state: &crate::State) -> bool {
53-
self.is_enabled(&state.p2p)
54-
}
55-
}
56-
57-
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkLibp2pBroadcastAction {
3+
impl redux::EnablingCondition<crate::State> for P2pChannelsSnarkAction {
584
fn is_enabled(&self, state: &crate::State) -> bool {
595
self.is_enabled(&state.p2p)
606
}

node/src/p2p/mod.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -99,16 +99,7 @@ impl_into_global_action!(channels::P2pChannelsMessageReceivedAction);
9999

100100
impl_into_global_action!(channels::best_tip::P2pChannelsBestTipAction);
101101

102-
impl_into_global_action!(channels::snark::P2pChannelsSnarkInitAction);
103-
impl_into_global_action!(channels::snark::P2pChannelsSnarkPendingAction);
104-
impl_into_global_action!(channels::snark::P2pChannelsSnarkReadyAction);
105-
impl_into_global_action!(channels::snark::P2pChannelsSnarkRequestSendAction);
106-
impl_into_global_action!(channels::snark::P2pChannelsSnarkPromiseReceivedAction);
107-
impl_into_global_action!(channels::snark::P2pChannelsSnarkReceivedAction);
108-
impl_into_global_action!(channels::snark::P2pChannelsSnarkRequestReceivedAction);
109-
impl_into_global_action!(channels::snark::P2pChannelsSnarkResponseSendAction);
110-
impl_into_global_action!(channels::snark::P2pChannelsSnarkLibp2pReceivedAction);
111-
impl_into_global_action!(channels::snark::P2pChannelsSnarkLibp2pBroadcastAction);
102+
impl_into_global_action!(channels::snark::P2pChannelsSnarkAction);
112103

113104
impl_into_global_action!(channels::snark_job_commitment::P2pChannelsSnarkJobCommitmentAction);
114105

node/src/p2p/p2p_effects.rs

Lines changed: 18 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -324,39 +324,25 @@ pub fn p2p_effects<S: Service>(store: &mut Store<S>, action: P2pActionWithMeta)
324324
}
325325
action.effects(&meta, store);
326326
}
327-
P2pChannelsAction::Snark(action) => match action {
328-
P2pChannelsSnarkAction::Init(action) => {
329-
action.effects(&meta, store);
330-
}
331-
P2pChannelsSnarkAction::Pending(_) => {}
332-
P2pChannelsSnarkAction::Ready(action) => {
333-
action.effects(&meta, store);
334-
}
335-
P2pChannelsSnarkAction::RequestSend(action) => {
336-
action.effects(&meta, store);
337-
}
338-
P2pChannelsSnarkAction::PromiseReceived(_) => {}
339-
P2pChannelsSnarkAction::Received(action) => {
340-
action.effects(&meta, store);
341-
store.dispatch(SnarkPoolCandidateAction::InfoReceived {
342-
peer_id: action.peer_id,
343-
info: action.snark,
344-
});
345-
}
346-
P2pChannelsSnarkAction::RequestReceived(_) => {}
347-
P2pChannelsSnarkAction::ResponseSend(action) => {
348-
action.effects(&meta, store);
349-
}
350-
P2pChannelsSnarkAction::Libp2pReceived(action) => {
351-
store.dispatch(SnarkPoolCandidateAction::WorkReceived {
352-
peer_id: action.peer_id,
353-
work: action.snark,
354-
});
355-
}
356-
P2pChannelsSnarkAction::Libp2pBroadcast(action) => {
357-
action.effects(&meta, store);
327+
P2pChannelsAction::Snark(action) => {
328+
// TODO: does the order matter here? if not this clone can be removed
329+
action.clone().effects(&meta, store);
330+
match action {
331+
P2pChannelsSnarkAction::Received { peer_id, snark } => {
332+
store.dispatch(SnarkPoolCandidateAction::InfoReceived {
333+
peer_id: peer_id,
334+
info: snark,
335+
});
336+
}
337+
P2pChannelsSnarkAction::Libp2pReceived { peer_id, snark, .. } => {
338+
store.dispatch(SnarkPoolCandidateAction::WorkReceived {
339+
peer_id: peer_id,
340+
work: snark,
341+
});
342+
}
343+
_ => {}
358344
}
359-
},
345+
}
360346
P2pChannelsAction::SnarkJobCommitment(action) => {
361347
// TODO: does the order matter here? if not this clone can be removed
362348
action.clone().effects(&meta, store);

node/src/snark_pool/snark_pool_effects.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
use openmina_core::snark::SnarkJobCommitment;
2+
use p2p::channels::snark::P2pChannelsSnarkAction;
23

3-
use crate::p2p::channels::snark::{
4-
P2pChannelsSnarkLibp2pBroadcastAction, P2pChannelsSnarkResponseSendAction,
5-
};
64
use crate::p2p::channels::snark_job_commitment::P2pChannelsSnarkJobCommitmentAction;
75
use crate::{ExternalSnarkWorkerAction, Service, SnarkerStrategy, State, Store};
86

@@ -114,7 +112,7 @@ pub fn snark_pool_effects<S: Service>(store: &mut Store<S>, action: SnarkPoolAct
114112
}
115113
}
116114

117-
store.dispatch(P2pChannelsSnarkLibp2pBroadcastAction {
115+
store.dispatch(P2pChannelsSnarkAction::Libp2pBroadcast {
118116
snark: a.snark,
119117
nonce: 0,
120118
});
@@ -151,7 +149,7 @@ pub fn snark_pool_effects<S: Service>(store: &mut Store<S>, action: SnarkPoolAct
151149
data_to_send(state, index_and_limit, |job| job.snark_msg());
152150

153151
store.dispatch(send_commitments);
154-
store.dispatch(P2pChannelsSnarkResponseSendAction {
152+
store.dispatch(P2pChannelsSnarkAction::ResponseSend {
155153
peer_id: a.peer_id,
156154
snarks,
157155
first_index,

p2p/src/channels/p2p_channels_effects.rs

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,7 @@ use super::{
88
rpc::{
99
P2pChannelsRpcRequestReceivedAction, P2pChannelsRpcResponseReceivedAction, RpcChannelMsg,
1010
},
11-
snark::{
12-
P2pChannelsSnarkPromiseReceivedAction, P2pChannelsSnarkReceivedAction,
13-
P2pChannelsSnarkRequestReceivedAction, SnarkPropagationChannelMsg,
14-
},
11+
snark::{P2pChannelsSnarkAction, SnarkPropagationChannelMsg},
1512
snark_job_commitment::{
1613
P2pChannelsSnarkJobCommitmentAction, SnarkJobCommitmentPropagationChannelMsg,
1714
},
@@ -23,9 +20,7 @@ impl P2pChannelsMessageReceivedAction {
2320
where
2421
Store: crate::P2pStore<S>,
2522
P2pChannelsBestTipAction: redux::EnablingCondition<S>,
26-
P2pChannelsSnarkRequestReceivedAction: redux::EnablingCondition<S>,
27-
P2pChannelsSnarkPromiseReceivedAction: redux::EnablingCondition<S>,
28-
P2pChannelsSnarkReceivedAction: redux::EnablingCondition<S>,
23+
P2pChannelsSnarkAction: redux::EnablingCondition<S>,
2924
P2pChannelsSnarkJobCommitmentAction: redux::EnablingCondition<S>,
3025
P2pChannelsRpcRequestReceivedAction: redux::EnablingCondition<S>,
3126
P2pChannelsRpcResponseReceivedAction: redux::EnablingCondition<S>,
@@ -45,16 +40,16 @@ impl P2pChannelsMessageReceivedAction {
4540
},
4641
ChannelMsg::SnarkPropagation(msg) => match msg {
4742
SnarkPropagationChannelMsg::GetNext { limit } => {
48-
store.dispatch(P2pChannelsSnarkRequestReceivedAction { peer_id, limit })
43+
store.dispatch(P2pChannelsSnarkAction::RequestReceived { peer_id, limit })
4944
}
5045
SnarkPropagationChannelMsg::WillSend { count } => {
51-
store.dispatch(P2pChannelsSnarkPromiseReceivedAction {
46+
store.dispatch(P2pChannelsSnarkAction::PromiseReceived {
5247
peer_id,
5348
promised_count: count,
5449
})
5550
}
5651
SnarkPropagationChannelMsg::Snark(snark) => {
57-
store.dispatch(P2pChannelsSnarkReceivedAction { peer_id, snark })
52+
store.dispatch(P2pChannelsSnarkAction::Received { peer_id, snark })
5853
}
5954
},
6055
ChannelMsg::SnarkJobCommitmentPropagation(msg) => match msg {

0 commit comments

Comments
 (0)