forked from cerc-io/plugeth
cmd/geth, core, eth: Version 1.0.0
Genesis release. Closes #1402 Conflicts: cmd/geth/main.go
This commit is contained in:
parent
5001f778aa
commit
036e6301af
@ -49,7 +49,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
ClientIdentifier = "Geth"
|
ClientIdentifier = "Geth"
|
||||||
Version = "0.9.39"
|
Version = "1.0.0"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -276,7 +276,6 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
|
|||||||
utils.IdentityFlag,
|
utils.IdentityFlag,
|
||||||
utils.UnlockedAccountFlag,
|
utils.UnlockedAccountFlag,
|
||||||
utils.PasswordFileFlag,
|
utils.PasswordFileFlag,
|
||||||
utils.GenesisNonceFlag,
|
|
||||||
utils.GenesisFileFlag,
|
utils.GenesisFileFlag,
|
||||||
utils.BootnodesFlag,
|
utils.BootnodesFlag,
|
||||||
utils.DataDirFlag,
|
utils.DataDirFlag,
|
||||||
|
@ -28,6 +28,9 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func ExampleGenerateChain() {
|
func ExampleGenerateChain() {
|
||||||
|
params.MinGasLimit = big.NewInt(125000) // Minimum the gas limit may ever be.
|
||||||
|
params.GenesisGasLimit = big.NewInt(3141592) // Gas limit of the Genesis block.
|
||||||
|
|
||||||
var (
|
var (
|
||||||
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
|
||||||
key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a")
|
key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a")
|
||||||
|
@ -98,13 +98,7 @@ func NewChainManager(blockDb, stateDb, extraDb common.Database, pow pow.PoW, mux
|
|||||||
|
|
||||||
bc.genesisBlock = bc.GetBlockByNumber(0)
|
bc.genesisBlock = bc.GetBlockByNumber(0)
|
||||||
if bc.genesisBlock == nil {
|
if bc.genesisBlock == nil {
|
||||||
// XXX Uncomment me before Frontier
|
return nil, ErrNoGenesis
|
||||||
//return nil, ErrNoGenesis
|
|
||||||
genesis, err := WriteTestNetGenesisBlock(bc.stateDb, bc.blockDb, 42)
|
|
||||||
if err != nil {
|
|
||||||
glog.Fatalln("genisis err", err)
|
|
||||||
}
|
|
||||||
bc.genesisBlock = genesis
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := bc.setLastState(); err != nil {
|
if err := bc.setLastState(); err != nil {
|
||||||
|
@ -95,6 +95,7 @@ func NewProtocolManager(networkId int, mux *event.TypeMux, txpool txPool, pow po
|
|||||||
newPeerCh: make(chan *peer, 1),
|
newPeerCh: make(chan *peer, 1),
|
||||||
txsyncCh: make(chan *txsync),
|
txsyncCh: make(chan *txsync),
|
||||||
quitSync: make(chan struct{}),
|
quitSync: make(chan struct{}),
|
||||||
|
netId: networkId,
|
||||||
}
|
}
|
||||||
// Initiate a sub-protocol for every implemented version we can handle
|
// Initiate a sub-protocol for every implemented version we can handle
|
||||||
manager.SubProtocols = make([]p2p.Protocol, len(ProtocolVersions))
|
manager.SubProtocols = make([]p2p.Protocol, len(ProtocolVersions))
|
||||||
|
@ -30,7 +30,7 @@ var ProtocolVersions = []uint{61, 60}
|
|||||||
var ProtocolLengths = []uint64{9, 8}
|
var ProtocolLengths = []uint64{9, 8}
|
||||||
|
|
||||||
const (
|
const (
|
||||||
NetworkId = 0
|
NetworkId = 1
|
||||||
ProtocolMaxMsgSize = 10 * 1024 * 1024 // Maximum cap on the size of a protocol message
|
ProtocolMaxMsgSize = 10 * 1024 * 1024 // Maximum cap on the size of a protocol message
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -60,7 +60,7 @@ func TestStatusMsgErrors(t *testing.T) {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
code: StatusMsg, data: statusData{uint32(ProtocolVersions[0]), 999, td, currentBlock, genesis},
|
code: StatusMsg, data: statusData{uint32(ProtocolVersions[0]), 999, td, currentBlock, genesis},
|
||||||
wantError: errResp(ErrNetworkIdMismatch, "999 (!= 0)"),
|
wantError: errResp(ErrNetworkIdMismatch, "999 (!= 1)"),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
code: StatusMsg, data: statusData{uint32(ProtocolVersions[0]), NetworkId, td, currentBlock, common.Hash{3}},
|
code: StatusMsg, data: statusData{uint32(ProtocolVersions[0]), NetworkId, td, currentBlock, common.Hash{3}},
|
||||||
@ -184,7 +184,7 @@ func newProtocolManagerForTesting(txAdded chan<- []*types.Transaction) *Protocol
|
|||||||
em = new(event.TypeMux)
|
em = new(event.TypeMux)
|
||||||
chain, _ = core.NewChainManager(db, db, db, core.FakePow{}, em)
|
chain, _ = core.NewChainManager(db, db, db, core.FakePow{}, em)
|
||||||
txpool = &fakeTxPool{added: txAdded}
|
txpool = &fakeTxPool{added: txAdded}
|
||||||
pm = NewProtocolManager(0, em, txpool, core.FakePow{}, chain)
|
pm = NewProtocolManager(NetworkId, em, txpool, core.FakePow{}, chain)
|
||||||
)
|
)
|
||||||
pm.Start()
|
pm.Start()
|
||||||
return pm
|
return pm
|
||||||
|
@ -22,49 +22,51 @@ package params
|
|||||||
import "math/big"
|
import "math/big"
|
||||||
|
|
||||||
var (
|
var (
|
||||||
MaximumExtraDataSize = big.NewInt(1024) // Maximum size extra data may be after Genesis.
|
MaximumExtraDataSize = big.NewInt(1024) // Maximum size extra data may be after Genesis.
|
||||||
ExpByteGas = big.NewInt(10) // Times ceil(log256(exponent)) for the EXP instruction.
|
ExpByteGas = big.NewInt(10) // Times ceil(log256(exponent)) for the EXP instruction.
|
||||||
SloadGas = big.NewInt(50) // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added.
|
SloadGas = big.NewInt(50) // Multiplied by the number of 32-byte words that are copied (round up) for any *COPY operation and added.
|
||||||
CallValueTransferGas = big.NewInt(9000) // Paid for CALL when the value transfor is non-zero.
|
CallValueTransferGas = big.NewInt(9000) // Paid for CALL when the value transfor is non-zero.
|
||||||
CallNewAccountGas = big.NewInt(25000) // Paid for CALL when the destination address didn't exist prior.
|
CallNewAccountGas = big.NewInt(25000) // Paid for CALL when the destination address didn't exist prior.
|
||||||
TxGas = big.NewInt(21000) // Per transaction. NOTE: Not payable on data of calls between transactions.
|
TxGas = big.NewInt(21000) // Per transaction. NOTE: Not payable on data of calls between transactions.
|
||||||
TxDataZeroGas = big.NewInt(4) // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions.
|
TxDataZeroGas = big.NewInt(4) // Per byte of data attached to a transaction that equals zero. NOTE: Not payable on data of calls between transactions.
|
||||||
GenesisGasLimit = big.NewInt(3141592) // Gas limit of the Genesis block.
|
DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations.
|
||||||
DifficultyBoundDivisor = big.NewInt(2048) // The bound divisor of the difficulty, used in the update calculations.
|
QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation.
|
||||||
QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation.
|
GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block.
|
||||||
GenesisDifficulty = big.NewInt(131072) // Difficulty of the Genesis block.
|
DurationLimit = big.NewInt(8) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not.
|
||||||
DurationLimit = big.NewInt(8) // The decision boundary on the blocktime duration used to determine whether difficulty should go up or not.
|
SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
|
||||||
SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
|
LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
|
||||||
LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
|
CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
|
||||||
CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
|
EcrecoverGas = big.NewInt(3000) //
|
||||||
EcrecoverGas = big.NewInt(3000) //
|
Sha256WordGas = big.NewInt(12) //
|
||||||
Sha256WordGas = big.NewInt(12) //
|
|
||||||
MinGasLimit = big.NewInt(125000) // Minimum the gas limit may ever be.
|
MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be.
|
||||||
Sha3Gas = big.NewInt(30) // Once per SHA3 operation.
|
GenesisGasLimit = big.NewInt(5000) // Gas limit of the Genesis block.
|
||||||
Sha256Gas = big.NewInt(60) //
|
|
||||||
IdentityWordGas = big.NewInt(3) //
|
Sha3Gas = big.NewInt(30) // Once per SHA3 operation.
|
||||||
Sha3WordGas = big.NewInt(6) // Once per word of the SHA3 operation's data.
|
Sha256Gas = big.NewInt(60) //
|
||||||
SstoreResetGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness changes from zero.
|
IdentityWordGas = big.NewInt(3) //
|
||||||
SstoreClearGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness doesn't change.
|
Sha3WordGas = big.NewInt(6) // Once per word of the SHA3 operation's data.
|
||||||
SstoreRefundGas = big.NewInt(15000) // Once per SSTORE operation if the zeroness changes to zero.
|
SstoreResetGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness changes from zero.
|
||||||
JumpdestGas = big.NewInt(1) // Refunded gas, once per SSTORE operation if the zeroness changes to zero.
|
SstoreClearGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness doesn't change.
|
||||||
IdentityGas = big.NewInt(15) //
|
SstoreRefundGas = big.NewInt(15000) // Once per SSTORE operation if the zeroness changes to zero.
|
||||||
GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations.
|
JumpdestGas = big.NewInt(1) // Refunded gas, once per SSTORE operation if the zeroness changes to zero.
|
||||||
EpochDuration = big.NewInt(30000) // Duration between proof-of-work epochs.
|
IdentityGas = big.NewInt(15) //
|
||||||
CallGas = big.NewInt(40) // Once per CALL operation & message call transaction.
|
GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations.
|
||||||
CreateDataGas = big.NewInt(200) //
|
EpochDuration = big.NewInt(30000) // Duration between proof-of-work epochs.
|
||||||
Ripemd160Gas = big.NewInt(600) //
|
CallGas = big.NewInt(40) // Once per CALL operation & message call transaction.
|
||||||
Ripemd160WordGas = big.NewInt(120) //
|
CreateDataGas = big.NewInt(200) //
|
||||||
MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be.
|
Ripemd160Gas = big.NewInt(600) //
|
||||||
CallCreateDepth = big.NewInt(1024) // Maximum depth of call/create stack.
|
Ripemd160WordGas = big.NewInt(120) //
|
||||||
ExpGas = big.NewInt(10) // Once per EXP instuction.
|
MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be.
|
||||||
LogGas = big.NewInt(375) // Per LOG* operation.
|
CallCreateDepth = big.NewInt(1024) // Maximum depth of call/create stack.
|
||||||
CopyGas = big.NewInt(3) //
|
ExpGas = big.NewInt(10) // Once per EXP instuction.
|
||||||
StackLimit = big.NewInt(1024) // Maximum size of VM stack allowed.
|
LogGas = big.NewInt(375) // Per LOG* operation.
|
||||||
TierStepGas = big.NewInt(0) // Once per operation, for a selection of them.
|
CopyGas = big.NewInt(3) //
|
||||||
LogTopicGas = big.NewInt(375) // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas.
|
StackLimit = big.NewInt(1024) // Maximum size of VM stack allowed.
|
||||||
CreateGas = big.NewInt(32000) // Once per CREATE operation & contract-creation transaction.
|
TierStepGas = big.NewInt(0) // Once per operation, for a selection of them.
|
||||||
SuicideRefundGas = big.NewInt(24000) // Refunded following a suicide operation.
|
LogTopicGas = big.NewInt(375) // Multiplied by the * of the LOG*, per LOG transaction. e.g. LOG0 incurs 0 * c_txLogTopicGas, LOG4 incurs 4 * c_txLogTopicGas.
|
||||||
MemoryGas = big.NewInt(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.
|
CreateGas = big.NewInt(32000) // Once per CREATE operation & contract-creation transaction.
|
||||||
TxDataNonZeroGas = big.NewInt(68) // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions.
|
SuicideRefundGas = big.NewInt(24000) // Refunded following a suicide operation.
|
||||||
|
MemoryGas = big.NewInt(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 = big.NewInt(68) // Per byte of data attached to a transaction that is not equal to zero. NOTE: Not payable on data of calls between transactions.
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user