Skip to content

Commit 30f071b

Browse files
committed
Implementation
1 parent 5f5cf52 commit 30f071b

File tree

6 files changed

+68
-58
lines changed

6 files changed

+68
-58
lines changed

simulator/src/main/java/byzzbench/simulator/protocols/fab2/FastByzantineReplica.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ private void handleViewChangeMessage(String sender, ViewChangeMessage viewChange
691691
this.viewNumber = proposalNumber;
692692
this.leaderId = viewChangeMessage.getNewLeaderId();
693693
this.setView(this.viewNumber, this.leaderId);
694-
this.proposalNumber = 1;
694+
this.proposalNumber++;
695695
this.clearAllTimeouts();
696696
messageLog.acceptViewChange(viewChangeMessage);
697697
this.isCurrentlyLeader = true;
@@ -742,7 +742,7 @@ private void handleNewViewChangeMessage(String sender, NewViewChangeMessage newV
742742
return;
743743
}
744744

745-
log.info("Replica " + getId() + " is moving to the next view number: view " + newViewMessage.getViewNumber());
745+
log.info("Replica " + getId() + " is moving to the next view number: view " + newViewMessage.getProposalNumber());
746746
this.viewNumber = proposalNumber;
747747
this.leaderId = newViewMessage.getNewLeaderId();
748748
this.setView(this.viewNumber, newViewMessage.getNewLeaderId());
@@ -758,7 +758,7 @@ private void handleNewViewChangeMessage(String sender, NewViewChangeMessage newV
758758
this.learnerTimeoutId = -1;
759759
this.forwards = 0;
760760
this.viewChangeRequests = 0;
761-
this.proposalNumber = 1;
761+
this.proposalNumber++;
762762

763763
if (isProposer()) proposerOnStart();
764764
if (isLearner()) learnerOnStart();

simulator/src/main/java/byzzbench/simulator/protocols/fab2/MessageLog.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public boolean onAccept(String senderId, AcceptMessage acceptMessage, int thresh
188188
}
189189

190190
// Remove message from the acceptMessages map
191-
if (acceptMessages.containsKey(proposalNumber)) acceptMessages.get(proposalNumber).remove(acceptMessage);
191+
// if (acceptMessages.containsKey(proposalNumber)) acceptMessages.get(proposalNumber).remove(acceptMessage);
192192

193193
return false;
194194
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package byzzbench.simulator.protocols.fab2.messages;
2+
3+
import byzzbench.simulator.transport.MessagePayload;
4+
import byzzbench.simulator.transport.messages.MessageWithRound;
5+
6+
public abstract class IPhaseMessage extends MessagePayload implements MessageWithRound {
7+
public abstract String getType();
8+
public abstract long getViewNumber();
9+
public abstract long getSequenceNumber();
10+
public long getRound() { return getSequenceNumber(); }
11+
}
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,42 @@
11
package byzzbench.simulator.protocols.fab2.messages;
22

33
import byzzbench.simulator.protocols.pbft_java.message.IPhaseMessage;
4-
import lombok.Data;
5-
import lombok.EqualsAndHashCode;
6-
import lombok.Getter;
7-
import lombok.With;
4+
import byzzbench.simulator.transport.MessagePayload;
5+
import byzzbench.simulator.transport.messages.MessageWithRound;
6+
import lombok.*;
87

8+
@AllArgsConstructor
99
@Data
1010
@EqualsAndHashCode(callSuper = true)
1111
@With
12-
public class NewViewChangeMessage extends IPhaseMessage {
12+
public class NewViewChangeMessage extends MessagePayload {
1313
@Getter
1414
private final long proposalNumber;
1515
private final String newLeaderId;
1616

17-
public NewViewChangeMessage(long viewNumber, String newLeaderId) {
18-
this.proposalNumber = viewNumber;
19-
this.newLeaderId = newLeaderId;
20-
}
21-
22-
@Override
23-
public long getViewNumber() {
24-
return proposalNumber;
25-
}
26-
2717
@Override
2818
public String getType() {
2919
return "NEW_VIEW";
3020
}
3121

32-
@Override
33-
public long getSequenceNumber() {
34-
return 0;
35-
}
36-
37-
@Override
38-
public long getRound() {
39-
return 0;
40-
}
41-
42-
@Override
43-
public byte[] getDigest() {
44-
return new byte[0];
45-
}
22+
// @Override
23+
// public long getViewNumber() {
24+
// return proposalNumber;
25+
// }
26+
//
27+
//
28+
// @Override
29+
// public long getSequenceNumber() {
30+
// return 0;
31+
// }
32+
//
33+
// @Override
34+
// public long getRound() {
35+
// return 0;
36+
// }
37+
//
38+
// @Override
39+
// public byte[] getDigest() {
40+
// return new byte[0];
41+
// }
4642
}

simulator/src/main/java/byzzbench/simulator/protocols/fab2/messages/SuspectMessage.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import byzzbench.simulator.protocols.fab2.ProposalNumber;
44
import byzzbench.simulator.protocols.pbft_java.message.IPhaseMessage;
55
import byzzbench.simulator.transport.MessagePayload;
6+
import byzzbench.simulator.transport.messages.MessageWithRound;
67
import lombok.*;
78

89
/**
@@ -22,6 +23,11 @@ public String getType() {
2223
return "SUSPECT";
2324
}
2425

26+
// @Override
27+
// public long getRound() {
28+
// return 0;
29+
// }
30+
//
2531
// @Override
2632
// public long getViewNumber() {
2733
// return proposalNumber.getViewNumber();
@@ -34,10 +40,5 @@ public String getType() {
3440
// public byte[] getDigest() {
3541
// return suspectId.getBytes();
3642
// }
37-
//
38-
// @Override
39-
// public long getRound() {
40-
// return 0;
41-
// }
4243
}
4344

simulator/src/main/java/byzzbench/simulator/protocols/fab2/messages/ViewChangeMessage.java

+22-20
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import byzzbench.simulator.protocols.fab2.ProposalNumber;
44
import byzzbench.simulator.protocols.pbft_java.message.IPhaseMessage;
55
import byzzbench.simulator.transport.MessagePayload;
6+
import byzzbench.simulator.transport.messages.MessageWithRound;
67
import lombok.*;
78

89
/**
@@ -12,7 +13,7 @@
1213
@Data
1314
@EqualsAndHashCode(callSuper = true)
1415
@With
15-
public class ViewChangeMessage extends IPhaseMessage {
16+
public class ViewChangeMessage extends MessagePayload {
1617
private final String senderId;
1718
private final ProposalNumber proposalNumber;
1819
private final String newLeaderId;
@@ -21,23 +22,24 @@ public String getType() {
2122
return "VIEW_CHANGE";
2223
}
2324

24-
@Override
25-
public long getViewNumber() {
26-
return proposalNumber.getViewNumber();
27-
}
28-
29-
@Override
30-
public long getSequenceNumber() {
31-
return 0;
32-
}
33-
34-
@Override
35-
public long getRound() {
36-
return 0;
37-
}
38-
39-
@Override
40-
public byte[] getDigest() {
41-
return newLeaderId.getBytes();
42-
}
25+
// @Override
26+
// public long getViewNumber() {
27+
// return proposalNumber.getViewNumber();
28+
// }
29+
//
30+
// // This message should not take into consideration the sequence number
31+
// @Override
32+
// public long getSequenceNumber() {
33+
// return 0;
34+
// }
35+
//
36+
// @Override
37+
// public long getRound() {
38+
// return 0;
39+
// }
40+
//
41+
// @Override
42+
// public byte[] getDigest() {
43+
// return newLeaderId.getBytes();
44+
// }
4345
}

0 commit comments

Comments
 (0)