How does Kaspa store parent blocks differently from mergeset blocks?
In Kaspa, references to a block's parents are stored directly in the block header, while mergeset data is computed and kept separately in GHOSTDAG data structures. A block header is the compact record attached to each block; embedding parent references there means any node can instantly read which blocks a given block builds on without extra computation. Mergeset data is more complex, so it lives outside the header in dedicated GHOSTDAG structures — and the system provides different iterators to walk through mergeset blocks in whatever order is needed, such as consensus order or blue-work order. This separation matters because it keeps block headers lean and fast to read while still giving the network flexible, efficient access to the full DAG structure Kaspa depends on.