## Issue summary <!-- A clear and concise description of what the task is. --> - In parity's `TrieDb` they define a [`TrieCache`](https://github.com/paritytech/trie/blob/4e571cc0970003464d55858e279ffbc69c7bb4c9/trie-db/src/lib.rs#L645) that caches the in memory instantiated types for each node. - Our current [`cache.TrieCache`](https://github.com/ChainSafe/gossamer/blob/b0235cebae5ad56a23491e6b7bc027cb5bc360b5/pkg/trie/cache/trie_cache.go#L6) interface only caches the bytes retrieved from storage and will require decoding into the Go node types. - I determined that we should update `TrieDB` to adopt the same node level caching strategy to achieve similar performance. - Implementation of this new `TrieCache` interface is actually done in substrate. Integration of the new `TrieCache` interface into `TrieDB` will be required. ## Other information and links <!-- Add any other context or screenshots about the issue here. --> <!-- Thank you 🙏 -->