drop miner tagger logic as it doesnt do what we want it to

This commit is contained in:
whyrusleeping 2019-12-17 09:53:55 -08:00
parent 8284436eae
commit ca7e2e76c2
4 changed files with 2 additions and 107 deletions

View File

@ -234,7 +234,6 @@ func Online() Option {
Override(new(*paych.Store), paych.NewStore),
Override(new(*paych.Manager), paych.NewManager),
Override(new(*market.FundMgr), market.NewFundMgr),
Override(RunPeerTaggerKey, lp2p.TagMiners),
),
// Storage miner

View File

@ -19,8 +19,8 @@ import (
type CommonAPI struct {
fx.In
APISecret *dtypes.APIAlg
Host host.Host
APISecret *dtypes.APIAlg
Host host.Host
}
type jwtPayload struct {

View File

@ -1,20 +1,16 @@
package lp2p
import (
"context"
"crypto/rand"
"time"
"github.com/filecoin-project/lotus/chain/stmgr"
"github.com/filecoin-project/lotus/chain/types"
"github.com/filecoin-project/lotus/node/peers"
"golang.org/x/xerrors"
logging "github.com/ipfs/go-log"
"github.com/libp2p/go-libp2p"
connmgr "github.com/libp2p/go-libp2p-connmgr"
"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/peerstore"
"go.uber.org/fx"
@ -99,18 +95,3 @@ func simpleOpt(opt libp2p.Option) func() (opts Libp2pOpts, err error) {
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
}

View File

@ -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
}