2020-04-29 17:40:33 +00:00
// Package flags defines beacon-node specific runtime flags for
// setting important values such as ports, eth1 endpoints, and more.
2019-07-23 13:58:20 +00:00
package flags
2018-07-19 16:31:50 +00:00
import (
2020-05-31 06:44:34 +00:00
"github.com/urfave/cli/v2"
2018-07-19 16:31:50 +00:00
)
var (
2019-04-18 23:53:37 +00:00
// HTTPWeb3ProviderFlag provides an HTTP access endpoint to an ETH 1.0 RPC.
2020-03-19 21:46:44 +00:00
HTTPWeb3ProviderFlag = & cli . StringFlag {
2019-04-18 23:53:37 +00:00
Name : "http-web3provider" ,
Usage : "A mainchain web3 provider string http endpoint" ,
Value : "https://goerli.prylabs.net" ,
}
2019-02-13 19:08:28 +00:00
// DepositContractFlag defines a flag for the deposit contract address.
2020-03-19 21:46:44 +00:00
DepositContractFlag = & cli . StringFlag {
2019-02-13 19:08:28 +00:00
Name : "deposit-contract" ,
Usage : "Deposit contract address. Beacon chain node will listen logs coming from the deposit contract to determine when validator is eligible to participate." ,
2020-06-09 22:40:48 +00:00
Value : "0x0F0F0fc0530007361933EaB5DB97d09aCDD6C1c8" ,
2018-07-19 16:31:50 +00:00
}
2020-01-17 02:18:26 +00:00
// RPCHost defines the host on which the RPC server should listen.
2020-03-19 21:46:44 +00:00
RPCHost = & cli . StringFlag {
2020-01-17 02:18:26 +00:00
Name : "rpc-host" ,
Usage : "Host on which the RPC server should listen" ,
2020-06-09 22:40:48 +00:00
Value : "127.0.0.1" ,
2020-01-17 02:18:26 +00:00
}
2018-08-01 22:08:44 +00:00
// RPCPort defines a beacon node RPC port to open.
2020-03-19 21:46:44 +00:00
RPCPort = & cli . IntFlag {
2018-08-01 22:08:44 +00:00
Name : "rpc-port" ,
Usage : "RPC port exposed by a beacon node" ,
2019-06-02 15:33:44 +00:00
Value : 4000 ,
2018-08-01 22:08:44 +00:00
}
2020-01-16 21:19:43 +00:00
// RPCMaxPageSize defines the maximum numbers per page returned in RPC responses from this
// beacon node (default: 500).
2020-03-19 21:46:44 +00:00
RPCMaxPageSize = & cli . IntFlag {
2020-01-16 21:19:43 +00:00
Name : "rpc-max-page-size" ,
2020-03-19 21:46:44 +00:00
Usage : "Max number of items returned per page in RPC responses for paginated endpoints." ,
2020-01-16 21:19:43 +00:00
Value : 500 ,
}
2020-04-19 08:36:19 +00:00
// MonitoringPortFlag defines the http port used to serve prometheus metrics.
MonitoringPortFlag = & cli . Int64Flag {
Name : "monitoring-port" ,
Usage : "Port used to listening and respond metrics for prometheus." ,
Value : 8080 ,
}
2018-08-08 22:43:25 +00:00
// CertFlag defines a flag for the node's TLS certificate.
2020-03-19 21:46:44 +00:00
CertFlag = & cli . StringFlag {
2018-08-08 22:43:25 +00:00
Name : "tls-cert" ,
Usage : "Certificate for secure gRPC. Pass this and the tls-key flag in order to use gRPC securely." ,
}
// KeyFlag defines a flag for the node's TLS key.
2020-03-19 21:46:44 +00:00
KeyFlag = & cli . StringFlag {
2018-08-08 22:43:25 +00:00
Name : "tls-key" ,
Usage : "Key for secure gRPC. Pass this and the tls-cert flag in order to use gRPC securely." ,
}
2020-06-03 18:11:43 +00:00
// DisableGRPCGateway for JSON-HTTP requests to the beacon node.
DisableGRPCGateway = & cli . BoolFlag {
Name : "disable-grpc-gateway" ,
Usage : "Disable the gRPC gateway for JSON-HTTP requests" ,
}
2019-06-02 15:33:44 +00:00
// GRPCGatewayPort enables a gRPC gateway to be exposed for Prysm.
2020-03-19 21:46:44 +00:00
GRPCGatewayPort = & cli . IntFlag {
2019-06-02 15:33:44 +00:00
Name : "grpc-gateway-port" ,
Usage : "Enable gRPC gateway for JSON requests" ,
2020-06-10 13:56:39 +00:00
Value : 3500 ,
2019-06-02 15:33:44 +00:00
}
2020-03-23 18:17:17 +00:00
// GPRCGatewayCorsDomain serves preflight requests when serving gRPC JSON gateway.
GPRCGatewayCorsDomain = & cli . StringFlag {
Name : "grpc-gateway-corsdomain" ,
Usage : "Comma separated list of domains from which to accept cross origin requests " +
"(browser enforced). This flag has no effect if not used with --grpc-gateway-port." ,
}
2019-12-13 15:12:49 +00:00
// MinSyncPeers specifies the required number of successful peer handshakes in order
// to start syncing with external peers.
2020-03-19 21:46:44 +00:00
MinSyncPeers = & cli . IntFlag {
2019-12-13 15:12:49 +00:00
Name : "min-sync-peers" ,
Usage : "The required number of valid peers to connect with before syncing." ,
Value : 3 ,
}
2020-01-16 01:46:15 +00:00
// ContractDeploymentBlock is the block in which the eth1 deposit contract was deployed.
2020-03-19 21:46:44 +00:00
ContractDeploymentBlock = & cli . IntFlag {
2020-01-16 01:46:15 +00:00
Name : "contract-deployment-block" ,
Usage : "The eth1 block in which the deposit contract was deployed." ,
2020-06-09 22:40:48 +00:00
Value : 2844925 ,
2020-01-16 01:46:15 +00:00
}
2020-02-18 00:37:37 +00:00
// SetGCPercent is the percentage of current live allocations at which the garbage collector is to run.
2020-03-19 21:46:44 +00:00
SetGCPercent = & cli . IntFlag {
2020-02-18 00:37:37 +00:00
Name : "gc-percent" ,
Usage : "The percentage of freshly allocated data to live data on which the gc will be run again." ,
Value : 100 ,
}
2020-02-19 08:25:07 +00:00
// UnsafeSync starts the beacon node from the previously saved head state and syncs from there.
2020-03-19 21:46:44 +00:00
UnsafeSync = & cli . BoolFlag {
2020-02-19 08:25:07 +00:00
Name : "unsafe-sync" ,
Usage : "Starts the beacon node with the previously saved head state instead of finalized state." ,
}
2020-01-09 04:49:32 +00:00
// SlasherCertFlag defines a flag for the slasher TLS certificate.
2020-03-19 21:46:44 +00:00
SlasherCertFlag = & cli . StringFlag {
2020-01-09 04:49:32 +00:00
Name : "slasher-tls-cert" ,
Usage : "Certificate for secure slasher gRPC connection. Pass this in order to use slasher gRPC securely." ,
}
// SlasherProviderFlag defines a flag for a slasher RPC provider.
2020-03-19 21:46:44 +00:00
SlasherProviderFlag = & cli . StringFlag {
2020-01-09 04:49:32 +00:00
Name : "slasher-provider" ,
Usage : "A slasher provider string endpoint. Can either be an grpc server endpoint." ,
2020-05-20 15:23:22 +00:00
Value : "127.0.0.1:4002" ,
2020-01-09 04:49:32 +00:00
}
2020-03-06 23:06:01 +00:00
// SlotsPerArchivedPoint specifies the number of slots between the archived points, to save beacon state in the cold
// section of DB.
2020-03-19 21:46:44 +00:00
SlotsPerArchivedPoint = & cli . IntFlag {
2020-03-06 23:06:01 +00:00
Name : "slots-per-archive-point" ,
Usage : "The slot durations of when an archived state gets saved in the DB." ,
2020-05-17 20:40:41 +00:00
Value : 2048 ,
2020-03-06 23:06:01 +00:00
}
2020-04-14 20:27:03 +00:00
// DisableDiscv5 disables running discv5.
DisableDiscv5 = & cli . BoolFlag {
Name : "disable-discv5" ,
Usage : "Does not run the discoveryV5 dht." ,
2020-03-23 14:41:47 +00:00
}
2020-04-27 14:35:40 +00:00
// BlockBatchLimit specifies the requested block batch size.
BlockBatchLimit = & cli . IntFlag {
Name : "block-batch-limit" ,
Usage : "The amount of blocks the local peer is bounded to request and respond to in a batch." ,
Value : 64 ,
}
2020-05-12 11:31:10 +00:00
// BlockBatchLimitBurstFactor specifies the factor by which block batch size may increase.
BlockBatchLimitBurstFactor = & cli . IntFlag {
Name : "block-batch-limit-burst-factor" ,
Usage : "The factor by which block batch limit may increase on burst." ,
Value : 10 ,
}
2020-05-01 01:47:10 +00:00
// EnableDebugRPCEndpoints as /v1/beacon/state.
EnableDebugRPCEndpoints = & cli . BoolFlag {
Name : "enable-debug-rpc-endpoints" ,
Usage : "Enables the debug rpc service, containing utility endpoints such as /eth/v1alpha1/beacon/state. Requires --new-state-mgmt" ,
}
2018-07-19 16:31:50 +00:00
)