@@ -25,121 +25,6 @@ public class CommitMessageMutatorFactory extends MessageMutatorFactory {
25
25
@ Override
26
26
public List <MessageMutationFault > mutators () {
27
27
return List .of (
28
- // new MessageMutationFault("hbft-commit-view-inc", "Increment View Number",List.of(CommitMessage.class)) {
29
- // @Override
30
- // public void accept(FaultContext serializable) {
31
- // Optional<Event> event = serializable.getEvent();
32
- // if (event.isEmpty()) {
33
- // throw invalidMessageTypeException;
34
- // }
35
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
36
- // throw invalidMessageTypeException;
37
- // }
38
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
39
- // throw invalidMessageTypeException;
40
- // }
41
- // CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() + 1);
42
- // mutatedMessage.sign(message.getSignedBy());
43
- // messageEvent.setPayload(mutatedMessage);
44
- // }
45
- // },
46
- // new MessageMutationFault("hbft-commit-view-dec", "Decrement View Number", List.of(CommitMessage.class)) {
47
- // @Override
48
- // public void accept(FaultContext serializable) {
49
- // Optional<Event> event = serializable.getEvent();
50
- // if (event.isEmpty()) {
51
- // throw invalidMessageTypeException;
52
- // }
53
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
54
- // throw invalidMessageTypeException;
55
- // }
56
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
57
- // throw invalidMessageTypeException;
58
- // }
59
- // CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() - 1);
60
- // mutatedMessage.sign(message.getSignedBy());
61
- // messageEvent.setPayload(mutatedMessage);
62
- // }
63
- // },
64
- // new MessageMutationFault("hbft-commit-seq-inc", "Increment Sequence Number", List.of(CommitMessage.class)) {
65
- // @Override
66
- // public void accept(FaultContext serializable) {
67
- // Optional<Event> event = serializable.getEvent();
68
- // if (event.isEmpty()) {
69
- // throw invalidMessageTypeException;
70
- // }
71
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
72
- // throw invalidMessageTypeException;
73
- // }
74
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
75
- // throw invalidMessageTypeException;
76
- // }
77
-
78
- // CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() + 1);
79
- // mutatedMessage.sign(message.getSignedBy());
80
- // messageEvent.setPayload(mutatedMessage);
81
- // }
82
- // },
83
- // new MessageMutationFault("hbft-commit-sec-dec", "Decrement Sequence Number", List.of(CommitMessage.class)) {
84
- // @Override
85
- // public void accept(FaultContext serializable) {
86
- // Optional<Event> event = serializable.getEvent();
87
- // if (event.isEmpty()) {
88
- // throw invalidMessageTypeException;
89
- // }
90
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
91
- // throw invalidMessageTypeException;
92
- // }
93
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
94
- // throw invalidMessageTypeException;
95
- // }
96
- // CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() - 1);
97
- // mutatedMessage.sign(message.getSignedBy());
98
- // messageEvent.setPayload(mutatedMessage);
99
- // }
100
- // },
101
- // new MessageMutationFault("hbft-commit-different-digest", "Change digest", List.of(CommitMessage.class)) {
102
- // @Override
103
- // public void accept(FaultContext serializable) {
104
- // Optional<Event> event = serializable.getEvent();
105
- // if (event.isEmpty()) {
106
- // throw invalidMessageTypeException;
107
- // }
108
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
109
- // throw invalidMessageTypeException;
110
- // }
111
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
112
- // throw invalidMessageTypeException;
113
- // }
114
- // // Create a random digest
115
- // byte[] digest = new byte[20];
116
- // CommitMessage mutatedMessage = message.withDigest(digest);
117
- // mutatedMessage.sign(message.getSignedBy());
118
- // messageEvent.setPayload(mutatedMessage);
119
- // }
120
- // },
121
- // new MessageMutationFault("hbft-commit-remove-last-request-from-history", "Remove last request from history", List.of(CommitMessage.class)) {
122
- // @Override
123
- // public void accept(FaultContext serializable) {
124
- // Optional<Event> event = serializable.getEvent();
125
- // if (event.isEmpty()) {
126
- // throw invalidMessageTypeException;
127
- // }
128
- // if (!(event.get() instanceof MessageEvent messageEvent)) {
129
- // throw invalidMessageTypeException;
130
- // }
131
- // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
132
- // throw invalidMessageTypeException;
133
- // }
134
- // SpeculativeHistory history = message.getSpeculativeHistory().getHistoryBefore(message.getSequenceNumber());
135
- // CommitMessage mutatedMessage = message.withSpeculativeHistory(history);
136
- // mutatedMessage.sign(message.getSignedBy());
137
- // messageEvent.setPayload(mutatedMessage);
138
- // }
139
- // }
140
-
141
- // ANY-SCOPE mutations
142
- //,
143
28
new MessageMutationFault ("hbft-commit-view-inc" , "Increment View Number" ,List .of (CommitMessage .class )) {
144
29
@ Override
145
30
public void accept (FaultContext serializable ) {
@@ -153,7 +38,7 @@ public void accept(FaultContext serializable) {
153
38
if (!(messageEvent .getPayload () instanceof CommitMessage message )) {
154
39
throw invalidMessageTypeException ;
155
40
}
156
- CommitMessage mutatedMessage = message .withViewNumber (message .getViewNumber () + random . nextLong ( bound ) );
41
+ CommitMessage mutatedMessage = message .withViewNumber (message .getViewNumber () + 1 );
157
42
mutatedMessage .sign (message .getSignedBy ());
158
43
messageEvent .setPayload (mutatedMessage );
159
44
}
@@ -171,7 +56,7 @@ public void accept(FaultContext serializable) {
171
56
if (!(messageEvent .getPayload () instanceof CommitMessage message )) {
172
57
throw invalidMessageTypeException ;
173
58
}
174
- CommitMessage mutatedMessage = message .withViewNumber (message .getViewNumber () - random . nextLong ( bound ) );
59
+ CommitMessage mutatedMessage = message .withViewNumber (message .getViewNumber () - 1 );
175
60
mutatedMessage .sign (message .getSignedBy ());
176
61
messageEvent .setPayload (mutatedMessage );
177
62
}
@@ -190,7 +75,7 @@ public void accept(FaultContext serializable) {
190
75
throw invalidMessageTypeException ;
191
76
}
192
77
193
- CommitMessage mutatedMessage = message .withSequenceNumber (message .getSequenceNumber () + random . nextLong ( bound ) );
78
+ CommitMessage mutatedMessage = message .withSequenceNumber (message .getSequenceNumber () + 1 );
194
79
mutatedMessage .sign (message .getSignedBy ());
195
80
messageEvent .setPayload (mutatedMessage );
196
81
}
@@ -208,12 +93,127 @@ public void accept(FaultContext serializable) {
208
93
if (!(messageEvent .getPayload () instanceof CommitMessage message )) {
209
94
throw invalidMessageTypeException ;
210
95
}
211
- CommitMessage mutatedMessage = message .withSequenceNumber (message .getSequenceNumber () - random .nextLong (bound ));
96
+ CommitMessage mutatedMessage = message .withSequenceNumber (message .getSequenceNumber () - 1 );
97
+ mutatedMessage .sign (message .getSignedBy ());
98
+ messageEvent .setPayload (mutatedMessage );
99
+ }
100
+ },
101
+ new MessageMutationFault ("hbft-commit-different-digest" , "Change digest" , List .of (CommitMessage .class )) {
102
+ @ Override
103
+ public void accept (FaultContext serializable ) {
104
+ Optional <Event > event = serializable .getEvent ();
105
+ if (event .isEmpty ()) {
106
+ throw invalidMessageTypeException ;
107
+ }
108
+ if (!(event .get () instanceof MessageEvent messageEvent )) {
109
+ throw invalidMessageTypeException ;
110
+ }
111
+ if (!(messageEvent .getPayload () instanceof CommitMessage message )) {
112
+ throw invalidMessageTypeException ;
113
+ }
114
+ // Create a random digest
115
+ byte [] digest = new byte [20 ];
116
+ CommitMessage mutatedMessage = message .withDigest (digest );
117
+ mutatedMessage .sign (message .getSignedBy ());
118
+ messageEvent .setPayload (mutatedMessage );
119
+ }
120
+ },
121
+ new MessageMutationFault ("hbft-commit-remove-last-request-from-history" , "Remove last request from history" , List .of (CommitMessage .class )) {
122
+ @ Override
123
+ public void accept (FaultContext serializable ) {
124
+ Optional <Event > event = serializable .getEvent ();
125
+ if (event .isEmpty ()) {
126
+ throw invalidMessageTypeException ;
127
+ }
128
+ if (!(event .get () instanceof MessageEvent messageEvent )) {
129
+ throw invalidMessageTypeException ;
130
+ }
131
+ if (!(messageEvent .getPayload () instanceof CommitMessage message )) {
132
+ throw invalidMessageTypeException ;
133
+ }
134
+ SpeculativeHistory history = message .getSpeculativeHistory ().getHistoryBefore (message .getSequenceNumber ());
135
+ CommitMessage mutatedMessage = message .withSpeculativeHistory (history );
212
136
mutatedMessage .sign (message .getSignedBy ());
213
137
messageEvent .setPayload (mutatedMessage );
214
138
}
215
139
}
216
140
141
+ // ANY-SCOPE mutations
142
+ //,
143
+ // new MessageMutationFault("hbft-commit-view-inc", "Increment View Number",List.of(CommitMessage.class)) {
144
+ // @Override
145
+ // public void accept(FaultContext serializable) {
146
+ // Optional<Event> event = serializable.getEvent();
147
+ // if (event.isEmpty()) {
148
+ // throw invalidMessageTypeException;
149
+ // }
150
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
151
+ // throw invalidMessageTypeException;
152
+ // }
153
+ // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
154
+ // throw invalidMessageTypeException;
155
+ // }
156
+ // CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() + random.nextLong(bound));
157
+ // mutatedMessage.sign(message.getSignedBy());
158
+ // messageEvent.setPayload(mutatedMessage);
159
+ // }
160
+ // },
161
+ // new MessageMutationFault("hbft-commit-view-dec", "Decrement View Number", List.of(CommitMessage.class)) {
162
+ // @Override
163
+ // public void accept(FaultContext serializable) {
164
+ // Optional<Event> event = serializable.getEvent();
165
+ // if (event.isEmpty()) {
166
+ // throw invalidMessageTypeException;
167
+ // }
168
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
169
+ // throw invalidMessageTypeException;
170
+ // }
171
+ // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
172
+ // throw invalidMessageTypeException;
173
+ // }
174
+ // CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() - random.nextLong(bound));
175
+ // mutatedMessage.sign(message.getSignedBy());
176
+ // messageEvent.setPayload(mutatedMessage);
177
+ // }
178
+ // },
179
+ // new MessageMutationFault("hbft-commit-seq-inc", "Increment Sequence Number", List.of(CommitMessage.class)) {
180
+ // @Override
181
+ // public void accept(FaultContext serializable) {
182
+ // Optional<Event> event = serializable.getEvent();
183
+ // if (event.isEmpty()) {
184
+ // throw invalidMessageTypeException;
185
+ // }
186
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
187
+ // throw invalidMessageTypeException;
188
+ // }
189
+ // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
190
+ // throw invalidMessageTypeException;
191
+ // }
192
+
193
+ // CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() + random.nextLong(bound));
194
+ // mutatedMessage.sign(message.getSignedBy());
195
+ // messageEvent.setPayload(mutatedMessage);
196
+ // }
197
+ // },
198
+ // new MessageMutationFault("hbft-commit-sec-dec", "Decrement Sequence Number", List.of(CommitMessage.class)) {
199
+ // @Override
200
+ // public void accept(FaultContext serializable) {
201
+ // Optional<Event> event = serializable.getEvent();
202
+ // if (event.isEmpty()) {
203
+ // throw invalidMessageTypeException;
204
+ // }
205
+ // if (!(event.get() instanceof MessageEvent messageEvent)) {
206
+ // throw invalidMessageTypeException;
207
+ // }
208
+ // if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
209
+ // throw invalidMessageTypeException;
210
+ // }
211
+ // CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() - random.nextLong(bound));
212
+ // mutatedMessage.sign(message.getSignedBy());
213
+ // messageEvent.setPayload(mutatedMessage);
214
+ // }
215
+ // }
216
+
217
217
);
218
218
}
219
219
}
0 commit comments