Coder Social home page Coder Social logo

Comments (7)

melekes avatar melekes commented on August 15, 2024 3

I can't speak for the tendermint team, but I'd like to see Tendermint more flexible to allow experiments / modifications like ^ without too much pain 👍

from celestia-core.

tac0turtle avatar tac0turtle commented on August 15, 2024 2

I wish tendemint would allow devs to plug in their own Header definitions and the header used inside of tendermint

This is the goal for Tendermint. I hope with the move to protobuf Tendermint can better facilitate this modularity.

from celestia-core.

liamsi avatar liamsi commented on August 15, 2024 1

OK, we actually concluded: one repo for now. This can be closed.

from celestia-core.

musalbas avatar musalbas commented on August 15, 2024

CC'ing @gakonst - what modifications are you planning to make to Cosmos/Tendermint in order to enable state transition fraud proofs?

from celestia-core.

liamsi avatar liamsi commented on August 15, 2024

I wish tendemint would allow devs to plug in their own Header definitions and the header used inside of tendermint (for everything besides encoding and other places you'd need to deal with the concrete impl) would just be an interface (or trait). Similar to what we did in the Rust implementation of the light client: https://github.com/informalsystems/tendermint-rs/blob/471542d60d542a8049c81286dff13ffa467300fc/tendermint/src/lite/types.rs#L19-L31
But with additional methods like is_valid (and a few others) to be able to define your own block validity rule(s). This would allow tendermint to be used in a much more flexible manner. Similar this would mean, devs can also define their own way to merkelize transactions (instead of currently via SimpleHashFromByteSlices).

Would the tendermint team like to integrate changes in this direction? @tessr @marbar3778

from celestia-core.

liamsi avatar liamsi commented on August 15, 2024

Thanks for your feedback @melekes and @marbar3778. And cool, would be great if we could help tendermint to reach that goal even further :-)


Making tendermint as flexible as mentioned above will take some time. So just summarizing what we've discussed as possible options for the meantime:

@adlerjohn suggested we can use the AppHash via Commit in the (tendermint/abci) app for the state root mentioned in 1. (optimistic rollups). The state root could be structured in any desired way (it's completely up to the app; e.g. the cosmos hub uses an iavl tree; well actually several such trees via a MultiStore).

@musalbas raised concerns about this approach as it is actually necessary that there is only one and only one data/state root that includes all consensus critical data. The reason for this is that otherwise we can't guarantee that the data behind the other roots is actually available. A good alternative seems to be to do all modifications in one fork and make the changes needed for 2. configurable somehow. But as 2. involves changes to the header (add the erasure coded merkle tree data availability scheme), this only makes sense if the header is modular/pluggable in some sense (which kinda brings us back to #1 (comment)).

from celestia-core.

liamsi avatar liamsi commented on August 15, 2024

There are still open questions or todos around this issue right?

We didn't fully settle on this?

And could we make it so that people can build optimistic rollup chains via Tendermint without LazyLedger?

Although I'm not sure if most that code would't live as a cosmos-sdk module outside of tendermint anyways.

And merging all other roots into a single state root:

That means any other root that is derived from the state of the chain, such as the validator set root, must be folded in to this root.

I mean it is also the job of the app to include all state in AppHash. No modifications in tendermint needed here. Obviously deleting the validator-roots requires changes in tendermint. So I'm still not sure what would be best. I think we should leave this issue open and proceed with tendermint-core and a cosmos-sdk app until we have more clarity around this.

from celestia-core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.