Documentation
¶
Index ¶
- Variables
- func LoadConfigFromFile(file string, config *Config) error
- func SaveConfigToFile(file string, config Config) error
- type APoaConfig
- type APosConfig
- type AccountConfig
- type Config
- type ConsensusConfig
- type DatabaseConfig
- type Genesis
- type GenesisAccount
- type GenesisAlloc
- type GpoConfig
- type LoggerConfig
- type MetricsConfig
- type MinerConfig
- type NetWorkConfig
- type NodeConfig
- type P2PConfig
- type P2PLimit
- type PprofConfig
Constants ¶
This section is empty.
Variables ¶
View Source
var ( DefaultMaxPrice = big.NewInt(500 * params.GWei) DefaultIgnorePrice = big.NewInt(2 * params.Wei) )
View Source
var FullNodeGPO = GpoConfig{ Blocks: 20, Percentile: 60, MaxHeaderHistory: 1024, MaxBlockHistory: 1024, MaxPrice: DefaultMaxPrice, IgnorePrice: DefaultIgnorePrice, }
FullNodeGPO contains default gasprice oracle settings for full node.
View Source
var LightClientGPO = GpoConfig{ Blocks: 2, Percentile: 60, MaxHeaderHistory: 300, MaxBlockHistory: 5, MaxPrice: DefaultMaxPrice, IgnorePrice: DefaultIgnorePrice, }
LightClientGPO contains default gasprice oracle settings for light client.
Functions ¶
func LoadConfigFromFile ¶
func SaveConfigToFile ¶
Types ¶
type APoaConfig ¶
type APoaConfig struct {
Epoch uint64 `json:"epoch" yaml:"epoch"`
CheckpointInterval uint64 `json:"checkpointInterval" yaml:"checkpointInterval"`
InmemorySnapshots int `json:"inmemorySnapshots" yaml:"inmemorySnapshots"`
InmemorySignatures int `json:"inmemorySignatures" yaml:"inmemorySignatures"`
InMemory bool `json:"inMemory" yaml:"inMemory"`
}
type APosConfig ¶
type APosConfig struct {
Epoch uint64 `json:"epoch" yaml:"epoch"`
CheckpointInterval uint64 `json:"checkpointInterval" yaml:"checkpointInterval"`
InmemorySnapshots int `json:"inmemorySnapshots" yaml:"inmemorySnapshots"`
InmemorySignatures int `json:"inmemorySignatures" yaml:"inmemorySignatures"`
InMemory bool `json:"inMemory" yaml:"inMemory"`
RewardEpoch uint64 `json:"rewardEpoch" yaml:"rewardEpoch"`
RewardLimit *big.Int `json:"rewardLimit" yaml:"rewardLimit"`
DepositContract string `json:"depositContract" yaml:"depositContract"` // Deposit contract
DepositNFTContract string `json:"depositNFTContract" yaml:"depositNFTContract"` // Deposit NFT contract
}
type AccountConfig ¶
type AccountConfig struct {
PasswordFile string `json:"password_file" yaml:"password_file"`
}
type Config ¶
type Config struct {
NodeCfg NodeConfig `json:"node" yaml:"node"`
NetworkCfg NetWorkConfig `json:"network" yaml:"network"`
LoggerCfg LoggerConfig `json:"logger" yaml:"logger"`
DatabaseCfg DatabaseConfig `json:"database" yaml:"database"`
PprofCfg PprofConfig `json:"pprof" yaml:"pprof"`
ChainCfg *params.ChainConfig `json:"chain" yaml:"chain"`
AccountCfg AccountConfig `json:"account" yaml:"account"`
MetricsCfg MetricsConfig `json:"metrics" yaml:"metrics"`
P2PCfg *P2PConfig `json:"p2p" yaml:"p2p"`
// Gas Price Oracle options
GPO GpoConfig `json:"gpo" yaml:"gpo"`
Miner MinerConfig `json:"miner"`
}
type ConsensusConfig ¶
type ConsensusConfig struct {
EngineName string `json:"name" yaml:"name"`
Etherbase string `json:"etherbase" yaml:"etherbase"`
Period uint64 `json:"period" yaml:"period"`
APoa *APoaConfig `json:"apoa" yaml:"poa"`
GasFloor uint64 `json:"gasFloor" yaml:"gasFloor"` // Target gas floor for mined blocks.
GasCeil uint64 `json:"gasCeil" yaml:"gasCeil"` // Target gas ceiling for mined blocks.
APos *APosConfig `json:"apos" yaml:"pos"`
}
type DatabaseConfig ¶
type DatabaseConfig struct {
DBType string `json:"db_type" yaml:"db_type"`
DBPath string `json:"path" yaml:"path"`
DBName string `json:"name" yaml:"name"`
SubDB []string `json:"sub_name" yaml:"sub_name"`
Debug bool `json:"debug" yaml:"debug"`
IsMem bool `json:"memory" yaml:"memory"`
MaxDB uint64 `json:"max_db" yaml:"max_db"`
MaxReaders uint64 `json:"max_readers" yaml:"max_readers"`
}
type Genesis ¶ added in v0.1.1
type Genesis struct {
Config *params.ChainConfig `json:"config" yaml:"config"`
Nonce uint64 `json:"nonce"`
Timestamp uint64 `json:"timestamp"`
ExtraData []byte `json:"extraData"`
GasLimit uint64 `json:"gasLimit" gencodec:"required"`
Difficulty *uint256.Int `json:"difficulty" gencodec:"required"`
Mixhash types.Hash `json:"mixHash"`
Coinbase types.Address `json:"coinbase"`
//Engine *ConsensusConfig `json:"engine" yaml:"engine"`
Miners []string `json:"miners" yaml:"miners"`
Alloc GenesisAlloc `json:"alloc" yaml:"alloc" gencodec:"required"`
// These fields are used for consensus tests. Please don't use them
// in actual genesis blocks.
Number uint64 `json:"number"`
GasUsed uint64 `json:"gasUsed"`
ParentHash types.Hash `json:"parentHash"`
BaseFee *uint256.Int `json:"baseFeePerGas"`
}
type GenesisAccount ¶ added in v0.1.1
type GenesisAlloc ¶ added in v0.1.1
type GenesisAlloc map[types.Address]GenesisAccount
GenesisAlloc specifies the initial state that is part of the genesis block.
type LoggerConfig ¶
type MetricsConfig ¶
type MinerConfig ¶
type NetWorkConfig ¶
type NodeConfig ¶
type NodeConfig struct {
NodePrivate string `json:"private" yaml:"private"`
HTTP bool `json:"http" yaml:"http" `
HTTPHost string `json:"http_host" yaml:"http_host" `
HTTPPort string `json:"http_port" yaml:"http_port"`
HTTPApi string `json:"http_api" yaml:"http_api"`
// HTTPCors is the Cross-Origin Resource Sharing header to send to requesting
// clients. Please be aware that CORS is a browser enforced security, it's fully
// useless for custom HTTP clients.
HTTPCors string `json:"http_cors" yaml:"http_cors"`
WS bool `json:"ws" yaml:"ws" `
WSHost string `json:"ws_host" yaml:"ws_host" `
WSPort string `json:"ws_port" yaml:"ws_port"`
WSApi string `json:"ws_api" yaml:"ws_api"`
// WSOrigins is the list of domain to accept websocket requests from. Please be
// aware that the server can only act upon the HTTP request the client sends and
// cannot verify the validity of the request header.
WSOrigins string `toml:",omitempty"`
IPCPath string `json:"ipc_path" yaml:"ipc_path"`
DataDir string `json:"data_dir" yaml:"data_dir"`
MinFreeDiskSpace int `json:"min_free_disk_space" yaml:"min_free_disk_space"`
Chain string `json:"chain" yaml:"chain"`
Miner bool `json:"miner" yaml:"miner"`
AuthRPC bool `json:"auth_rpc" yaml:"auth_rpc"`
// AuthAddr is the listening address on which authenticated APIs are provided.
AuthAddr string `json:"auth_addr" yaml:"auth_addr"`
// AuthPort is the port number on which authenticated APIs are provided.
AuthPort int `json:"auth_port" yaml:"auth_port"`
// AuthVirtualHosts is the list of virtual hostnames which are allowed on incoming requests
// for the authenticated api. This is by default {'localhost'}.
AuthVirtualHosts []string `json:"auth_virtual_hosts" yaml:"auth_virtual_hosts"`
// JWTSecret is the path to the hex-encoded jwt secret.
JWTSecret string `json:"jwt_secret" yaml:"jwt_secret"`
// KeyStoreDir is the file system folder that contains private keys. The directory can
// be specified as a relative path, in which case it is resolved relative to the
// current directory.
//
// If KeyStoreDir is empty, the default location is the "keystore" subdirectory of
// DataDir. If DataDir is unspecified and KeyStoreDir is empty, an ephemeral directory
// is created by New and destroyed when the node is stopped.
KeyStoreDir string `json:"key_store_dir" yaml:"key_store_dir"`
// ExternalSigner specifies an external URI for a clef-type signer
ExternalSigner string `json:"external_signer" yaml:"external_signer"`
// UseLightweightKDF lowers the memory and CPU requirements of the key store
// scrypt KDF at the expense of security.
UseLightweightKDF bool `json:"use_lightweight_kdf" yaml:"use_lightweight_kdf"`
// InsecureUnlockAllowed allows user to unlock accounts in unsafe http environment.
InsecureUnlockAllowed bool `json:"insecure_unlock_allowed" yaml:"insecure_unlock_allowed"`
PasswordFile string `json:"password_file" yaml:"password_file"`
}
func (*NodeConfig) ExtRPCEnabled ¶
func (c *NodeConfig) ExtRPCEnabled() bool
ExtRPCEnabled returns the indicator whether node enables the external RPC(http, ws or graphql).
func (*NodeConfig) KeyDirConfig ¶
func (c *NodeConfig) KeyDirConfig() (string, error)
KeyDirConfig determines the settings for keydirectory
type P2PConfig ¶
type P2PConfig struct {
NoDiscovery bool `json:"no_discovery" yaml:"no_discovery"`
EnableUPnP bool `json:"enable_upnp" yaml:"enable_upnp"`
StaticPeerID bool `json:"static_peer_id" yaml:"static_peer_id"`
StaticPeers []string `json:"static_peers" yaml:"static_peers"`
BootstrapNodeAddr []string `json:"bootstrap_node_addr" yaml:"bootstrap_node_addr"`
Discv5BootStrapAddr []string `json:"discv5_bootstrap_addr" yaml:"discv5_bootstrap_addr"`
RelayNodeAddr string `json:"relay_node_addr" yaml:"relay_node_addr"`
LocalIP string `json:"local_ip" yaml:"local_ip"`
HostAddress string `json:"host_address" yaml:"host_address"`
HostDNS string `json:"host_dns" yaml:"host_dns"`
PrivateKey string `json:"private_key" yaml:"private_key"`
DataDir string `json:"data_dir" yaml:"data_dir"`
MetaDataDir string `json:"metadata_dir" yaml:"metadata_dir"`
TCPPort int `json:"tcp_port" yaml:"tcp_port"`
UDPPort int `json:"udp_port" yaml:"udp_port"`
MaxPeers int `json:"max_peers" yaml:"max_peers"`
AllowListCIDR string `json:"allow_list_cidr" yaml:"allow_list_cidr"`
DenyListCIDR []string `json:"deny_list_cidr" yaml:"deny_list_cidr"`
MinSyncPeers int `json:"min_sync_peers" yaml:"min_sync_peers"`
P2PLimit *P2PLimit
}
type P2PLimit ¶
type P2PLimit struct {
BlockBatchLimit int `json:"block_batch_limit" yaml:"block_batch_limit"`
BlockBatchLimitBurstFactor int `json:"block_batch_limit_burst_factor" yaml:"block_batch_limit_burst_factor"`
BlockBatchLimiterPeriod int `json:"block_batch_limiter_period" yaml:"block_batch_limiter_period"`
}
Click to show internal directories.
Click to hide internal directories.