Using snapshots would enable us to implement features such as viewing and moving between blockchain history as well as undo/redo functionality. Snapshots would also simplify the code in multiple places. We would only have to store snapshots in the database instead of individual transaction executions, contract deployments, etc. Moreover, snapshots should be used for blockchain rollback as well as rebuilding the state which will provide a cleaner implementation.
Using snapshots would enable us to implement features such as viewing and moving between blockchain history as well as undo/redo functionality. Snapshots would also simplify the code in multiple places. We would only have to store snapshots in the database instead of individual transaction executions, contract deployments, etc. Moreover, snapshots should be used for blockchain rollback as well as rebuilding the state which will provide a cleaner implementation.