@ -3,6 +3,7 @@ package node
import (
import (
"bytes"
"bytes"
"context"
"context"
"errors"
"fmt"
"fmt"
"net"
"net"
"net/http"
"net/http"
@ -10,7 +11,6 @@ import (
"strings"
"strings"
"time"
"time"
"github.com/pkg/errors"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/prometheus/client_golang/prometheus/promhttp"
"github.com/rs/cors"
"github.com/rs/cors"
@ -527,14 +527,14 @@ func createAddrBookAndSetOnSwitch(config *cfg.Config, sw *p2p.Switch,
if config . P2P . ExternalAddress != "" {
if config . P2P . ExternalAddress != "" {
addr , err := p2p . NewNetAddressString ( p2p . IDAddressString ( nodeKey . ID ( ) , config . P2P . ExternalAddress ) )
addr , err := p2p . NewNetAddressString ( p2p . IDAddressString ( nodeKey . ID ( ) , config . P2P . ExternalAddress ) )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "p2p.external_address is incorrect" )
return nil , fmt . Errorf ( "p2p.external_address is incorrect: %w" , err )
}
}
addrBook . AddOurAddress ( addr )
addrBook . AddOurAddress ( addr )
}
}
if config . P2P . ListenAddress != "" {
if config . P2P . ListenAddress != "" {
addr , err := p2p . NewNetAddressString ( p2p . IDAddressString ( nodeKey . ID ( ) , config . P2P . ListenAddress ) )
addr , err := p2p . NewNetAddressString ( p2p . IDAddressString ( nodeKey . ID ( ) , config . P2P . ListenAddress ) )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "p2p.laddr is incorrect" )
return nil , fmt . Errorf ( "p2p.laddr is incorrect: %w" , err )
}
}
addrBook . AddOurAddress ( addr )
addrBook . AddOurAddress ( addr )
}
}
@ -666,13 +666,13 @@ func NewNode(config *cfg.Config,
// FIXME: we should start services inside OnStart
// FIXME: we should start services inside OnStart
privValidator , err = createAndStartPrivValidatorSocketClient ( config . PrivValidatorListenAddr , logger )
privValidator , err = createAndStartPrivValidatorSocketClient ( config . PrivValidatorListenAddr , logger )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "error with private validator socket client" )
return nil , fmt . Errorf ( "error with private validator socket client: %w " , err )
}
}
}
}
pubKey , err := privValidator . GetPubKey ( )
pubKey , err := privValidator . GetPubKey ( )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "can't get pubkey" )
return nil , fmt . Errorf ( "can't get pubkey: %w" , err )
}
}
// Determine whether we should do state and/or fast sync.
// Determine whether we should do state and/or fast sync.
@ -724,7 +724,7 @@ func NewNode(config *cfg.Config,
// Make BlockchainReactor. Don't start fast sync if we're doing a state sync first.
// Make BlockchainReactor. Don't start fast sync if we're doing a state sync first.
bcReactor , err := createBlockchainReactor ( config , state , blockExec , blockStore , fastSync && ! stateSync , logger )
bcReactor , err := createBlockchainReactor ( config , state , blockExec , blockStore , fastSync && ! stateSync , logger )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "could not create blockchain reactor" )
return nil , fmt . Errorf ( "could not create blockchain reactor: %w" , err )
}
}
// Make ConsensusReactor. Don't enable fully if doing a state sync and/or fast sync first.
// Make ConsensusReactor. Don't enable fully if doing a state sync and/or fast sync first.
@ -764,17 +764,17 @@ func NewNode(config *cfg.Config,
err = sw . AddPersistentPeers ( splitAndTrimEmpty ( config . P2P . PersistentPeers , "," , " " ) )
err = sw . AddPersistentPeers ( splitAndTrimEmpty ( config . P2P . PersistentPeers , "," , " " ) )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "could not add peers from persistent_peers field" )
return nil , fmt . Errorf ( "could not add peers from persistent_peers field: %w " , err )
}
}
err = sw . AddUnconditionalPeerIDs ( splitAndTrimEmpty ( config . P2P . UnconditionalPeerIDs , "," , " " ) )
err = sw . AddUnconditionalPeerIDs ( splitAndTrimEmpty ( config . P2P . UnconditionalPeerIDs , "," , " " ) )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "could not add peer ids from unconditional_peer_ids field" )
return nil , fmt . Errorf ( "could not add peer ids from unconditional_peer_ids field: %w " , err )
}
}
addrBook , err := createAddrBookAndSetOnSwitch ( config , sw , p2pLogger , nodeKey )
addrBook , err := createAddrBookAndSetOnSwitch ( config , sw , p2pLogger , nodeKey )
if err != nil {
if err != nil {
return nil , errors . Wrap ( err , "could not create addrbook" )
return nil , fmt . Errorf ( "could not create addrbook: %w" , err )
}
}
// Optionally, start the pex reactor
// Optionally, start the pex reactor
@ -890,7 +890,7 @@ func (n *Node) OnStart() error {
// Always connect to persistent peers
// Always connect to persistent peers
err = n . sw . DialPeersAsync ( splitAndTrimEmpty ( n . config . P2P . PersistentPeers , "," , " " ) )
err = n . sw . DialPeersAsync ( splitAndTrimEmpty ( n . config . P2P . PersistentPeers , "," , " " ) )
if err != nil {
if err != nil {
return errors . Wrap ( err , "could not dial peers from persistent_peers field" )
return fmt . Errorf ( "could not dial peers from persistent_peers field: %w " , err )
}
}
// Run state sync
// Run state sync