As mentioned by @LLFourn: 1. We have a "sparse chain" from which there is a subset of txids M that are missing from graph. 2. There is also another subset C that are in the graph but their positions have changed. 3. We used the Cow to avoid copying/duplicating in memory transactions in subset C and M Instead in inflate_update we could remove transactions in subset M and just clone data in subset C (which is usually tiny).
BDK Electrum
BDK Electrum client library for updating the keychain tracker.