params

package
v0.0.0-...-91a82d4 Latest Latest
Warning

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

Go to latest
Published: Sep 23, 2019 License: LGPL-3.0 Imports: 7 Imported by: 17

Documentation

Index

Constants

View Source
const (

	//MaxExtraDataSize Maximum size extra data may be after Genesis.
	MaxExtraDataSize uint64 = 32
	//GasLimitBoundDivisor The bound divisor of the gas limit, used in update calculations.
	GasLimitBoundDivisor uint64 = 1024

	MinGasLimit uint64 = 1000000
	//GenesisGasLimit Gas limit of the Genesis block.
	GenesisGasLimit uint64 = 5000000
	// TxGas Per transaction not creating a contract. NOTE: Not payable on data of calls between transactions.
	TxGas uint64 = 21000
	// TxGasContractCreation Per transaction that creates a contract. NOTE: Not payable on data of calls between transactions.
	TxGasContractCreation uint64 = 53000

	// TxDataZeroGas Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions.
	TxDataZeroGas uint64 = 4

	// use evm contract need gas prices
	CallValueTransferGas    uint64 = 9000   // Paid for CALL when the value transfer is non-zero.
	CallNewAccountGas       uint64 = 25000  // Paid for CALL when the destination address didn't exist prior.
	QuadCoeffDiv            uint64 = 512    // Divisor for the quadratic particle of the memory cost equation.
	SstoreSetGas            uint64 = 20000  // Once per SLOAD operation.
	LogDataGas              uint64 = 8      // Per byte in a LOG* operation's data.
	CallStipend             uint64 = 2300   // Free gas given at beginning of call.
	Sha3Gas                 uint64 = 30     // Once per SHA3 operation.
	Sha3WordGas             uint64 = 6      // Once per word of the SHA3 operation's data.
	SstoreResetGas          uint64 = 5000   // Once per SSTORE operation if the zeroness changes from zero.
	SstoreClearGas          uint64 = 5000   // Once per SSTORE operation if the zeroness doesn't change.
	SstoreRefundGas         uint64 = 15000  // Once per SSTORE operation if the zeroness changes to zero.
	JumpdestGas             uint64 = 1      // Refunded gas, once per SSTORE operation if the zeroness changes to zero.
	EpochDuration           uint64 = 30000  // Duration between proof-of-work epochs.
	CallGas                 uint64 = 40     // Once per CALL operation & message call transaction.
	CreateDataGas           uint64 = 200    //
	CallCreateDepth         uint64 = 1024   // Maximum depth of call/create stack.
	ExpGas                  uint64 = 10     // Once per EXP instruction
	LogGas                  uint64 = 375    // Per LOG* operation.
	CopyGas                 uint64 = 3      //
	StackLimit              uint64 = 1024   // Maximum size of VM stack allowed.
	TierStepGas             uint64 = 0      // Once per operation, for a selection of them.
	LogTopicGas             uint64 = 375    // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas.
	CreateGas               uint64 = 32000  // Once per CREATE operation & contract-creation transaction.
	SuicideRefundGas        uint64 = 24000  // Refunded following a suicide operation.
	MemoryGas               uint64 = 3      // Times the address of the (highest referenced byte in memory + 1). NOTE: referencing happens on read, write and in instructions such as RETURN and CALL.
	TxDataNonZeroGas        uint64 = 68     // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions.
	MaxCodeSize             int    = 24576  // Maximum bytecode to permit for a contract
	EcrecoverGas            uint64 = 3000   // Elliptic curve sender recovery gas price
	Sha256BaseGas           uint64 = 60     // Base price for a SHA256 operation
	Sha256PerWordGas        uint64 = 12     // Per-word price for a SHA256 operation
	Ripemd160BaseGas        uint64 = 600    // Base price for a RIPEMD160 operation
	Ripemd160PerWordGas     uint64 = 120    // Per-word price for a RIPEMD160 operation
	IdentityBaseGas         uint64 = 15     // Base price for a data copy operation
	IdentityPerWordGas      uint64 = 3      // Per-work price for a data copy operation
	ModExpQuadCoeffDiv      uint64 = 20     // Divisor for the quadratic particle of the big int modular exponentiation
	Bn256AddGas             uint64 = 500    // Gas needed for an elliptic curve addition
	Bn256ScalarMulGas       uint64 = 40000  // Gas needed for an elliptic curve scalar multiplication
	Bn256PairingBaseGas     uint64 = 100000 // Base price for an elliptic curve pairing check
	Bn256PairingPerPointGas uint64 = 80000  // Per-point price for an elliptic curve pairing check
)
View Source
const (
	// VersionMajor is Major version component of the current release
	VersionMajor = 0
	// VersionMinor is Minor version component of the current release
	VersionMinor = 1
	// VersionPatch is Patch version component of the current release
	VersionPatch = 0
)
View Source
const (
	//Identifier  identifier to advertise over the network
	Identifier = "uranus"
)

