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