core/rawdb/chain_freezer.go¶
| Type | MOD |
| Upstream Lines | 449 |
| Changed | +8 -0 |
Freeze TD alongside block headers
diff --git a/core/rawdb/chain_freezer.go b/core/rawdb/chain_freezer.go
index 4fe85d843..1b45772f4 100644
--- a/core/rawdb/chain_freezer.go
+++ b/core/rawdb/chain_freezer.go
@@ -351,6 +351,14 @@ func (f *chainFreezer) freezeRange(nfdb *nofreezedb, number, limit uint64) (hash
if err := op.AppendRaw(ChainFreezerBALTable, number, bals); err != nil {
return fmt.Errorf("can't write bals 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