Skip to content

Commit c68c82d

Browse files
committed
all mutations added
1 parent 7abde83 commit c68c82d

File tree

6 files changed

+1383
-1343
lines changed

6 files changed

+1383
-1343
lines changed

simulator/src/main/java/byzzbench/simulator/protocols/hbft/mutator/CommitMessageMutatorFactory.java

+119-119
Original file line numberDiff line numberDiff line change
@@ -25,121 +25,6 @@ public class CommitMessageMutatorFactory extends MessageMutatorFactory {
2525
@Override
2626
public List<MessageMutationFault> mutators() {
2727
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-
//,
14328
// new MessageMutationFault("hbft-commit-view-inc", "Increment View Number",List.of(CommitMessage.class)) {
14429
// @Override
14530
// public void accept(FaultContext serializable) {
@@ -153,7 +38,7 @@ public void accept(FaultContext serializable) {
15338
// if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
15439
// throw invalidMessageTypeException;
15540
// }
156-
// CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() + random.nextLong(bound));
41+
// CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() + 1);
15742
// mutatedMessage.sign(message.getSignedBy());
15843
// messageEvent.setPayload(mutatedMessage);
15944
// }
@@ -171,7 +56,7 @@ public void accept(FaultContext serializable) {
17156
// if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
17257
// throw invalidMessageTypeException;
17358
// }
174-
// CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() - random.nextLong(bound));
59+
// CommitMessage mutatedMessage = message.withViewNumber(message.getViewNumber() - 1);
17560
// mutatedMessage.sign(message.getSignedBy());
17661
// messageEvent.setPayload(mutatedMessage);
17762
// }
@@ -190,7 +75,7 @@ public void accept(FaultContext serializable) {
19075
// throw invalidMessageTypeException;
19176
// }
19277

193-
// CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() + random.nextLong(bound));
78+
// CommitMessage mutatedMessage = message.withSequenceNumber(message.getSequenceNumber() + 1);
19479
// mutatedMessage.sign(message.getSignedBy());
19580
// messageEvent.setPayload(mutatedMessage);
19681
// }
@@ -208,12 +93,127 @@ public void accept(FaultContext serializable) {
20893
// if (!(messageEvent.getPayload() instanceof CommitMessage message)) {
20994
// throw invalidMessageTypeException;
21095
// }
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);
212136
// mutatedMessage.sign(message.getSignedBy());
213137
// messageEvent.setPayload(mutatedMessage);
214138
// }
215139
// }
216140

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+
217217
);
218218
}
219219
}

0 commit comments

Comments
 (0)