config

package
v1.1.7-beta Latest Latest
Warning

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

Go to latest
Published: Apr 27, 2020 License: Apache-2.0 Imports: 19 Imported by: 41

Documentation

Index

Constants

View Source
const (
	MaxNumTxnPerBlock            = 4096
	MaxBlockSize                 = 1 * 1024 * 1024 // in bytes
	ConsensusDuration            = 20 * time.Second
	ConsensusTimeout             = 60 * time.Second
	MinNumSuccessors             = 8
	NodeIDBytes                  = 32
	MaxRollbackBlocks            = 180
	SigChainBlockDelay           = 1
	SigChainPropogationTime      = 2
	GossipSampleChordNeighbor    = 0.1
	GossipMinChordNeighbor       = 3
	GossipSampleRandomNeighbor   = 1.0
	GossipMinRandomNeighbor      = 0
	VotingSampleChordNeighbor    = 0.5
	VotingMinChordNeighbor       = 4
	VotingSampleRandomNeighbor   = 0.0
	VotingMinRandomNeighbor      = 0
	HeaderVersion                = 1
	DBVersion                    = 0x01
	InitialIssueAddress          = "NKNFCrUMFPkSeDRMG2ME21hD6wBCA2poc347"
	InitialIssueAmount           = 700000000 * common.StorageFactor
	TotalMiningRewards           = 300000000 * common.StorageFactor
	TotalRewardDuration          = uint32(25)
	InitialReward                = common.Fixed64(18000000 * common.StorageFactor)
	RewardAdjustInterval         = 365 * 24 * 60 * 60 / int(ConsensusDuration/time.Second)
	ReductionAmount              = common.Fixed64(500000 * common.StorageFactor)
	DonationAddress              = "NKNaaaaaaaaaaaaaaaaaaaaaaaaaaaeJ6gxa"
	DonationAdjustDividendFactor = 1
	DonationAdjustDivisorFactor  = 2
	MinGenIDRegistrationFee      = 0
	GenerateIDBlockDelay         = 8
	RandomBeaconUniqueLength     = vrf.Size
	RandomBeaconLength           = vrf.Size + vrf.ProofSize
	ProtocolVersion              = 30
	MinCompatibleProtocolVersion = 30
	MaxCompatibleProtocolVersion = 39
	TxPoolCleanupInterval        = ConsensusDuration
	ShortHashSize                = uint32(8)
	MaxAssetPrecision            = uint32(8)
	NKNAssetName                 = "NKN"
	NKNAssetSymbol               = "nkn"
	NKNAssetPrecision            = uint32(8)
	GASAssetName                 = "New Network Coin"
	GASAssetSymbol               = "nnc"
	GASAssetPrecision            = uint32(8)
	DumpMemInterval              = 30 * time.Second
	MaxClientMessageSize         = 4 * 1024 * 1024
	MinNameRegistrationFee       = 10 * common.StorageFactor
	DefaultNameDuration          = 365 * 24 * 60 * 60 / int(ConsensusDuration/time.Second)
)

Variables

