celestiaorg / celestia-app

Celestia consensus node
https://celestiaorg.github.io/celestia-app/
Apache License 2.0
347 stars 297 forks source link

Implement the simulation package for `x/blob` module #24

Open evan-forbes opened 3 years ago

evan-forbes commented 3 years ago

Modules in the sdk all have a package called simulation that interfaces with the simapp framework for fuzzing. Implement the simulation package for lazyledgerapp so that proper simulation fuzzing can be done as described here

rootulp commented 2 years ago

I'm a little confused by the reference to lazyledgerapp. I infer that lazyledgerapp was renamed to celestia-app but I don't see a celestia-app module in the x/ directory.

Does this issue apply to the payment module and therefore entail creating a x/payment/simulation package?

evan-forbes commented 2 years ago

Does this issue apply to the payment module and therefore entail creating a x/payment/simulation package?

Yep! this issue is so old we forgot to update it lol

we might not be able to leverage simulations in the payment module as well as other packages, considering that the payment module is all but stateless. Fuzzing is obvi a good goal tho, so we could try to fuzz the new ABCI++ methods in a more rigorous way than what we are currently doing in the app/test package

rootulp commented 2 years ago

Every module that implements the Cosmos SDK simulator needs to have a x//simulation package which contains the primary functions required by the fuzz tests: store decoders, randomized genesis state and parameters, weighted operations and proposal contents.

Naive question but can we implement the simulation package for app/test given it doesn't look like a Cosmos SDK module?

evan-forbes commented 2 years ago

Naive question but can we implement the simulation package for app/test given it doesn't look like a Cosmos SDK module?

in the future I think there will definitely be tools that we can use to help fuzz ABCI++ methods, since we're basically the first ones using those methods, those tools don't exist yet.

rootulp commented 2 years ago

Got it. Should we close this issue because we can't implement the simulation package for x/payment/ or app/test? Additionally, should we open a new issue to explore fuzz tooling for ABCI++?

evan-forbes commented 2 years ago

good question, I'm not sure. I think we should at least try, there's almost certainly something of value we can get out of it.

We can open an issue to explore testing ABCI++ methods. Some of the informal team is working on some interesting tools iirc

evan-forbes commented 2 years ago

This is blocked until we either #183 or we use a version of the cosmos-sdk with PrepareProposal and ProcessProposal integrated so we can use the simulation manager to test those. In the meantime, we should continue to flesh out our integration tests for those methods.

taking this off of the goals for incentivized testnet until then.