forked from TrueCloudLab/frostfs-node
[#496] cmd/node: Use new config for morph and mainchain configuration
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
4ef968aa06
commit
0f4e8d2362
2 changed files with 9 additions and 41 deletions
|
@ -58,15 +58,6 @@ const (
|
||||||
// config keys for API client cache
|
// config keys for API client cache
|
||||||
cfgAPIClientDialTimeout = "apiclient.dial_timeout"
|
cfgAPIClientDialTimeout = "apiclient.dial_timeout"
|
||||||
|
|
||||||
// config keys for cfgMorph
|
|
||||||
cfgMorphRPCAddress = "morph.rpc_endpoint"
|
|
||||||
|
|
||||||
cfgMorphNotifyRPCAddress = "morph.notification_endpoint"
|
|
||||||
cfgMorphNotifyDialTimeout = "morph.dial_timeout"
|
|
||||||
|
|
||||||
cfgMainChainRPCAddress = "mainchain.rpc_endpoint"
|
|
||||||
cfgMainChainDialTimeout = "mainchain.dial_timeout"
|
|
||||||
|
|
||||||
cfgPolicerHeadTimeout = "policer.head_timeout"
|
cfgPolicerHeadTimeout = "policer.head_timeout"
|
||||||
|
|
||||||
cfgReplicatorPutTimeout = "replicator.put_timeout"
|
cfgReplicatorPutTimeout = "replicator.put_timeout"
|
||||||
|
@ -378,10 +369,6 @@ func initViper(path string) *viper.Viper {
|
||||||
}
|
}
|
||||||
|
|
||||||
func defaultConfiguration(v *viper.Viper) {
|
func defaultConfiguration(v *viper.Viper) {
|
||||||
v.SetDefault(cfgMorphRPCAddress, []string{})
|
|
||||||
v.SetDefault(cfgMorphNotifyRPCAddress, []string{})
|
|
||||||
v.SetDefault(cfgMorphNotifyDialTimeout, 5*time.Second)
|
|
||||||
|
|
||||||
v.SetDefault(cfgAPIClientDialTimeout, 5*time.Second)
|
v.SetDefault(cfgAPIClientDialTimeout, 5*time.Second)
|
||||||
|
|
||||||
v.SetDefault(cfgPolicerHeadTimeout, 5*time.Second)
|
v.SetDefault(cfgPolicerHeadTimeout, 5*time.Second)
|
||||||
|
|
|
@ -2,12 +2,13 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
"github.com/nspcc-dev/neo-go/pkg/core/block"
|
||||||
"github.com/nspcc-dev/neo-go/pkg/util"
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
|
mainchainconfig "github.com/nspcc-dev/neofs-node/cmd/neofs-node/config/mainchain"
|
||||||
|
morphconfig "github.com/nspcc-dev/neofs-node/cmd/neofs-node/config/morph"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/morph/client"
|
"github.com/nspcc-dev/neofs-node/pkg/morph/client"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/morph/client/netmap/wrapper"
|
"github.com/nspcc-dev/neofs-node/pkg/morph/client/netmap/wrapper"
|
||||||
"github.com/nspcc-dev/neofs-node/pkg/morph/event"
|
"github.com/nspcc-dev/neofs-node/pkg/morph/event"
|
||||||
|
@ -19,31 +20,15 @@ import (
|
||||||
|
|
||||||
const newEpochNotification = "NewEpoch"
|
const newEpochNotification = "NewEpoch"
|
||||||
|
|
||||||
var (
|
|
||||||
errNoRPCEndpoints = errors.New("NEO RPC endpoints are not specified in config")
|
|
||||||
errNoWSEndpoints = errors.New("websocket NEO listener endpoints are not specified in config")
|
|
||||||
)
|
|
||||||
|
|
||||||
func initMorphComponents(c *cfg) {
|
func initMorphComponents(c *cfg) {
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
fn := func(endpointCfg, dialTOCfg string, handler func(*client.Client), required bool) {
|
fn := func(addresses []string, dialTimeout time.Duration, handler func(*client.Client)) {
|
||||||
addresses := c.viper.GetStringSlice(endpointCfg)
|
|
||||||
if required && len(addresses) == 0 {
|
|
||||||
fatalOnErr(errNoRPCEndpoints)
|
|
||||||
}
|
|
||||||
|
|
||||||
crand := rand.New() // math/rand with cryptographic source
|
crand := rand.New() // math/rand with cryptographic source
|
||||||
crand.Shuffle(len(addresses), func(i, j int) {
|
crand.Shuffle(len(addresses), func(i, j int) {
|
||||||
addresses[i], addresses[j] = addresses[j], addresses[i]
|
addresses[i], addresses[j] = addresses[j], addresses[i]
|
||||||
})
|
})
|
||||||
|
|
||||||
var dialTimeout time.Duration
|
|
||||||
|
|
||||||
if dialTOCfg != "" {
|
|
||||||
dialTimeout = c.viper.GetDuration(dialTOCfg)
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := range addresses {
|
for i := range addresses {
|
||||||
cli, err := client.New(c.key, addresses[i], client.WithDialTimeout(dialTimeout))
|
cli, err := client.New(c.key, addresses[i], client.WithDialTimeout(dialTimeout))
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
@ -65,13 +50,13 @@ func initMorphComponents(c *cfg) {
|
||||||
|
|
||||||
// replace to a separate initialing block during refactoring
|
// replace to a separate initialing block during refactoring
|
||||||
// since current function initializes sidechain components
|
// since current function initializes sidechain components
|
||||||
fn(cfgMainChainRPCAddress, cfgMainChainDialTimeout, func(cli *client.Client) {
|
fn(mainchainconfig.RPCEndpoint(c.appCfg), mainchainconfig.DialTimeout(c.appCfg), func(cli *client.Client) {
|
||||||
c.mainChainClient = cli
|
c.mainChainClient = cli
|
||||||
}, false)
|
})
|
||||||
|
|
||||||
fn(cfgMorphRPCAddress, "", func(cli *client.Client) {
|
fn(morphconfig.RPCEndpoint(c.appCfg), morphconfig.DialTimeout(c.appCfg), func(cli *client.Client) {
|
||||||
c.cfgMorph.client = cli
|
c.cfgMorph.client = cli
|
||||||
}, true)
|
})
|
||||||
|
|
||||||
wrap, err := wrapper.NewFromMorph(c.cfgMorph.client, c.cfgNetmap.scriptHash, 0)
|
wrap, err := wrapper.NewFromMorph(c.cfgMorph.client, c.cfgNetmap.scriptHash, 0)
|
||||||
fatalOnErr(err)
|
fatalOnErr(err)
|
||||||
|
@ -86,12 +71,8 @@ func listenMorphNotifications(c *cfg) {
|
||||||
subs subscriber.Subscriber
|
subs subscriber.Subscriber
|
||||||
)
|
)
|
||||||
|
|
||||||
endpoints := c.viper.GetStringSlice(cfgMorphNotifyRPCAddress)
|
endpoints := morphconfig.NotificationEndpoint(c.appCfg)
|
||||||
if len(endpoints) == 0 {
|
timeout := morphconfig.DialTimeout(c.appCfg)
|
||||||
fatalOnErr(errNoWSEndpoints)
|
|
||||||
}
|
|
||||||
|
|
||||||
timeout := c.viper.GetDuration(cfgMorphNotifyDialTimeout)
|
|
||||||
|
|
||||||
crand := rand.New() // math/rand with cryptographic source
|
crand := rand.New() // math/rand with cryptographic source
|
||||||
crand.Shuffle(len(endpoints), func(i, j int) {
|
crand.Shuffle(len(endpoints), func(i, j int) {
|
||||||
|
|
Loading…
Reference in a new issue