connectiong gater API scaffolding

This commit is contained in:
vyzo 2020-11-13 12:17:20 +02:00
parent 4b1d1b6540
commit 5a0b9f4197
5 changed files with 56 additions and 0 deletions

View File

@ -13,6 +13,7 @@ import (
protocol "github.com/libp2p/go-libp2p-core/protocol"
"github.com/filecoin-project/lotus/build"
"github.com/filecoin-project/lotus/node/modules/dtypes"
)
type Common interface {
@ -46,6 +47,11 @@ type Common interface {
// usage and current rate per protocol
NetBandwidthStatsByProtocol(ctx context.Context) (map[protocol.ID]metrics.Stats, error)
// ConnectionGater API
NetBlockAdd(ctx context.Context, acl dtypes.NetBlockList) error
NetBlockRemove(ctx context.Context, acl dtypes.NetBlockList) error
NetBlockList(ctx context.Context) (dtypes.NetBlockList, error)
// MethodGroup: Common
// ID returns peerID of libp2p node backing this API

View File

@ -60,6 +60,9 @@ type CommonStruct struct {
NetBandwidthStatsByPeer func(ctx context.Context) (map[string]metrics.Stats, error) `perm:"read"`
NetBandwidthStatsByProtocol func(ctx context.Context) (map[protocol.ID]metrics.Stats, error) `perm:"read"`
NetAgentVersion func(ctx context.Context, p peer.ID) (string, error) `perm:"read"`
NetBlockAdd func(ctx context.Context, acl dtypes.NetBlockList) error `perm:"admin"`
NetBlockRemove func(ctx context.Context, acl dtypes.NetBlockList) error `perm:"admin"`
NetBlockList func(ctx context.Context) (dtypes.NetBlockList, error) `perm:"read"`
ID func(context.Context) (peer.ID, error) `perm:"read"`
Version func(context.Context) (api.Version, error) `perm:"read"`
@ -495,6 +498,18 @@ func (c *CommonStruct) NetBandwidthStatsByProtocol(ctx context.Context) (map[pro
return c.Internal.NetBandwidthStatsByProtocol(ctx)
}
func (c *CommonStruct) NetBlockAdd(ctx context.Context, acl dtypes.NetBlockList) error {
return c.Internal.NetBlockAdd(ctx, acl)
}
func (c *CommonStruct) NetBlockRemove(ctx context.Context, acl dtypes.NetBlockList) error {
return c.Internal.NetBlockRemove(ctx, acl)
}
func (c *CommonStruct) NetBlockList(ctx context.Context) (dtypes.NetBlockList, error) {
return c.Internal.NetBlockList(ctx)
}
func (c *CommonStruct) NetAgentVersion(ctx context.Context, p peer.ID) (string, error) {
return c.Internal.NetAgentVersion(ctx, p)
}

View File

@ -15,6 +15,7 @@ import (
protocol "github.com/libp2p/go-libp2p-core/protocol"
swarm "github.com/libp2p/go-libp2p-swarm"
basichost "github.com/libp2p/go-libp2p/p2p/host/basic"
"github.com/libp2p/go-libp2p/p2p/net/conngater"
ma "github.com/multiformats/go-multiaddr"
"go.uber.org/fx"
"golang.org/x/xerrors"
@ -36,6 +37,7 @@ type CommonAPI struct {
RawHost lp2p.RawHost
Host host.Host
Router lp2p.BaseIpfsRouting
ConnGater *conngater.BasicConnectionGater
Reporter metrics.Reporter
Sk *dtypes.ScoreKeeper
ShutdownChan dtypes.ShutdownChan

View File

@ -0,0 +1,22 @@
package common
import (
"context"
"github.com/filecoin-project/lotus/node/modules/dtypes"
)
func (a *CommonAPI) NetBlockAdd(ctx context.Context, acl dtypes.NetBlockList) error {
// TODO
return nil
}
func (a *CommonAPI) NetBlockRemove(ctx context.Context, acl dtypes.NetBlockList) error {
// TODO
return nil
}
func (a *CommonAPI) NetBlockList(ctx context.Context) (dtypes.NetBlockList, error) {
// TODO
return dtypes.NetBlockList{}, nil
}

View File

@ -0,0 +1,11 @@
package dtypes
import (
"github.com/libp2p/go-libp2p-core/peer"
)
type NetBlockList struct {
Peers []peer.ID
IPAddrs []string
IPSubnets []string
}