aboutsummaryrefslogtreecommitdiffstats
path: root/core/rawdb
diff options
context:
space:
mode:
authorbojie <bojie@dexon.org>2019-01-07 15:40:56 +0800
committerWei-Ning Huang <w@dexon.org>2019-04-09 21:32:56 +0800
commit9c110d37d09d40235b140ca7197515d5c60052c4 (patch)
treec88508bbb7ccbd430268c5bb44da2226e83b3b27 /core/rawdb
parent3e405c7fdc936d3cdb516273105efc233144965c (diff)
downloaddexon-9c110d37d09d40235b140ca7197515d5c60052c4.tar.gz
dexon-9c110d37d09d40235b140ca7197515d5c60052c4.tar.zst
dexon-9c110d37d09d40235b140ca7197515d5c60052c4.zip
app: implement logic for prepare/verify correctly when chain number change (#118)
Diffstat (limited to 'core/rawdb')
-rw-r--r--core/rawdb/accessors_chain.go15
-rw-r--r--core/rawdb/schema.go2
2 files changed, 17 insertions, 0 deletions
diff --git a/core/rawdb/accessors_chain.go b/core/rawdb/accessors_chain.go
index 801ad9362..5e23bef8f 100644
--- a/core/rawdb/accessors_chain.go
+++ b/core/rawdb/accessors_chain.go
@@ -348,6 +348,21 @@ func WriteBlock(db DatabaseWriter, block *types.Block) {
WriteHeader(db, block.Header())
}
+// ReadLastRoundNumber get current round number.
+func ReadLastRoundNumber(db DatabaseReader) (uint64, error) {
+ number, err := db.Get(lastRoundNum)
+ if err != nil {
+ return 0, err
+ }
+
+ return new(big.Int).SetBytes(number).Uint64(), nil
+}
+
+// WriteLastRoundNumber write current round number.
+func WriteLastRoundNumber(db DatabaseWriter, number uint64) error {
+ return db.Put(lastRoundNum, new(big.Int).SetUint64(number).Bytes())
+}
+
// DeleteBlock removes all block data associated with a hash.
func DeleteBlock(db DatabaseDeleter, hash common.Hash, number uint64) {
DeleteReceipts(db, hash, number)
diff --git a/core/rawdb/schema.go b/core/rawdb/schema.go
index 87a56c0ba..954ebfc1d 100644
--- a/core/rawdb/schema.go
+++ b/core/rawdb/schema.go
@@ -63,6 +63,8 @@ var (
// Chain index prefixes (use `i` + single byte to avoid mixing data types).
BloomBitsIndexPrefix = []byte("iB") // BloomBitsIndexPrefix is the data table of a chain indexer to track its progress
+ lastRoundNum = []byte("LastRoundNum")
+
preimageCounter = metrics.NewRegisteredCounter("db/preimage/total", nil)
preimageHitCounter = metrics.NewRegisteredCounter("db/preimage/hits", nil)
)