Skip to content

Commit ccb55f2

Browse files
authored
remove sync status permissioning provider (#8598)
* remove sync status permissioning provider since it was only used with onchain permissioning Signed-off-by: Sally MacFarlane <[email protected]> --------- Signed-off-by: Sally MacFarlane <[email protected]>
1 parent 8a0191a commit ccb55f2

File tree

9 files changed

+27
-717
lines changed

9 files changed

+27
-717
lines changed

besu/src/main/java/org/hyperledger/besu/RunnerBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -668,7 +668,7 @@ public Runner build() {
668668

669669
final PeerPermissions peerPermissions =
670670
nodePermissioningController
671-
.map(nodePC -> new PeerPermissionsAdapter(nodePC, bootnodes, context.getBlockchain()))
671+
.map(nodePC -> new PeerPermissionsAdapter(nodePC, context.getBlockchain()))
672672
.map(nodePerms -> PeerPermissions.combine(nodePerms, defaultPeerPermissions))
673673
.orElse(defaultPeerPermissions);
674674

ethereum/permissioning/src/main/java/org/hyperledger/besu/ethereum/permissioning/NodePermissioningControllerFactory.java

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import org.hyperledger.besu.ethereum.chain.Blockchain;
1818
import org.hyperledger.besu.ethereum.core.Synchronizer;
1919
import org.hyperledger.besu.ethereum.permissioning.node.NodePermissioningController;
20-
import org.hyperledger.besu.ethereum.permissioning.node.provider.SyncStatusNodePermissioningProvider;
2120
import org.hyperledger.besu.ethereum.transaction.TransactionSimulator;
2221
import org.hyperledger.besu.plugin.data.EnodeURL;
2322
import org.hyperledger.besu.plugin.services.MetricsSystem;
@@ -26,7 +25,6 @@
2625
import java.util.ArrayList;
2726
import java.util.Collection;
2827
import java.util.List;
29-
import java.util.Optional;
3028

3129
import com.google.common.collect.Lists;
3230
import org.apache.tuweni.bytes.Bytes;
@@ -45,8 +43,6 @@ public NodePermissioningController create(
4543

4644
ArrayList<NodeConnectionPermissioningProvider> providers = Lists.newArrayList(pluginProviders);
4745

48-
final Optional<SyncStatusNodePermissioningProvider> syncStatusProviderOptional;
49-
5046
if (permissioningConfiguration.getLocalConfig().isPresent()) {
5147
LocalPermissioningConfiguration localPermissioningConfiguration =
5248
permissioningConfiguration.getLocalConfig().get();
@@ -61,10 +57,8 @@ public NodePermissioningController create(
6157
}
6258
}
6359

64-
syncStatusProviderOptional = Optional.empty();
65-
6660
final NodePermissioningController nodePermissioningController =
67-
new NodePermissioningController(syncStatusProviderOptional, providers);
61+
new NodePermissioningController(providers);
6862

6963
return nodePermissioningController;
7064
}

ethereum/permissioning/src/main/java/org/hyperledger/besu/ethereum/permissioning/node/NodePermissioningController.java

Lines changed: 10 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package org.hyperledger.besu.ethereum.permissioning.node;
1616

1717
import org.hyperledger.besu.ethereum.permissioning.NodeLocalConfigPermissioningController;
18-
import org.hyperledger.besu.ethereum.permissioning.node.provider.SyncStatusNodePermissioningProvider;
1918
import org.hyperledger.besu.plugin.data.EnodeURL;
2019
import org.hyperledger.besu.plugin.services.permissioning.NodeConnectionPermissioningProvider;
2120
import org.hyperledger.besu.util.Subscribers;
@@ -30,33 +29,19 @@ public class NodePermissioningController {
3029

3130
private static final Logger LOG = LoggerFactory.getLogger(NodePermissioningController.class);
3231

33-
private final Optional<SyncStatusNodePermissioningProvider> syncStatusNodePermissioningProvider;
3432
private Optional<ContextualNodePermissioningProvider> insufficientPeersPermissioningProvider =
3533
Optional.empty();
3634
private final List<NodeConnectionPermissioningProvider> providers;
3735
private final Subscribers<Runnable> permissioningUpdateSubscribers = Subscribers.create();
3836

39-
public NodePermissioningController(
40-
final Optional<SyncStatusNodePermissioningProvider> syncStatusNodePermissioningProvider,
41-
final List<NodeConnectionPermissioningProvider> providers) {
37+
public NodePermissioningController(final List<NodeConnectionPermissioningProvider> providers) {
4238
this.providers = providers;
43-
this.syncStatusNodePermissioningProvider = syncStatusNodePermissioningProvider;
4439
}
4540

4641
public boolean isPermitted(final EnodeURL sourceEnode, final EnodeURL destinationEnode) {
4742

4843
LOG.trace("Node permissioning: Checking {} -> {}", sourceEnode, destinationEnode);
4944

50-
if (syncStatusNodePermissioningProvider
51-
.map(p -> !p.hasReachedSync() && p.isConnectionPermitted(sourceEnode, destinationEnode))
52-
.orElse(false)) {
53-
54-
LOG.trace(
55-
"Node permissioning - Sync Status: Permitted {} -> {}", sourceEnode, destinationEnode);
56-
57-
return true;
58-
}
59-
6045
final Optional<Boolean> insufficientPeerPermission =
6146
insufficientPeersPermissioningProvider.flatMap(
6247
p -> p.isPermitted(sourceEnode, destinationEnode));
@@ -72,27 +57,15 @@ public boolean isPermitted(final EnodeURL sourceEnode, final EnodeURL destinatio
7257

7358
return permitted;
7459
}
75-
76-
if (syncStatusNodePermissioningProvider.isPresent()
77-
&& !syncStatusNodePermissioningProvider
78-
.get()
79-
.isConnectionPermitted(sourceEnode, destinationEnode)) {
80-
81-
LOG.trace(
82-
"Node permissioning - Sync Status: Rejected {} -> {}", sourceEnode, destinationEnode);
83-
84-
return false;
85-
} else {
86-
for (final NodeConnectionPermissioningProvider provider : providers) {
87-
if (!provider.isConnectionPermitted(sourceEnode, destinationEnode)) {
88-
LOG.trace(
89-
"Node permissioning - {}: Rejected {} -> {}",
90-
provider.getClass().getSimpleName(),
91-
sourceEnode,
92-
destinationEnode);
93-
94-
return false;
95-
}
60+
for (final NodeConnectionPermissioningProvider provider : providers) {
61+
if (!provider.isConnectionPermitted(sourceEnode, destinationEnode)) {
62+
LOG.trace(
63+
"Node permissioning - {}: Rejected {} -> {}",
64+
provider.getClass().getSimpleName(),
65+
sourceEnode,
66+
destinationEnode);
67+
68+
return false;
9669
}
9770
}
9871

@@ -109,10 +82,6 @@ public void setInsufficientPeersPermissioningProvider(
10982
Optional.of(insufficientPeersPermissioningProvider);
11083
}
11184

112-
public Optional<SyncStatusNodePermissioningProvider> getSyncStatusNodePermissioningProvider() {
113-
return syncStatusNodePermissioningProvider;
114-
}
115-
11685
public List<NodeConnectionPermissioningProvider> getProviders() {
11786
return providers;
11887
}

ethereum/permissioning/src/main/java/org/hyperledger/besu/ethereum/permissioning/node/PeerPermissionsAdapter.java

Lines changed: 3 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,7 @@
1919
import org.hyperledger.besu.ethereum.chain.Blockchain;
2020
import org.hyperledger.besu.ethereum.p2p.peers.Peer;
2121
import org.hyperledger.besu.ethereum.p2p.permissions.PeerPermissions;
22-
import org.hyperledger.besu.ethereum.permissioning.node.provider.SyncStatusNodePermissioningProvider;
23-
import org.hyperledger.besu.plugin.data.EnodeURL;
2422

25-
import java.util.List;
2623
import java.util.Optional;
2724

2825
import org.slf4j.Logger;
@@ -32,21 +29,16 @@ public class PeerPermissionsAdapter extends PeerPermissions {
3229
private static final Logger LOG = LoggerFactory.getLogger(PeerPermissionsAdapter.class);
3330

3431
private final NodePermissioningController nodePermissioningController;
35-
private final List<EnodeURL> bootnodes;
3632
private final Blockchain blockchain;
3733
private final long blockchainListenId;
3834
private final long nodePermissioningListenId;
3935

4036
public PeerPermissionsAdapter(
41-
final NodePermissioningController nodePermissioningController,
42-
final List<EnodeURL> bootnodes,
43-
final Blockchain blockchain) {
37+
final NodePermissioningController nodePermissioningController, final Blockchain blockchain) {
4438
checkNotNull(nodePermissioningController);
45-
checkNotNull(bootnodes);
4639
checkNotNull(blockchain);
4740

4841
this.nodePermissioningController = nodePermissioningController;
49-
this.bootnodes = bootnodes;
5042
this.blockchain = blockchain;
5143

5244
// TODO: These events should be more targeted
@@ -87,30 +79,11 @@ public boolean isPermitted(final Peer localNode, final Peer remotePeer, final Ac
8779
}
8880

8981
private boolean allowOutboundBonding(final Peer localNode, final Peer remotePeer) {
90-
final boolean outboundMessagingAllowed = outboundIsPermitted(localNode, remotePeer);
91-
if (!nodePermissioningController.getSyncStatusNodePermissioningProvider().isPresent()) {
92-
return outboundMessagingAllowed;
93-
}
94-
95-
// We're using smart-contract based permissioning
96-
// If we're out of sync, only allow bonding to our bootnodes
97-
final SyncStatusNodePermissioningProvider syncStatus =
98-
nodePermissioningController.getSyncStatusNodePermissioningProvider().get();
99-
return outboundMessagingAllowed
100-
&& (syncStatus.hasReachedSync() || bootnodes.contains(remotePeer.getEnodeURL()));
82+
return outboundIsPermitted(localNode, remotePeer);
10183
}
10284

10385
private boolean allowOutboundNeighborsRequests(final Peer localNode, final Peer remotePeer) {
104-
final boolean outboundMessagingAllowed = outboundIsPermitted(localNode, remotePeer);
105-
if (!nodePermissioningController.getSyncStatusNodePermissioningProvider().isPresent()) {
106-
return outboundMessagingAllowed;
107-
}
108-
109-
// We're using smart-contract based permissioning
110-
// Only allow neighbors requests if we're in sync
111-
final SyncStatusNodePermissioningProvider syncStatus =
112-
nodePermissioningController.getSyncStatusNodePermissioningProvider().get();
113-
return outboundMessagingAllowed && syncStatus.hasReachedSync();
86+
return outboundIsPermitted(localNode, remotePeer);
11487
}
11588

11689
private boolean outboundIsPermitted(final Peer localNode, final Peer remotePeer) {

ethereum/permissioning/src/main/java/org/hyperledger/besu/ethereum/permissioning/node/provider/SyncStatusNodePermissioningProvider.java

Lines changed: 0 additions & 114 deletions
This file was deleted.

ethereum/permissioning/src/test/java/org/hyperledger/besu/ethereum/permissioning/node/NodePermissioningControllerFactoryTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@ public void testCreateWithNoPermissioningEnabled() {
8080

8181
List<NodeConnectionPermissioningProvider> providers = controller.getProviders();
8282
assertThat(providers.size()).isEqualTo(0);
83-
assertThat(controller.getSyncStatusNodePermissioningProvider()).isNotPresent();
8483
}
8584

8685
@Test
@@ -107,7 +106,6 @@ public void testCreateWithLocalNodePermissioningEnabledOnly() {
107106

108107
NodeConnectionPermissioningProvider p1 = providers.get(0);
109108
assertThat(p1).isInstanceOf(NodeLocalConfigPermissioningController.class);
110-
assertThat(controller.getSyncStatusNodePermissioningProvider()).isNotPresent();
111109
}
112110

113111
@Test
@@ -135,6 +133,5 @@ public void testCreateWithLocalNodePermissioningEnabledAndBootnode() {
135133

136134
NodeConnectionPermissioningProvider p1 = providers.get(0);
137135
assertThat(p1).isInstanceOf(NodeLocalConfigPermissioningController.class);
138-
assertThat(controller.getSyncStatusNodePermissioningProvider()).isNotPresent();
139136
}
140137
}

0 commit comments

Comments
 (0)