config

package
v2.10.2+incompatible Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2021 License: GPL-3.0 Imports: 10 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 AssetContractInfo

type AssetContractInfo struct {
	TokenInfoMap map[string]*TokenInfo // tokenId - info
	LogList      []*GenesisVmLog       // issue events
}

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 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 // Deprecated
	StakeAmount            *big.Int
	WithdrawHeight         uint64 // Deprecated
	ExpirationHeight       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
	EarthFork           *ForkPoint
	DexMiningFork       *ForkPoint
	DexRobotFork        *ForkPoint
	DexStableMarketFork *ForkPoint
}

type Genesis added in v1.2.0

type Genesis struct {
	GenesisAccountAddress *types.Address
	ForkPoints            *ForkPoints
	ConsensusGroupInfo    *GovernanceContractInfo // Deprecated
	GovernanceInfo        *GovernanceContractInfo
	MintageInfo           *AssetContractInfo // Deprecated
	AssetInfo             *AssetContractInfo
	PledgeInfo            *QuotaContractInfo // Deprecated
	QuotaInfo             *QuotaContractInfo
	AccountBalanceMap     map[string]map[string]*big.Int // address - tokenId - balanceAmount
}

func (*Genesis) UnmarshalJSON

func (g *Genesis) UnmarshalJSON(data []byte) error

type GenesisVmLog

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

type GovernanceContractInfo

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

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 Producer

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

type QuotaContractInfo

type QuotaContractInfo struct {
	PledgeInfoMap       map[string][]*StakeInfo // Deprecated
	StakeInfoMap        map[string][]*StakeInfo
	PledgeBeneficialMap map[string]*big.Int // Deprecated
	StakeBeneficialMap  map[string]*big.Int
}

type RegisterConditionParam

type RegisterConditionParam struct {
	PledgeAmount *big.Int // Deprecated
	StakeAmount  *big.Int
	PledgeToken  types.TokenTypeId // Deprecated
	StakeToken   types.TokenTypeId
	PledgeHeight uint64 // Deprecated
	StakeHeight  uint64
}

type RegistrationInfo

type RegistrationInfo struct {
	NodeAddr              *types.Address // Deprecated
	BlockProducingAddress *types.Address
	PledgeAddr            *types.Address // Deprecated
	StakeAddress          *types.Address
	Amount                *big.Int
	WithdrawHeight        uint64 // Deprecated
	ExpirationHeight      uint64
	RewardTime            int64
	CancelTime            int64 // Deprecated
	RevokeTime            int64
	HisAddrList           []types.Address // Deprecated
	HistoryAddressList    []types.Address
}

type StakeInfo

type StakeInfo struct {
	Amount           *big.Int
	WithdrawHeight   uint64 // Deprecated
	ExpirationHeight uint64
	BeneficialAddr   *types.Address // Deprecated
	Beneficiary      *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
	MaxSupply       *big.Int
	OwnerBurnOnly   bool // Deprecated
	IsOwnerBurnOnly 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