Skip to content

Commit f945df1

Browse files
authored
Merge pull request #89 from meldsun0/utpManagerTests-and-db-fix
Utp manager tests and db fix
2 parents 1d40977 + cc05a76 commit f945df1

File tree

60 files changed

+510
-147
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+510
-147
lines changed

core/src/main/java/samba/config/DiscoveryConfig.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@
77
import java.net.NetworkInterface;
88
import java.net.SocketException;
99
import java.net.UnknownHostException;
10-
import java.util.*;
10+
import java.util.Enumeration;
11+
import java.util.List;
12+
import java.util.Set;
1113
import java.util.stream.Collectors;
1214

1315
import org.apache.logging.log4j.LogManager;
@@ -176,10 +178,10 @@ private boolean isUniqueLocalAddress(final InetAddress inetAddress) {
176178

177179
public static class Builder {
178180

179-
private int listenUDPPortIPv4 = DEFAULT_UDP_PORT_IPV4;
180-
private int listenTCPPortIPv4 = DEFAULT_TCP_PORT_IPV4;
181-
private int listenUDPPortIpv6 = DEFAULT_UDP_PORT_IPV6;
182-
private int listenTCPPortIpv6 = DEFAULT_TCP_PORT_IPV6;
181+
private final int listenUDPPortIPv4 = DEFAULT_UDP_PORT_IPV4;
182+
private final int listenTCPPortIPv4 = DEFAULT_TCP_PORT_IPV4;
183+
private final int listenUDPPortIpv6 = DEFAULT_UDP_PORT_IPV6;
184+
private final int listenTCPPortIpv6 = DEFAULT_TCP_PORT_IPV6;
183185

184186
private List<NodeRecord> bootnodes = List.of();
185187
private List<String> networkInterfaces = DEFAULT_P2P_INTERFACE;

core/src/main/java/samba/config/MetricsConfig.java

+8-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@
1616
import samba.metrics.SambaMetricCategory;
1717

1818
import java.net.URL;
19-
import java.util.*;
19+
import java.util.Arrays;
20+
import java.util.EnumSet;
21+
import java.util.List;
22+
import java.util.Optional;
23+
import java.util.Set;
2024

2125
import com.google.common.collect.ImmutableSet;
2226
import org.hyperledger.besu.metrics.StandardMetricCategory;
@@ -103,13 +107,13 @@ public int getIdleTimeoutSeconds() {
103107
public static final class MetricsConfigBuilder {
104108

105109
private boolean metricsEnabled = true;
106-
private int metricsPort = DEFAULT_METRICS_PORT;
110+
private final int metricsPort = DEFAULT_METRICS_PORT;
107111
private String metricsInterface = DEFAULT_METRICS_INTERFACE;
108112
private Set<MetricCategory> metricsCategories = DEFAULT_METRICS_CATEGORIES;
109113
private List<String> metricsHostAllowlist = DEFAULT_METRICS_HOST_ALLOWLIST;
110114
private URL metricsPublishEndpoint = null;
111-
private int metricsPublishInterval = DEFAULT_METRICS_PUBLICATION_INTERVAL;
112-
private int idleTimeoutSeconds = DEFAULT_IDLE_TIMEOUT_SECONDS;
115+
private final int metricsPublishInterval = DEFAULT_METRICS_PUBLICATION_INTERVAL;
116+
private final int idleTimeoutSeconds = DEFAULT_IDLE_TIMEOUT_SECONDS;
113117

114118
private MetricsConfigBuilder() {}
115119

core/src/main/java/samba/domain/dht/NodeTable.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package samba.domain.dht;
22

33
import java.time.Clock;
4-
import java.util.*;
4+
import java.util.Comparator;
5+
import java.util.HashMap;
6+
import java.util.Map;
7+
import java.util.Optional;
8+
import java.util.Spliterator;
9+
import java.util.Spliterators;
510
import java.util.function.Function;
611
import java.util.stream.Stream;
712
import java.util.stream.StreamSupport;

core/src/main/java/samba/domain/messages/PortalWireMessageDecoder.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@
33
import static com.google.common.base.Preconditions.checkArgument;
44
import static com.google.common.base.Preconditions.checkNotNull;
55

6-
import samba.domain.messages.requests.*;
6+
import samba.domain.messages.requests.FindContent;
7+
import samba.domain.messages.requests.FindNodes;
8+
import samba.domain.messages.requests.Offer;
9+
import samba.domain.messages.requests.Ping;
710
import samba.domain.messages.response.Accept;
811
import samba.domain.messages.response.Content;
912
import samba.domain.messages.response.Nodes;

core/src/main/java/samba/domain/messages/requests/Ping.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
import static com.google.common.base.Preconditions.checkArgument;
44

5-
import samba.domain.messages.*;
5+
import samba.domain.messages.MessageType;
6+
import samba.domain.messages.PortalWireMessage;
67
import samba.domain.types.unsigned.UInt16;
78
import samba.schema.messages.ssz.containers.PingContainer;
89

core/src/main/java/samba/domain/messages/response/Accept.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package samba.domain.messages.response;
22

3-
import samba.domain.messages.*;
3+
import samba.domain.messages.MessageType;
4+
import samba.domain.messages.PortalWireMessage;
45
import samba.schema.messages.ssz.containers.AcceptContainer;
56

67
import org.apache.tuweni.bytes.Bytes;

core/src/main/java/samba/network/BaseNetwork.java

+1-3
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ private boolean isOurself(NodeRecord node) {
6060
&& this.discv5Client.getNodeId().get().equals(node.getNodeId());
6161
}
6262

63-
private boolean isStoreAvailable() {
64-
return true; // TODO validate store availability
65-
}
63+
protected abstract boolean isStoreAvailable();
6664

6765
private void logResponse(Optional<PortalWireMessage> portalWireMessage) {
6866
portalWireMessage.ifPresent(

core/src/main/java/samba/network/history/HistoryNetwork.java

+13-4
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@
2828
import samba.storage.HistoryDB;
2929
import samba.util.Util;
3030

31-
import java.util.*;
31+
import java.util.ArrayList;
32+
import java.util.List;
33+
import java.util.Objects;
34+
import java.util.Optional;
3235
import java.util.concurrent.CompletableFuture;
3336
import java.util.concurrent.CompletionStage;
3437
import java.util.concurrent.TimeUnit;
@@ -463,9 +466,10 @@ public PortalWireMessage handleOffer(NodeRecord srcNode, Offer offer) {
463466
this.utpManager.acceptRead(
464467
srcNode,
465468
(newContent) -> {
466-
if (newContent.size() == contentKeyAccepted.size()) {
467-
for (int i = 0; i < newContent.size(); i++) {
468-
this.historyDB.saveContent(contentKeyAccepted.get(i), newContent.get(i));
469+
List<Bytes> parsedContent = Util.parseAcceptedContents(newContent);
470+
if (parsedContent.size() == contentKeyAccepted.size()) {
471+
for (int i = 0; i < parsedContent.size(); i++) {
472+
this.historyDB.saveContent(contentKeyAccepted.get(i), parsedContent.get(i));
469473
}
470474
}
471475
});
@@ -524,4 +528,9 @@ Function<Throwable, CompletionStage<Optional<V>>> createDefaultErrorWhenSendingM
524528
public Optional<Bytes> getContent(ContentKey contentKey) {
525529
return this.historyDB.get(contentKey);
526530
}
531+
532+
@Override
533+
protected boolean isStoreAvailable() {
534+
return this.historyDB.isAvailable();
535+
}
527536
}

core/src/main/java/samba/services/PortalNodeMainService.java

+10-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,16 @@
2626
import samba.services.jsonrpc.methods.discv5.Discv5GetEnr;
2727
import samba.services.jsonrpc.methods.discv5.Discv5NodeInfo;
2828
import samba.services.jsonrpc.methods.discv5.Discv5UpdateNodeInfo;
29-
import samba.services.jsonrpc.methods.history.*;
29+
import samba.services.jsonrpc.methods.history.PortalHistoryAddEnr;
30+
import samba.services.jsonrpc.methods.history.PortalHistoryDeleteEnr;
31+
import samba.services.jsonrpc.methods.history.PortalHistoryFindContent;
32+
import samba.services.jsonrpc.methods.history.PortalHistoryFindNodes;
33+
import samba.services.jsonrpc.methods.history.PortalHistoryGetContent;
34+
import samba.services.jsonrpc.methods.history.PortalHistoryGetEnr;
35+
import samba.services.jsonrpc.methods.history.PortalHistoryLocalContent;
36+
import samba.services.jsonrpc.methods.history.PortalHistoryOffer;
37+
import samba.services.jsonrpc.methods.history.PortalHistoryPing;
38+
import samba.services.jsonrpc.methods.history.PortalHistoryStore;
3039
import samba.services.utp.UTPManager;
3140
import samba.storage.HistoryRocksDB;
3241

core/src/main/java/samba/services/api/endpoints/health/GetHealth.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
package samba.services.api.endpoints.health;
1515

16-
import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.*;
16+
import static tech.pegasys.teku.infrastructure.http.HttpStatusCodes.SC_OK;
1717
import static tech.pegasys.teku.infrastructure.http.RestApiConstants.TAG_NODE;
1818

1919
import java.util.Optional;

core/src/main/java/samba/services/discovery/Discv5Service.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@
66
import samba.util.MultiaddrUtil;
77

88
import java.net.InetSocketAddress;
9-
import java.util.*;
9+
import java.util.Collection;
10+
import java.util.List;
11+
import java.util.Optional;
1012
import java.util.concurrent.CompletableFuture;
1113
import java.util.concurrent.CompletionStage;
1214

core/src/main/java/samba/services/jsonrpc/JsonRpcService.java

+8-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,10 @@
55
import samba.jsonrpc.config.JsonRpcConfiguration;
66
import samba.jsonrpc.config.TimeoutOptions;
77
import samba.jsonrpc.exception.JsonRpcServiceException;
8-
import samba.jsonrpc.handler.*;
8+
import samba.jsonrpc.handler.JsonRpcExecutor;
9+
import samba.jsonrpc.handler.JsonRpcExecutorHandler;
10+
import samba.jsonrpc.handler.JsonRpcParserHandler;
11+
import samba.jsonrpc.handler.TimeoutHandler;
912
import samba.jsonrpc.handler.processor.BaseJsonRpcProcessor;
1013
import samba.jsonrpc.health.HealthService;
1114
import samba.jsonrpc.reponse.JsonRpcMethod;
@@ -21,7 +24,10 @@
2124
import io.vertx.core.Handler;
2225
import io.vertx.core.Vertx;
2326
import io.vertx.core.VertxException;
24-
import io.vertx.core.http.*;
27+
import io.vertx.core.http.HttpConnection;
28+
import io.vertx.core.http.HttpMethod;
29+
import io.vertx.core.http.HttpServer;
30+
import io.vertx.core.http.HttpServerOptions;
2531
import io.vertx.ext.web.Route;
2632
import io.vertx.ext.web.Router;
2733
import io.vertx.ext.web.RoutingContext;

core/src/main/java/samba/services/jsonrpc/NetworkUtility.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
*/
1515
package samba.services.jsonrpc;
1616

17-
import java.net.*;
17+
import java.net.InetAddress;
18+
import java.net.InetSocketAddress;
1819

1920
public class NetworkUtility {
2021

core/src/main/java/samba/services/jsonrpc/methods/discv5/Discv5GetEnr.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package samba.services.jsonrpc.methods.discv5;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcMethod;
5+
import samba.jsonrpc.reponse.JsonRpcParameter;
6+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
7+
import samba.jsonrpc.reponse.JsonRpcResponse;
8+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
59
import samba.services.discovery.Discv5Client;
610
import samba.services.jsonrpc.methods.parameters.InputsValidations;
711

core/src/main/java/samba/services/jsonrpc/methods/discv5/Discv5NodeInfo.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
package samba.services.jsonrpc.methods.discv5;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcErrorResponse;
5+
import samba.jsonrpc.reponse.JsonRpcMethod;
6+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
7+
import samba.jsonrpc.reponse.JsonRpcResponse;
8+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
9+
import samba.jsonrpc.reponse.RpcErrorType;
510
import samba.services.discovery.Discv5Client;
611
import samba.services.jsonrpc.methods.results.NodeInfo;
712

core/src/main/java/samba/services/jsonrpc/methods/discv5/Discv5UpdateNodeInfo.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
11
package samba.services.jsonrpc.methods.discv5;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcErrorResponse;
5+
import samba.jsonrpc.reponse.JsonRpcMethod;
6+
import samba.jsonrpc.reponse.JsonRpcParameter;
7+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
8+
import samba.jsonrpc.reponse.JsonRpcResponse;
9+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
10+
import samba.jsonrpc.reponse.RpcErrorType;
511
import samba.services.discovery.Discv5Client;
612
import samba.services.jsonrpc.methods.results.NodeInfo;
713

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryAddEnr.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
package samba.services.jsonrpc.methods.history;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcMethod;
5+
import samba.jsonrpc.reponse.JsonRpcParameter;
6+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
7+
import samba.jsonrpc.reponse.JsonRpcResponse;
8+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
59
import samba.network.history.HistoryJsonRpcRequests;
610

711
public class PortalHistoryAddEnr implements JsonRpcMethod {
812

9-
private HistoryJsonRpcRequests historyJsonRpcRequests;
13+
private final HistoryJsonRpcRequests historyJsonRpcRequests;
1014

1115
public PortalHistoryAddEnr(HistoryJsonRpcRequests historyJsonRpcRequests) {
1216
this.historyJsonRpcRequests = historyJsonRpcRequests;

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryDeleteEnr.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,11 @@
11
package samba.services.jsonrpc.methods.history;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcMethod;
5+
import samba.jsonrpc.reponse.JsonRpcParameter;
6+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
7+
import samba.jsonrpc.reponse.JsonRpcResponse;
8+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
59
import samba.network.history.HistoryJsonRpcRequests;
610
import samba.services.jsonrpc.methods.parameters.InputsValidations;
711

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryFindContent.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,11 @@
22

33
import samba.domain.messages.requests.FindContent;
44
import samba.jsonrpc.config.RpcMethod;
5-
import samba.jsonrpc.reponse.*;
5+
import samba.jsonrpc.reponse.JsonRpcMethod;
6+
import samba.jsonrpc.reponse.JsonRpcParameter;
7+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
8+
import samba.jsonrpc.reponse.JsonRpcResponse;
9+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
610
import samba.network.history.HistoryJsonRpcRequests;
711
import samba.services.jsonrpc.methods.results.FindContentResult;
812

@@ -15,7 +19,7 @@
1519

1620
public class PortalHistoryFindContent implements JsonRpcMethod {
1721
protected static final Logger LOG = LogManager.getLogger();
18-
private HistoryJsonRpcRequests historyJsonRpcRequests;
22+
private final HistoryJsonRpcRequests historyJsonRpcRequests;
1923

2024
public PortalHistoryFindContent(HistoryJsonRpcRequests historyJsonRpcRequests) {
2125
this.historyJsonRpcRequests = historyJsonRpcRequests;

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryFindNodes.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,16 @@
33
import samba.domain.messages.requests.FindNodes;
44
import samba.domain.messages.response.Nodes;
55
import samba.jsonrpc.config.RpcMethod;
6-
import samba.jsonrpc.reponse.*;
6+
import samba.jsonrpc.reponse.JsonRpcMethod;
7+
import samba.jsonrpc.reponse.JsonRpcParameter;
8+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
9+
import samba.jsonrpc.reponse.JsonRpcResponse;
10+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
711
import samba.network.history.HistoryJsonRpcRequests;
812

9-
import java.util.*;
13+
import java.util.Arrays;
14+
import java.util.Optional;
15+
import java.util.Set;
1016
import java.util.concurrent.ExecutionException;
1117
import java.util.stream.Collectors;
1218

@@ -16,7 +22,7 @@
1622

1723
public class PortalHistoryFindNodes implements JsonRpcMethod {
1824
protected static final Logger LOG = LogManager.getLogger();
19-
private HistoryJsonRpcRequests historyJsonRpcRequests;
25+
private final HistoryJsonRpcRequests historyJsonRpcRequests;
2026

2127
public PortalHistoryFindNodes(HistoryJsonRpcRequests historyJsonRpcRequests) {
2228
this.historyJsonRpcRequests = historyJsonRpcRequests;

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryGetEnr.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11
package samba.services.jsonrpc.methods.history;
22

33
import samba.jsonrpc.config.RpcMethod;
4-
import samba.jsonrpc.reponse.*;
4+
import samba.jsonrpc.reponse.JsonRpcMethod;
5+
import samba.jsonrpc.reponse.JsonRpcParameter;
6+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
7+
import samba.jsonrpc.reponse.JsonRpcResponse;
8+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
59
import samba.network.history.HistoryJsonRpcRequests;
610
import samba.services.jsonrpc.methods.parameters.InputsValidations;
711

812
import java.util.Optional;
913

1014
public class PortalHistoryGetEnr implements JsonRpcMethod {
1115

12-
private HistoryJsonRpcRequests historyJsonRpcRequests;
16+
private final HistoryJsonRpcRequests historyJsonRpcRequests;
1317

1418
public PortalHistoryGetEnr(HistoryJsonRpcRequests historyJsonRpcRequests) {
1519
this.historyJsonRpcRequests = historyJsonRpcRequests;

core/src/main/java/samba/services/jsonrpc/methods/history/PortalHistoryLocalContent.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,13 @@
22

33
import samba.domain.content.ContentKey;
44
import samba.jsonrpc.config.RpcMethod;
5-
import samba.jsonrpc.reponse.*;
5+
import samba.jsonrpc.reponse.JsonRpcErrorResponse;
6+
import samba.jsonrpc.reponse.JsonRpcMethod;
7+
import samba.jsonrpc.reponse.JsonRpcParameter;
8+
import samba.jsonrpc.reponse.JsonRpcRequestContext;
9+
import samba.jsonrpc.reponse.JsonRpcResponse;
10+
import samba.jsonrpc.reponse.JsonRpcSuccessResponse;
11+
import samba.jsonrpc.reponse.RpcErrorType;
612
import samba.network.history.HistoryJsonRpcRequests;
713

814
import java.util.Optional;

0 commit comments

Comments
 (0)