drop miner tagger logic as it doesnt do what we want it to
This commit is contained in:
parent
8284436eae
commit
ca7e2e76c2
@ -234,7 +234,6 @@ func Online() Option {
|
|||||||
Override(new(*paych.Store), paych.NewStore),
|
Override(new(*paych.Store), paych.NewStore),
|
||||||
Override(new(*paych.Manager), paych.NewManager),
|
Override(new(*paych.Manager), paych.NewManager),
|
||||||
Override(new(*market.FundMgr), market.NewFundMgr),
|
Override(new(*market.FundMgr), market.NewFundMgr),
|
||||||
Override(RunPeerTaggerKey, lp2p.TagMiners),
|
|
||||||
),
|
),
|
||||||
|
|
||||||
// Storage miner
|
// Storage miner
|
||||||
|
@ -19,8 +19,8 @@ import (
|
|||||||
type CommonAPI struct {
|
type CommonAPI struct {
|
||||||
fx.In
|
fx.In
|
||||||
|
|
||||||
APISecret *dtypes.APIAlg
|
APISecret *dtypes.APIAlg
|
||||||
Host host.Host
|
Host host.Host
|
||||||
}
|
}
|
||||||
|
|
||||||
type jwtPayload struct {
|
type jwtPayload struct {
|
||||||
|
@ -1,20 +1,16 @@
|
|||||||
package lp2p
|
package lp2p
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
|
||||||
"crypto/rand"
|
"crypto/rand"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/stmgr"
|
|
||||||
"github.com/filecoin-project/lotus/chain/types"
|
"github.com/filecoin-project/lotus/chain/types"
|
||||||
"github.com/filecoin-project/lotus/node/peers"
|
|
||||||
"golang.org/x/xerrors"
|
"golang.org/x/xerrors"
|
||||||
|
|
||||||
logging "github.com/ipfs/go-log"
|
logging "github.com/ipfs/go-log"
|
||||||
"github.com/libp2p/go-libp2p"
|
"github.com/libp2p/go-libp2p"
|
||||||
connmgr "github.com/libp2p/go-libp2p-connmgr"
|
connmgr "github.com/libp2p/go-libp2p-connmgr"
|
||||||
"github.com/libp2p/go-libp2p-core/crypto"
|
"github.com/libp2p/go-libp2p-core/crypto"
|
||||||
host "github.com/libp2p/go-libp2p-core/host"
|
|
||||||
"github.com/libp2p/go-libp2p-core/peer"
|
"github.com/libp2p/go-libp2p-core/peer"
|
||||||
"github.com/libp2p/go-libp2p-core/peerstore"
|
"github.com/libp2p/go-libp2p-core/peerstore"
|
||||||
"go.uber.org/fx"
|
"go.uber.org/fx"
|
||||||
@ -99,18 +95,3 @@ func simpleOpt(opt libp2p.Option) func() (opts Libp2pOpts, err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TagMiners(lc fx.Lifecycle, h host.Host, stmgr *stmgr.StateManager) {
|
|
||||||
pt := peers.NewPeerTagger(h, stmgr)
|
|
||||||
lc.Append(fx.Hook{
|
|
||||||
OnStart: func(ctx context.Context) error {
|
|
||||||
pt.Run()
|
|
||||||
return nil
|
|
||||||
},
|
|
||||||
OnStop: func(ctx context.Context) error {
|
|
||||||
return pt.Close()
|
|
||||||
},
|
|
||||||
})
|
|
||||||
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
package peers
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
"time"
|
|
||||||
|
|
||||||
"github.com/filecoin-project/lotus/chain/stmgr"
|
|
||||||
logging "github.com/ipfs/go-log"
|
|
||||||
host "github.com/libp2p/go-libp2p-core/host"
|
|
||||||
"go.opencensus.io/trace"
|
|
||||||
)
|
|
||||||
|
|
||||||
var log = logging.Logger("peertag")
|
|
||||||
|
|
||||||
// PeerTagger uses information from the chain to tag peer connections to
|
|
||||||
// prevent them from being closed by the connection manager
|
|
||||||
type PeerTagger struct {
|
|
||||||
h host.Host
|
|
||||||
st *stmgr.StateManager
|
|
||||||
|
|
||||||
closing chan struct{}
|
|
||||||
}
|
|
||||||
|
|
||||||
func NewPeerTagger(h host.Host, st *stmgr.StateManager) *PeerTagger {
|
|
||||||
return &PeerTagger{
|
|
||||||
h: h,
|
|
||||||
st: st,
|
|
||||||
closing: make(chan struct{}),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pt *PeerTagger) Run() {
|
|
||||||
go pt.loop()
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pt *PeerTagger) loop() {
|
|
||||||
tick := time.NewTimer(time.Second)
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-tick.C:
|
|
||||||
if err := pt.tagMiners(context.TODO()); err != nil {
|
|
||||||
log.Warn("failed to run tag miners: ", err)
|
|
||||||
}
|
|
||||||
|
|
||||||
tick.Reset(time.Minute * 2)
|
|
||||||
|
|
||||||
case <-pt.closing:
|
|
||||||
log.Warn("peer tagger shutting down")
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pt *PeerTagger) tagMiners(ctx context.Context) error {
|
|
||||||
_, span := trace.StartSpan(ctx, "tagMiners")
|
|
||||||
defer span.End()
|
|
||||||
|
|
||||||
ts := pt.st.ChainStore().GetHeaviestTipSet()
|
|
||||||
mactors, err := stmgr.ListMinerActors(context.TODO(), pt.st, ts)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, m := range mactors {
|
|
||||||
mpow, _, err := stmgr.GetPower(context.TODO(), pt.st, ts, m)
|
|
||||||
if err != nil {
|
|
||||||
log.Warn("failed to get miners power: ", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if !mpow.IsZero() {
|
|
||||||
pid, err := stmgr.GetMinerPeerID(context.TODO(), pt.st, ts, m)
|
|
||||||
if err != nil {
|
|
||||||
log.Warn("failed to get peer ID for miner: ", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
pt.h.ConnManager().TagPeer(pid, "miner", 10)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pt *PeerTagger) Close() error {
|
|
||||||
close(pt.closing)
|
|
||||||
return nil
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user