Documentation ¶
Index ¶
- Constants
- Variables
- func AnmapBind(from, nodeid common.Address, sigHex string) (string, error)
- func AnmapBindInfo(addr common.Address, blockHash common.Hash) (from common.Address, nodeids []common.Address, err error)
- func AnmapInfo(num *big.Int, vsn string) (n *big.Int, addr common.Address)
- func AnmapUnbind(from, nodeid common.Address, sigHex string) (string, error)
- func CanNomination(key *ecdsa.PublicKey) bool
- func ChainID() (id *big.Int)
- func Chief100GetNextRoundSigner(hash common.Hash, number *big.Int, vrf *big.Int) common.Address
- func DAODrainList() []common.Address
- func GetChiefContractCode(addr common.Address) ([]byte, error)
- func GetIPCPath() string
- func IsBeforeChief100block(blockNumber *big.Int) bool
- func IsChiefAddress(addr common.Address) (yes bool)
- func IsChiefAddressOnBlock(number *big.Int, addr common.Address) (yes bool)
- func IsChiefCalled(from, to common.Address) (yes bool)
- func IsChiefUpdate(data []byte) bool
- func IsDevnet() bool
- func IsReadyAnmap(num *big.Int) bool
- func IsReadyMeshbox(num *big.Int) bool
- func IsSIP001Block(num *big.Int) bool
- func IsSIP002Block(num *big.Int) bool
- func IsSIP003Block(num *big.Int) bool
- func IsSIP100Block(num *big.Int) bool
- func IsTestnet() bool
- func MeshboxExistAddress(addr common.Address) bool
- func MeshboxInfo(num *big.Int, vsn string) (n *big.Int, addr common.Address)
- func MeshboxVsn(num *big.Int) (string, error)
- func POCInfo() (addr common.Address)
- func PocDeposit(from common.Address, sigHex string) (string, error)
- func PocStart(from, nodeID common.Address) (string, error)
- func PocStop(from, nodeID common.Address) (string, error)
- func PocWithdraw(from, nodeID common.Address) (string, error)
- func PocWithdrawSurplus(from, nodeID common.Address) (string, error)
- func SendToMsgBox(method string) chan MBoxSuccess
- func SendToMsgBoxForFilterVolunteer(hash common.Hash, number *big.Int, addr common.Address) chan MBoxSuccess
- func SendToMsgBoxWithHash(method string, hash common.Hash, number *big.Int) chan MBoxSuccess
- func SetChiefContractCode(addr common.Address, code []byte)
- func TribePeriod() uint64
- func VerifyMiner(parenthash common.Hash, addr common.Address, vrfn []byte) bool
- func VersionWithCommit(gitCommit string) string
- type ChainConfig
- func (c *ChainConfig) CheckCompatible(newcfg *ChainConfig, height uint64) *ConfigCompatError
- func (c *ChainConfig) GasTable(num *big.Int) GasTable
- func (c *ChainConfig) IsByzantium(num *big.Int) bool
- func (c *ChainConfig) IsDAOFork(num *big.Int) bool
- func (c *ChainConfig) IsEIP150(num *big.Int) bool
- func (c *ChainConfig) IsEIP155(num *big.Int) bool
- func (c *ChainConfig) IsEIP158(num *big.Int) bool
- func (c *ChainConfig) IsHomestead(num *big.Int) bool
- func (c *ChainConfig) IsSip004(num *big.Int) bool
- func (c *ChainConfig) Rules(num *big.Int) Rules
- func (c *ChainConfig) String() string
- type ChiefInfo
- type ChiefInfoList
- type ChiefStatus
- type ChiefVolunteers
- type CliqueConfig
- type ConfigCompatError
- type EthashConfig
- type GasTable
- type MBoxSuccess
- type Mbox
- type PocStatus
- type Rules
- type TribeConfig
Constants ¶
const ( POC_METHOD_DEPOSIT = "poc_deposit" POC_METHOD_START = "poc_start" POC_METHOD_STOP = "poc_stop" POC_METHOD_WITHDRAW = "poc_withdraw" POC_METHOD_WITHDRAW_SURPLUS = "poc_withdrawsurplus" POC_METHOD_GET_STATUS = "poc_getall" Chief100Update = "SIP100Update" )
const ( // These are the multipliers for ether denominations. // Example: To get the wei value of an amount in 'douglas', use // // new(big.Int).Mul(value, big.NewInt(params.Douglas)) // Wei = 1 Ada = 1e3 Babbage = 1e6 Shannon = 1e9 Szabo = 1e12 Finney = 1e15 Ether = 1e18 Einstein = 1e21 Douglas = 1e42 )
const ( MaximumExtraDataSize uint64 = 32 // Maximum size extra data may be after Genesis. ExpByteGas uint64 = 10 // Times ceil(log256(exponent)) for the EXP instruction. SloadGas uint64 = 50 // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added. 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. TxGas uint64 = 21000 // Per transaction not creating a contract. NOTE: Not payable on data of calls between transactions. TxGasContractCreation uint64 = 53000 // Per transaction that creates a contract. NOTE: Not payable on data of calls between transactions. TxDataZeroGas uint64 = 4 // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions. 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. BalanceGasFrontier uint64 = 20 // The cost of a BALANCE operation ExtcodeSizeGasFrontier uint64 = 20 // Cost of EXTCODESIZE before EIP 150 (Tangerine) ExtcodeCopyBaseFrontier uint64 = 20 SloadGasFrontier uint64 = 50 CallGasFrontier uint64 = 40 // Once per CALL operation & message call transaction. CallGasEIP150 uint64 = 700 // Static portion of gas for CALL-derivates after EIP 150 (Tangerine) BalanceGasEIP150 uint64 = 400 // The cost of a BALANCE operation after Tangerine ExtcodeSizeGasEIP150 uint64 = 700 // Cost of EXTCODESIZE after EIP 150 (Tangerine) SloadGasEIP150 uint64 = 200 ExtcodeCopyBaseEIP150 uint64 = 700 SstoreSentryGasEIP2200 uint64 = 2300 // Minimum gas required to be present for an SSTORE call, not consumed SstoreSetGasEIP2200 uint64 = 20000 // Once per SSTORE operation from clean zero to non-zero SstoreResetGasEIP2200 uint64 = 5000 // Once per SSTORE operation from clean non-zero to something else SstoreClearsScheduleRefundEIP2200 uint64 = 15000 // Once per SSTORE operation for clearing an originally existing storage slot NetSstoreClearRefund uint64 = 15000 // Once per SSTORE operation for clearing an originally existing storage slot NetSstoreResetRefund uint64 = 4800 // Once per SSTORE operation for resetting to the original non-zero value NetSstoreResetClearRefund uint64 = 19800 // Once per SSTORE operation for resetting to the original zero value NetSstoreNoopGas uint64 = 200 // Once per SSTORE operation if the value doesn't change. NetSstoreInitGas uint64 = 20000 // Once per SSTORE operation from clean zero. NetSstoreCleanGas uint64 = 5000 // Once per SSTORE operation from clean non-zero. NetSstoreDirtyGas uint64 = 200 // Once per SSTORE operation from dirty. SelfdestructRefundGas uint64 = 24000 // Refunded following a selfdestruct operation. CreateBySelfdestructGas uint64 = 25000 SelfdestructGasEIP150 uint64 = 5000 // Cost of SELFDESTRUCT post EIP 150 (Tangerine) // EXP has a dynamic portion depending on the size of the exponent ExpByteFrontier uint64 = 10 // was set to 10 in Frontier ExpByteEIP158 uint64 = 50 // was raised to 50 during Eip158 (Spurious Dragon) SloadGasEIP2200 uint64 = 800 // Cost of SLOAD after EIP 2200 (part of Istanbul) 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 ExtcodeHashGasConstantinople uint64 = 400 // Cost of EXTCODEHASH (introduced in Constantinople) Create2Gas uint64 = 32000 // Once per CREATE2 operation )
const ( VersionMajor = 1 // Major version component of the current release VersionMinor = 1 // Minor version component of the current release VersionPatch = 0 // Patch version component of the current release VersionMeta = "" )
const ( // BloomBitsBlocks is the number of blocks a single bloom bit section vector // contains. BloomBitsBlocks uint64 = 4096 )
Variables ¶
var ( MainnetGenesisHash = common.HexToHash("0xa8ab5ecb308dd061e6baa8c8a04a62b3e35fae7aae1393921f8d52deac2c5712") // enforce below configs on TestnetGenesisHash = common.HexToHash("0x28242478c4f01d9208a79d962b7f6383af488565f36aea7038a34020c07db697") // Testnet genesis hash to enforce below configs on DevnetGenesisHash = common.HexToHash("0xe11f21ee330cfb50c3f31d9b792df2fb5e196739d562e642416974f339aa4304") )
var ( // MainnetChainConfig is the chain parameters to run a node on the main network. MainnetChainConfig = &ChainConfig{ ChainId: big.NewInt(20180430), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: false, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(0), Chief005Block: big.NewInt(2), Chief005Address: common.HexToAddress("0xf0d2ad4e0d25cfea98e9640329993bbc52396abd"), Chief006Block: big.NewInt(595888), Chief006Address: common.HexToAddress("0xba7f507d5aab3e931312512c234fbeb85cbd9dce"), Meshbox001Block: big.NewInt(1870333), Meshbox001Address: common.HexToAddress("0xf0ced0b1ce8738eeac06fdca51e0ff398328634b"), Anmap001Block: big.NewInt(2686801), Anmap001Address: common.HexToAddress("0x23fb7fa0f6f88ce56b70ac3d671315f5baf84bb9"), SIP001Block: big.NewInt(0), SIP002Block: big.NewInt(588888), SIP003Block: big.NewInt(808888), ChiefBaseAddress: common.HexToAddress("0xe1c749f45ee14180853e552d3349cc58972cd082"), PocAddress: common.HexToAddress("0xb9b4ece952c8005f009801e5ec78e116f528c1d0"), Chief100Block: big.NewInt(2823366), Chief100Address: common.HexToAddress("0x890eb8566550e7337c7788ff971a3996860c51b5"), Tribe: &TribeConfig{}, Sip004Block: big.NewInt(8360000), } // TestnetChainConfig contains the chain parameters to run a node on the Ropsten test network. TestnetChainConfig = &ChainConfig{ ChainId: big.NewInt(3), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: true, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(62678), Chief002Block: big.NewInt(2), Chief002Address: common.HexToAddress("0x9ec55c1dafd4a487e41da33e344aef86da41ab82"), Chief003Block: big.NewInt(113772), Chief003Address: common.HexToAddress("0xac28e532b3fac82554fc7b0b8b62549deeeb33a9"), Chief004Block: big.NewInt(120305), Chief004Address: common.HexToAddress("0xe242e2bcf5b0da6518320210fab0a27458bc0674"), Chief005Block: big.NewInt(176244), Chief005Address: common.HexToAddress("0xe90da8175922925dfb40e6505b508f1042e807aa"), Chief006Block: big.NewInt(595710), Chief006Address: common.HexToAddress("0x53cb83888e6d28cf7ec168308c65172001f441aa"), Meshbox001Block: big.NewInt(1976666), Meshbox001Address: common.HexToAddress("0x0f15e1e44322b2946215705d2ed60cba899f0b38"), Anmap001Block: big.NewInt(1310056), Anmap001Address: common.HexToAddress("0x7449931e38dd938d2e8558eda9fe225acf4d14e6"), SIP001Block: big.NewInt(176222), SIP002Block: big.NewInt(525233), SIP003Block: big.NewInt(917013), ChiefBaseAddress: common.HexToAddress("0xeb97d5201a79717675c03e80ef3ed0c00ec777fc"), PocAddress: common.HexToAddress("0xe3d5627f6f854481b23da37cea623411bf090881"), Chief100Block: big.NewInt(1310056), Chief100Address: common.HexToAddress("0x695249d987d10bcccda9bcaa3090db8565c317d1"), Tribe: &TribeConfig{}, Sip004Block: big.NewInt(5530000), } // DevnetChainConfig contains the chain parameters to run a node on the Ropsten test network. DevnetChainConfig = &ChainConfig{ ChainId: big.NewInt(4), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: false, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(0), Chief007Block: big.NewInt(3), Chief007Address: common.HexToAddress("0x57d2bcd8d702999daf240793919675c90b12a17a"), Meshbox002Block: big.NewInt(6), Meshbox002Address: common.HexToAddress("0x7880adce4504fd39645aabb3efb53824d9b0c21b"), Anmap001Block: big.NewInt(6), Anmap001Address: common.HexToAddress("0x143084accd6472ad502b59c3197f9ed5f797b966"), ChiefBaseAddress: common.HexToAddress("0xf096d7f8ae3cd0a85e593accac5e7bc38a756111"), PocAddress: common.HexToAddress("0x48e0f07faf58bc6e713d5c6373ce4f2a8b5c359a"), Chief100Block: big.NewInt(63), Chief100Address: common.HexToAddress("0x21c5dc409138205291d6a7ef2dbb1701ac02ff96"), SIP001Block: big.NewInt(0), SIP002Block: big.NewInt(1), SIP003Block: big.NewInt(3), Tribe: &TribeConfig{Period: 3}, Sip004Block: big.NewInt(4), } // AllEthashProtocolChanges contains every protocol change (EIPs) introduced // and accepted by the Ethereum core developers into the Ethash consensus. // // This configuration is intentionally not using keyed fields to force anyone // adding flags to the config to also have to set these fields. AllEthashProtocolChanges = &ChainConfig{ ChainId: big.NewInt(1337), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: false, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(0), Ethash: new(EthashConfig), Clique: nil, Tribe: nil, } // AllCliqueProtocolChanges contains every protocol change (EIPs) introduced // and accepted by the Ethereum core developers into the Clique consensus. // // This configuration is intentionally not using keyed fields to force anyone // adding flags to the config to also have to set these fields. AllCliqueProtocolChanges = &ChainConfig{ ChainId: big.NewInt(1337), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: false, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(0), Ethash: nil, Clique: &CliqueConfig{Period: 0, Epoch: 30000}, Tribe: nil, } TestChainConfig = &ChainConfig{ ChainId: big.NewInt(1), HomesteadBlock: big.NewInt(0), DAOForkBlock: nil, DAOForkSupport: false, EIP150Block: big.NewInt(0), EIP150Hash: common.Hash{}, EIP155Block: big.NewInt(0), EIP158Block: big.NewInt(0), ByzantiumBlock: big.NewInt(0), Ethash: new(EthashConfig), Clique: nil, Tribe: nil, } TestRules = TestChainConfig.Rules(new(big.Int)) )
var ( ChiefBaseBalance = new(big.Int).Mul(big.NewInt(1), big.NewInt(Finney)) MboxChan = make(chan Mbox, 32) StatuteService = make(chan Mbox, 384) //PocService 用于poc 服务 PocService = make(chan Mbox, 32) //close at tribe.init TribeReadyForAcceptTxs = make(chan struct{}) InitTribe = make(chan struct{}) InitMeshbox = make(chan struct{}) InitAnmap = make(chan struct{}) //close at tribeService InitTribeStatus = make(chan struct{}) )
var ( // GasTableHomestead contain the gas prices for // the homestead phase. GasTableHomestead = GasTable{ ExtcodeSize: 20, ExtcodeCopy: 20, Balance: 20, SLoad: 50, Calls: 40, Suicide: 0, ExpByte: 10, } // GasTableHomestead contain the gas re-prices for // the homestead phase. GasTableEIP150 = GasTable{ ExtcodeSize: 700, ExtcodeCopy: 700, Balance: 400, SLoad: 200, Calls: 700, Suicide: 5000, ExpByte: 10, CreateBySuicide: 25000, } GasTableEIP158 = GasTable{ ExtcodeSize: 700, ExtcodeCopy: 700, Balance: 400, SLoad: 200, Calls: 700, Suicide: 5000, ExpByte: 50, CreateBySuicide: 25000, } )
var ( GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations. MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be. GenesisGasLimit = big.NewInt(4712388) // Gas limit of the Genesis block. TargetGasLimit = new(big.Int).Set(GenesisGasLimit) // The artificial target 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. Sip004GasLimit = big.NewInt(40000000) // Minimum gas limit after hardfork )
var DAOForkBlockExtra = common.FromHex("0x64616f2d686172642d666f726b")
DAOForkBlockExtra is the block header extra-data field to set for the DAO fork point and a number of consecutive blocks to allow fast/light syncers to correctly pick the side they want ("dao-hard-fork").
var DAOForkExtraRange = big.NewInt(10)
DAOForkExtraRange is the number of consecutive blocks from the DAO fork point to override the extra-data in to prevent no-fork attacks.
var DAORefundContract = common.HexToAddress("0xbf4ed7b27f1d666546e30d74d50d173d20bca754")
DAORefundContract is the address of the refund contract to send DAO balances to.
var DevnetBootnodes = []string{}
var DiscoveryV5Bootnodes = []string{}
DiscoveryV5Bootnodes are the enode URLs of the P2P bootstrap nodes for the experimental RLPx v5 topic-discovery network.
var MainnetBootnodes = []string{
"enode://697d18773e08d2ac01c6d6b653ad4f8942bc805118cc09f41508c55e05e5043fb801df7783493e9f87be3b62a1d4da4d753f4b9bbf8921c09ebace0a165ac223@47.105.34.94:44944",
"enode://a69b1cb395ae4d0520d8c82df448ce17daf8b4ce175a0fe892b8a7544abe55a3c3297e67ac7be5ed5d99c2d0b56e6cc3c1b4b33fc62ade55772d5d240ac0ab39@47.100.215.147:44944",
"enode://61a5563bd1bf71e2ed7f0daed3c8e597836fcdbebe1e74f07d02c78c53700a193678dd2cff4459f2b3f41ef6e7da3980d332aa4116ba3fa6a9032d4742c4a567@47.88.171.32:44944",
"enode://a1b98a704a7bf23ecdebdc32488c5f20a41e20446d717e04c20f42bcf479d201e5db388d669df19310977aeba39615d116cb6fc7989679d29629b4fc97cf58df@47.75.71.34:44944",
"enode://722cc5d7c735d472d59513c7170878f0402f7297e17e616dfbaf67efae1176773242683b0aca4aef7450f49c62d9f685a2ec08382ab189fcd69790cab102954e@47.254.151.108:44944",
"enode://1c0f7ecf9bc730e9feaa723574516358d44ace33bed337340ff3886841886cbf2df0301146162711a75d3c0e59f09f09bcafb66e4ec250340e7072d84520bb54@47.89.247.28:44944",
}
var RinkebyBootnodes = []string{}
var RinkebyV5Bootnodes = []string{}
var TestnetBootnodes = []string{
"enode://c65553f06d82bc26fb6e6126e619f682ae59529f5506ae98269cc60de3c803bf3d8abd99ef7a64ce777f554a4f5d3be70078d319afff59015b7a9d23a5e3c3a1@123.207.146.205:44944",
}
var Version = func() string { v := fmt.Sprintf("%d.%d.%d", VersionMajor, VersionMinor, VersionPatch) if VersionMeta != "" { v += "-" + VersionMeta } return v }()
Version holds the textual version string.
Functions ¶
func AnmapBindInfo ¶
func CanNomination ¶
genesis node do not can be nomination
func Chief100GetNextRoundSigner ¶
依据vrf,依据上一块的状态来选取下一轮的出块地址
func DAODrainList ¶
DAODrainList is the list of accounts whose full balances will be moved into a refund contract at the beginning of the dao-fork block.
func GetIPCPath ¶
func GetIPCPath() string
func IsBeforeChief100block ¶
skip verify difficulty on this old hardfork block number
func IsChiefAddress ¶
func IsChiefAddressOnBlock ¶
func IsChiefCalled ¶
func IsChiefUpdate ¶
func IsReadyAnmap ¶
func IsReadyMeshbox ¶
func IsSIP001Block ¶
if input num less then nr001block ,enable new role for chief.tx's gaspool
func IsSIP002Block ¶
new_rule_002 to change block period SIP002Block must big then zero
func IsSIP003Block ¶
add by liangc : 18-09-13 : incompatible HomesteadSigner begin at this number
func IsSIP100Block ¶
add by liangc : 19-05-31 : for smc-1.0.0 may be discard
func MeshboxExistAddress ¶
func PocDeposit ¶
PocDeposit poc质押操作
func PocWithdraw ¶
PocWithdraw 在停止PocStop两周后,可以从poc合约中撤回押金到自己账户
func PocWithdrawSurplus ¶
PocWithdrawSurplus 因为手工调用Poc Withdraw合约,一次性抵押过多,后续可以选择撤回多余的抵押
func SendToMsgBox ¶
func SendToMsgBox(method string) chan MBoxSuccess
func SendToMsgBoxWithHash ¶
called by chief.GetStatus
func SetChiefContractCode ¶
func TribePeriod ¶
func TribePeriod() uint64
func VersionWithCommit ¶
Types ¶
type ChainConfig ¶
type ChainConfig struct { ChainId *big.Int `json:"chainId"` // Chain id identifies the current chain and is used for replay protection HomesteadBlock *big.Int `json:"homesteadBlock,omitempty"` // Homestead switch block (nil = no fork, 0 = already homestead) DAOForkBlock *big.Int `json:"daoForkBlock,omitempty"` // TheDAO hard-fork switch block (nil = no fork) DAOForkSupport bool `json:"daoForkSupport,omitempty"` // Whether the nodes supports or opposes the DAO hard-fork // EIP150 implements the Gas price changes (https://github.com/ethereum/EIPs/issues/150) EIP150Block *big.Int `json:"eip150Block,omitempty"` // EIP150 HF block (nil = no fork) EIP150Hash common.Hash `json:"eip150Hash,omitempty"` // EIP150 HF hash (needed for header only clients as only gas pricing changed) EIP155Block *big.Int `json:"eip155Block,omitempty"` // EIP155 HF block EIP158Block *big.Int `json:"eip158Block,omitempty"` // EIP158 HF block ByzantiumBlock *big.Int `json:"byzantiumBlock,omitempty"` // Byzantium switch block (nil = no fork, 0 = already on byzantium) // Various consensus engines Ethash *EthashConfig `json:"ethash,omitempty"` Clique *CliqueConfig `json:"clique,omitempty"` Tribe *TribeConfig `json:"tribe,omitempty"` // add by liangc // >>> add by liangc : set chief start number >>> // chief.sol vsn 0.0.2 Chief002Block *big.Int `json:"chief002Block,omitempty"` Chief002Address common.Address `json:"chief002Address,omitempty"` // chief.sol vsn 0.0.3 Chief003Block *big.Int `json:"chief003Block,omitempty"` Chief003Address common.Address `json:"chief003Address,omitempty"` // chief.sol vsn 0.0.4 Chief004Block *big.Int `json:"chief004Block,omitempty"` Chief004Address common.Address `json:"chief004Address,omitempty"` // chief.sol vsn 0.0.5 Chief005Block *big.Int `json:"chief005Block,omitempty"` Chief005Address common.Address `json:"chief005Address,omitempty"` // chief.sol vsn 0.0.6 Chief006Block *big.Int `json:"chief006Block,omitempty"` Chief006Address common.Address `json:"chief006Address,omitempty"` // extends 0.0.6 only for dev and test Chief007Block *big.Int `json:"chief007Block,omitempty"` Chief007Address common.Address `json:"chief007Address,omitempty"` // https://github.com/MeshBoxFoundation/meshbox/wiki/%5BChinese%5D-v1.0.0-Standard Chief100Block *big.Int `json:"chief100Block,omitempty"` Chief100Address common.Address `json:"chief100Address,omitempty"` ChiefBaseAddress common.Address `json:"chiefBaseAddress,omitempty"` //PocBlock *big.Int `json:"PocBlock,omitempty"` PocAddress common.Address `json:"PocAddress,omitempty"` // <<< add by liangc : set chief start number <<< // add by liangc : new rules for chief.tx of gaspool SIP001Block *big.Int `json:"sip001Block,omitempty"` // SIP001 HF block // add by liangc : new rules for block period SIP002Block *big.Int `json:"sip002Block,omitempty"` // SIP002 HF block // add by liangc : 18-09-13 : incompatible HomesteadSigner begin at this number SIP003Block *big.Int `json:"sip003Block,omitempty"` Meshbox001Block *big.Int `json:"meshbox001Block,omitempty"` Meshbox001Address common.Address `json:"meshbox001Address,omitempty"` // Note that : meshbox002 must is superset of meshbox001 Meshbox002Block *big.Int `json:"meshbox002Block,omitempty"` Meshbox002Address common.Address `json:"meshbox002Address,omitempty"` Anmap001Block *big.Int `json:"anmap001Block,omitempty"` Anmap001Address common.Address `json:"anmap001Address,omitempty"` Sip004Block *big.Int `json:"sip2021,omitempty"` }
ChainConfig is the core config which determines the blockchain settings.
ChainConfig is stored in the database on a per block basis. This means that any network, identified by its genesis block, can have its own set of configuration options.
func (*ChainConfig) CheckCompatible ¶
func (c *ChainConfig) CheckCompatible(newcfg *ChainConfig, height uint64) *ConfigCompatError
CheckCompatible checks whether scheduled fork transitions have been imported with a mismatching chain configuration.
func (*ChainConfig) GasTable ¶
func (c *ChainConfig) GasTable(num *big.Int) GasTable
GasTable returns the gas table corresponding to the current phase (homestead or homestead reprice).
The returned GasTable's fields shouldn't, under any circumstances, be changed.
func (*ChainConfig) IsByzantium ¶
func (c *ChainConfig) IsByzantium(num *big.Int) bool
func (*ChainConfig) IsDAOFork ¶
func (c *ChainConfig) IsDAOFork(num *big.Int) bool
IsDAO returns whether num is either equal to the DAO fork block or greater.
func (*ChainConfig) IsHomestead ¶
func (c *ChainConfig) IsHomestead(num *big.Int) bool
IsHomestead returns whether num is either equal to the homestead block or greater.
func (*ChainConfig) String ¶
func (c *ChainConfig) String() string
String implements the fmt.Stringer interface.
type ChiefInfo ¶
type ChiefInfo struct {
StartNumber, PocStartNumber *big.Int // 0 is nil
Version string
Addr, PocAddr, BaseAddr common.Address
}
func GetChiefInfo ¶
func GetChiefInfoByVsn ¶
type ChiefInfoList ¶
type ChiefInfoList []*ChiefInfo
func (ChiefInfoList) Len ¶
func (p ChiefInfoList) Len() int
func (ChiefInfoList) Less ¶
func (p ChiefInfoList) Less(i, j int) bool
func (ChiefInfoList) Swap ¶
func (p ChiefInfoList) Swap(i, j int)
type ChiefStatus ¶
type ChiefStatus struct { LeaderList []common.Address VolunteerList []common.Address SignerList []common.Address BlackList []common.Address // append by vsn 0.0.3 ScoreList []*big.Int NumberList []*big.Int Number *big.Int Epoch *big.Int LeaderLimit *big.Int SignerLimit *big.Int VolunteerLimit *big.Int TotalVolunteer *big.Int }
clone from chief.getStatus return struct for return to tribe by channel
func TribeGetStatus ¶
type ChiefVolunteers ¶
type ChiefVolunteers struct { VolunteerList []common.Address WeightList []*big.Int Length *big.Int }
clone from chief.getVolunteers return struct for return to tribe by channel append by vsn 0.0.6
type CliqueConfig ¶
type CliqueConfig struct { Period uint64 `json:"period"` // Number of seconds between blocks to enforce Epoch uint64 `json:"epoch"` // Epoch length to reset votes and checkpoint }
CliqueConfig is the consensus engine configs for proof-of-authority based sealing.
func (*CliqueConfig) String ¶
func (c *CliqueConfig) String() string
String implements the stringer interface, returning the consensus engine details.
type ConfigCompatError ¶
type ConfigCompatError struct { What string // block numbers of the stored and new configurations StoredConfig, NewConfig *big.Int // the block number to which the local chain must be rewound to correct the error RewindTo uint64 }
ConfigCompatError is raised if the locally-stored blockchain is initialised with a ChainConfig that would alter the past.
func (*ConfigCompatError) Error ¶
func (err *ConfigCompatError) Error() string
type EthashConfig ¶
type EthashConfig struct{}
EthashConfig is the consensus engine configs for proof-of-work based sealing.
func (*EthashConfig) String ¶
func (c *EthashConfig) String() string
String implements the stringer interface, returning the consensus engine details.
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 }
type MBoxSuccess ¶
type MBoxSuccess struct { Success bool Entity interface{} }
type Mbox ¶
type Mbox struct { Method string Rtn chan MBoxSuccess Params map[string]interface{} }
chief service message box obj
type PocStatus ¶
type PocStatus struct { MinerList []common.Address AmountList []*big.Int BlockList []*big.Int OwnerList []common.Address BlackStatusList []*big.Int }
PocStatus Poc状态
type Rules ¶
type Rules struct { ChainId *big.Int IsHomestead, IsEIP150, IsEIP155, IsEIP158 bool IsByzantium bool IsSip004 bool }
Rules wraps ChainConfig and is merely syntatic sugar or can be used for functions that do not have or require information about the block.
Rules is a one time interface meaning that it shouldn't be used in between transition phases.
type TribeConfig ¶
type TribeConfig struct {
Period uint64 `json:"period"` // Number of seconds between blocks to enforce
}
TribeConfig is the consensus engine configs.
func (*TribeConfig) String ¶
func (c *TribeConfig) String() string
String implements the stringer interface, returning the consensus engine details.