feat: add IndexerProvider AnnounceAddress config
This commit is contained in:
parent
6b7b9793ab
commit
a51b08e386
@ -248,13 +248,13 @@
|
|||||||
|
|
||||||
[IndexerProvider]
|
[IndexerProvider]
|
||||||
# env var: LOTUS_INDEXERPROVIDER_LINKCACHESIZE
|
# env var: LOTUS_INDEXERPROVIDER_LINKCACHESIZE
|
||||||
#LinkCacheSize = 0
|
#LinkCacheSize = 1024
|
||||||
|
|
||||||
# env var: LOTUS_INDEXERPROVIDER_LINKEDCHUNKSIZE
|
# env var: LOTUS_INDEXERPROVIDER_LINKEDCHUNKSIZE
|
||||||
#LinkedChunkSize = 0
|
#LinkedChunkSize = 100
|
||||||
|
|
||||||
# env var: LOTUS_INDEXERPROVIDER_PUBSUBTOPIC
|
# env var: LOTUS_INDEXERPROVIDER_PUBSUBTOPIC
|
||||||
#PubSubTopic = ""
|
#PubSubTopic = "indexer/ingest"
|
||||||
|
|
||||||
# env var: LOTUS_INDEXERPROVIDER_PURGELINKCACHE
|
# env var: LOTUS_INDEXERPROVIDER_PURGELINKCACHE
|
||||||
#PurgeLinkCache = false
|
#PurgeLinkCache = false
|
||||||
@ -266,6 +266,14 @@
|
|||||||
# env var: LOTUS_INDEXERPROVIDER_LISTENADDRESSES
|
# env var: LOTUS_INDEXERPROVIDER_LISTENADDRESSES
|
||||||
#ListenAddresses = ["/ip4/0.0.0.0/tcp/0", "/ip6/::/tcp/0"]
|
#ListenAddresses = ["/ip4/0.0.0.0/tcp/0", "/ip6/::/tcp/0"]
|
||||||
|
|
||||||
|
# Addresses to explicitly announce to other peers. If not specified,
|
||||||
|
# all interface addresses are announced
|
||||||
|
# Format: multiaddress
|
||||||
|
#
|
||||||
|
# type: []string
|
||||||
|
# env var: LOTUS_INDEXERPROVIDER_ANNOUNCEADDRESSES
|
||||||
|
#AnnounceAddresses = []
|
||||||
|
|
||||||
# The maximum number of simultaneous data transfers between the indexers
|
# The maximum number of simultaneous data transfers between the indexers
|
||||||
# and the indexer provider
|
# and the indexer provider
|
||||||
#
|
#
|
||||||
|
@ -182,6 +182,7 @@ func DefaultStorageMiner() *StorageMiner {
|
|||||||
"/ip4/0.0.0.0/tcp/0",
|
"/ip4/0.0.0.0/tcp/0",
|
||||||
"/ip6/::/tcp/0",
|
"/ip6/::/tcp/0",
|
||||||
},
|
},
|
||||||
|
AnnounceAddresses: []string{},
|
||||||
|
|
||||||
MaxSimultaneousTransfers: DefaultSimultaneousTransfers,
|
MaxSimultaneousTransfers: DefaultSimultaneousTransfers,
|
||||||
},
|
},
|
||||||
|
@ -346,6 +346,14 @@ see https://docs.filecoin.io/mine/lotus/miner-configuration/#using-filters-for-f
|
|||||||
|
|
||||||
Comment: `Binding address for the libp2p host - 0 means random port.
|
Comment: `Binding address for the libp2p host - 0 means random port.
|
||||||
Format: multiaddress; see https://multiformats.io/multiaddr/`,
|
Format: multiaddress; see https://multiformats.io/multiaddr/`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Name: "AnnounceAddresses",
|
||||||
|
Type: "[]string",
|
||||||
|
|
||||||
|
Comment: `Addresses to explicitly announce to other peers. If not specified,
|
||||||
|
all interface addresses are announced
|
||||||
|
Format: multiaddress`,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
Name: "MaxSimultaneousTransfers",
|
Name: "MaxSimultaneousTransfers",
|
||||||
|
@ -156,6 +156,11 @@ type IndexerProviderConfig struct {
|
|||||||
// Format: multiaddress; see https://multiformats.io/multiaddr/
|
// Format: multiaddress; see https://multiformats.io/multiaddr/
|
||||||
ListenAddresses []string
|
ListenAddresses []string
|
||||||
|
|
||||||
|
// Addresses to explicitly announce to other peers. If not specified,
|
||||||
|
// all interface addresses are announced
|
||||||
|
// Format: multiaddress
|
||||||
|
AnnounceAddresses []string
|
||||||
|
|
||||||
// The maximum number of simultaneous data transfers between the indexers
|
// The maximum number of simultaneous data transfers between the indexers
|
||||||
// and the indexer provider
|
// and the indexer provider
|
||||||
MaxSimultaneousTransfers uint64
|
MaxSimultaneousTransfers uint64
|
||||||
|
@ -11,7 +11,7 @@ import (
|
|||||||
mamask "github.com/whyrusleeping/multiaddr-filter"
|
mamask "github.com/whyrusleeping/multiaddr-filter"
|
||||||
)
|
)
|
||||||
|
|
||||||
func makeAddrsFactory(announce []string, noAnnounce []string) (p2pbhost.AddrsFactory, error) {
|
func MakeAddrsFactory(announce []string, noAnnounce []string) (p2pbhost.AddrsFactory, error) {
|
||||||
var annAddrs []ma.Multiaddr
|
var annAddrs []ma.Multiaddr
|
||||||
for _, addr := range announce {
|
for _, addr := range announce {
|
||||||
maddr, err := ma.NewMultiaddr(addr)
|
maddr, err := ma.NewMultiaddr(addr)
|
||||||
@ -59,7 +59,7 @@ func makeAddrsFactory(announce []string, noAnnounce []string) (p2pbhost.AddrsFac
|
|||||||
|
|
||||||
func AddrsFactory(announce []string, noAnnounce []string) func() (opts Libp2pOpts, err error) {
|
func AddrsFactory(announce []string, noAnnounce []string) func() (opts Libp2pOpts, err error) {
|
||||||
return func() (opts Libp2pOpts, err error) {
|
return func() (opts Libp2pOpts, err error) {
|
||||||
addrsFactory, err := makeAddrsFactory(announce, noAnnounce)
|
addrsFactory, err := MakeAddrsFactory(announce, noAnnounce)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return opts, err
|
return opts, err
|
||||||
}
|
}
|
||||||
|
@ -34,6 +34,7 @@ import (
|
|||||||
"github.com/filecoin-project/lotus/node/config"
|
"github.com/filecoin-project/lotus/node/config"
|
||||||
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
||||||
"github.com/filecoin-project/lotus/node/modules/helpers"
|
"github.com/filecoin-project/lotus/node/modules/helpers"
|
||||||
|
"github.com/filecoin-project/lotus/node/modules/lp2p"
|
||||||
"github.com/filecoin-project/lotus/node/repo"
|
"github.com/filecoin-project/lotus/node/repo"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -57,7 +58,7 @@ func IndexerProvider(cfg config.IndexerProviderConfig) func(params IdxProv) (pro
|
|||||||
return nil, fmt.Errorf("missing private key for node ID: %s", args.PeerID.Pretty())
|
return nil, fmt.Errorf("missing private key for node ID: %s", args.PeerID.Pretty())
|
||||||
}
|
}
|
||||||
|
|
||||||
h, err := createIndexerProviderHost(args.MetricsCtx, args.Lifecycle, pkey, args.Peerstore, cfg.ListenAddresses)
|
h, err := createIndexerProviderHost(args.MetricsCtx, args.Lifecycle, pkey, args.Peerstore, cfg.ListenAddresses, cfg.AnnounceAddresses)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, xerrors.Errorf("creating indexer provider host: %w", err)
|
return nil, xerrors.Errorf("creating indexer provider host: %w", err)
|
||||||
}
|
}
|
||||||
@ -94,13 +95,18 @@ func IndexerProvider(cfg config.IndexerProviderConfig) func(params IdxProv) (pro
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func createIndexerProviderHost(mctx helpers.MetricsCtx, lc fx.Lifecycle, pkey ci.PrivKey, pstore peerstore.Peerstore, listenAddrs []string) (host.Host, error) {
|
func createIndexerProviderHost(mctx helpers.MetricsCtx, lc fx.Lifecycle, pkey ci.PrivKey, pstore peerstore.Peerstore, listenAddrs []string, announceAddrs []string) (host.Host, error) {
|
||||||
ctx := helpers.LifecycleCtx(mctx, lc)
|
ctx := helpers.LifecycleCtx(mctx, lc)
|
||||||
|
addrsFactory, err := lp2p.MakeAddrsFactory(announceAddrs, nil)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
|
|
||||||
opts := []libp2p.Option{
|
opts := []libp2p.Option{
|
||||||
libp2p.Identity(pkey),
|
libp2p.Identity(pkey),
|
||||||
libp2p.Peerstore(pstore),
|
libp2p.Peerstore(pstore),
|
||||||
libp2p.ListenAddrStrings(listenAddrs...),
|
libp2p.ListenAddrStrings(listenAddrs...),
|
||||||
|
libp2p.AddrsFactory(addrsFactory),
|
||||||
libp2p.Ping(true),
|
libp2p.Ping(true),
|
||||||
libp2p.UserAgent("lotus-indexer-provider-" + build.UserVersion()),
|
libp2p.UserAgent("lotus-indexer-provider-" + build.UserVersion()),
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user