View Source
var (
	Debug            = false
	PprofPort        = "127.0.0.1:8080"
	ShortHashSalt    = util.RandomBytes(32)
	GenesisTimestamp = time.Date(2019, time.June, 29, 13, 10, 13, 0, time.UTC).Unix()
	GenesisBeacon    = make([]byte, RandomBeaconLength)
	NKNAssetID       = common.Uint256{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	}
	GASAssetID = common.Uint256{
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
		0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
	}
	AllowSubscribeTopicRegex = HeightDependentString{
								// contains filtered or unexported fields
	}
	AllowNameRegex = HeightDependentString{
					// contains filtered or unexported fields
	}
	LegacyNameService = HeightDependentBool{
						// contains filtered or unexported fields
	}
	MaxSubscribeIdentifierLen = HeightDependentInt32{
								// contains filtered or unexported fields
	}
	MaxSubscribeMetaLen = HeightDependentInt32{
						// contains filtered or unexported fields
	}
	MaxSubscribeBucket = HeightDependentInt32{
						// contains filtered or unexported fields
	}
	MaxSubscribeDuration = HeightDependentInt32{
							// contains filtered or unexported fields
	}
	MaxSubscriptionsCount = 100000
	MaxGenerateIDTxnHash  = HeightDependentUint256{
							// contains filtered or unexported fields
	}
	MaxTxnAttributesLen  = 100
	AllowTxnRegisterName = HeightDependentBool{
							// contains filtered or unexported fields
	}
	ChargeNanoPayTxnFee = HeightDependentBool{
						// contains filtered or unexported fields
	}
	AllowSigChainHashSignature = HeightDependentBool{
								// contains filtered or unexported fields
	}
)
View Source
var (
	Version string
	SkipNAT bool

	ConfigFile                   string
	LogPath                      string
	ChainDBPath                  string
	WalletFile                   string
	BeneficiaryAddr              string
	SeedList                     string
	GenesisBlockProposer         string
	AllowEmptyBeneficiaryAddress bool
	WebGuiListenAddress          string
	WebGuiCreateWallet           bool
	PasswordFile                 string
	StatePruningMode             string
	Parameters                   = &Configuration{
		Version:                      1,
		Transport:                    "tcp",
		NodePort:                     30001,
		HttpWsPort:                   30002,
		HttpWssPort:                  30004,
		HttpJsonPort:                 30003,
		HttpsJsonPort:                30005,
		NAT:                          true,
		Mining:                       true,
		MiningDebug:                  true,
		LogLevel:                     1,
		MaxLogFileSize:               20,
		MaxLogFileTotalSize:          100,
		SyncBatchWindowSize:          0,
		SyncBlockHeadersBatchSize:    128,
		SyncBlocksBatchSize:          4,
		SyncBlocksMaxMemorySize:      0,
		RPCReadTimeout:               5,
		RPCWriteTimeout:              10,
		RPCIdleTimeout:               0,
		RPCKeepAlivesEnabled:         false,
		NATPortMappingTimeout:        365 * 86400,
		NumTxnPerBlock:               256,
		TxPoolPerAccountTxCap:        32,
		TxPoolTotalTxCap:             0,
		TxPoolMaxMemorySize:          0,
		RegisterIDRegFee:             0,
		RegisterIDTxnFee:             0,
		LogPath:                      "Log",
		ChainDBPath:                  "ChainDB",
		WalletFile:                   "wallet.json",
		HttpWssDomain:                "{{.DashedIP}}.ipv4.nknlabs.io",
		HttpWssCert:                  "certs/STAR.ipv4.nknlabs.io.cert",
		HttpWssKey:                   "certs/STAR.ipv4.nknlabs.io.key",
		HttpsJsonDomain:              "{{.DashedIP}}.ipv4.nknlabs.io",
		HttpsJsonCert:                "certs/STAR.ipv4.nknlabs.io.cert",
		HttpsJsonKey:                 "certs/STAR.ipv4.nknlabs.io.key",
		MaxGetIDSeeds:                3,
		DBFilesCacheCapacity:         100,
		NumLowFeeTxnPerBlock:         0,
		LowFeeTxnSizePerBlock:        2048,
		MinTxnFee:                    10000000,
		AllowEmptyBeneficiaryAddress: false,
		WebGuiListenAddress:          "127.0.0.1",
		WebGuiPort:                   30000,
		WebGuiCreateWallet:           false,
		PasswordFile:                 "",
		RecentStateCount:             1024,
		StatePruningMode:             "none",
		RPCRateLimit:                 1024,
		RPCRateBurst:                 4096,
		SyncBlockHeaderRateLimit:     8192,
		SyncBlockHeaderRateBurst:     32768,
		SyncBlockRateLimit:           256,
		SyncBlockRateBurst:           1024,
		BlockHeaderCacheSize:         1024,
	}
)

Functions

func GetConfigFile

func GetConfigFile() string

func Init

func Init() error

func OpenConfigFile

func OpenConfigFile() ([]byte, error)

func SetBeneficiaryAddr

func SetBeneficiaryAddr(addr string, allowEmpty bool) error

func WriteConfigFile

func WriteConfigFile(configuration map[string]interface{}) error

Types

type Configuration

type Configuration struct {
	Version                      int           `json:"Version"`
	SeedList                     []string      `json:"SeedList"`
	HttpWssDomain                string        `json:"HttpWssDomain"`
	HttpWssCert                  string        `json:"HttpWssCert"`
	HttpWssKey                   string        `json:"HttpWssKey"`
	HttpWsPort                   uint16        `json:"HttpWsPort"`
	HttpWssPort                  uint16        `json:"HttpWssPort"`
	HttpJsonPort                 uint16        `json:"HttpJsonPort"`
	HttpsJsonDomain              string        `json:"HttpsJsonDomain"`
	HttpsJsonCert                string        `json:"HttpsJsonCert"`
	HttpsJsonKey                 string        `json:"HttpsJsonKey"`
	HttpsJsonPort                uint16        `json:"HttpsJsonPort"`
	NodePort                     uint16        `json:"-"`
	LogLevel                     int           `json:"LogLevel"`
	MaxLogFileSize               uint32        `json:"MaxLogSize"`
	MaxLogFileTotalSize          uint32        `json:"MaxLogFileTotalSize"`
	GenesisBlockProposer         string        `json:"GenesisBlockProposer"`
	NumLowFeeTxnPerBlock         uint32        `json:"NumLowFeeTxnPerBlock"`
	LowFeeTxnSizePerBlock        uint32        `json:"LowFeeTxnSizePerBlock"` // in bytes
	MinTxnFee                    int64         `json:"MinTxnFee"`
	RegisterIDRegFee             int64         `json:"RegisterIDRegFee"`
	RegisterIDTxnFee             int64         `json:"RegisterIDTxnFee"`
	Hostname                     string        `json:"Hostname"`
	Transport                    string        `json:"Transport"`
	NAT                          bool          `json:"NAT"`
	Mining                       bool          `json:"Mining"`
	MiningDebug                  bool          `json:"MiningDebug"`
	BeneficiaryAddr              string        `json:"BeneficiaryAddr"`
	SyncBatchWindowSize          uint32        `json:"SyncBatchWindowSize"`
	SyncBlockHeadersBatchSize    uint32        `json:"SyncBlockHeadersBatchSize"`
	SyncBlocksBatchSize          uint32        `json:"SyncBlocksBatchSize"`
	SyncBlocksMaxMemorySize      uint32        `json:"SyncBlocksMaxMemorySize"` // in megabytes (MB)
	NumTxnPerBlock               uint32        `json:"NumTxnPerBlock"`
	TxPoolPerAccountTxCap        uint32        `json:"TxPoolPerAccountTxCap"`
	TxPoolTotalTxCap             uint32        `json:"TxPoolTotalTxCap"`
	TxPoolMaxMemorySize          uint32        `json:"TxPoolMaxMemorySize"` // in megabytes (MB)
	RPCReadTimeout               time.Duration `json:"RPCReadTimeout"`      // in seconds
	RPCWriteTimeout              time.Duration `json:"RPCWriteTimeout"`     // in seconds
	RPCIdleTimeout               time.Duration `json:"RPCIdleTimeout"`      // in seconds
	RPCKeepAlivesEnabled         bool          `json:"RPCKeepAlivesEnabled"`
	NATPortMappingTimeout        time.Duration `json:"NATPortMappingTimeout"` // in seconds
	LogPath                      string        `json:"LogPath"`
	ChainDBPath                  string        `json:"ChainDBPath"`
	WalletFile                   string        `json:"WalletFile"`
	MaxGetIDSeeds                uint32        `json:"MaxGetIDSeeds"`
	DBFilesCacheCapacity         uint32        `json:"DBFilesCacheCapacity"`
	AllowEmptyBeneficiaryAddress bool          `json:"AllowEmptyBeneficiaryAddress"`
	WebGuiListenAddress          string        `json:"WebGuiListenAddress"`
	WebGuiPort                   uint16        `json:"WebGuiPort"`
	WebGuiCreateWallet           bool          `json:"WebGuiCreateWallet"`
	PasswordFile                 string        `json:"PasswordFile"`
	RecentStateCount             uint32        `json:"RecentStateCount"`
	StatePruningMode             string        `json:"StatePruningMode"`
	RPCRateLimit                 float64       `json:"RPCRateLimit"` // requests per second
	RPCRateBurst                 uint32        `json:"RPCRateBurst"`
	SyncBlockHeaderRateLimit     float64       `json:"SyncBlockHeaderRateLimit"` // headers per second
	SyncBlockHeaderRateBurst     uint32        `json:"SyncBlockHeaderRateBurst"`
	SyncBlockRateLimit           float64       `json:"SyncBlockRateLimit"` // blocks per second
	SyncBlockRateBurst           uint32        `json:"SyncBlockRateBurst"`
	BlockHeaderCacheSize         uint32        `json:"BlockHeaderCacheSize"`
}

func (*Configuration) CheckPorts

func (config *Configuration) CheckPorts(myIP string) (bool, error)

func (*Configuration) ClearPortMapping

func (config *Configuration) ClearPortMapping() error

func (*Configuration) SetupPortMapping

func (config *Configuration) SetupPortMapping() error

type HeightDependentBool

type HeightDependentBool struct {
	// contains filtered or unexported fields
}

func (*HeightDependentBool) GetValueAtHeight

func (hdi *HeightDependentBool) GetValueAtHeight(height uint32) bool

type HeightDependentInt32

type HeightDependentInt32 struct {
	// contains filtered or unexported fields
}

func (*HeightDependentInt32) GetValueAtHeight

func (hdi *HeightDependentInt32) GetValueAtHeight(height uint32) int32

type HeightDependentString

type HeightDependentString struct {
	// contains filtered or unexported fields
}

func (*HeightDependentString) GetValueAtHeight

func (hdi *HeightDependentString) GetValueAtHeight(height uint32) string

type HeightDependentUint256

type HeightDependentUint256 struct {
	// contains filtered or unexported fields
}

func (*HeightDependentUint256) GetValueAtHeight

func (hdi *HeightDependentUint256) GetValueAtHeight(height uint32) common.Uint256

Jump to

Keyboard shortcuts

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