Documentation ¶
Index ¶
- Constants
- Variables
- func DefaultDataDir() string
- func DefaultHTTPEndpoint() string
- func DefaultIPCEndpoint(clientIdentifier string) string
- func DefaultWSEndpoint() string
- func VersionWithCommit(gitCommit string) string
- type ChainConfig
- type ConfigCompatError
- type GasConfig
- type GasTable
- type GpoConfig
- type HTTPTimeouts
- type HpbConfig
- type NetworkConfig
- type Nodeconfig
- func (c *Nodeconfig) IPCEndpoint() string
- func (c *Nodeconfig) InstanceDir() string
- func (c *Nodeconfig) NodeDB() string
- func (c *Nodeconfig) NodeKey() error
- func (c *Nodeconfig) NodeKeyTemp() *ecdsa.PrivateKey
- func (c *Nodeconfig) NodeName() string
- func (c *Nodeconfig) ResolvePath(path string) string
- func (c *Nodeconfig) StringName() string
- type PrometheusConfig
- type SyncMode
- type TxPoolConfiguration
Constants ¶
const ( DatadirPrivateKey = "nodekey" // Path within the datadir to the node's private key DatadirDefaultKeyStore = "keystore" // Path within the datadir to the keystore DatadirStaticNodes = "static-nodes.json" // Path within the datadir to the static node list DatadirTrustedNodes = "trusted-nodes.json" // Path within the datadir to the trusted node list DatadirNodeDatabase = "nodes" // Path within the datadir to store the node infos )
const ( MaximumExtraDataSize uint64 = 32 // Maximum size extra data may be after Genesis. ExpByteGas uint64 = 10 // Times ceil(log256(exponent)) for the EXP instruction. SloadGas uint64 = 50 // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added. CallValueTransferGas uint64 = 9000 // Paid for CALL when the value transfer is non-zero. CallNewAccountGas uint64 = 25000 // Paid for CALL when the destination address didn't exist prior. TxGas uint64 = 10 // Per transaction not creating a contract. NOTE: Not payable on data of calls between transactions. //for testnet TxGasContractCreation uint64 = 53000 // Per transaction that creates a contract. NOTE: Not payable on data of calls between transactions. TxDataZeroGas uint64 = 1 // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. //for testnet QuadCoeffDiv uint64 = 512 // Divisor for the quadratic particle of the memory cost equation. SstoreSetGas uint64 = 20000 // Once per SLOAD operation. LogDataGas uint64 = 8 // Per byte in a LOG* operation's data. CallStipend uint64 = 2300 // Free gas given at beginning of call. Sha3Gas uint64 = 30 // Once per SHA3 operation. Sha3WordGas uint64 = 6 // Once per word of the SHA3 operation's data. SstoreResetGas uint64 = 5000 // Once per SSTORE operation if the zeroness changes from zero. SstoreClearGas uint64 = 5000 // Once per SSTORE operation if the zeroness doesn't change. SstoreRefundGas uint64 = 15000 // Once per SSTORE operation if the zeroness changes to zero. JumpdestGas uint64 = 1 // Refunded gas, once per SSTORE operation if the zeroness changes to zero. EpochDuration uint64 = 30000 // Duration between proof-of-work epochs. CallGas uint64 = 40 // Once per CALL operation & message call transaction. CreateDataGas uint64 = 200 // CallCreateDepth uint64 = 1024 // Maximum depth of call/create stack. ExpGas uint64 = 10 // Once per EXP instruction LogGas uint64 = 375 // Per LOG* operation. CopyGas uint64 = 3 // StackLimit uint64 = 1024 // Maximum size of VM stack allowed. TierStepGas uint64 = 0 // Once per operation, for a selection of them. LogTopicGas uint64 = 375 // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas. CreateGas uint64 = 32000 // Once per CREATE operation & contract-creation transaction. SuicideRefundGas uint64 = 24000 // Refunded following a suicide operation. MemoryGas uint64 = 3 // Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL. TxDataNonZeroGas uint64 = 1 // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions. //for testnet MaxCodeSize = 24576 // Maximum bytecode to permit for a contract EcrecoverGas uint64 = 3000 // Elliptic curve sender recovery gas price Sha256BaseGas uint64 = 60 // Base price for a SHA256 operation Sha256PerWordGas uint64 = 12 // Per-word price for a SHA256 operation Ripemd160BaseGas uint64 = 600 // Base price for a RIPEMD160 operation Ripemd160PerWordGas uint64 = 120 // Per-word price for a RIPEMD160 operation IdentityBaseGas uint64 = 15 // Base price for a data copy operation IdentityPerWordGas uint64 = 3 // Per-work price for a data copy operation ModExpQuadCoeffDiv uint64 = 20 // Divisor for the quadratic particle of the big int modular exponentiation Bn256AddGas uint64 = 500 // Gas needed for an elliptic curve addition Bn256ScalarMulGas uint64 = 40000 // Gas needed for an elliptic curve scalar multiplication Bn256PairingBaseGas uint64 = 100000 // Base price for an elliptic curve pairing check Bn256PairingPerPointGas uint64 = 80000 // Per-point price for an elliptic curve pairing check )
const ( // These are the multipliers for hpber denominations. // Example: To get the wei value of an amount in 'douglas', use // // new(big.Int).Mul(value, big.NewInt(params.Douglas)) // Wei = 1 Ada = 1e3 Babbage = 1e6 Shannon = 1e9 Szabo = 1e12 Finney = 1e15 Hpber = 1e18 Einstein = 1e21 Douglas = 1e42 )
const ( DefaultHTTPHost = "localhost" // Default host interface for the HTTP RPC server DefaultHTTPPort = 8545 // Default TCP port for the HTTP RPC server DefaultWSHost = "localhost" // Default host interface for the websocket RPC server DefaultWSPort = 8546 // Default TCP port for the websocket RPC server )
const ( ProtocolV111 uint = 100 // match up protocol versions and messages versions SubProtocolV111 uint = 100 // Light Hpb Sub-protocol versions )
hpb protocol version control
const ( VersionMajor = 1 // Major version component of the current release VersionHardv = 0 // Hardware version component of the current release VersionMinor = 4 // Minor version component of the current release VersionPatch = 2 // Patch version component of the current release VersionMeta = "stable" // Version metadata to append to the version string )
const ( // BloomBitsBlocks is the number of blocks a single bloom bit section vector // contains. BloomBitsBlocks uint64 = 4096 )
const VersionID uint64 = 0x0002
!!!every change of version should sub VersionID one number!!!
Variables ¶
var ( MainnetGenesisHash = common.HexToHash("0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3") // Mainnet genesis hash to enforce below configs on TestnetGenesisHash = common.HexToHash("0x41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d") // Testnet genesis hash to enforce below configs on )
var ( MaxHashFetch = 512 // Amount of hashes to be fetched per retrieval request MaxBlockFetch = 128 // Amount of blocks to be fetched per retrieval request MaxHeaderFetch = 192 // Amount of block headers to be fetched per retrieval request MaxSkeletonSize = 128 // Number of header fetches to need for a skeleton assembly MaxBodyFetch = 128 // Amount of block bodies to be fetched per retrieval request MaxReceiptFetch = 256 // Amount of transaction receipts to allow fetching per request MaxStateFetch = 384 // Amount of node state values to allow fetching per request MaxForkAncestry = 3 * EpochDuration // Maximum chain reorganisation )
同步器配置参数
var ( GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations. MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be. GenesisGasLimit = big.NewInt(100000000) // Gas limit of the Genesis block. //for testnet TargetGasLimit = new(big.Int).Set(GenesisGasLimit) // The artificial target DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations. GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block. MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be. DurationLimit = big.NewInt(13) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not. )
var (
CompatibleChainId = big.NewInt(269)
)
可兼容的ChainID : 除了当前ChainId 还能兼容的另外的ChainId
var DefaultBlockChainConfig = ChainConfig{ ChainId: MainnetChainConfig.ChainId, Prometheus: &DefaultPrometheusConfig, }
var DefaultConfig = Nodeconfig{ SyncMode: FastSync, DataDir: DefaultDataDir(), NetworkId: 1, LightPeers: 20, DatabaseCache: 128, GasPrice: big.NewInt(18 * Shannon), IPCPath: "ghpb.ipc", MaxTrieCacheGen: uint16(120), }
var DefaultGasConfig = GasConfig{
Blocks: 10,
Percentile: 50,
}
var DefaultHTTPTimeouts = HTTPTimeouts{ ReadTimeout: 30 * time.Second, WriteTimeout: 30 * time.Second, IdleTimeout: 120 * time.Second, }
DefaultHTTPTimeouts represents the default timeout values used if further configuration is not provided.
var DefaultNTConfig = NetworkConfig{ HTTPPort: DefaultHTTPPort, HTTPModules: []string{"net", "web3", "prometheus"}, WSPort: DefaultWSPort, WSModules: []string{"net", "web3", "prometheus"}, HTTPVirtualHosts: []string{"localhost"}, HTTPTimeouts: DefaultHTTPTimeouts, ListenAddr: ":30303", MaxPeers: 50, NAT: nat.Any(), IpcEndpoint: DefaultIPCEndpoint(clientIdentifier), HttpEndpoint: DefaultHTTPEndpoint(), WsEndpoint: DefaultWSEndpoint(), }
var DefaultPrometheusConfig = PrometheusConfig{
Period: 6,
Epoch: 30000,
}
var DefaultTxPoolConfig = TxPoolConfiguration{ PriceLimit: 1, PriceBump: 10, AccountSlots: 60000, GlobalSlots: 200000, AccountQueue: 60000, GlobalQueue: 200000, Lifetime: 3 * time.Minute, }
var (
GasTableEIP158 = GasTable{
ExtcodeSize: 700,
ExtcodeCopy: 700,
Balance: 400,
SLoad: 200,
Calls: 700,
Suicide: 5000,
ExpByte: 50,
CreateBySuicide: 25000,
}
)
var INSTANCE = atomic.Value{}
config instance
var MainnetBootnodes = []string{
"hnode://73c8ac9dddc8f094d28f42e1ec5c3e8000cad25be152c147fceacc27953d58e64bfe9f555145d93f9f6b995bab984411941751fef3bd460f74c0151eb0432b56@47.94.20.30:30303",
"hnode://1c129009d0e9c56e79b6f4157497d8ac2810ea83fc1f6ed4b6244406597d821f52bb0d210157854d861d2f6099fa948bc5a03d2f4f1bcae70dc6e9c535e586f9@47.100.250.120:30303",
"hnode://f3282847f29cfea1dd741246cc17b9a0dcdd8b0b9dfce2a985d2358497458135e81942ae7155cfd2fe23e1da30f18fc1fa2c56d3675aba51e7c67f83681fded5@47.75.213.166:30303",
"hnode://dd2fd6ea314041c0e20aed4ee4159ab172a4ddb944459d147bdb28461937841ee069c44fe0915be9f74d929562968fb9720362937a898e2ec3a598fa3fe1f33b@47.88.60.227:30303",
"hnode://a6ef92a46adb69f94f2d48ff20f7800fb057d6aba7945e5af062ef27be5598072c5ce083ec5a2c89f80d112401c261b9ba9dacbd53aeb7c8243685d537edadb9@47.254.133.46:30303",
}
var MainnetChainConfig = &ChainConfig{ ChainId: big.NewInt(1), Prometheus: &PrometheusConfig{ Period: 3, Epoch: 30000, }, }
MainnetChainConfig is the chain parameters to run a node on the main network.
var TestnetBootnodes = []string{}
TestnetBootnodes are the hnode URLs of the P2P bootstrap nodes running on the Ropsten test network.
var Version = func() string { v := fmt.Sprintf("%d.%d.%d.%d", VersionMajor, VersionHardv, VersionMinor, VersionPatch) if VersionMeta != "" { v += "-" + VersionMeta } return v }()
Version holds the textual version string.
Functions ¶
func DefaultDataDir ¶
func DefaultDataDir() string
DefaultDataDir is the default data directory to use for the databases and other persistence requirements.
func DefaultHTTPEndpoint ¶
func DefaultHTTPEndpoint() string
DefaultHTTPEndpoint returns the HTTP endpoint used by default.
func DefaultIPCEndpoint ¶
DefaultIPCEndpoint returns the IPC path used by default.
func DefaultWSEndpoint ¶
func DefaultWSEndpoint() string
DefaultWSEndpoint returns the websocket endpoint used by default.
func VersionWithCommit ¶
Types ¶
type ChainConfig ¶
type ChainConfig struct { ChainId *big.Int `json:"chainId"` // Chain id identifies the current chain and is used for replay protection Prometheus *PrometheusConfig `json:"prometheus"` }
func (*ChainConfig) CheckCompatible ¶
func (c *ChainConfig) CheckCompatible(newcfg *ChainConfig, height uint64) *ConfigCompatError
CheckCompatible checks whether scheduled fork transitions have been imported with a mismatching chain configuration.
func (*ChainConfig) GasTable ¶
func (c *ChainConfig) GasTable(num *big.Int) GasTable
GasTable returns the gas table corresponding to the current phase (homestead or homestead reprice).
The returned GasTable's fields shouldn't, under any circumstances, be changed.
func (*ChainConfig) String ¶
func (c *ChainConfig) String() string
String implements the fmt.Stringer interface.
type ConfigCompatError ¶
type ConfigCompatError struct { What string // block numbers of the stored and new configurations StoredConfig, NewConfig *big.Int // the block number to which the local chain must be rewound to correct the error RewindTo uint64 }
ConfigCompatError is raised if the locally-stored blockchain is initialised with a ChainConfig that would alter the past.
func (*ConfigCompatError) Error ¶
func (err *ConfigCompatError) Error() string
type GasTable ¶
type GasTable struct { ExtcodeSize uint64 ExtcodeCopy uint64 Balance uint64 SLoad uint64 Calls uint64 Suicide uint64 ExpByte uint64 // CreateBySuicide occurs when the // refunded account is one that does // not exist. This logic is similar // to call. May be left nil. Nil means // not charged. CreateBySuicide uint64 }
type HTTPTimeouts ¶
type HTTPTimeouts struct { // ReadTimeout is the maximum duration for reading the entire // request, including the body. // // Because ReadTimeout does not let Handlers make per-request // decisions on each request body's acceptable deadline or // upload rate, most users will prefer to use // ReadHeaderTimeout. It is valid to use them both. ReadTimeout time.Duration // WriteTimeout is the maximum duration before timing out // writes of the response. It is reset whenever a new // request's header is read. Like ReadTimeout, it does not // let Handlers make decisions on a per-request basis. WriteTimeout time.Duration // IdleTimeout is the maximum amount of time to wait for the // next request when keep-alives are enabled. If IdleTimeout // is zero, the value of ReadTimeout is used. If both are // zero, ReadHeaderTimeout is used. IdleTimeout time.Duration }
HTTPTimeouts represents the configuration params for the HTTP RPC server.
type HpbConfig ¶
type HpbConfig struct { Node Nodeconfig // Configuration of peer-to-peer networking. Network NetworkConfig //configuration of txpool TxPool TxPoolConfiguration //configuration of blockchain BlockChain ChainConfig //configuration of consensus Prometheus PrometheusConfig Gas GasConfig HpbStats hpbStatsConfig }
Config represents a small collection of configuration values to fine tune the P2P network layer of a protocol stack. These values can be further extended by all registered services.
var HpbConfigIns *HpbConfig
func GetHpbConfigInstance ¶
func GetHpbConfigInstance() *HpbConfig
type NetworkConfig ¶
type NetworkConfig struct { // HTTPHost is the host interface on which to start the HTTP RPC server. If this // field is empty, no HTTP API endpoint will be started. HTTPHost string `toml:",omitempty"` // HTTPPort is the TCP port number on which to start the HTTP RPC server. The // default zero value is/ valid and will pick a port number randomly (useful // for ephemeral nodes). HTTPPort int `toml:",omitempty"` // 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 `toml:",omitempty"` // HTTPVirtualHosts is the list of virtual hostnames which are allowed on incoming requests. // This is by default {'localhost'}. Using this prevents attacks like // DNS rebinding, which bypasses SOP by simply masquerading as being within the same // origin. These attacks do not utilize CORS, since they are not cross-domain. // By explicitly checking the Host-header, the server will not allow requests // made against the server with a malicious host domain. // Requests using ip address directly are not affected HTTPVirtualHosts []string `toml:",omitempty"` // HTTPModules is a list of API modules to expose via the HTTP RPC interface. // If the module list is empty, all RPC API endpoints designated public will be // exposed. HTTPModules []string `toml:",omitempty"` // HTTPTimeouts allows for customization of the timeout values used by the HTTP RPC // interface. HTTPTimeouts HTTPTimeouts // WSHost is the host interface on which to start the websocket RPC server. If // this field is empty, no websocket API endpoint will be started. WSHost string `toml:",omitempty"` // WSPort is the TCP port number on which to start the websocket RPC server. The // default zero value is/ valid and will pick a port number randomly (useful for // ephemeral nodes). WSPort int `toml:",omitempty"` // 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"` // WSModules is a list of API modules to expose via the websocket RPC interface. // If the module list is empty, all RPC API endpoints designated public will be // exposed. WSModules []string `toml:",omitempty"` // WSExposeAll exposes all API modules via the WebSocket RPC interface rather // than just the public ones. // // *WARNING* Only set this if the node is running in a trusted network, exposing // private APIs to untrusted users is a major security risk. WSExposeAll bool `toml:",omitempty"` // MaxPeers is the maximum number of peers that can be // connected. It must be greater than zero. MaxPeers int // MaxPendingPeers is the maximum number of peers that can be pending in the // handshake phase, counted separately for inbound and outbound connections. // Zero defaults to preset values. MaxPendingPeers int `toml:",omitempty"` // DiscoveryV5 specifies whether the the new topic-discovery based V5 discovery // protocol should be started or not. //DiscoveryV5 bool `toml:",omitempty"` NoDiscovery bool // Name sets the node name of this server. // Use common.MakeName to create a name that follows existing conventions. Name string `toml:"-"` // RoleType sets the node type of this server. // One of hpnode,prenode,access,light. RoleType string // Connectivity can be restricted to certain IP networks. // If this option is set to a non-nil value, only hosts which match one of the // IP networks contained in the list are considered. NetRestrict *netutil.Netlist `toml:",omitempty"` // NodeDatabase is the path to the database containing the previously seen // live nodes in the network. NodeDatabase string `toml:",omitempty"` // If ListenAddr is set to a non-nil address, the server // will listen for incoming connections. // // If the port is zero, the operating system will pick a port. The // ListenAddr field will be updated with the actual address when // the server is started. ListenAddr string // If set to a non-nil value, the given NAT port mapper // is used to make the listening port available to the // Internet. NAT nat.Interface `toml:",omitempty"` // If NoDial is true, the server will not dial any peers. NoDial bool `toml:",omitempty"` // If EnableMsgEvents is set then the server will emit PeerEvents // whenever a message is sent to or received from a peer EnableMsgEvents bool IpcEndpoint string // IPC endpoint to listen at (empty = IPC disabled) HttpEndpoint string // HTTP endpoint (interface + port) to listen at (empty = HTTP disabled) WsEndpoint string // Websocket endpoint (interface + port) to listen at (empty = websocket disabled) BootstrapNodes []*discover.Node }
func DefaultNetworkConfig ¶
func DefaultNetworkConfig() NetworkConfig
func (*NetworkConfig) HTTPEndpoint ¶
func (c *NetworkConfig) HTTPEndpoint() string
HTTPEndpoint resolves an HTTP endpoint based on the configured host interface and port parameters.
func (*NetworkConfig) WSEndpoint ¶
func (c *NetworkConfig) WSEndpoint() string
WSEndpoint resolves an websocket endpoint based on the configured host interface and port parameters.
type Nodeconfig ¶
type Nodeconfig struct { // Name sets the instance name of the node. It must not contain the / character and is // used in the devp2p node identifier. The instance name of ghpb is "ghpb". If no // value is specified, the basename of the current executable is used. Name string `toml:"-"` // UserIdent, if set, is used as an additional component in the devp2p node identifier. UserIdent string `toml:",omitempty"` // Version should be set to the version number of the program. It is used // in the devp2p node identifier. Version string `toml:"-"` // DataDir is the file system folder the node should use for any data storage // requirements. The configured data directory will not be directly shared with // registered services, instead those can use utility methods to create/access // databases or flat files. This enables ephemeral nodes which can fully reside // in memory. DataDir string // Protocol options NetworkId uint64 // Network ID to use for selecting peers to connect to SyncMode SyncMode // Light client options LightServ int `toml:",omitempty"` // Maximum percentage of time allowed for serving LHS requests LightPeers int `toml:",omitempty"` // Maximum number of LHS client peers // Database options SkipBcVersionCheck bool `toml:"-"` DatabaseHandles int `toml:"-"` DatabaseCache int // Mining-related options Hpberbase common.Address `toml:",omitempty"` MinerThreads int `toml:",omitempty"` ExtraData []byte `toml:",omitempty"` GasPrice *big.Int // Gas Price Oracle options,HPB don't need dynamic gas price //TODO: shanlin GPO GpoConfig // Enables tracking of SHA3 preimages in the VM EnablePreimageRecording bool // Miscellaneous options DocRoot string `toml:"-"` // 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 `toml:",omitempty"` // UseLightweightKDF lowers the memory and CPU requirements of the key store // scrypt KDF at the expense of security. UseLightweightKDF bool `toml:",omitempty"` MaxTrieCacheGen uint16 // This field must be set to a valid secp256k1 private key. PrivateKey *ecdsa.PrivateKey `toml:"-"` // IPCPath is the requested location to place the IPC endpoint. If the path is // a simple file name, it is placed inside the data directory (or on the root // pipe path on Windows), whereas if it's a resolvable path name (absolute or // relative), then that specific path is enforced. An empty path disables IPC. IPCPath string `toml:",omitempty"` DefaultAddress common.Address //1:testmode and don't nedd boe 0:standard mode and need boe TestMode uint8 //1:test code 0:release code TestCodeParam uint8 //consensus config file name FNameConsensusCfg string }
func (*Nodeconfig) IPCEndpoint ¶
func (c *Nodeconfig) IPCEndpoint() string
IPCEndpoint resolves an IPC endpoint based on a configured value, taking into account the set data folders as well as the designated platform we're currently running on.
func (*Nodeconfig) InstanceDir ¶
func (c *Nodeconfig) InstanceDir() string
func (*Nodeconfig) NodeDB ¶
func (c *Nodeconfig) NodeDB() string
NodeDB returns the path to the discovery node database.
func (*Nodeconfig) NodeKey ¶
func (c *Nodeconfig) NodeKey() error
NodeKey retrieves the currently configured private key of the node, checking first any manually set key, falling back to the one found in the configured data folder. If no key can be found, a new one is generated.
func (*Nodeconfig) NodeKeyTemp ¶
func (c *Nodeconfig) NodeKeyTemp() *ecdsa.PrivateKey
TODO: shanlin to del this function NodeKey retrieves the currently configured private key of the node, checking first any manually set key, falling back to the one found in the configured data folder. If no key can be found, a new one is generated.
func (*Nodeconfig) NodeName ¶
func (c *Nodeconfig) NodeName() string
NodeName returns the devp2p node identifier.
func (*Nodeconfig) ResolvePath ¶
func (c *Nodeconfig) ResolvePath(path string) string
resolvePath resolves path in the instance directory.
func (*Nodeconfig) StringName ¶
func (c *Nodeconfig) StringName() string
type PrometheusConfig ¶
type PrometheusConfig struct { Period uint64 `json:"period"` // Number of seconds between blocks to enforce Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint }
func (*PrometheusConfig) String ¶
func (c *PrometheusConfig) String() string
PrometheusConfig is the consensus engine configs for proof-of-authority based sealing. String implements the stringer interface, returning the consensus engine details.
type SyncMode ¶
type SyncMode int
SyncMode represents the synchronisation mode of the downloader.
func (SyncMode) MarshalText ¶
func (*SyncMode) UnmarshalText ¶
type TxPoolConfiguration ¶
type TxPoolConfiguration struct { NoLocals bool // Whether local transaction handling should be disabled Journal string // Journal of local transactions to survive node restarts Rejournal time.Duration // Time interval to regenerate the local transaction journal PriceLimit uint64 // Minimum gas price to enforce for acceptance into the pool PriceBump uint64 // Minimum price bump percentage to replace an already existing transaction (nonce) AccountSlots uint64 // Minimum number of executable transaction slots guaranteed per account GlobalSlots uint64 // Maximum number of executable transaction slots for all accounts AccountQueue uint64 // Maximum number of non-executable transaction slots permitted per account GlobalQueue uint64 // Maximum number of non-executable transaction slots for all accounts Lifetime time.Duration // Maximum amount of time non-executable transaction are queued }