From 5a2b67bc9aed868aa06ca2b16ababe1d1ddbecb5 Mon Sep 17 00:00:00 2001 From: Martin Boehm Date: Wed, 29 Jan 2020 20:45:22 +0100 Subject: [PATCH] Improve storing/loading of block info to db --- db/rocksdb.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/db/rocksdb.go b/db/rocksdb.go index 864e7c89..a0fbb4da 100644 --- a/db/rocksdb.go +++ b/db/rocksdb.go @@ -1204,6 +1204,15 @@ func (d *RocksDB) packBlockInfo(block *BlockInfo) ([]byte, error) { if err != nil { return nil, err } + pl := d.chainParser.PackedTxidLen() + if len(b) != pl { + glog.Warning("Non standard block hash for height ", block.Height, ", hash [", block.Hash, "]") + if len(b) > pl { + b = b[:pl] + } else { + b = append(b, make([]byte, len(b)-pl)...) + } + } packed = append(packed, b...) packed = append(packed, packUint(uint32(block.Time))...) l := packVaruint(uint(block.Txs), varBuf) @@ -1606,7 +1615,9 @@ func (d *RocksDB) loadBlockTimes() ([]uint32, error) { if err != nil { return nil, err } - time = uint32(info.Time) + if info != nil { + time = uint32(info.Time) + } times = append(times, time) } glog.Info("loaded ", len(times), " block times")