aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cmd/geth/main.go3
-rw-r--r--core/chain_makers_test.go5
-rw-r--r--core/chain_manager.go8
-rw-r--r--core/fees.go2
-rw-r--r--eth/handler.go1
-rw-r--r--eth/protocol.go2
-rw-r--r--eth/protocol_test.go4
-rw-r--r--ethdb/database.go10
-rwxr-xr-xparams/protocol_params.go92
-rw-r--r--tests/block_test.go8
-rw-r--r--trie/cache.go4
11 files changed, 73 insertions, 66 deletions
diff --git a/cmd/geth/main.go b/cmd/geth/main.go
index 17f95ca79..68a2c79e2 100644
--- a/cmd/geth/main.go
+++ b/cmd/geth/main.go
@@ -49,7 +49,7 @@ import (
const (
ClientIdentifier = "Geth"
- Version = "0.9.39"
+ Version = "1.0.0"
)
var (
@@ -276,7 +276,6 @@ JavaScript API. See https://github.com/ethereum/go-ethereum/wiki/Javascipt-Conso
utils.IdentityFlag,
utils.UnlockedAccountFlag,
utils.PasswordFileFlag,
- utils.GenesisNonceFlag,
utils.GenesisFileFlag,
utils.BootnodesFlag,
utils.DataDirFlag,
diff --git a/core/chain_makers_test.go b/core/chain_makers_test.go
index 715e4c7ac..edc0333be 100644
--- a/core/chain_makers_test.go
+++ b/core/chain_makers_test.go
@@ -28,6 +28,9 @@ import (
)
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 (
key1, _ = crypto.HexToECDSA("b71c71a67e1177ad4e901695e1b4b9ee17ae16c6668d313eac2f96dbcda3f291")
key2, _ = crypto.HexToECDSA("8a1f9a8f95be41cd7ccb6168179afb4504aefe388d1e14474d32c45c72ce7b7a")
@@ -90,5 +93,5 @@ func ExampleGenerateChain() {
// last block: #5
// balance of addr1: 989000
// balance of addr2: 10000
- // balance of addr3: 5906250000000001000
+ // balance of addr3: 19687500000000001000
}
diff --git a/core/chain_manager.go b/core/chain_manager.go
index 0f008dfa7..5c132a668 100644
--- a/core/chain_manager.go
+++ b/core/chain_manager.go
@@ -98,13 +98,7 @@ func NewChainManager(blockDb, stateDb, extraDb common.Database, pow pow.PoW, mux
bc.genesisBlock = bc.GetBlockByNumber(0)
if bc.genesisBlock == nil {
- // XXX Uncomment me before Frontier
- //return nil, ErrNoGenesis
- genesis, err := WriteTestNetGenesisBlock(bc.stateDb, bc.blockDb, 42)
- if err != nil {
- glog.Fatalln("genisis err", err)
- }
- bc.genesisBlock = genesis
+ return nil, ErrNoGenesis
}
if err := bc.setLastState(); err != nil {
diff --git a/core/fees.go b/core/fees.go
index 3f6177975..29ba5c5a6 100644
--- a/core/fees.go
+++ b/core/fees.go
@@ -20,4 +20,4 @@ import (
"math/big"
)
-var BlockReward *big.Int = big.NewInt(1.5e+18)
+var BlockReward *big.Int = big.NewInt(5e+18)
diff --git a/eth/handler.go b/eth/handler.go
index 5ea9a3fdb..f2ae2b6f7 100644
--- a/eth/handler.go
+++ b/eth/handler.go
@@ -95,6 +95,7 @@ func NewProtocolManager(networkId int, mux *event.TypeMux, txpool txPool, pow po
newPeerCh: make(chan *peer, 1),
txsyncCh: make(chan *txsync),
quitSync: make(chan struct{}),
+ netId: networkId,
}
// Initiate a sub-protocol for every implemented version we can handle
manager.SubProtocols = make([]p2p.Protocol, len(ProtocolVersions))
diff --git a/eth/protocol.go b/eth/protocol.go
index 5e2454999..226b98360 100644
--- a/eth/protocol.go
+++ b/eth/protocol.go
@@ -30,7 +30,7 @@ var ProtocolVersions = []uint{61, 60}
var ProtocolLengths = []uint64{9, 8}
const (
- NetworkId = 0
+ NetworkId = 1
ProtocolMaxMsgSize = 10 * 1024 * 1024 // Maximum cap on the size of a protocol message
)
diff --git a/eth/protocol_test.go b/eth/protocol_test.go
index 7dcbc714c..4a6736b7a 100644
--- a/eth/protocol_test.go
+++ b/eth/protocol_test.go
@@ -60,7 +60,7 @@ func TestStatusMsgErrors(t *testing.T) {
},
{
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}},
@@ -184,7 +184,7 @@ func newProtocolManagerForTesting(txAdded chan<- []*types.Transaction) *Protocol
em = new(event.TypeMux)
chain, _ = core.NewChainManager(db, db, db, core.FakePow{}, em)
txpool = &fakeTxPool{added: txAdded}
- pm = NewProtocolManager(0, em, txpool, core.FakePow{}, chain)
+ pm = NewProtocolManager(NetworkId, em, txpool, core.FakePow{}, chain)
)
pm.Start()
return pm
diff --git a/ethdb/database.go b/ethdb/database.go
index 9c9dfe9a1..bf27df592 100644
--- a/ethdb/database.go
+++ b/ethdb/database.go
@@ -23,7 +23,6 @@ import (
"sync"
"time"
- "github.com/ethereum/go-ethereum/compression/rle"
"github.com/ethereum/go-ethereum/logger"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/ethereum/go-ethereum/metrics"
@@ -100,12 +99,12 @@ func (self *LDBDatabase) Put(key []byte, value []byte) error {
defer self.putTimer.UpdateSince(time.Now())
}
// Generate the data to write to disk, update the meter and write
- dat := rle.Compress(value)
+ //value = rle.Compress(value)
if self.writeMeter != nil {
- self.writeMeter.Mark(int64(len(dat)))
+ self.writeMeter.Mark(int64(len(value)))
}
- return self.db.Put(key, dat, nil)
+ return self.db.Put(key, value, nil)
}
// Get returns the given key if it's present.
@@ -126,7 +125,8 @@ func (self *LDBDatabase) Get(key []byte) ([]byte, error) {
if self.readMeter != nil {
self.readMeter.Mark(int64(len(dat)))
}
- return rle.Decompress(dat)
+ return dat, nil
+ //return rle.Decompress(dat)
}
// Delete deletes the key from the queue and database
diff --git a/params/protocol_params.go b/params/protocol_params.go
index ae64c46c4..5c34abe8c 100755
--- a/params/protocol_params.go
+++ b/params/protocol_params.go
@@ -22,49 +22,51 @@ package params
import "math/big"
var (
- MaximumExtraDataSize = big.NewInt(1024) // Maximum size extra data may be after Genesis.
- 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.
- 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.
- 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.
- 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.
- QuadCoeffDiv = big.NewInt(512) // Divisor for the quadratic particle of the memory cost equation.
- 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.
- SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
- LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
- CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
- EcrecoverGas = big.NewInt(3000) //
- Sha256WordGas = big.NewInt(12) //
- MinGasLimit = big.NewInt(125000) // Minimum the gas limit may ever be.
- Sha3Gas = big.NewInt(30) // Once per SHA3 operation.
- Sha256Gas = big.NewInt(60) //
- IdentityWordGas = big.NewInt(3) //
- Sha3WordGas = big.NewInt(6) // Once per word of the SHA3 operation's data.
- SstoreResetGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness changes from zero.
- SstoreClearGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness doesn't change.
- SstoreRefundGas = big.NewInt(15000) // Once per SSTORE operation if the zeroness changes to zero.
- JumpdestGas = big.NewInt(1) // Refunded gas, once per SSTORE operation if the zeroness changes to zero.
- IdentityGas = big.NewInt(15) //
- GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations.
- EpochDuration = big.NewInt(30000) // Duration between proof-of-work epochs.
- CallGas = big.NewInt(40) // Once per CALL operation & message call transaction.
- CreateDataGas = big.NewInt(200) //
- Ripemd160Gas = big.NewInt(600) //
- Ripemd160WordGas = big.NewInt(120) //
- MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be.
- CallCreateDepth = big.NewInt(1024) // Maximum depth of call/create stack.
- ExpGas = big.NewInt(10) // Once per EXP instuction.
- LogGas = big.NewInt(375) // Per LOG* operation.
- CopyGas = big.NewInt(3) //
- StackLimit = big.NewInt(1024) // Maximum size of VM stack allowed.
- TierStepGas = big.NewInt(0) // Once per operation, for a selection of them.
- 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.
- CreateGas = big.NewInt(32000) // Once per CREATE operation & contract-creation transaction.
- 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.
+ MaximumExtraDataSize = big.NewInt(1024) // Maximum size extra data may be after Genesis.
+ 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.
+ 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.
+ 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.
+ 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.
+ 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.
+ SstoreSetGas = big.NewInt(20000) // Once per SLOAD operation.
+ LogDataGas = big.NewInt(8) // Per byte in a LOG* operation's data.
+ CallStipend = big.NewInt(2300) // Free gas given at beginning of call.
+ EcrecoverGas = big.NewInt(3000) //
+ Sha256WordGas = big.NewInt(12) //
+
+ MinGasLimit = big.NewInt(5000) // Minimum the gas limit may ever be.
+ GenesisGasLimit = big.NewInt(5000) // Gas limit of the Genesis block.
+
+ Sha3Gas = big.NewInt(30) // Once per SHA3 operation.
+ Sha256Gas = big.NewInt(60) //
+ IdentityWordGas = big.NewInt(3) //
+ Sha3WordGas = big.NewInt(6) // Once per word of the SHA3 operation's data.
+ SstoreResetGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness changes from zero.
+ SstoreClearGas = big.NewInt(5000) // Once per SSTORE operation if the zeroness doesn't change.
+ SstoreRefundGas = big.NewInt(15000) // Once per SSTORE operation if the zeroness changes to zero.
+ JumpdestGas = big.NewInt(1) // Refunded gas, once per SSTORE operation if the zeroness changes to zero.
+ IdentityGas = big.NewInt(15) //
+ GasLimitBoundDivisor = big.NewInt(1024) // The bound divisor of the gas limit, used in update calculations.
+ EpochDuration = big.NewInt(30000) // Duration between proof-of-work epochs.
+ CallGas = big.NewInt(40) // Once per CALL operation & message call transaction.
+ CreateDataGas = big.NewInt(200) //
+ Ripemd160Gas = big.NewInt(600) //
+ Ripemd160WordGas = big.NewInt(120) //
+ MinimumDifficulty = big.NewInt(131072) // The minimum that the difficulty may ever be.
+ CallCreateDepth = big.NewInt(1024) // Maximum depth of call/create stack.
+ ExpGas = big.NewInt(10) // Once per EXP instuction.
+ LogGas = big.NewInt(375) // Per LOG* operation.
+ CopyGas = big.NewInt(3) //
+ StackLimit = big.NewInt(1024) // Maximum size of VM stack allowed.
+ TierStepGas = big.NewInt(0) // Once per operation, for a selection of them.
+ 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.
+ CreateGas = big.NewInt(32000) // Once per CREATE operation & contract-creation transaction.
+ 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.
)
diff --git a/tests/block_test.go b/tests/block_test.go
index 40a210a3e..5019b758d 100644
--- a/tests/block_test.go
+++ b/tests/block_test.go
@@ -17,10 +17,18 @@
package tests
import (
+ "math/big"
"path/filepath"
"testing"
+
+ "github.com/ethereum/go-ethereum/core"
)
+func init() {
+ // XXX remove me when block tests have been updated
+ core.BlockReward = big.NewInt(1.5e+18)
+}
+
func TestBcValidBlockTests(t *testing.T) {
err := RunBlockTest(filepath.Join(blockTestDir, "bcValidBlockTest.json"), BlockSkipTests)
if err != nil {
diff --git a/trie/cache.go b/trie/cache.go
index 2949a5d64..fdaba5de1 100644
--- a/trie/cache.go
+++ b/trie/cache.go
@@ -17,7 +17,6 @@
package trie
import (
- "github.com/ethereum/go-ethereum/compression/rle"
"github.com/ethereum/go-ethereum/ethdb"
"github.com/ethereum/go-ethereum/logger/glog"
"github.com/syndtr/goleveldb/leveldb"
@@ -49,7 +48,8 @@ func (self *Cache) Get(key []byte) []byte {
func (self *Cache) Put(key []byte, data []byte) {
// write the data to the ldb batch
- self.batch.Put(key, rle.Compress(data))
+ //self.batch.Put(key, rle.Compress(data))
+ self.batch.Put(key, data)
self.store[string(key)] = data
}