Documentation
¶
Index ¶
Constants ¶
const ( // NodeModeNormal NODE_MODE_NORMAL node mode for normal NodeModeNormal = "Normal" // NodeModeFastSync NODE_MODE_FAST_SYNC node mode for fast NodeModeFastSync = "FastSync" DefaultNetPort = 47101 // p2p port DefaultNetKeyPath = "./data/netkeys/" // node private key path DefaultNetIsNat = true // use NAT DefaultNetIsSecure = true // use encrypted secure transport DefaultNetIsHidden = false DefaultMaxStreamLimits = 1024 DefaultMaxMessageSize = 128 DefaultTimeout = 3 DefaultIsAuthentication = false DefautltAuthTimeout = 30 // limitation size for same ip DefaultStreamIPLimitSize = 10 )
default settings
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConsoleConfig ¶
ConsoleConfig is the command config user input
func (*ConsoleConfig) ApplyFlags ¶
func (cmd *ConsoleConfig) ApplyFlags(flags *pflag.FlagSet)
ApplyFlags apply flag to console command
type DBCacheConfig ¶
type DBCacheConfig struct { MemCacheSize int `yaml:"memcache,omitempty"` FdCacheSize int `yaml:"fdcache,omitempty"` }
DBCacheConfig db cache config
type FeeConfig ¶
type FeeConfig struct { NeedFee bool `yaml:"needFee,omitempty"` // UnitFee tx 每kb大小的单价 UnitFee int64 `yaml:"unitFee,omitempty"` }
FeeConfig is the config of Fee
type KernelConfig ¶
type KernelConfig struct { MinNewChainAmount string `yaml:"minNewChainAmount,omitempty"` NewChainWhiteList map[string]bool `yaml:"newChainWhiteList,omitempty"` }
KernelConfig kernel config
type LogConfig ¶
type LogConfig struct { Module string `yaml:"module,omitempty"` Filepath string `yaml:"filepath,omitempty"` Filename string `yaml:"filename,omitempty"` Fmt string `yaml:"fmt,omitempty"` Console bool `yaml:"console,omitempty"` Level string `yaml:"level,omitempty"` Async bool `yaml:"async,omitempty"` RotateInterval int `yaml:"rotateinterval,omitempty"` RotateBackups int `yaml:"rotatebackups,omitempty"` }
LogConfig is the log config of node
type MinerConfig ¶
type MinerConfig struct {
Keypath string `yaml:"keypath,omitempty"`
}
MinerConfig is the config of miner
type NativeConfig ¶
type NativeConfig struct { // Timeout (in seconds) to stop native code process StopTimeout int Deploy NativeDeployConfig Docker NativeDockerConfig }
NativeConfig contains the two above config
type NativeDeployConfig ¶
NativeDeployConfig native contract deploy config
type NativeDockerConfig ¶
NativeDockerConfig native contract use docker config
type NodeConfig ¶
type NodeConfig struct { Version string `yaml:"version,omitempty"` Log LogConfig `yaml:"log,omitempty"` TCPServer TCPServerConfig `yaml:"tcpServer,omitempty"` P2pV2 P2PConfig `yaml:"p2pV2,omitempty"` Miner MinerConfig `yaml:"miner,omitempty"` Datapath string `yaml:"datapath,omitempty"` DatapathOthers []string `yaml:"datapathOthers,omitempty"` //扩展盘的路径 ConsoleConfig ConsoleConfig Utxo UtxoConfig `yaml:"utxo,omitempty"` DedupCacheSize int `yaml:"dedupCacheSize,omitempty"` DedupTimeLimit int `yaml:"dedupTimeLimit,omitempty"` Kernel KernelConfig `yaml:"kernel,omitempty"` FeeConfig FeeConfig `yaml:"feeConfig,omitempty"` CPUProfile string `yaml:"cpuprofile,omitempty"` MemProfile string `yaml:"memprofile,omitempty"` MemberWhiteList map[string]bool `yaml:"memberWhiteList,omitempty"` Native NativeConfig `yaml:"native,omitempty"` DBCache DBCacheConfig `yaml:"dbcache,omitempty"` // 节点模式: NORMAL | FAST_SYNC 两种模式 // NORMAL: 为普通的全节点模式 // FAST_SYNC 模式下:节点需要连接一个可信的全节点; 拒绝事务提交; 同步区块时跳过块验证和tx验证; 去掉load未确认事务; NodeMode string `yaml:"nodeMode,omitempty"` PluginConfPath string `yaml:"pluginConfPath,omitempty"` EtcdClusterAddr string `yaml:"etcdClusterAddr,omitempty"` GatewaySwitch bool `yaml:"gatewaySwitch,omitempty"` Wasm WasmConfig `yaml:"wasm,omitempty"` CoreConnection bool `yaml:"coreConnection,omitempty"` }
NodeConfig is the main config of the AmpChain node
func (*NodeConfig) ApplyFlags ¶
func (nc *NodeConfig) ApplyFlags(flags *pflag.FlagSet)
ApplyFlags install flags and use flags to overwrite config file
func (*NodeConfig) LoadConfig ¶
func (nc *NodeConfig) LoadConfig()
LoadConfig load config from config file
type P2PConfig ¶
type P2PConfig struct { // port the p2p network listened Port int32 `yaml:"port,omitempty"` // keyPath is the node private key path, amper will gen a random one if is nil KeyPath string `yaml:"keyPath,omitempty"` // isNat config whether the node use NAT manager IsNat bool `yaml:"isNat,omitempty"` // isSecure config whether the node use secure transparent IsSecure bool `yaml:"isSecure,omitempty"` // isHidden config whether the node can be found IsHidden bool `yaml:"isHidden,omitempty"` // bootNodes config the bootNodes the node to connect BootNodes []string `yaml:"bootNodes,omitempty"` // staticNodes config the nodes which you trust StaticNodes []string `yaml:"staticNodes,omitempty"` // maxStreamLimits config the max stream num MaxStreamLimits int32 `yaml:"maxStreamLimits,omitempty"` // maxMessageSize config the max message size MaxMessageSize int64 `yaml:"maxMessageSize,omitempty"` // timeout config the timeout of Request with response Timeout int64 `yaml:"timeout,omitempty"` // IsAuthentication determine whether peerID and AChain addr correspond IsAuthentication bool `yaml:"isauthentication,omitempty"` // StreamIPLimitSize set the limitation size for same ip StreamIPLimitSize int64 `yaml:"streamIPLimitSize,omitempty"` }
P2PConfig is the config of amper p2p server. Attention, config of dht are not expose
type TCPServerConfig ¶
type TCPServerConfig struct { Port string `yaml:"port,omitempty"` HTTPSPort string `yaml:"httpsPort,omitempty"` MetricPort string `yaml:"metricPort,omitempty"` MaxMsgSize int `yaml:"maxmsgsize,omitempty"` TLS bool `yaml:"tls,omitempty"` TLSPath string `yaml:"tlsPath,omitempty"` MServerURL string `yaml:"mServerUrl,omitempty"` MServerName string `yaml:"mServerName,omitempty"` CachePeriod int64 `yaml:"cachePeriod,omitempty"` InitialWindowSize int32 `yaml:"initialWindowSize,omitempty"` InitialConnWindowSize int32 `yaml:"initialConnWindowSize"` ReadBufferSize int `yaml:"readBufferSize"` WriteBufferSize int `yaml:"writeBufferSize"` }
TCPServerConfig is the tcp port of the node
type UtxoConfig ¶
type UtxoConfig struct { // nonUtxo 是否支持utxo无币化 NonUtxo bool `yaml:"nonUtxo,omitempty"` CacheSize int `yaml:"cachesize,omitempty"` TmpLockSeconds int `yaml:"tmplockSeconds,omitempty"` AsyncMode bool `yaml:"asyncMode,omitempty"` ContractExecutionTime int `yaml:"contractExecutionTime,omitempty"` ContractWhiteList map[string]map[string]bool `yaml:"contractWhiteList,omitempty"` // 是否开启新版本tx k = bcname, v = isBetaTx IsBetaTx map[string]bool `yaml:"isBetaTx,omitempty"` MaxConfirmedDelay uint32 `yaml:"maxConfirmedDelay,omitempty"` }
UtxoConfig is the config of UtxoVM