Skip to content

core/rawdb/chain_freezer.go

Type MOD
Upstream Lines 424
Changed +8 -0

Freeze TD alongside block headers

diff --git a/core/rawdb/chain_freezer.go b/core/rawdb/chain_freezer.go
index d33f7ce33..7f2949915 100644
--- a/core/rawdb/chain_freezer.go
+++ b/core/rawdb/chain_freezer.go
@@ -340,6 +340,14 @@ func (f *chainFreezer) freezeRange(nfdb *nofreezedb, number, limit uint64) (hash
            if err := op.AppendRaw(ChainFreezerReceiptTable, number, receipts); err != nil {
                return fmt.Errorf("can't write receipts to Freezer: %v", err)
            }
+           // ETC: Write TD to freezer for PoW chains
+           td := ReadTdRLP(nfdb, hash, number)
+           if len(td) == 0 {
+               return fmt.Errorf("block td missing, can't freeze block %d", number)
+           }
+           if err := op.AppendRaw(ChainFreezerDifficultyTable, number, td); err != nil {
+               return fmt.Errorf("can't write td to Freezer: %v", err)
+           }
            hashes = append(hashes, hash)
        }
        return nil

← Back to Total Difficulty (TD)