Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
4ff4d356
Commit
4ff4d356
authored
Mar 09, 2023
by
Andreas Bigger
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix formatting and lints
✨
parent
9cbd2055
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
71 additions
and
72 deletions
+71
-72
p2p_flags.go
op-node/flags/p2p_flags.go
+10
-10
load_config.go
op-node/p2p/cli/load_config.go
+0
-2
config.go
op-node/p2p/config.go
+2
-2
host_test.go
op-node/p2p/host_test.go
+1
-1
node.go
op-node/p2p/node.go
+0
-1
peer_gater.go
op-node/p2p/peer_gater.go
+5
-5
peer_gater_test.go
op-node/p2p/peer_gater_test.go
+4
-5
peer_params.go
op-node/p2p/peer_params.go
+2
-2
peer_params_test.go
op-node/p2p/peer_params_test.go
+6
-6
peer_scorer.go
op-node/p2p/peer_scorer.go
+1
-1
peer_scorer_test.go
op-node/p2p/peer_scorer_test.go
+9
-9
peer_scores_test.go
op-node/p2p/peer_scores_test.go
+16
-13
rpc_server.go
op-node/p2p/rpc_server.go
+15
-15
No files found.
op-node/flags/p2p_flags.go
View file @
4ff4d356
...
...
@@ -30,17 +30,17 @@ var (
Usage
:
"Sets the peer scoring strategy for the P2P stack. "
+
"Can be one of: none, light, full."
+
"Custom scoring strategies can be defined in the config file."
,
Required
:
false
,
Value
:
"none"
,
EnvVar
:
p2pEnv
(
"PEER_SCORING"
),
Required
:
false
,
Value
:
"none"
,
EnvVar
:
p2pEnv
(
"PEER_SCORING"
),
}
// Banning Flag - whether or not we want to act on the scoring
Banning
=
cli
.
BoolFlag
{
Name
:
"p2p.ban.peers"
,
Usage
:
"Enables peer banning. This should ONLY be enabled once certain peer scoring is working correctly."
,
Required
:
false
,
EnvVar
:
p2pEnv
(
"PEER_BANNING"
),
Name
:
"p2p.ban.peers"
,
Usage
:
"Enables peer banning. This should ONLY be enabled once certain peer scoring is working correctly."
,
Required
:
false
,
EnvVar
:
p2pEnv
(
"PEER_BANNING"
),
}
TopicScoring
=
cli
.
StringFlag
{
...
...
@@ -48,9 +48,9 @@ var (
Usage
:
"Sets the topic scoring strategy. "
+
"Can be one of: none, light, full."
+
"Custom scoring strategies can be defined in the config file."
,
Required
:
false
,
Value
:
"none"
,
EnvVar
:
p2pEnv
(
"TOPIC_SCORING"
),
Required
:
false
,
Value
:
"none"
,
EnvVar
:
p2pEnv
(
"TOPIC_SCORING"
),
}
P2PPrivPath
=
cli
.
StringFlag
{
Name
:
"p2p.priv.path"
,
...
...
op-node/p2p/cli/load_config.go
View file @
4ff4d356
...
...
@@ -336,8 +336,6 @@ func parsePriv(data string) (*crypto.Secp256k1PrivateKey, error) {
return
(
p
)
.
(
*
crypto
.
Secp256k1PrivateKey
),
nil
}
func
loadGossipOptions
(
conf
*
p2p
.
Config
,
ctx
*
cli
.
Context
)
error
{
conf
.
MeshD
=
ctx
.
GlobalInt
(
flags
.
GossipMeshDFlag
.
Name
)
conf
.
MeshDLo
=
ctx
.
GlobalInt
(
flags
.
GossipMeshDloFlag
.
Name
)
...
...
op-node/p2p/config.go
View file @
4ff4d356
...
...
@@ -11,6 +11,7 @@ import (
"github.com/ethereum/go-ethereum/p2p/enode"
ds
"github.com/ipfs/go-datastore"
"github.com/libp2p/go-libp2p"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
"github.com/libp2p/go-libp2p/core"
"github.com/libp2p/go-libp2p/core/connmgr"
"github.com/libp2p/go-libp2p/core/crypto"
...
...
@@ -19,7 +20,6 @@ import (
"github.com/libp2p/go-libp2p/core/peer"
"github.com/libp2p/go-libp2p/p2p/net/conngater"
cmgr
"github.com/libp2p/go-libp2p/p2p/net/connmgr"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
"github.com/ethereum-optimism/optimism/op-node/rollup"
)
...
...
@@ -51,7 +51,7 @@ type Config struct {
NoDiscovery
bool
// Pubsub Scoring Parameters
PeerScoring
pubsub
.
PeerScoreParams
PeerScoring
pubsub
.
PeerScoreParams
TopicScoring
pubsub
.
TopicScoreParams
// Whether to ban peers based on their [PeerScoring] score.
...
...
op-node/p2p/host_test.go
View file @
4ff4d356
...
...
@@ -168,7 +168,7 @@ func TestP2PFull(t *testing.T) {
_
,
err
=
p2pClientA
.
DiscoveryTable
(
ctx
)
// rpc does not preserve error type
require
.
Equal
(
t
,
err
.
Error
(),
DisabledDiscovery
.
Error
(),
"expecting discv5 to be disabled"
)
require
.
Equal
(
t
,
err
.
Error
(),
Err
DisabledDiscovery
.
Error
(),
"expecting discv5 to be disabled"
)
require
.
NoError
(
t
,
p2pClientA
.
BlockPeer
(
ctx
,
hostB
.
ID
()))
blockedPeers
,
err
:=
p2pClientA
.
ListBlockedPeers
(
ctx
)
...
...
op-node/p2p/node.go
View file @
4ff4d356
...
...
@@ -76,7 +76,6 @@ func (n *NodeP2P) init(resourcesCtx context.Context, rollupCfg *rollup.Config, l
// notify of any new connections/streams/etc.
n
.
host
.
Network
()
.
Notify
(
NewNetworkNotifier
(
log
,
metrics
))
// note: the IDDelta functionality was removed from libP2P, and no longer needs to be explicitly disabled.
fmt
.
Printf
(
"Constructing gossip sub...
\n
"
)
n
.
gs
,
err
=
NewGossipSub
(
resourcesCtx
,
n
.
host
,
n
.
gater
,
rollupCfg
,
setup
,
metrics
,
log
)
if
err
!=
nil
{
return
fmt
.
Errorf
(
"failed to start gossipsub router: %w"
,
err
)
...
...
op-node/p2p/peer_gater.go
View file @
4ff4d356
package
p2p
import
(
slices
"golang.org/x/exp/slices"
log
"github.com/ethereum/go-ethereum/log"
peer
"github.com/libp2p/go-libp2p/core/peer"
slices
"golang.org/x/exp/slices"
)
// ConnectionFactor is the factor by which we multiply the connection score.
...
...
@@ -14,8 +14,8 @@ const PeerScoreThreshold = -100
// gater is an internal implementation of the [PeerGater] interface.
type
gater
struct
{
connGater
ConnectionGater
log
log
.
Logger
connGater
ConnectionGater
log
log
.
Logger
banEnabled
bool
}
...
...
@@ -30,8 +30,8 @@ type PeerGater interface {
// NewPeerGater returns a new peer gater.
func
NewPeerGater
(
connGater
ConnectionGater
,
log
log
.
Logger
,
banEnabled
bool
)
PeerGater
{
return
&
gater
{
connGater
:
connGater
,
log
:
log
,
connGater
:
connGater
,
log
:
log
,
banEnabled
:
banEnabled
,
}
}
...
...
op-node/p2p/peer_gater_test.go
View file @
4ff4d356
...
...
@@ -3,12 +3,12 @@ package p2p_test
import
(
"testing"
peer
"github.com/libp2p/go-libp2p/core/peer
"
node
"github.com/ethereum-optimism/optimism/op-node/node
"
p2p
"github.com/ethereum-optimism/optimism/op-node/p2p"
p2pMocks
"github.com/ethereum-optimism/optimism/op-node/p2p/mocks"
log
"github.com/ethereum/go-ethereum/log"
node
"github.com/ethereum-optimism/optimism/op-node/node
"
peer
"github.com/libp2p/go-libp2p/core/peer
"
suite
"github.com/stretchr/testify/suite"
p2pMocks
"github.com/ethereum-optimism/optimism/op-node/p2p/mocks"
)
// PeerGaterTestSuite tests peer parameterization.
...
...
@@ -16,7 +16,7 @@ type PeerGaterTestSuite struct {
suite
.
Suite
mockGater
*
p2pMocks
.
ConnectionGater
logger
log
.
Logger
logger
log
.
Logger
}
// SetupTest sets up the test suite.
...
...
@@ -65,4 +65,3 @@ func (testSuite *PeerGaterTestSuite) TestPeerGaterUpdateNoBanning() {
// Notice: [BlockPeer] should not be called since banning is not enabled
gater
.
Update
(
peer
.
ID
(
"peer1"
),
float64
(
-
100000
))
}
op-node/p2p/peer_params.go
View file @
4ff4d356
...
...
@@ -87,8 +87,8 @@ var DisabledPeerScoreParams = func(blockTime uint64) pubsub.PeerScoreParams {
// PeerScoreParamsByName is a map of name to function that returns a [pubsub.PeerScoreParams] based on the provided [rollup.Config].
var
PeerScoreParamsByName
=
map
[
string
](
func
(
blockTime
uint64
)
pubsub
.
PeerScoreParams
){
"light"
:
LightPeerScoreParams
,
"none"
:
DisabledPeerScoreParams
,
"light"
:
LightPeerScoreParams
,
"none"
:
DisabledPeerScoreParams
,
}
// AvailablePeerScoreParams returns a list of available peer score params.
...
...
op-node/p2p/peer_params_test.go
View file @
4ff4d356
package
p2p
import
(
"sort"
"math"
"
time
"
"
sort
"
"testing"
"time"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
"github.com/stretchr/testify/suite"
...
...
@@ -55,13 +55,13 @@ func (testSuite *PeerParamsTestSuite) TestGetPeerScoreParams() {
testSuite
.
NoError
(
err
)
expected
:=
LightPeerScoreParams
(
1
)
testSuite
.
Equal
(
expected
.
DecayInterval
,
params
.
DecayInterval
)
testSuite
.
Equal
(
time
.
Duration
(
1
)
*
time
.
Second
,
params
.
DecayInterval
)
testSuite
.
Equal
(
time
.
Duration
(
1
)
*
time
.
Second
,
params
.
DecayInterval
)
params
,
err
=
GetPeerScoreParams
(
"none"
,
1
)
testSuite
.
NoError
(
err
)
expected
=
DisabledPeerScoreParams
(
1
)
testSuite
.
Equal
(
expected
.
DecayInterval
,
params
.
DecayInterval
)
testSuite
.
Equal
(
time
.
Duration
(
1
)
*
time
.
Second
,
params
.
DecayInterval
)
testSuite
.
Equal
(
time
.
Duration
(
1
)
*
time
.
Second
,
params
.
DecayInterval
)
_
,
err
=
GetPeerScoreParams
(
"invalid"
,
1
)
testSuite
.
Error
(
err
)
...
...
@@ -76,7 +76,7 @@ func (testSuite *PeerParamsTestSuite) TestLightPeerScoreParams() {
// calculate the behavior penalty decay
duration
:=
10
*
epoch
decay
:=
math
.
Pow
(
DecayToZero
,
1
/
float64
(
duration
/
slot
))
decay
:=
math
.
Pow
(
DecayToZero
,
1
/
float64
(
duration
/
slot
))
testSuite
.
Equal
(
0.9261187281287935
,
decay
)
// Test the params
...
...
@@ -106,7 +106,7 @@ func (testSuite *PeerParamsTestSuite) TestDisabledPeerScoreParams() {
// calculate the behavior penalty decay
duration
:=
10
*
epoch
decay
:=
math
.
Pow
(
DecayToZero
,
1
/
float64
(
duration
/
slot
))
decay
:=
math
.
Pow
(
DecayToZero
,
1
/
float64
(
duration
/
slot
))
testSuite
.
Equal
(
0.9261187281287935
,
decay
)
// Test the params
...
...
op-node/p2p/peer_scorer.go
View file @
4ff4d356
...
...
@@ -2,8 +2,8 @@ package p2p
import
(
log
"github.com/ethereum/go-ethereum/log"
peer
"github.com/libp2p/go-libp2p/core/peer"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
peer
"github.com/libp2p/go-libp2p/core/peer"
)
type
scorer
struct
{
...
...
op-node/p2p/peer_scorer_test.go
View file @
4ff4d356
...
...
@@ -3,13 +3,13 @@ package p2p_test
import
(
"testing"
peer
"github.com/libp2p/go-libp2p/core/peer"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
node
"github.com/ethereum-optimism/optimism/op-node/node"
p2p
"github.com/ethereum-optimism/optimism/op-node/p2p"
p2pMocks
"github.com/ethereum-optimism/optimism/op-node/p2p/mocks"
log
"github.com/ethereum/go-ethereum/log"
node
"github.com/ethereum-optimism/optimism/op-node/node"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
peer
"github.com/libp2p/go-libp2p/core/peer"
suite
"github.com/stretchr/testify/suite"
p2pMocks
"github.com/ethereum-optimism/optimism/op-node/p2p/mocks"
)
// PeerScorerTestSuite tests peer parameterization.
...
...
@@ -17,10 +17,10 @@ type PeerScorerTestSuite struct {
suite
.
Suite
// mockConnGater *p2pMocks.ConnectionGater
mockGater
*
p2pMocks
.
PeerGater
mockStore
*
p2pMocks
.
Peerstore
mockGater
*
p2pMocks
.
PeerGater
mockStore
*
p2pMocks
.
Peerstore
mockMetricer
*
p2pMocks
.
GossipMetricer
logger
log
.
Logger
logger
log
.
Logger
}
// SetupTest sets up the test suite.
...
...
@@ -79,7 +79,7 @@ func (testSuite *PeerScorerTestSuite) TestSnapshotHook() {
// Apply the snapshot
snapshotMap
:=
map
[
peer
.
ID
]
*
pubsub
.
PeerScoreSnapshot
{
peer
.
ID
(
"peer1"
)
:
&
pubsub
.
PeerScoreSnapshot
{
peer
.
ID
(
"peer1"
)
:
{
Score
:
-
100
,
},
}
...
...
@@ -106,7 +106,7 @@ func (testSuite *PeerScorerTestSuite) TestSnapshotHookBlockPeer() {
// Apply the snapshot
snapshotMap
:=
map
[
peer
.
ID
]
*
pubsub
.
PeerScoreSnapshot
{
peer
.
ID
(
"peer1"
)
:
&
pubsub
.
PeerScoreSnapshot
{
peer
.
ID
(
"peer1"
)
:
{
Score
:
-
101
,
},
}
...
...
op-node/p2p/peer_scores_test.go
View file @
4ff4d356
package
p2p_test
import
(
"context"
"fmt"
"time"
"math/rand"
"context"
"testing"
"time"
p2p
"github.com/ethereum-optimism/optimism/op-node/p2p"
node
"github.com/ethereum-optimism/optimism/op-node/node"
testlog
"github.com/ethereum-optimism/optimism/op-node/testlog
"
p2p
"github.com/ethereum-optimism/optimism/op-node/p2p
"
p2pMocks
"github.com/ethereum-optimism/optimism/op-node/p2p/mocks"
testlog
"github.com/ethereum-optimism/optimism/op-node/testlog"
mock
"github.com/stretchr/testify/mock"
suite
"github.com/stretchr/testify/suite"
log
"github.com/ethereum/go-ethereum/log"
peer
"github.com/libp2p/go-libp2p/core/peer"
pubsub
"github.com/libp2p/go-libp2p-pubsub"
host
"github.com/libp2p/go-libp2p/core/host"
peer
"github.com/libp2p/go-libp2p/core/peer"
bhost
"github.com/libp2p/go-libp2p/p2p/host/blank"
tswarm
"github.com/libp2p/go-libp2p/p2p/net/swarm/testing"
)
...
...
@@ -28,10 +28,10 @@ import (
type
PeerScoresTestSuite
struct
{
suite
.
Suite
mockGater
*
p2pMocks
.
ConnectionGater
mockStore
*
p2pMocks
.
Peerstore
mockGater
*
p2pMocks
.
ConnectionGater
mockStore
*
p2pMocks
.
Peerstore
mockMetricer
*
p2pMocks
.
GossipMetricer
logger
log
.
Logger
logger
log
.
Logger
}
// SetupTest sets up the test suite.
...
...
@@ -139,7 +139,9 @@ func (testSuite *PeerScoresTestSuite) TestNegativeScores() {
// Create subscriptions
var
subs
[]
*
pubsub
.
Subscription
for
_
,
ps
:=
range
pubsubs
{
sub
,
err
:=
ps
.
Subscribe
(
"test"
)
topic
,
err
:=
ps
.
Join
(
"test"
)
testSuite
.
NoError
(
err
)
sub
,
err
:=
topic
.
Subscribe
()
testSuite
.
NoError
(
err
)
subs
=
append
(
subs
,
sub
)
}
...
...
@@ -148,7 +150,10 @@ func (testSuite *PeerScoresTestSuite) TestNegativeScores() {
time
.
Sleep
(
3
*
time
.
Second
)
for
i
:=
0
;
i
<
20
;
i
++
{
msg
:=
[]
byte
(
fmt
.
Sprintf
(
"message %d"
,
i
))
pubsubs
[
i
%
20
]
.
Publish
(
"test"
,
msg
)
topic
,
err
:=
pubsubs
[
i
%
20
]
.
Join
(
"test"
)
testSuite
.
NoError
(
err
)
err
=
topic
.
Publish
(
ctx
,
msg
)
testSuite
.
NoError
(
err
)
time
.
Sleep
(
20
*
time
.
Millisecond
)
}
...
...
@@ -158,7 +163,7 @@ func (testSuite *PeerScoresTestSuite) TestNegativeScores() {
// Collects all messages from a subscription
collectAll
:=
func
(
sub
*
pubsub
.
Subscription
)
[]
*
pubsub
.
Message
{
var
res
[]
*
pubsub
.
Message
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
100
*
time
.
Millisecond
)
ctx
,
cancel
:=
context
.
WithTimeout
(
context
.
Background
(),
100
*
time
.
Millisecond
)
defer
cancel
()
for
{
msg
,
err
:=
sub
.
Next
(
ctx
)
...
...
@@ -182,6 +187,4 @@ func (testSuite *PeerScoresTestSuite) TestNegativeScores() {
testSuite
.
NotEqual
(
hosts
[
0
]
.
ID
(),
m
.
ReceivedFrom
)
}
}
}
op-node/p2p/rpc_server.go
View file @
4ff4d356
...
...
@@ -30,9 +30,9 @@ import (
// - banning peers based on score
var
(
DisabledDiscovery
=
errors
.
New
(
"discovery disabled"
)
NoConnectionManager
=
errors
.
New
(
"no connection manager"
)
NoConnectionGater
=
errors
.
New
(
"no connection gater"
)
Err
DisabledDiscovery
=
errors
.
New
(
"discovery disabled"
)
Err
NoConnectionManager
=
errors
.
New
(
"no connection manager"
)
Err
NoConnectionGater
=
errors
.
New
(
"no connection gater"
)
)
type
Node
interface
{
...
...
@@ -236,7 +236,7 @@ func (s *APIBackend) DiscoveryTable(_ context.Context) ([]*enode.Node, error) {
if
dv5
:=
s
.
node
.
Dv5Udp
();
dv5
!=
nil
{
return
dv5
.
AllNodes
(),
nil
}
else
{
return
nil
,
DisabledDiscovery
return
nil
,
Err
DisabledDiscovery
}
}
...
...
@@ -244,7 +244,7 @@ func (s *APIBackend) BlockPeer(_ context.Context, p peer.ID) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_blockPeer"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
BlockPeer
(
p
)
}
...
...
@@ -254,7 +254,7 @@ func (s *APIBackend) UnblockPeer(_ context.Context, p peer.ID) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_unblockPeer"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
UnblockPeer
(
p
)
}
...
...
@@ -264,7 +264,7 @@ func (s *APIBackend) ListBlockedPeers(_ context.Context) ([]peer.ID, error) {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_listBlockedPeers"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
nil
,
NoConnectionGater
return
nil
,
Err
NoConnectionGater
}
else
{
return
gater
.
ListBlockedPeers
(),
nil
}
...
...
@@ -276,7 +276,7 @@ func (s *APIBackend) BlockAddr(_ context.Context, ip net.IP) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_blockAddr"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
BlockAddr
(
ip
)
}
...
...
@@ -286,7 +286,7 @@ func (s *APIBackend) UnblockAddr(_ context.Context, ip net.IP) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_unblockAddr"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
UnblockAddr
(
ip
)
}
...
...
@@ -296,7 +296,7 @@ func (s *APIBackend) ListBlockedAddrs(_ context.Context) ([]net.IP, error) {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_listBlockedAddrs"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
nil
,
NoConnectionGater
return
nil
,
Err
NoConnectionGater
}
else
{
return
gater
.
ListBlockedAddrs
(),
nil
}
...
...
@@ -308,7 +308,7 @@ func (s *APIBackend) BlockSubnet(_ context.Context, ipnet *net.IPNet) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_blockSubnet"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
BlockSubnet
(
ipnet
)
}
...
...
@@ -318,7 +318,7 @@ func (s *APIBackend) UnblockSubnet(_ context.Context, ipnet *net.IPNet) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_unblockSubnet"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
NoConnectionGater
return
Err
NoConnectionGater
}
else
{
return
gater
.
UnblockSubnet
(
ipnet
)
}
...
...
@@ -328,7 +328,7 @@ func (s *APIBackend) ListBlockedSubnets(_ context.Context) ([]*net.IPNet, error)
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_listBlockedSubnets"
)
defer
recordDur
()
if
gater
:=
s
.
node
.
ConnectionGater
();
gater
==
nil
{
return
nil
,
NoConnectionGater
return
nil
,
Err
NoConnectionGater
}
else
{
return
gater
.
ListBlockedSubnets
(),
nil
}
...
...
@@ -338,7 +338,7 @@ func (s *APIBackend) ProtectPeer(_ context.Context, p peer.ID) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_protectPeer"
)
defer
recordDur
()
if
manager
:=
s
.
node
.
ConnectionManager
();
manager
==
nil
{
return
NoConnectionManager
return
Err
NoConnectionManager
}
else
{
manager
.
Protect
(
p
,
"api-protected"
)
return
nil
...
...
@@ -349,7 +349,7 @@ func (s *APIBackend) UnprotectPeer(_ context.Context, p peer.ID) error {
recordDur
:=
s
.
m
.
RecordRPCServerRequest
(
"opp2p_unprotectPeer"
)
defer
recordDur
()
if
manager
:=
s
.
node
.
ConnectionManager
();
manager
==
nil
{
return
NoConnectionManager
return
Err
NoConnectionManager
}
else
{
manager
.
Unprotect
(
p
,
"api-protected"
)
return
nil
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment