config

package
v2.6.0+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 6, 2019 License: GPL-3.0 Imports: 9 Imported by: 24

Documentation

Index

Constants

View Source
const (
	DefaultSingle = false

	DefaultNodeName = "vite-node"

	DefaultNetID = 3

	DefaultListenInterface = "0.0.0.0"
	DefaultPort            = 8483
	DefaultFilePort        = 8484

	DefaultDiscover = true

	DefaultMaxPeers        = 60
	DefaultMaxInboundRatio = 2
	DefaultMinPeers        = 5
	DefaultMaxPendingPeers = 10

	DefaultNetDirName = "net"
	PeerKeyFileName   = "peerKey"

	DefaultForwardStrategy = "cross"
	DefaultAccessControl   = "any"
)

Variables

This section is empty.

Functions

func DefaultDataDir added in v1.3.0

func DefaultDataDir() string

DefaultDataDir is the default data directory to use for the databases and other persistence requirements.

func IsCompleteGenesisConfig

func IsCompleteGenesisConfig(genesisConfig *Genesis) bool

Types

type Chain

type Chain struct {
	LedgerGcRetain uint64 // no use
	GenesisFile    string // genesis file path
	LedgerGc       bool   // open or close ledger garbage collector
	OpenPlugins    bool   // open or close chain plugins. eg, filter account blocks by token.

	VmLogWhiteList []types.Address // contract address white list which save VM logs
	VmLogAll       bool            // save all VM logs, it will cost more disk space
}

chain config

type Config

type Config struct {
	*Producer   `json:"Producer"`
	*Chain      `json:"Chain"`
	*Vm         `json:"Vm"`
	*Subscribe  `json:"Subscribe"`
	*Net        `json:"Net"`
	*biz.Reward `json:"Reward"`
	*Genesis    `json:"Genesis"`

	// global keys
	DataDir string `json:"DataDir"`
	//Log level
	LogLevel string `json:"LogLevel"`
}

func (Config) RunLogDir

func (c Config) RunLogDir() string

type ConsensusGroupContractInfo

type ConsensusGroupContractInfo struct {
	ConsensusGroupInfoMap map[string]ConsensusGroupInfo          // consensus group info, gid - info
	RegistrationInfoMap   map[string]map[string]RegistrationInfo // registration info, gid - nodeName - info
	HisNameMap            map[string]map[string]string           // used node name for node addr, gid - nodeAddr - nodeName
	VoteStatusMap         map[string]map[string]string           // vote info, gid - voteAddr - nodeName
}

type ConsensusGroupInfo added in v1.2.0

type ConsensusGroupInfo struct {
	NodeCount              uint8
	Interval               int64
	PerCount               int64
	RandCount              uint8
	RandRank               uint8
	Repeat                 uint16
	CheckLevel             uint8
	CountingTokenId        types.TokenTypeId
	RegisterConditionId    uint8
	RegisterConditionParam RegisterConditionParam
	VoteConditionId        uint8
	VoteConditionParam     VoteConditionParam
	Owner                  types.Address
	PledgeAmount           *big.Int
	WithdrawHeight         uint64
}

type ForkPoint added in v1.2.0

type ForkPoint struct {
	Height  uint64
	Version uint32
}

type ForkPoints added in v1.2.0

type ForkPoints struct {
	SeedFork   *ForkPoint
	DexFork    *ForkPoint
	DexFeeFork *ForkPoint
	StemFork   *ForkPoint
	LeafFork   *ForkPoint
}

type Genesis added in v1.2.0

type Genesis struct {
	GenesisAccountAddress *types.Address
	ForkPoints            *ForkPoints
	ConsensusGroupInfo    *ConsensusGroupContractInfo
	MintageInfo           *MintageContractInfo
	PledgeInfo            *PledgeContractInfo
	AccountBalanceMap     map[string]map[string]*big.Int // address - tokenId - balanceAmount
}

type GenesisVmLog

type GenesisVmLog struct {
	Data   string
	Topics []types.Hash
}

type MintageContractInfo

type MintageContractInfo struct {
	TokenInfoMap map[string]TokenInfo // tokenId - info
	LogList      []GenesisVmLog       // mint events
}

type Net

type Net struct {
	Single bool

	// Name is our node name, NO need to be unique in the whole network, just for readability, default is `vite-node`
	Name string

	// NetID is to mark which network our node in, nodes from different network can`t connect each other
	NetID int

	ListenInterface string

	Port int

	FilePort int

	// PublicAddress is the network address can be access by other nodes, usually is the public Internet address
	PublicAddress string

	FilePublicAddress string

	// DataDir is the directory to storing p2p data, if is null-string, will use memory as database
	DataDir string

	// PeerKey is to encrypt message, the corresponding public key use for NodeID, MUST NOT be revealed
	PeerKey string

	// Discover means whether discover other nodes in the networks, default true
	Discover bool

	// BootNodes are roles as network entrance. Node can discovery more other nodes by send UDP query BootNodes,
	// but not create a TCP connection to BootNodes directly
	BootNodes []string

	// BootSeeds are the address where can query BootNodes, is a more flexible option than BootNodes
	BootSeeds []string

	// StaticNodes will be connect directly
	StaticNodes []string

	MaxPeers int

	MaxInboundRatio int

	// MinPeers server will keep finding nodes and try to connect until number of peers is larger than `MinPeers`,
	// default 5
	MinPeers int

	// MaxPendingPeers how many inbound peers can be connect concurrently, more inbound connection will be blocked
	// this value is for defend DDOS attack, default 10
	MaxPendingPeers int

	ForwardStrategy string

	AccessControl   string
	AccessAllowKeys []string
	AccessDenyKeys  []string

	BlackBlockHashList []string
	WhiteBlockList     []string

	MineKey ed25519.PrivateKey
}

func (*Net) Init

func (net *Net) Init() (privateKey ed25519.PrivateKey, err error)

type PledgeContractInfo

type PledgeContractInfo struct {
	PledgeInfoMap       map[string][]PledgeInfo
	PledgeBeneficialMap map[string]*big.Int
}

type PledgeInfo

type PledgeInfo struct {
	Amount         *big.Int
	WithdrawHeight uint64
	BeneficialAddr types.Address
}

type Producer

type Producer struct {
	Producer         bool   `json:"Producer"`
	Coinbase         string `json:"Coinbase"`
	EntropyStorePath string `json:"EntropyStorePath"`
}

type RegisterConditionParam

type RegisterConditionParam struct {
	PledgeAmount *big.Int
	PledgeToken  types.TokenTypeId
	PledgeHeight uint64
}

type RegistrationInfo

type RegistrationInfo struct {
	NodeAddr       types.Address
	PledgeAddr     types.Address
	Amount         *big.Int
	WithdrawHeight uint64
	RewardTime     int64
	CancelTime     int64
	HisAddrList    []types.Address
}

type Subscribe added in v1.3.2

type Subscribe struct {
	IsSubscribe bool `json:"IsSubscribe"`
}

type TokenInfo

type TokenInfo struct {
	TokenName      string
	TokenSymbol    string
	TotalSupply    *big.Int
	Decimals       uint8
	Owner          types.Address
	PledgeAmount   *big.Int
	PledgeAddr     types.Address
	WithdrawHeight uint64
	MaxSupply      *big.Int
	OwnerBurnOnly  bool
	IsReIssuable   bool
}

type Vm

type Vm struct {
	IsVmTest            bool `json:"IsVmTest"`
	IsUseVmTestParam    bool `json:"IsUseVmTestParam"`
	IsUseQuotaTestParam bool `json:"IsUseQuotaTestParam"`
	IsVmDebug           bool `json:"IsVmDebug"`
}

type VoteConditionParam

type VoteConditionParam struct {
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL