diff options
author | obscuren <geffobscura@gmail.com> | 2014-08-22 17:34:59 +0800 |
---|---|---|
committer | obscuren <geffobscura@gmail.com> | 2014-08-22 17:34:59 +0800 |
commit | 836ed9d6b70e3ae928624f9ed81ed206a66b85b8 (patch) | |
tree | e6f267f3cac06ef76bef339168e06e92215d5791 | |
parent | a9f9a594160405737657083476535f3e48df1558 (diff) | |
download | dexon-836ed9d6b70e3ae928624f9ed81ed206a66b85b8.tar.gz dexon-836ed9d6b70e3ae928624f9ed81ed206a66b85b8.tar.zst dexon-836ed9d6b70e3ae928624f9ed81ed206a66b85b8.zip |
Write Protocol version to the db so we can perform sanity checks
-rw-r--r-- | ethereum.go | 12 | ||||
-rw-r--r-- | ethutil/value.go | 2 |
2 files changed, 13 insertions, 1 deletions
diff --git a/ethereum.go b/ethereum.go index 1e1891589..4c5e13b6d 100644 --- a/ethereum.go +++ b/ethereum.go @@ -90,7 +90,6 @@ type Ethereum struct { } func New(db ethutil.Database, clientIdentity ethwire.ClientIdentity, keyManager *ethcrypto.KeyManager, caps Caps, usePnp bool) (*Ethereum, error) { - var err error var nat NAT @@ -101,6 +100,8 @@ func New(db ethutil.Database, clientIdentity ethwire.ClientIdentity, keyManager } } + bootstrapDb(db) + ethutil.Config.Db = db nonce, _ := ethutil.RandomUint64() @@ -534,3 +535,12 @@ out: } } } + +func bootstrapDb(db ethutil.Database) { + d, _ := db.Get([]byte("ProtocolVersion")) + protov := ethutil.NewValue(d).Uint() + + if protov == 0 { + db.Put([]byte("ProtocolVersion"), ethutil.NewValue(ProtocolVersion).Bytes()) + } +} diff --git a/ethutil/value.go b/ethutil/value.go index 608d332ba..b336345ca 100644 --- a/ethutil/value.go +++ b/ethutil/value.go @@ -141,6 +141,8 @@ func (val *Value) Bytes() []byte { return []byte(s) } else if s, ok := val.Val.(*big.Int); ok { return s.Bytes() + } else { + return big.NewInt(val.Int()).Bytes() } return []byte{} |