mirror of https://github.com/poanetwork/gecko.git
Merge branch 'master' into split-admin-api
This commit is contained in:
commit
c86265baf8
|
@ -45,7 +45,10 @@ func main() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Track if sybil control is enforced
|
// Track if sybil control is enforced
|
||||||
if !Config.EnableStaking {
|
if !Config.EnableStaking && Config.EnableP2PTLS {
|
||||||
|
log.Warn("Staking is disabled. Sybil control is not enforced.")
|
||||||
|
}
|
||||||
|
if !Config.EnableStaking && !Config.EnableP2PTLS {
|
||||||
log.Warn("Staking and p2p encryption are disabled. Packet spoofing is possible.")
|
log.Warn("Staking and p2p encryption are disabled. Packet spoofing is possible.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@ const (
|
||||||
var (
|
var (
|
||||||
Config = node.Config{}
|
Config = node.Config{}
|
||||||
Err error
|
Err error
|
||||||
|
defaultNetworkName = genesis.TestnetName
|
||||||
defaultDbDir = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "db"))
|
defaultDbDir = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "db"))
|
||||||
defaultStakingKeyPath = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "staking", "staker.key"))
|
defaultStakingKeyPath = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "staking", "staker.key"))
|
||||||
defaultStakingCertPath = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "staking", "staker.crt"))
|
defaultStakingCertPath = os.ExpandEnv(filepath.Join("$HOME", ".gecko", "staking", "staker.crt"))
|
||||||
|
@ -50,6 +51,7 @@ var (
|
||||||
|
|
||||||
var (
|
var (
|
||||||
errBootstrapMismatch = errors.New("more bootstrap IDs provided than bootstrap IPs")
|
errBootstrapMismatch = errors.New("more bootstrap IDs provided than bootstrap IPs")
|
||||||
|
errStakingRequiresTLS = errors.New("if staking is enabled, network TLS must also be enabled")
|
||||||
)
|
)
|
||||||
|
|
||||||
// GetIPs returns the default IPs for each network
|
// GetIPs returns the default IPs for each network
|
||||||
|
@ -169,7 +171,7 @@ func init() {
|
||||||
version := fs.Bool("version", false, "If true, print version and quit")
|
version := fs.Bool("version", false, "If true, print version and quit")
|
||||||
|
|
||||||
// NetworkID:
|
// NetworkID:
|
||||||
networkName := fs.String("network-id", genesis.TestnetName, "Network ID this node will connect to")
|
networkName := fs.String("network-id", defaultNetworkName, "Network ID this node will connect to")
|
||||||
|
|
||||||
// Ava fees:
|
// Ava fees:
|
||||||
fs.Uint64Var(&Config.AvaTxFee, "ava-tx-fee", 0, "Ava transaction fee, in $nAva")
|
fs.Uint64Var(&Config.AvaTxFee, "ava-tx-fee", 0, "Ava transaction fee, in $nAva")
|
||||||
|
@ -200,7 +202,9 @@ func init() {
|
||||||
|
|
||||||
// Staking:
|
// Staking:
|
||||||
consensusPort := fs.Uint("staking-port", 9651, "Port of the consensus server")
|
consensusPort := fs.Uint("staking-port", 9651, "Port of the consensus server")
|
||||||
fs.BoolVar(&Config.EnableStaking, "staking-tls-enabled", true, "Require TLS to authenticate staking connections")
|
// TODO - keeping same flag for backwards compatibility, should be changed to "staking-enabled"
|
||||||
|
fs.BoolVar(&Config.EnableStaking, "staking-tls-enabled", true, "Enable staking. If enabled, Network TLS is required.")
|
||||||
|
fs.BoolVar(&Config.EnableP2PTLS, "p2p-tls-enabled", true, "Require TLS to authenticate network communication")
|
||||||
fs.StringVar(&Config.StakingKeyFile, "staking-tls-key-file", defaultStakingKeyPath, "TLS private key for staking")
|
fs.StringVar(&Config.StakingKeyFile, "staking-tls-key-file", defaultStakingKeyPath, "TLS private key for staking")
|
||||||
fs.StringVar(&Config.StakingCertFile, "staking-tls-cert-file", defaultStakingCertPath, "TLS certificate for staking")
|
fs.StringVar(&Config.StakingCertFile, "staking-tls-cert-file", defaultStakingCertPath, "TLS certificate for staking")
|
||||||
|
|
||||||
|
@ -235,7 +239,15 @@ func init() {
|
||||||
ferr := fs.Parse(os.Args[1:])
|
ferr := fs.Parse(os.Args[1:])
|
||||||
|
|
||||||
if *version { // If --version used, print version and exit
|
if *version { // If --version used, print version and exit
|
||||||
fmt.Println(node.Version.String())
|
networkID, err := genesis.NetworkID(defaultNetworkName)
|
||||||
|
if errs.Add(err); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
networkGeneration := genesis.NetworkName(networkID)
|
||||||
|
fmt.Printf(
|
||||||
|
"%s [database=%s, network=%s/%s]\n",
|
||||||
|
node.Version, dbVersion, defaultNetworkName, networkGeneration,
|
||||||
|
)
|
||||||
os.Exit(0)
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -319,7 +331,13 @@ func init() {
|
||||||
*bootstrapIDs = strings.Join(defaultBootstrapIDs, ",")
|
*bootstrapIDs = strings.Join(defaultBootstrapIDs, ",")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if Config.EnableStaking {
|
|
||||||
|
if Config.EnableStaking && !Config.EnableP2PTLS {
|
||||||
|
errs.Add(errStakingRequiresTLS)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if Config.EnableP2PTLS {
|
||||||
i := 0
|
i := 0
|
||||||
cb58 := formatting.CB58{}
|
cb58 := formatting.CB58{}
|
||||||
for _, id := range strings.Split(*bootstrapIDs, ",") {
|
for _, id := range strings.Split(*bootstrapIDs, ",") {
|
||||||
|
|
|
@ -34,6 +34,7 @@ type Config struct {
|
||||||
|
|
||||||
// Staking configuration
|
// Staking configuration
|
||||||
StakingIP utils.IPDesc
|
StakingIP utils.IPDesc
|
||||||
|
EnableP2PTLS bool
|
||||||
EnableStaking bool
|
EnableStaking bool
|
||||||
StakingKeyFile string
|
StakingKeyFile string
|
||||||
StakingCertFile string
|
StakingCertFile string
|
||||||
|
|
|
@ -120,7 +120,7 @@ func (n *Node) initNetworking() error {
|
||||||
dialer := network.NewDialer(TCP)
|
dialer := network.NewDialer(TCP)
|
||||||
|
|
||||||
var serverUpgrader, clientUpgrader network.Upgrader
|
var serverUpgrader, clientUpgrader network.Upgrader
|
||||||
if n.Config.EnableStaking {
|
if n.Config.EnableP2PTLS {
|
||||||
cert, err := tls.LoadX509KeyPair(n.Config.StakingCertFile, n.Config.StakingKeyFile)
|
cert, err := tls.LoadX509KeyPair(n.Config.StakingCertFile, n.Config.StakingKeyFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
@ -254,7 +254,7 @@ func (n *Node) initDatabase() error {
|
||||||
// Otherwise, it is a hash of the TLS certificate that this node
|
// Otherwise, it is a hash of the TLS certificate that this node
|
||||||
// uses for P2P communication
|
// uses for P2P communication
|
||||||
func (n *Node) initNodeID() error {
|
func (n *Node) initNodeID() error {
|
||||||
if !n.Config.EnableStaking {
|
if !n.Config.EnableP2PTLS {
|
||||||
n.ID = ids.NewShortID(hashing.ComputeHash160Array([]byte(n.Config.StakingIP.String())))
|
n.ID = ids.NewShortID(hashing.ComputeHash160Array([]byte(n.Config.StakingIP.String())))
|
||||||
n.Log.Info("Set the node's ID to %s", n.ID)
|
n.Log.Info("Set the node's ID to %s", n.ID)
|
||||||
return nil
|
return nil
|
||||||
|
|
Loading…
Reference in New Issue