Comments (7)
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.
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.
OK, we actually concluded: one repo for now. This can be closed.
from celestia-core.
CC'ing @gakonst - what modifications are you planning to make to Cosmos/Tendermint in order to enable state transition fraud proofs?
from celestia-core.
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.
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.
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)
- Allow the user to request a proof of the tx's inclusion if it has been committed
- RequestPrepareProposal has unclear comments HOT 1
- Remove outdated TODO HOT 1
- Add ability to subscribe to block data via grpc HOT 2
- Add ability to request a block via its hash HOT 1
- Port not blocking on receives work from upstream HOT 1
- Expand `TxInfo` to save the resulting code of the transaction
- Proposal: Use CometBFT protos
- Investigate malformed data in JSONL traced files HOT 2
- Compare CAT vs V1 distribution times
- Update openapi specs with TxStatus changes
- Provide more information to users in regards to pricing
- Don't vote until the local time is past the start time HOT 1
- Use the start time as the time in the votes HOT 1
- Try a high level sanity test that doesn't rely on using `tc` for artificial latency HOT 1
- Wait to vote until the end of the proposal period HOT 1
- Port performance changes from upstream
- Sanity benchmark tcp with latency and many peers HOT 1
- Ability to spin up many geographically distributed nodes
- Add IPv6 Support for Application Protocol HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from celestia-core.