Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: SDK2 #328

Closed
10 of 16 tasks
jaekwon opened this issue Jan 15, 2018 · 9 comments
Closed
10 of 16 tasks

WIP: SDK2 #328

jaekwon opened this issue Jan 15, 2018 · 9 comments
Assignees
Milestone

Comments

@jaekwon
Copy link
Contributor

jaekwon commented Jan 15, 2018

UPDATE: Look at https://github.com/cosmos/cosmos-sdk/projects/2

Everything on the SDK2 branch:

Pre-announcement

Post-announcement

@jaekwon
Copy link
Contributor Author

jaekwon commented Jan 15, 2018

querying with proofs will first require a common structure format (with interfaces) for supporting any variety of Merkle proof types, in a series (e.g. for SimpleTree (block header) -> SimpleTree (multistore) -> IAVLTree (iavl))

@rigelrozanski
Copy link
Contributor

Additionally I think there is an opportunity to lump some common initialization/execution functionality together (such as found in examples/basecoin) to allow for highly compact applications. Not core for the MVP, but I think it will be important to be able to write a new "hello world" SDK-application in your own repo with ~ 10 lines of code (or something small hehe)

@ethanfrey
Copy link
Contributor

ethanfrey commented Jan 15, 2018

Functioning CLI/REST #324 also.

I think the last line is not needed for sdk release. It can merge without ibc/staking/governance, and they can be built on top of it, as different projects.

Also for merkle proofs of trees, please look at ibc spec v0.3.1, Appendix C. There it specifies a generic binary format to represent any merkle proof and chain them together. It should be compatible with patricia tree proofs as well, but haven't proven that.

@jaekwon jaekwon added this to the SDK2 milestone Jan 17, 2018
@ethanfrey
Copy link
Contributor

I think at least queries without proof is essential before announcing it.

You can put data in, but you can't see it....

@ebuchman
Copy link
Member

For now people can send "read" transactions.

It's not ideal but let's get something workeable out there and start rapidly iterating on bringing in the necessary new features

@ethanfrey
Copy link
Contributor

Please explain how a "read" transaction works?

@ethanfrey
Copy link
Contributor

ethanfrey commented Jan 18, 2018

I think query (without proofs) is super essential. Otherwise, it looks like an ugly hack.
With that and a basic cli, it seems like something actually usable.

And really, they should not be that hard. At least for an MVP implementation.

@ebuchman
Copy link
Member

A read transaction is a consistent query (ie. a query that passes through consensus). For instance in basecoin, we'd have to define a GetAccountTx that returns the account as the result.

This is how merkleeyes was written for Jepsen. Query isn't sufficient because it can return stale reads - ie. you might be querying from a node thats behind and meanwhile the value has changed. So for proper testing, you actually need "read transactions", or what some call "consistent reads".

Obviously for basecoin that'd be ridiculous, and I'm not proposing we do it. We could and should and must do it for the key-value store app we build, ie. the new merkleeyes-jepsen-app on SDK.

Anyways, no one disagrees that queries are essential. Let's get them in ASAP. But let's not block on it - folks can start building and unit testing their apps without it.

@jbibla
Copy link
Contributor

jbibla commented Feb 13, 2018

closing in favour of sprint boards and milestones 🕺

@jbibla jbibla closed this as completed Feb 13, 2018
ParthDesai pushed a commit to ChorusOne/cosmos-sdk that referenced this issue Apr 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants