settings

package
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2020 License: MIT Imports: 9 Imported by: 1

README

How to generate embedded settings files

Execute following command:

statik -src pkg/settings/embedded/ -dest pkg/settings/ -p embedded -f

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	MainNetSettings       = mustLoadEmbeddedSettings(MainNet)
	TestNetSettings       = mustLoadEmbeddedSettings(TestNet)
	StageNetSettings      = mustLoadEmbeddedSettings(StageNet)
	DefaultCustomSettings = &BlockchainSettings{
		Type: Custom,
		FunctionalitySettings: FunctionalitySettings{
			FeaturesVotingPeriod:       5000,
			VotesForFeatureActivation:  4000,
			MaxTxTimeBackOffset:        120 * 60000,
			MaxTxTimeForwardOffset:     90 * 60000,
			AddressSchemeCharacter:     proto.CustomNetScheme,
			AverageBlockDelaySeconds:   60,
			MaxBaseTarget:              math.MaxUint64,
			MinUpdateAssetInfoInterval: 100000,
		},
	}
)
View Source
var FeaturesInfo = map[Feature]FeatureInfo{
	SmallerMinimalGeneratingBalance: {true, "Minimum Generating Balance of 1000 WAVES"},
	NG:                              {true, "NG Protocol"},
	MassTransfer:                    {true, "Mass Transfer Transaction"},
	SmartAccounts:                   {true, "Smart Accounts"},
	DataTransaction:                 {true, "Data Transaction"},
	BurnAnyTokens:                   {true, "Burn Any Tokens"},
	FeeSponsorship:                  {true, "Fee Sponsorship"},
	FairPoS:                         {true, "Fair PoS"},
	SmartAssets:                     {true, "Smart Assets"},
	SmartAccountTrading:             {true, "Smart Account Trading"},
	Ride4DApps:                      {true, "RIDE 4 DAPPS"},
	OrderV3:                         {true, "Order Version 3"},
	ReduceNFTFee:                    {true, "Reduce NFT fee"},
	BlockReward:                     {true, "Block Reward and Community Driven Monetary Policy"},
	BlockV5:                         {true, "VRF and Protobuf"},
	MultiPaymentInvokeScript:        {true, "Ride V4 and multiple attached payments for Invoke Script Transaction"},
	LeaseExpiration:                 {false, "Lease Expiration"},
}

Functions

func ApplySettings

func ApplySettings(settings *NodeSettings, f ...func(*NodeSettings) error) error

func FromJavaEnviron

func FromJavaEnviron(settings *NodeSettings) error

func FromJavaEnvironString

func FromJavaEnvironString(settings *NodeSettings, s string)

Types

type BlockchainSettings

type BlockchainSettings struct {
	FunctionalitySettings
	Type    BlockchainType `json:"type"`
	Genesis proto.Block    `json:"genesis"`
}

func BlockchainSettingsByTypeName added in v0.5.0

func BlockchainSettingsByTypeName(networkType string) (*BlockchainSettings, error)

func ReadBlockchainSettings added in v0.5.0

func ReadBlockchainSettings(r io.Reader) (*BlockchainSettings, error)

type BlockchainType

type BlockchainType byte
const (
	MainNet BlockchainType = iota
	TestNet
	StageNet
	Custom
)

type Feature

type Feature int16
const (
	SmallerMinimalGeneratingBalance Feature = iota + 1
	NG
	MassTransfer
	SmartAccounts
	DataTransaction
	BurnAnyTokens
	FeeSponsorship
	FairPoS
	SmartAssets
	SmartAccountTrading
	Ride4DApps // RIDE V3
	OrderV3
	ReduceNFTFee
	BlockReward // 14
	BlockV5
	MultiPaymentInvokeScript // RIDE V4
	LeaseExpiration
)

type FeatureInfo

type FeatureInfo struct {
	Implemented bool
	Description string
}

type FunctionalitySettings

type FunctionalitySettings struct {
	// Features.
	FeaturesVotingPeriod             uint64  `json:"features_voting_period"`
	VotesForFeatureActivation        uint64  `json:"votes_for_feature_activation"`
	PreactivatedFeatures             []int16 `json:"preactivated_features"`
	DoubleFeaturesPeriodsAfterHeight uint64  `json:"double_features_periods_after_height"`

	// Heights when some of rules change.
	GenerationBalanceDepthFrom50To1000AfterHeight uint64 `json:"generation_balance_depth_from_50_to_1000_after_height"`
	BlockVersion3AfterHeight                      uint64 `json:"block_version_3_after_height"`

	// Lease cancellation.
	ResetEffectiveBalanceAtHeight uint64 `json:"reset_effective_balance_at_height"`
	// Window when stolen aliases are valid.
	StolenAliasesWindowTimeStart uint64 `json:"stolen_aliases_window_time_start"`
	StolenAliasesWindowTimeEnd   uint64 `json:"stolen_aliases_window_time_end"`
	// Window when unreissueable assets can be reissued.
	ReissueBugWindowTimeStart           uint64 `json:"reissue_bug_window_time_start"`
	ReissueBugWindowTimeEnd             uint64 `json:"reissue_bug_window_time_end"`
	AllowMultipleLeaseCancelUntilTime   uint64 `json:"allow_multiple_lease_cancel_until_time"`
	AllowLeasedBalanceTransferUntilTime uint64 `json:"allow_leased_balance_transfer_until_time"`
	// Timestamps when different kinds of checks become relevant.
	CheckTempNegativeAfterTime             uint64 `json:"check_temp_negative_after_time"`
	TxChangesSortedCheckAfterTime          uint64 `json:"tx_changes_sorted_check_after_time"`
	TxFromFutureCheckAfterTime             uint64 `json:"tx_from_future_check_after_time"`
	UnissuedAssetUntilTime                 uint64 `json:"unissued_asset_until_time"`
	InvalidReissueInSameBlockUntilTime     uint64 `json:"invalid_reissue_in_same_block_until_time"`
	MinimalGeneratingBalanceCheckAfterTime uint64 `json:"minimal_generating_balance_check_after_time"`

	// Diff in milliseconds.
	MaxTxTimeBackOffset    uint64 `json:"max_tx_time_back_offset"`
	MaxTxTimeForwardOffset uint64 `json:"max_tx_time_forward_offset"`

	AddressSchemeCharacter proto.Scheme `json:"address_scheme_character"`

	AverageBlockDelaySeconds uint64 `json:"average_block_delay_seconds"`
	// Configurable.
	MaxBaseTarget uint64 `json:"max_base_target"`

	// Block Reward
	BlockRewardTerm         uint64 `json:"block_reward_term"`
	InitialBlockReward      uint64 `json:"initial_block_reward"`
	BlockRewardIncrement    uint64 `json:"block_reward_increment"`
	BlockRewardVotingPeriod uint64 `json:"block_reward_voting_period"`

	MinUpdateAssetInfoInterval uint64 `json:"min_update_asset_info_interval"`
}

func (*FunctionalitySettings) ActivationWindowSize

func (f *FunctionalitySettings) ActivationWindowSize(height uint64) uint64

func (*FunctionalitySettings) VotesForFeatureElection

func (f *FunctionalitySettings) VotesForFeatureElection(height uint64) uint64

type NodeSettings

type NodeSettings struct {
	DeclaredAddr string
	WavesNetwork string
	Addresses    string
	HttpAddr     string
	GrpcAddr     string
}

func (NodeSettings) Validate

func (a NodeSettings) Validate() error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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