Skip to content

Commit f5f2171

Browse files
authored
Cleanup leftovers after the removal of eth/66 (hyperledger#9907)
Signed-off-by: Fabio Di Fabio <fabio.difabio@consensys.net>
1 parent ad19d7f commit f5f2171

File tree

6 files changed

+37
-163
lines changed

6 files changed

+37
-163
lines changed

ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocol.java

Lines changed: 20 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@
2929
public class EthProtocol implements SubProtocol {
3030
public static final String NAME = "eth";
3131
private static final EthProtocol INSTANCE = new EthProtocol();
32-
public static final Capability ETH66 = Capability.create(NAME, EthProtocolVersion.V66);
3332
public static final Capability ETH68 = Capability.create(NAME, EthProtocolVersion.V68);
3433
public static final Capability ETH69 = Capability.create(NAME, EthProtocolVersion.V69);
3534
public static final BitSet REQUEST_ID_MESSAGES;
@@ -49,7 +48,7 @@ public class EthProtocol implements SubProtocol {
4948
EthProtocolMessages.RECEIPTS);
5049
REQUEST_ID_MESSAGES =
5150
new BitSet(requestIdMessages.stream().mapToInt(i -> i).max().getAsInt() + 1);
52-
requestIdMessages.forEach(requestIdMessage -> REQUEST_ID_MESSAGES.set(requestIdMessage));
51+
requestIdMessages.forEach(REQUEST_ID_MESSAGES::set);
5352
}
5453

5554
// Latest version of the Eth protocol
@@ -67,7 +66,7 @@ public String getName() {
6766
@Override
6867
public int messageSpace(final int protocolVersion) {
6968
return switch (protocolVersion) {
70-
case EthProtocolVersion.V66, EthProtocolVersion.V68 -> 17;
69+
case EthProtocolVersion.V68 -> 17;
7170
case EthProtocolVersion.V69 -> 18;
7271
default -> 0;
7372
};
@@ -80,40 +79,24 @@ public boolean isValidMessageCode(final int protocolVersion, final int code) {
8079

8180
@Override
8281
public String messageName(final int protocolVersion, final int code) {
83-
switch (code) {
84-
case EthProtocolMessages.STATUS:
85-
return "Status";
86-
case EthProtocolMessages.NEW_BLOCK_HASHES:
87-
return "NewBlockHashes";
88-
case EthProtocolMessages.TRANSACTIONS:
89-
return "Transactions";
90-
case EthProtocolMessages.GET_BLOCK_HEADERS:
91-
return "GetBlockHeaders";
92-
case EthProtocolMessages.BLOCK_HEADERS:
93-
return "BlockHeaders";
94-
case EthProtocolMessages.GET_BLOCK_BODIES:
95-
return "GetBlockBodies";
96-
case EthProtocolMessages.BLOCK_BODIES:
97-
return "BlockBodies";
98-
case EthProtocolMessages.NEW_BLOCK:
99-
return "NewBlock";
100-
case EthProtocolMessages.NEW_POOLED_TRANSACTION_HASHES:
101-
return "NewPooledTransactionHashes";
102-
case EthProtocolMessages.GET_POOLED_TRANSACTIONS:
103-
return "GetPooledTransactions";
104-
case EthProtocolMessages.POOLED_TRANSACTIONS:
105-
return "PooledTransactions";
106-
case EthProtocolMessages.GET_NODE_DATA:
107-
return "GetNodeData";
108-
case EthProtocolMessages.NODE_DATA:
109-
return "NodeData";
110-
case EthProtocolMessages.GET_RECEIPTS:
111-
return "GetReceipts";
112-
case EthProtocolMessages.RECEIPTS:
113-
return "Receipts";
114-
default:
115-
return INVALID_MESSAGE_NAME;
116-
}
82+
return switch (code) {
83+
case EthProtocolMessages.STATUS -> "Status";
84+
case EthProtocolMessages.NEW_BLOCK_HASHES -> "NewBlockHashes";
85+
case EthProtocolMessages.TRANSACTIONS -> "Transactions";
86+
case EthProtocolMessages.GET_BLOCK_HEADERS -> "GetBlockHeaders";
87+
case EthProtocolMessages.BLOCK_HEADERS -> "BlockHeaders";
88+
case EthProtocolMessages.GET_BLOCK_BODIES -> "GetBlockBodies";
89+
case EthProtocolMessages.BLOCK_BODIES -> "BlockBodies";
90+
case EthProtocolMessages.NEW_BLOCK -> "NewBlock";
91+
case EthProtocolMessages.NEW_POOLED_TRANSACTION_HASHES -> "NewPooledTransactionHashes";
92+
case EthProtocolMessages.GET_POOLED_TRANSACTIONS -> "GetPooledTransactions";
93+
case EthProtocolMessages.POOLED_TRANSACTIONS -> "PooledTransactions";
94+
case EthProtocolMessages.GET_NODE_DATA -> "GetNodeData";
95+
case EthProtocolMessages.NODE_DATA -> "NodeData";
96+
case EthProtocolMessages.GET_RECEIPTS -> "GetReceipts";
97+
case EthProtocolMessages.RECEIPTS -> "Receipts";
98+
default -> INVALID_MESSAGE_NAME;
99+
};
117100
}
118101

119102
public static EthProtocol get() {

ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/EthProtocolVersion.java

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -25,29 +25,9 @@
2525
* (ETH)</a>}
2626
*/
2727
public class EthProtocolVersion {
28-
public static final int V66 = 66;
2928
public static final int V68 = 68;
3029
public static final int V69 = 69;
3130

32-
/** eth/66 */
33-
private static final List<Integer> eth66Messages =
34-
List.of(
35-
EthProtocolMessages.STATUS,
36-
EthProtocolMessages.NEW_BLOCK_HASHES,
37-
EthProtocolMessages.TRANSACTIONS,
38-
EthProtocolMessages.GET_BLOCK_HEADERS,
39-
EthProtocolMessages.BLOCK_HEADERS,
40-
EthProtocolMessages.GET_BLOCK_BODIES,
41-
EthProtocolMessages.BLOCK_BODIES,
42-
EthProtocolMessages.NEW_BLOCK,
43-
EthProtocolMessages.GET_NODE_DATA,
44-
EthProtocolMessages.NODE_DATA,
45-
EthProtocolMessages.GET_RECEIPTS,
46-
EthProtocolMessages.RECEIPTS,
47-
EthProtocolMessages.NEW_POOLED_TRANSACTION_HASHES,
48-
EthProtocolMessages.GET_POOLED_TRANSACTIONS,
49-
EthProtocolMessages.POOLED_TRANSACTIONS);
50-
5131
/** eth/68 */
5232
private static final List<Integer> eth68Messages =
5333
List.of(
@@ -94,15 +74,10 @@ public class EthProtocolVersion {
9474
* @return a list containing the codes of supported messages
9575
*/
9676
public static List<Integer> getSupportedMessages(final int protocolVersion) {
97-
switch (protocolVersion) {
98-
case EthProtocolVersion.V66:
99-
return eth66Messages;
100-
case EthProtocolVersion.V68:
101-
return eth68Messages;
102-
case EthProtocolVersion.V69:
103-
return eth69Messages;
104-
default:
105-
return Collections.emptyList();
106-
}
77+
return switch (protocolVersion) {
78+
case EthProtocolVersion.V68 -> eth68Messages;
79+
case EthProtocolVersion.V69 -> eth69Messages;
80+
default -> Collections.emptyList();
81+
};
10782
}
10883
}

ethereum/eth/src/main/java/org/hyperledger/besu/ethereum/eth/encoding/TransactionAnnouncementEncoder.java

Lines changed: 1 addition & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,9 @@
1414
*/
1515
package org.hyperledger.besu.ethereum.eth.encoding;
1616

17-
import static org.hyperledger.besu.ethereum.core.Transaction.toHashList;
18-
1917
import org.hyperledger.besu.datatypes.Hash;
2018
import org.hyperledger.besu.datatypes.TransactionType;
2119
import org.hyperledger.besu.ethereum.core.Transaction;
22-
import org.hyperledger.besu.ethereum.eth.EthProtocolVersion;
2320
import org.hyperledger.besu.ethereum.p2p.rlpx.wire.Capability;
2421
import org.hyperledger.besu.ethereum.rlp.BytesValueRLPOutput;
2522

@@ -45,25 +42,7 @@ public interface Encoder {
4542
* @return the correct encoder
4643
*/
4744
public static Encoder getEncoder(final Capability capability) {
48-
if (capability.getVersion() >= EthProtocolVersion.V68) {
49-
return TransactionAnnouncementEncoder::encodeForEth68;
50-
} else {
51-
return TransactionAnnouncementEncoder::encodeForEth66;
52-
}
53-
}
54-
55-
/**
56-
* Encode a list of hashes for the NewPooledTransactionHashesMessage using the Eth/66
57-
*
58-
* <p>format: [hash_0: B_32, hash_1: B_32, ...]
59-
*
60-
* @param transactions the list to encode
61-
* @return the encoded value. The message data will contain only the transaction hashes
62-
*/
63-
private static Bytes encodeForEth66(final List<Transaction> transactions) {
64-
final BytesValueRLPOutput out = new BytesValueRLPOutput();
65-
out.writeList(toHashList(transactions), (h, w) -> w.writeBytes(h.getBytes()));
66-
return out.encoded();
45+
return TransactionAnnouncementEncoder::encodeForEth68;
6746
}
6847

6948
/**

ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/messages/NewPooledTransactionHashesMessageTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public class NewPooledTransactionHashesMessageTest {
3535
public void roundTripNewPooledTransactionHashesMessage() {
3636
final List<Transaction> transactions = List.of(new BlockDataGenerator().transaction());
3737
final NewPooledTransactionHashesMessage msg =
38-
NewPooledTransactionHashesMessage.create(transactions, EthProtocol.ETH66);
38+
NewPooledTransactionHashesMessage.create(transactions, EthProtocol.LATEST);
3939
assertThat(msg.getCode()).isEqualTo(EthProtocolMessages.NEW_POOLED_TRANSACTION_HASHES);
4040
final List<Hash> pendingHashes = msg.pendingTransactionHashes();
4141
assertThat(pendingHashes).isEqualTo(toHashList(transactions));
@@ -46,6 +46,6 @@ public void readFromMessageWithWrongCodeThrows() {
4646
final RawMessage rawMsg = new RawMessage(EthProtocolMessages.BLOCK_HEADERS, Bytes.of(0));
4747

4848
assertThatExceptionOfType(IllegalArgumentException.class)
49-
.isThrownBy(() -> NewPooledTransactionHashesMessage.readFrom(rawMsg, EthProtocol.ETH66));
49+
.isThrownBy(() -> NewPooledTransactionHashesMessage.readFrom(rawMsg, EthProtocol.LATEST));
5050
}
5151
}

ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/NewPooledTransactionHashesMessageProcessorTest.java

Lines changed: 8 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ void shouldAddInitiatedRequestingTransactions() {
109109

110110
messageHandler.processNewPooledTransactionHashesMessage(
111111
peer1,
112-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66),
112+
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.LATEST),
113113
now(),
114114
ofMinutes(1));
115115

@@ -127,7 +127,7 @@ void shouldNotAddAlreadyPresentTransactions() {
127127

128128
messageHandler.processNewPooledTransactionHashesMessage(
129129
peer1,
130-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66),
130+
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.LATEST),
131131
now(),
132132
ofMinutes(1));
133133

@@ -142,7 +142,7 @@ void shouldAddInitiatedRequestingTransactionsWhenOutOfSync() {
142142

143143
messageHandler.processNewPooledTransactionHashesMessage(
144144
peer1,
145-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66),
145+
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.LATEST),
146146
now(),
147147
ofMinutes(1));
148148
verify(transactionPool, times(3)).getTransactionByHash(any());
@@ -152,7 +152,7 @@ void shouldAddInitiatedRequestingTransactionsWhenOutOfSync() {
152152
void shouldNotMarkReceivedExpiredTransactionsAsSeen() {
153153
messageHandler.processNewPooledTransactionHashesMessage(
154154
peer1,
155-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66),
155+
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.LATEST),
156156
now().minus(ofMinutes(1)),
157157
ofMillis(1));
158158
verifyNoInteractions(transactionTracker);
@@ -167,7 +167,7 @@ void shouldNotMarkReceivedExpiredTransactionsAsSeen() {
167167
void shouldNotAddReceivedTransactionsToTransactionPoolIfExpired() {
168168
messageHandler.processNewPooledTransactionHashesMessage(
169169
peer1,
170-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66),
170+
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.LATEST),
171171
now().minus(ofMinutes(1)),
172172
ofMillis(1));
173173
verifyNoInteractions(transactionPool);
@@ -187,7 +187,7 @@ void shouldScheduleGetPooledTransactionsTaskWhenNewTransactionAddedFromPeerForTh
187187
messageHandler.processNewPooledTransactionHashesMessage(
188188
peer1,
189189
NewPooledTransactionHashesMessage.create(
190-
List.of(transaction1, transaction2), EthProtocol.ETH66),
190+
List.of(transaction1, transaction2), EthProtocol.LATEST),
191191
now(),
192192
ofMinutes(1));
193193

@@ -202,14 +202,14 @@ void shouldNotScheduleGetPooledTransactionsTaskTwice() {
202202
messageHandler.processNewPooledTransactionHashesMessage(
203203
peer1,
204204
NewPooledTransactionHashesMessage.create(
205-
Collections.singletonList(transaction1), EthProtocol.ETH66),
205+
Collections.singletonList(transaction1), EthProtocol.LATEST),
206206
now(),
207207
ofMinutes(1));
208208

209209
messageHandler.processNewPooledTransactionHashesMessage(
210210
peer1,
211211
NewPooledTransactionHashesMessage.create(
212-
Collections.singletonList(transaction2), EthProtocol.ETH66),
212+
Collections.singletonList(transaction2), EthProtocol.LATEST),
213213
now(),
214214
ofMinutes(1));
215215

@@ -218,32 +218,6 @@ void shouldNotScheduleGetPooledTransactionsTaskTwice() {
218218
any(FetcherCreatorTask.class), any(Duration.class), any(Duration.class));
219219
}
220220

221-
@Test
222-
void shouldCreateAndDecodeForEth66() {
223-
224-
final List<TransactionAnnouncement> expectedAnnouncementList =
225-
transactionList.stream().map(TransactionAnnouncement::new).toList();
226-
227-
final NewPooledTransactionHashesMessage message =
228-
NewPooledTransactionHashesMessage.create(transactionList, EthProtocol.ETH66);
229-
230-
// for eth/66 the message should not contain size or type
231-
message
232-
.pendingTransactions()
233-
.forEach(
234-
t -> {
235-
assertThat(t.getSize()).isEmpty();
236-
assertThat(t.getType()).isEmpty();
237-
});
238-
239-
// assert all transaction hashes are the same as announcement message
240-
assertThat(message.pendingTransactionHashes())
241-
.containsExactlyElementsOf(
242-
expectedAnnouncementList.stream()
243-
.map(TransactionAnnouncement::getHash)
244-
.collect(Collectors.toList()));
245-
}
246-
247221
@Test
248222
void shouldCreateAndDecodeForEth68() {
249223
final List<TransactionAnnouncement> expectedTransactions =
@@ -256,24 +230,6 @@ void shouldCreateAndDecodeForEth68() {
256230
assertThat(announcementList).containsExactlyElementsOf(expectedTransactions);
257231
}
258232

259-
@Test
260-
void shouldThrowRLPExceptionIfIncorrectVersion() {
261-
262-
// message for Eth/68 with 66 data should throw RLPException
263-
final NewPooledTransactionHashesMessage message66 =
264-
new NewPooledTransactionHashesMessage(
265-
getEncoder(EthProtocol.ETH68).encode(transactionList), EthProtocol.ETH66);
266-
// assert RLPException
267-
assertThatThrownBy(message66::pendingTransactions).isInstanceOf(RLPException.class);
268-
269-
// message for Eth/66 with 68 data should throw RLPException
270-
final NewPooledTransactionHashesMessage message68 =
271-
new NewPooledTransactionHashesMessage(
272-
getEncoder(EthProtocol.ETH68).encode(transactionList), EthProtocol.ETH66);
273-
// assert RLPException
274-
assertThatThrownBy(message68::pendingTransactions).isInstanceOf(RLPException.class);
275-
}
276-
277233
@Test
278234
void shouldEncodeTransactionsCorrectly_Eth68() {
279235

@@ -383,25 +339,6 @@ void shouldDecodeBytesCorrectly_PreviousImplementations_Eth68() {
383339
assertThat(eip1559.getSize()).hasValue(3L);
384340
}
385341

386-
@Test
387-
void shouldEncodeAndDecodeTransactionAnnouncement_Eth66() {
388-
final Transaction t1 = generator.transaction(TransactionType.FRONTIER);
389-
final Transaction t2 = generator.transaction(TransactionType.ACCESS_LIST);
390-
final Transaction t3 = generator.transaction(TransactionType.EIP1559);
391-
final List<Transaction> list = List.of(t1, t2, t3);
392-
final Bytes bytes = getEncoder(EthProtocol.ETH66).encode(list);
393-
394-
final List<TransactionAnnouncement> announcementList =
395-
getDecoder(EthProtocol.ETH66).decode(RLP.input(bytes));
396-
397-
for (int i = 0; i < announcementList.size(); i++) {
398-
final TransactionAnnouncement announcement = announcementList.get(i);
399-
assertThat(announcement.getHash()).isEqualTo(list.get(i).getHash());
400-
assertThat(announcement.getType()).isEmpty();
401-
assertThat(announcement.getType()).isEmpty();
402-
}
403-
}
404-
405342
@Test
406343
void shouldEncodeAndDecodeTransactionAnnouncement_Eth68() {
407344
final Transaction t1 = generator.transaction(TransactionType.FRONTIER);

ethereum/eth/src/test/java/org/hyperledger/besu/ethereum/eth/transactions/NewPooledTransactionHashesMessageSenderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ private MessageData transactionsMessageContaining(final Transaction... transacti
143143

144144
private Set<Hash> getTransactionsFromMessage(final MessageData message) {
145145
final NewPooledTransactionHashesMessage transactionsMessage =
146-
NewPooledTransactionHashesMessage.readFrom(message, EthProtocol.ETH66);
146+
NewPooledTransactionHashesMessage.readFrom(message, EthProtocol.LATEST);
147147
return newHashSet(transactionsMessage.pendingTransactionHashes());
148148
}
149149
}

0 commit comments

Comments
 (0)