aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2017-02-28 20:00:25 +0800
committerGitHub <noreply@github.com>2017-02-28 20:00:25 +0800
commitd4f60d362b8fcf82db1accf89c146a2a71375841 (patch)
tree60d65b744b69bbe477143ea444adba290653651a
parentdbd88a1aa493d5f7bde5692c9649f795ad0bd7b0 (diff)
parent46bcd9a92c747bd6f2f6f7377d39f3949469203c (diff)
downloadgo-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar.gz
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar.bz2
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar.lz
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar.xz
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.tar.zst
go-tangerine-d4f60d362b8fcf82db1accf89c146a2a71375841.zip
Merge pull request #3721 from karalabe/drop-legacy-db-updates
core, eth: drop database block splitting upgrader
-rw-r--r--core/database_util.go18
-rw-r--r--eth/backend.go3
-rw-r--r--eth/db_upgrade.go59
3 files changed, 0 insertions, 80 deletions
diff --git a/core/database_util.go b/core/database_util.go
index 23240b35e..68263f8d8 100644
--- a/core/database_util.go
+++ b/core/database_util.go
@@ -539,24 +539,6 @@ func DeleteReceipt(db ethdb.Database, hash common.Hash) {
db.Delete(append(receiptsPrefix, hash.Bytes()...))
}
-// [deprecated by the header/block split, remove eventually]
-// GetBlockByHashOld returns the old combined block corresponding to the hash
-// or nil if not found. This method is only used by the upgrade mechanism to
-// access the old combined block representation. It will be dropped after the
-// network transitions to eth/63.
-func GetBlockByHashOld(db ethdb.Database, hash common.Hash) *types.Block {
- data, _ := db.Get(append(oldBlockHashPrefix, hash[:]...))
- if len(data) == 0 {
- return nil
- }
- var block types.StorageBlock
- if err := rlp.Decode(bytes.NewReader(data), &block); err != nil {
- log.Error(fmt.Sprintf("invalid block RLP for hash %x: %v", hash, err))
- return nil
- }
- return (*types.Block)(&block)
-}
-
// returns a formatted MIP mapped key by adding prefix, canonical number and level
//
// ex. fn(98, 1000) = (prefix || 1000 || 0)
diff --git a/eth/backend.go b/eth/backend.go
index f20e4a509..c288b2557 100644
--- a/eth/backend.go
+++ b/eth/backend.go
@@ -176,9 +176,6 @@ func New(ctx *node.ServiceContext, config *Config) (*Ethereum, error) {
solcPath: config.SolcPath,
}
- if err := upgradeChainDatabase(chainDb); err != nil {
- return nil, err
- }
if err := addMipmapBloomBins(chainDb); err != nil {
return nil, err
}
diff --git a/eth/db_upgrade.go b/eth/db_upgrade.go
index 7038ebbbd..2a61af364 100644
--- a/eth/db_upgrade.go
+++ b/eth/db_upgrade.go
@@ -252,65 +252,6 @@ func upgradeSequentialBlockData(db ethdb.Database, hash []byte) error {
return nil
}
-// upgradeChainDatabase ensures that the chain database stores block split into
-// separate header and body entries.
-func upgradeChainDatabase(db ethdb.Database) error {
- // Short circuit if the head block is stored already as separate header and body
- data, err := db.Get([]byte("LastBlock"))
- if err != nil {
- return nil
- }
- head := common.BytesToHash(data)
-
- if block := core.GetBlockByHashOld(db, head); block == nil {
- return nil
- }
- // At least some of the database is still the old format, upgrade (skip the head block!)
- log.Info(fmt.Sprint("Old database detected, upgrading..."))
-
- if db, ok := db.(*ethdb.LDBDatabase); ok {
- blockPrefix := []byte("block-hash-")
- for it := db.NewIterator(); it.Next(); {
- // Skip anything other than a combined block
- if !bytes.HasPrefix(it.Key(), blockPrefix) {
- continue
- }
- // Skip the head block (merge last to signal upgrade completion)
- if bytes.HasSuffix(it.Key(), head.Bytes()) {
- continue
- }
- // Load the block, split and serialize (order!)
- block := core.GetBlockByHashOld(db, common.BytesToHash(bytes.TrimPrefix(it.Key(), blockPrefix)))
-
- if err := core.WriteTd(db, block.Hash(), block.NumberU64(), block.DeprecatedTd()); err != nil {
- return err
- }
- if err := core.WriteBody(db, block.Hash(), block.NumberU64(), block.Body()); err != nil {
- return err
- }
- if err := core.WriteHeader(db, block.Header()); err != nil {
- return err
- }
- if err := db.Delete(it.Key()); err != nil {
- return err
- }
- }
- // Lastly, upgrade the head block, disabling the upgrade mechanism
- current := core.GetBlockByHashOld(db, head)
-
- if err := core.WriteTd(db, current.Hash(), current.NumberU64(), current.DeprecatedTd()); err != nil {
- return err
- }
- if err := core.WriteBody(db, current.Hash(), current.NumberU64(), current.Body()); err != nil {
- return err
- }
- if err := core.WriteHeader(db, current.Header()); err != nil {
- return err
- }
- }
- return nil
-}
-
func addMipmapBloomBins(db ethdb.Database) (err error) {
const mipmapVersion uint = 2