I see that you are storing the blockchain data in json form in a directory in the application directory.
Would'nt a lightweight database be a interesting way of storing the info ? (ok, Data Engineer talking, I admit)
You could store the actual json in a blob field, and add several key data in other fields. Even with a lightweight db engine like SQLite, when your blockchain grows it would helps for parsing/searching/accessing the data.
The initialization of a new node could be accelerated by sharing a compressed db file instead of sending every transaction separately. This init file could be stripped to share only the fully propagated blocks, setting the new node in a "agnostic" state about the actual propagation of the new blocks.
By the way, I clearly understand that it's a hobby and personal improvement project. So, no pressure...
It's just brainstorming !!
RE: Programming - Implementing a Blockchain using Python and Flask [Dev Blog 2]