-
Notifications
You must be signed in to change notification settings - Fork 101
Design overall structure #5
Comments
I looked through some of the docs out there. OpenZeppelinstructure:
Cosmos sdk docs
EthereumEthereum docs are scattered. There is solidity, homestead, node docs and more. I would say we should not take reference from there. CosmWasm docs overviewI propose the structure below. Mixed open zeppelin for good docs and cosmos sdk for ecosystem consistency. Introduction
Architecture
LearnSections below is not the end product. I will modify, add or remove sections when I am going through full documentation. But sections below will give a good overview. Since it is a new category like resources, a topic can contain several docs. For example smart contracts section can contain rust basics, wasm runtime etc
Plus ContractsThis section will contain documention of cosmwasm-plus
IBCI think IBC deserves its own section. We can give details here
TestnetsSame of what we have at the moment. |
Its the first iteration of the docs structure. Waiting for your recommendations @ethanfrey |
Where is resources? I assume you editted this out? |
In general, makes sense. Can you edit and refine a bit more. Also there are two targets for learn - the simple escrow edit that I did, and the "still to be done" namespace contract (to mirror the cosmos-sdk). Maybe we would want both - so, how to organize that? (Note the cosmos-sdk links to a separate site for these tutorials: https://tutorials.cosmos.network/) Especially as we will have hands-on sections (tutorials and using the cosmwasm-plus contracts) we probably want to consider how to place these hands-on sections with the theory. Ideally not two different sites like cosmos. (But I do like cosmos's landing page) |
Escrow tutorial gives detail about the code but not the step-by-step development flow like
|
Ah.. yeah, we should definitely link the new faq site from resources |
Escrow should be a simple "edit this contract with a few dozen lines or code" starter. Nameservice is a "build a contract from scratch". More like escrow first for people who don't know rust. Once you got the basics or already know rust, go for nameservice (Option 2 above) |
Re the intro section: it's also quite difficult to engage with large parts of it if you don't know what it's talking about (e.g. if you haven't done the tutorial). I'd recommend trimming down the intro to the bare bones, shove people into the tutorial, and then put the details in a "deep dive" section that's later in the sequence. I realise the overview suggests jumping straight to the tutorial and coming back to the intro, but why are we recommending a different order to the one we've chosen ourselves? And why is this called the "intro" if we're suggesting people do something else first? Also there are quite a few asides or references to concepts without a lot of explanation, e.g.:
I even searched Wikipedia for "Merkle Trie" and couldn't easily find out what it is, why it's different to a Merkle Tree, or why the difference is important. |
Re the tutorial: I expected the section "First contract" to at least show me what a contract looks like, or maybe to get me to write one. But it's really just the intro to the tutorial, and we don't see any contract code until four sections later. I think in general it's best to show people what we do and then provide explanations afterwards. The tutorial starts off with a detailed explanation of every known attack on Solidity contracts, which is a bit intimidating. I'd rather get my hands dirty with some code first, and then I'd have some context for the detailed explanation of the design decisions. |
Merkle Trie is the general name for Patricia Trie - ethereum 1.0 - or Sparse Merkle Tree - ethereu 2.0. We should link something there. A trie uses one branch per 1-4 bytes of the key rather than a balanced btree algorithm. This leads to a shape invariant to insert order, but also means the depth is |
Good point |
This is kind of a meta-issue that is partly done. Let's keep this in mind when adding more docs, but I think the existing docs have been largely cleaned up. |
Mostly done, remaining work in #75 |
Take a look at some other docs pages for inspiration:
The text was updated successfully, but these errors were encountered: