Skip to content
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Fixed

- Replace persistent P2P connection gater with a no-op variant so stale blocklist entries can no longer prevent peers from connecting after a restart [#3273](https://github.com/evstack/ev-node/pull/3273)
- Raft HA production hardening: leader fencing on SIGTERM, FSM data race, follower restart crash, log compaction config, and election timeout validation [#3230](https://github.com/evstack/ev-node/pull/3230)

### Changes
Expand Down
18 changes: 6 additions & 12 deletions pkg/p2p/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,11 @@
metrics *Metrics,
) (*Client, error) {

gater, err := conngater.NewBasicConnectionGater(ds)
// No-op gater: never persists or blocks any peer. The gater instance is kept
// only because go-header's Exchange requires a *conngater.BasicConnectionGater
// parameter. libp2p itself is not given this gater, so no connection is ever
// filtered at the host level either.
gater, err := conngater.NewBasicConnectionGater(nil)
if err != nil {
return nil, fmt.Errorf("failed to create connection gater: %w", err)
}
Expand Down Expand Up @@ -156,16 +160,6 @@
c.logger.Info().Str("address", fmt.Sprintf("%s/p2p/%s", a, c.host.ID())).Msg("listening on address")
}

c.logger.Debug().Str("blacklist", c.conf.BlockedPeers).Msg("blocking blacklisted peers")
if err := c.setupBlockedPeers(c.parseAddrInfoList(c.conf.BlockedPeers)); err != nil {
return err
}

c.logger.Debug().Str("whitelist", c.conf.AllowedPeers).Msg("allowing whitelisted peers")
if err := c.setupAllowedPeers(c.parseAddrInfoList(c.conf.AllowedPeers)); err != nil {
return err
}

c.logger.Debug().Msg("setting up gossiping")
if err := c.setupGossiping(ctx); err != nil {
return err
Expand Down Expand Up @@ -340,7 +334,7 @@
return nil, err
}

return libp2p.New(libp2p.ListenAddrs(maddr), libp2p.Identity(c.privKey), libp2p.ConnectionGater(c.gater))
return libp2p.New(libp2p.ListenAddrs(maddr), libp2p.Identity(c.privKey))
}

func (c *Client) setupDHT(ctx context.Context) error {
Expand Down Expand Up @@ -400,7 +394,7 @@
return nil
}

func (c *Client) setupBlockedPeers(peers []peer.AddrInfo) error {

Check failure on line 397 in pkg/p2p/client.go

View workflow job for this annotation

GitHub Actions / lint / golangci-lint

func (*Client).setupBlockedPeers is unused (unused)
for _, p := range peers {
if err := c.gater.BlockPeer(p.ID); err != nil {
return err
Expand All @@ -409,7 +403,7 @@
return nil
}

func (c *Client) setupAllowedPeers(peers []peer.AddrInfo) error {

Check failure on line 406 in pkg/p2p/client.go

View workflow job for this annotation

GitHub Actions / lint / golangci-lint

func (*Client).setupAllowedPeers is unused (unused)
for _, p := range peers {
if err := c.gater.UnblockPeer(p.ID); err != nil {
return err
Expand Down
Loading