f-o-a-m / kepler

A Haskell framework that facilitates writing ABCI applications
https://kepler.dev
Apache License 2.0
34 stars 10 forks source link

try to read latest iavl versions on bootup #217

Open martyall opened 4 years ago

martyall commented 4 years ago

right now we are implicitlly assuming that the database is new when we start the app, it should attempt to find the latest versions if they exit before making this assumption

alexfmpe commented 4 years ago

Hit this after converting from old abci hooks to kepler module - started getting

panic: block.AppHash does not match AppHash after replay. Got 100FC429C51FB4C10F70528EA6DACBDDEA0B90FAB5278D314C84AA3C0EF45A8C, expected .

when trying to resume the app. The shown hash matches the logs from the initial run.

I'm not tracking any state besides the transactions themselves, so I was expecting the app to replay everything when resumed, but now I get that error.

https://github.com/tendermint/tendermint/issues/425 suggests I should return 0 as last known block height in the info hook, but that hook is not exposed for kepler modules?

The default implementation errors with *** Exception: ParsingException "key \"data\" not present"

martyall commented 4 years ago

If you are using kepler, are you also using the Auth module? If so are you using the provided transaction structure with nonce, etc? Because if so, then might already application state being collected by Kepler corresponding to the accounts of the transaction senders. Specifically, it might be storing accounts and updated nonces, which creates application state.

Is there a link you can provide me to your app or is it closed source?