Variables

View Source
var BlockReward *big.Int = big.NewInt(3e+18)

BlockReward

View Source
var BootNodes = []string{
	"enode://1fec388652dc57e59fd5d54555036b5267f575c3bac0ddf6cb725db5a3f4d305f715fe0612944dcd640461ae47bfa7cc4ffc6a42ee5179025960be3ee8536fea@127.0.0.1:7090",
}
View Source
var DefaultChainConfig = &ChainConfig{
	ChainID:             big.NewInt(1),
	MinDelegateState:    new(big.Int).Mul(big.NewInt(1000), big.NewInt(18)),
	MinDelegatePercent:  big.NewInt(10),
	MinDelegateDuration: int64(time.Hour / time.Second),
	GenesisCandidate:    "0x970e8128ab834e8eac17ab8e3812f010678cf791",
	MinStartQuantity:    big.NewInt(100),
	MaxVotes:            30,
	DelayDuration:       72 * 3600,
	BlockInterval:       int64(500 * time.Millisecond),
	BlockRepeat:         12,
	MaxValidatorSize:    3,
}
View Source
var (
	DefualtGasTable = GasTable{
		ExtcodeSize:     700,
		ExtcodeCopy:     700,
		Balance:         400,
		SLoad:           200,
		Calls:           700,
		Suicide:         5000,
		ExpByte:         50,
		CreateBySuicide: 25000,
	}
)
View Source
var GitCommit = func() string {
	head := readGit("HEAD")
	if splits := strings.Split(head, " "); len(splits) == 2 {
		head = splits[1]
		return readGit(head)
	}
	return ""
}

GitCommit Git SHA1 commit hash of the release

View Source
var TestChainConfig = &ChainConfig{
	ChainID:             big.NewInt(0),
	MinDelegateState:    new(big.Int).Mul(big.NewInt(1000), big.NewInt(18)),
	MinDelegatePercent:  big.NewInt(10),
	MinDelegateDuration: int64(time.Hour / time.Second),
	GenesisCandidate:    "0x970e8128ab834e8eac17ab8e3812f010678cf791",
	MinStartQuantity:    big.NewInt(100),
	MaxVotes:            30,
	DelayDuration:       72 * 3600,
	BlockInterval:       int64(3000 * time.Millisecond),
	BlockRepeat:         12,
	MaxValidatorSize:    3,
}
View Source
var VersionFunc = func() string { return fmt.Sprintf("%d.%d.%d", VersionMajor, VersionMinor, VersionPatch) }()

VersionFunc holds the textual version string.

Functions

func VersionWithCommit

func VersionWithCommit(gitCommit string) string

VersionWithCommit return version with commit.

Types

type ChainConfig

type ChainConfig struct {
	ChainID             *big.Int `json:"chainId"`
	MinDelegateState    *big.Int `json:"minDelegateState"`
	MinDelegatePercent  *big.Int `json:"minDelegatePercent"`
	MinDelegateDuration int64    `json:"minDelegateDuration"`
	BlockInterval       int64    `json:"blockInterval"`
	BlockRepeat         int64    `json:"blockRepeat"`
	MaxValidatorSize    int64    `json:"epchoValidators"`
	DelayEpcho          int64    `json:"delayepcho"`
	MaxConfirmedNum     int64    `json:"maxConfirmedNum"`
	GenesisCandidate    string   `json:"candiate"`
	MinStartQuantity    *big.Int `json:"startQuantity"`
	MaxVotes            int64    `json:"votes"`
	DelayDuration       int64    `json:"refund"`
}

func (ChainConfig) String

func (c ChainConfig) String() string

String implements fmt.Stringer.

type GasTable

type GasTable struct {
	ExtcodeSize uint64
	ExtcodeCopy uint64
	Balance     uint64
	SLoad       uint64
	Calls       uint64
	Suicide     uint64

	ExpByte uint64

	// CreateBySuicide occurs when the
	// refunded account is one that does
	// not exist. This logic is similar
	// to call. May be left nil. Nil means
	// not charged.
	CreateBySuicide uint64
}

GasTable for evm

Jump to

Keyboard shortcuts

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