Usage:fmt.Sprintf("Deprecated: Use %v instead",Scoring.Name),
Usage:fmt.Sprintf("Deprecated: Use %v instead",p2pScoringName),
Required:false,
Required:false,
Hidden:true,
Hidden:true,
}
},
P2PPrivPath=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.priv.path",
Name:"p2p.priv.path",
Usage:"Read the hex-encoded 32-byte private key for the peer ID from this txt file. Created if not already exists."+
Usage:"Read the hex-encoded 32-byte private key for the peer ID from this txt file. Created if not already exists."+
"Important to persist to keep the same network identity after restarting, maintaining the previous advertised identity.",
"Important to persist to keep the same network identity after restarting, maintaining the previous advertised identity.",
Required:false,
Required:false,
Value:"opnode_p2p_priv.txt",
Value:"opnode_p2p_priv.txt",
EnvVars:p2pEnv("PRIV_PATH"),
EnvVars:p2pEnv(envPrefix,"PRIV_PATH"),
TakesFile:true,
TakesFile:true,
}
},
P2PPrivRaw=&cli.StringFlag{
&cli.StringFlag{
// sometimes it may be ok to not persist the peer priv key as file, and instead pass it directly.
// sometimes it may be ok to not persist the peer priv key as file, and instead pass it directly.
Name:"p2p.priv.raw",
Name:"p2p.priv.raw",
Usage:"The hex-encoded 32-byte private key for the peer ID",
Usage:"The hex-encoded 32-byte private key for the peer ID",
Required:false,
Required:false,
Hidden:true,
Hidden:true,
Value:"",
Value:"",
EnvVars:p2pEnv("PRIV_RAW"),
EnvVars:p2pEnv(envPrefix,"PRIV_RAW"),
}
},
ListenIP=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.listen.ip",
Name:"p2p.listen.ip",
Usage:"IP to bind LibP2P and Discv5 to",
Usage:"IP to bind LibP2P and Discv5 to",
Required:false,
Required:false,
Value:"0.0.0.0",
Value:"0.0.0.0",
EnvVars:p2pEnv("LISTEN_IP"),
EnvVars:p2pEnv(envPrefix,"LISTEN_IP"),
}
},
ListenTCPPort=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.listen.tcp",
Name:"p2p.listen.tcp",
Usage:"TCP port to bind LibP2P to. Any available system port if set to 0.",
Usage:"TCP port to bind LibP2P to. Any available system port if set to 0.",
Required:false,
Required:false,
Value:9222,
Value:9222,
EnvVars:p2pEnv("LISTEN_TCP_PORT"),
EnvVars:p2pEnv(envPrefix,"LISTEN_TCP_PORT"),
}
},
ListenUDPPort=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.listen.udp",
Name:"p2p.listen.udp",
Usage:"UDP port to bind Discv5 to. Same as TCP port if left 0.",
Usage:"UDP port to bind Discv5 to. Same as TCP port if left 0.",
Required:false,
Required:false,
Value:0,// can simply match the TCP libp2p port
Value:0,// can simply match the TCP libp2p port
EnvVars:p2pEnv("LISTEN_UDP_PORT"),
EnvVars:p2pEnv(envPrefix,"LISTEN_UDP_PORT"),
}
},
AdvertiseIP=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.advertise.ip",
Name:"p2p.advertise.ip",
Usage:"The IP address to advertise in Discv5, put into the ENR of the node. This may also be a hostname / domain name to resolve to an IP.",
Usage:"The IP address to advertise in Discv5, put into the ENR of the node. This may also be a hostname / domain name to resolve to an IP.",
Required:false,
Required:false,
// Ignored by default, nodes can discover their own external IP in the happy case,
// Ignored by default, nodes can discover their own external IP in the happy case,
// by communicating with bootnodes. Fixed IP is recommended for faster bootstrap though.
// by communicating with bootnodes. Fixed IP is recommended for faster bootstrap though.
Value:"",
Value:"",
EnvVars:p2pEnv("ADVERTISE_IP"),
EnvVars:p2pEnv(envPrefix,"ADVERTISE_IP"),
}
},
AdvertiseTCPPort=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.advertise.tcp",
Name:"p2p.advertise.tcp",
Usage:"The TCP port to advertise in Discv5, put into the ENR of the node. Set to p2p.listen.tcp value if 0.",
Usage:"The TCP port to advertise in Discv5, put into the ENR of the node. Set to p2p.listen.tcp value if 0.",
Required:false,
Required:false,
Value:0,
Value:0,
EnvVars:p2pEnv("ADVERTISE_TCP"),
EnvVars:p2pEnv(envPrefix,"ADVERTISE_TCP"),
}
},
AdvertiseUDPPort=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.advertise.udp",
Name:"p2p.advertise.udp",
Usage:"The UDP port to advertise in Discv5 as fallback if not determined by Discv5, put into the ENR of the node. Set to p2p.listen.udp value if 0.",
Usage:"The UDP port to advertise in Discv5 as fallback if not determined by Discv5, put into the ENR of the node. Set to p2p.listen.udp value if 0.",
Required:false,
Required:false,
Value:0,
Value:0,
EnvVars:p2pEnv("ADVERTISE_UDP"),
EnvVars:p2pEnv(envPrefix,"ADVERTISE_UDP"),
}
},
Bootnodes=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.bootnodes",
Name:"p2p.bootnodes",
Usage:"Comma-separated base64-format ENR list. Bootnodes to start discovering other node records from.",
Usage:"Comma-separated base64-format ENR list. Bootnodes to start discovering other node records from.",
Required:false,
Required:false,
Value:"",
Value:"",
EnvVars:p2pEnv("BOOTNODES"),
EnvVars:p2pEnv(envPrefix,"BOOTNODES"),
}
},
StaticPeers=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.static",
Name:"p2p.static",
Usage:"Comma-separated multiaddr-format peer list. Static connections to make and maintain, these peers will be regarded as trusted.",
Usage:"Comma-separated multiaddr-format peer list. Static connections to make and maintain, these peers will be regarded as trusted.",
Required:false,
Required:false,
Value:"",
Value:"",
EnvVars:p2pEnv("STATIC"),
EnvVars:p2pEnv(envPrefix,"STATIC"),
}
},
NetRestrict=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.netrestrict",
Name:"p2p.netrestrict",
Usage:"Comma-separated list of CIDR masks. P2P will only try to connect on these networks",
Usage:"Comma-separated list of CIDR masks. P2P will only try to connect on these networks",
Required:false,
Required:false,
EnvVars:p2pEnv("NETRESTRICT"),
EnvVars:p2pEnv(envPrefix,"NETRESTRICT"),
}
},
HostMux=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.mux",
Name:"p2p.mux",
Usage:"Comma-separated list of multiplexing protocols in order of preference. At least 1 required. Options: 'yamux','mplex'.",
Usage:"Comma-separated list of multiplexing protocols in order of preference. At least 1 required. Options: 'yamux','mplex'.",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:"yamux,mplex",
Value:"yamux,mplex",
EnvVars:p2pEnv("MUX"),
EnvVars:p2pEnv(envPrefix,"MUX"),
}
},
HostSecurity=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.security",
Name:"p2p.security",
Usage:"Comma-separated list of transport security protocols in order of preference. At least 1 required. Options: 'noise','tls'. Set to 'none' to disable.",
Usage:"Comma-separated list of transport security protocols in order of preference. At least 1 required. Options: 'noise','tls'. Set to 'none' to disable.",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:"noise",
Value:"noise",
EnvVars:p2pEnv("SECURITY"),
EnvVars:p2pEnv(envPrefix,"SECURITY"),
}
},
PeersLo=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.peers.lo",
Name:"p2p.peers.lo",
Usage:"Low-tide peer count. The node actively searches for new peer connections if below this amount.",
Usage:"Low-tide peer count. The node actively searches for new peer connections if below this amount.",
Required:false,
Required:false,
Value:20,
Value:20,
EnvVars:p2pEnv("PEERS_LO"),
EnvVars:p2pEnv(envPrefix,"PEERS_LO"),
}
},
PeersHi=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.peers.hi",
Name:"p2p.peers.hi",
Usage:"High-tide peer count. The node starts pruning peer connections slowly after reaching this number.",
Usage:"High-tide peer count. The node starts pruning peer connections slowly after reaching this number.",
Required:false,
Required:false,
Value:30,
Value:30,
EnvVars:p2pEnv("PEERS_HI"),
EnvVars:p2pEnv(envPrefix,"PEERS_HI"),
}
},
PeersGrace=&cli.DurationFlag{
&cli.DurationFlag{
Name:"p2p.peers.grace",
Name:"p2p.peers.grace",
Usage:"Grace period to keep a newly connected peer around, if it is not misbehaving.",
Usage:"Grace period to keep a newly connected peer around, if it is not misbehaving.",
Required:false,
Required:false,
Value:30*time.Second,
Value:30*time.Second,
EnvVars:p2pEnv("PEERS_GRACE"),
EnvVars:p2pEnv(envPrefix,"PEERS_GRACE"),
}
},
NAT=&cli.BoolFlag{
&cli.BoolFlag{
Name:"p2p.nat",
Name:"p2p.nat",
Usage:"Enable NAT traversal with PMP/UPNP devices to learn external IP.",
Usage:"Enable NAT traversal with PMP/UPNP devices to learn external IP.",
Required:false,
Required:false,
EnvVars:p2pEnv("NAT"),
EnvVars:p2pEnv(envPrefix,"NAT"),
}
},
UserAgent=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.useragent",
Name:"p2p.useragent",
Usage:"User-agent string to share via LibP2P identify. If empty it defaults to 'optimism'.",
Usage:"User-agent string to share via LibP2P identify. If empty it defaults to 'optimism'.",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:"optimism",
Value:"optimism",
EnvVars:p2pEnv("AGENT"),
EnvVars:p2pEnv(envPrefix,"AGENT"),
}
},
TimeoutNegotiation=&cli.DurationFlag{
&cli.DurationFlag{
Name:"p2p.timeout.negotiation",
Name:"p2p.timeout.negotiation",
Usage:"Negotiation timeout, time for new peer connections to share their their supported p2p protocols",
Usage:"Negotiation timeout, time for new peer connections to share their their supported p2p protocols",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:10*time.Second,
Value:10*time.Second,
EnvVars:p2pEnv("TIMEOUT_NEGOTIATION"),
EnvVars:p2pEnv(envPrefix,"TIMEOUT_NEGOTIATION"),
}
},
TimeoutAccept=&cli.DurationFlag{
&cli.DurationFlag{
Name:"p2p.timeout.accept",
Name:"p2p.timeout.accept",
Usage:"Accept timeout, time for connection to be accepted.",
Usage:"Accept timeout, time for connection to be accepted.",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:10*time.Second,
Value:10*time.Second,
EnvVars:p2pEnv("TIMEOUT_ACCEPT"),
EnvVars:p2pEnv(envPrefix,"TIMEOUT_ACCEPT"),
}
},
TimeoutDial=&cli.DurationFlag{
&cli.DurationFlag{
Name:"p2p.timeout.dial",
Name:"p2p.timeout.dial",
Usage:"Dial timeout for outgoing connection requests",
Usage:"Dial timeout for outgoing connection requests",
Hidden:true,
Hidden:true,
Required:false,
Required:false,
Value:10*time.Second,
Value:10*time.Second,
EnvVars:p2pEnv("TIMEOUT_DIAL"),
EnvVars:p2pEnv(envPrefix,"TIMEOUT_DIAL"),
}
},
PeerstorePath=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.peerstore.path",
Name:"p2p.peerstore.path",
Usage:"Peerstore database location. Persisted peerstores help recover peers after restarts. "+
Usage:"Peerstore database location. Persisted peerstores help recover peers after restarts. "+
"Set to 'memory' to never persist the peerstore. Peerstore records will be pruned / expire as necessary. "+
"Set to 'memory' to never persist the peerstore. Peerstore records will be pruned / expire as necessary. "+
...
@@ -241,111 +244,68 @@ var (
...
@@ -241,111 +244,68 @@ var (
Required:false,
Required:false,
TakesFile:true,
TakesFile:true,
Value:"opnode_peerstore_db",
Value:"opnode_peerstore_db",
EnvVars:p2pEnv("PEERSTORE_PATH"),
EnvVars:p2pEnv(envPrefix,"PEERSTORE_PATH"),
}
},
DiscoveryPath=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.discovery.path",
Name:"p2p.discovery.path",
Usage:"Discovered ENRs are persisted in a database to recover from a restart without having to bootstrap the discovery process again. Set to 'memory' to never persist the peerstore.",
Usage:"Discovered ENRs are persisted in a database to recover from a restart without having to bootstrap the discovery process again. Set to 'memory' to never persist the peerstore.",
Required:false,
Required:false,
TakesFile:true,
TakesFile:true,
Value:"opnode_discovery_db",
Value:"opnode_discovery_db",
EnvVars:p2pEnv("DISCOVERY_PATH"),
EnvVars:p2pEnv(envPrefix,"DISCOVERY_PATH"),
}
},
SequencerP2PKeyFlag=&cli.StringFlag{
&cli.StringFlag{
Name:"p2p.sequencer.key",
Name:"p2p.sequencer.key",
Usage:"Hex-encoded private key for signing off on p2p application messages as sequencer.",
Usage:"Hex-encoded private key for signing off on p2p application messages as sequencer.",
Required:false,
Required:false,
Value:"",
Value:"",
EnvVars:p2pEnv("SEQUENCER_KEY"),
EnvVars:p2pEnv(envPrefix,"SEQUENCER_KEY"),
}
},
GossipMeshDFlag=&cli.UintFlag{
&cli.UintFlag{
Name:"p2p.gossip.mesh.d",
Name:"p2p.gossip.mesh.d",
Usage:"Configure GossipSub topic stable mesh target count, a.k.a. desired outbound degree, number of peers to gossip to",
Usage:"Configure GossipSub topic stable mesh target count, a.k.a. desired outbound degree, number of peers to gossip to",