Documentation ¶
Index ¶
Constants ¶
View Source
const ( // GenesisGasLimit Gas limit of the Genesis block. GenesisGasLimit uint64 = 100000000 // MinGasLimit Minimum the gas limit may ever be. MinGasLimit uint64 = 5000 // GasLimitBoundDivisor The bound divisor of the gas limit, used in update calculations. GasLimitBoundDivisor uint64 = 1024 // MaximumExtraDataSize Maximum size extra data may be after Genesis. MaximumExtraDataSize uint64 = 32 + 65 // ActionGas Per action not creating a contract. NOTE: Not payable on data of calls between transactions. ActionGas uint64 = 21000 // ActionGasContractCreation Per action that creates a contract. NOTE: Not payable on data of calls between transactions. ActionGasContractCreation uint64 = 53000 // TxDataNonZeroGas Per byte of data attached to a transaction that is not equal to zero. NOTE:Not payable on data of calls between transactions. TxDataNonZeroGas uint64 = 68 // TxDataZeroGas Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. TxDataZeroGas uint64 = 4 CallValueTransferGas uint64 = 9000 // Paid for CALL when the value transfer is non-zero. 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. JumpdestGas uint64 = 1 // Refunded gas, once per SSTORE operation if the zeroness changes to zero. EpochDuration uint64 = 30000 // Duration between proof-of-work epochs. CreateDataGas uint64 = 200 // CallCreateDepth uint64 = 1024 // Maximum depth of call/create stack. LogGas uint64 = 375 // Per LOG* operation. CopyGas uint64 = 3 // StackLimit uint64 = 1024 // Maximum size of VM stack allowed. 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. 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. MaxCodeSize = 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 ( AssetFeeType = uint64(0) ContractFeeType = uint64(1) CoinbaseFeeType = uint64(2) )
type for fee
View Source
const (
//ClientIdentifier Client identifier to advertise over the network
ClientIdentifier = "ft"
)
View Source
const (
Fractal = 1e18
)
View Source
const ( // NextForkID is the id of next fork NextForkID uint64 = 0 )
Variables ¶
View Source
var ( DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations. GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block. MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be. DurationLimit = big.NewInt(13) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not. )
View Source
var ( MaxSignDepth = uint64(10) MaxSignLength = uint64(50) )
View Source
var DefaultChainconfig = &ChainConfig{ BootNodes: []string{}, ChainID: big.NewInt(1), ChainName: "fractal", ChainURL: "https://fractalproject.com", AccountNameCfg: &NameConfig{ Level: 0, Length: 16, SubLength: 8, }, AssetNameCfg: &NameConfig{ Level: 1, Length: 16, SubLength: 8, }, ChargeCfg: &ChargeConfig{ AssetRatio: 80, ContractRatio: 80, }, ForkedCfg: &FrokedConfig{ ForkBlockNum: 10000, Forkpercentage: 80, }, DposCfg: &DposConfig{ MaxURLLen: 512, UnitStake: big.NewInt(1000), CandidateMinQuantity: big.NewInt(10), VoterMinQuantity: big.NewInt(1), ActivatedMinQuantity: big.NewInt(100), BlockInterval: 3000, BlockFrequency: 6, CandidateScheduleSize: 3, BackupScheduleSize: 0, EpchoInterval: 540000, FreezeEpchoSize: 3, ExtraBlockReward: big.NewInt(1), BlockReward: big.NewInt(5), }, SnapshotInterval: 180000, SysName: "fractal.admin", AccountName: "fractal.account", AssetName: "fractal.asset", DposName: "fractal.dpos", FeeName: "fractal.fee", SysToken: "ftoken", }
View Source
var ( // GasTable contain the gas re-prices GasTableInstanse = GasTable{ ExtcodeSize: 700, ExtcodeCopy: 700, Balance: 400, SLoad: 200, Calls: 700, Suicide: 5000, ExpByte: 50, CreateBySuicide: 25000, SetOwner: 200, WithdrawFee: 700, GetAccountTime: 200, GetSnapshotTime: 200, GetAssetAmount: 200, SnapBalance: 200, IssueAsset: 200, DestroyAsset: 200, AddAsset: 200, GetAccountID: 200, GetDelegate: 200, CryptoCalc: 20000, CryptoByte: 1000, DeductGas: 200, } )
Variables containing gas prices for different phases.
Functions ¶
This section is empty.
Types ¶
type ChainConfig ¶
type ChainConfig struct { BootNodes []string `json:"bootnodes,omitempty"` // enode URLs of the P2P bootstrap nodes ChainID *big.Int `json:"chainId,omitempty"` // chainId identifies the current chain and is used for replay protection ChainName string `json:"chainName,omitempty"` // chain name ChainURL string `json:"chainUrl,omitempty"` // chain url AccountNameCfg *NameConfig `json:"accountParams,omitempty"` AssetNameCfg *NameConfig `json:"assetParams,omitempty"` ChargeCfg *ChargeConfig `json:"chargeParams,omitempty"` ForkedCfg *FrokedConfig `json:"upgradeParams,omitempty"` DposCfg *DposConfig `json:"dposParams,omitempty"` SysName string `json:"systemName,omitempty"` // system name AccountName string `json:"accountName,omitempty"` // account name AssetName string `json:"assetName,omitempty"` // asset name DposName string `json:"dposName,omitempty"` // system name SnapshotInterval uint64 `json:"snapshotInterval,omitempty"` FeeName string `json:"feeName,omitempty"` //fee name SysToken string `json:"systemToken,omitempty"` // system token SysTokenID uint64 `json:"sysTokenID,omitempty"` SysTokenDecimals uint64 `json:"sysTokenDecimal,omitempty"` ReferenceTime uint64 `json:"referenceTime,omitempty"` }
ChainConfig is the core config which determines the blockchain settings.
func (*ChainConfig) Copy ¶ added in v0.0.7
func (cfg *ChainConfig) Copy() *ChainConfig
type ChargeConfig ¶ added in v0.0.7
type DposConfig ¶ added in v0.0.7
type DposConfig struct { MaxURLLen uint64 `json:"maxURLLen,omitempty"` // url length UnitStake *big.Int `json:"unitStake,omitempty"` // state unit CandidateMinQuantity *big.Int `json:"candidateMinQuantity,omitempty"` // min quantity VoterMinQuantity *big.Int `json:"voterMinQuantity,omitempty"` // min quantity ActivatedMinQuantity *big.Int `json:"activatedMinQuantity,omitempty"` // min active quantity BlockInterval uint64 `json:"blockInterval,omitempty"` BlockFrequency uint64 `json:"blockFrequency,omitempty"` CandidateScheduleSize uint64 `json:"candidateScheduleSize,omitempty"` BackupScheduleSize uint64 `json:"backupScheduleSize,omitempty"` EpchoInterval uint64 `json:"epchoInterval,omitempty"` FreezeEpchoSize uint64 `json:"freezeEpchoSize,omitempty"` ExtraBlockReward *big.Int `json:"extraBlockReward,omitempty"` BlockReward *big.Int `json:"blockReward,omitempty"` }
type FrokedConfig ¶ added in v0.0.7
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 SetOwner uint64 GetAccountTime uint64 GetSnapshotTime uint64 GetAssetAmount uint64 SnapBalance uint64 IssueAsset uint64 DestroyAsset uint64 AddAsset uint64 GetAccountID uint64 GetDelegate uint64 CryptoCalc uint64 CryptoByte uint64 DeductGas uint64 WithdrawFee uint64 }
GasTable organizes gas prices for different phases.
type NameConfig ¶ added in v0.0.7
Click to show internal directories.
Click to hide internal directories.