For every missing data-shred, Shredder::try_recovery calls into new_empty_data_shred which does a redundant serialization into payload buffer which is then immediately overwritten by the erasure recovery: https://github.com/solana-labs/solana/blob/696501500/ledger/src/shred.rs#L372-L417 Additionally, the implementation is unnecessary complex hindering upcoming changes to erasure coding generation https://github.com/solana-labs/solana/blob/696501500/ledger/src/shred.rs#L814-L938 The commit simplifies the Shredder::try_recovery implementation.