osmosis
osmosis copied to clipboard
docs: prepare onboarding material for Osmosis chain dev
Background
We should have onboarding material across various levels of the tech stack to help new engineers understand the full scope of the project. The following components should be considered:
- Tendermint / ABCI (consensus layer)
- IAVL (storage layer)
- SDK
- snapshots
- pruning
- other SDK related features
- core modules used by our project
- Osmosis app
- core modules
The onboarding material should be concise, without going into much detail. The expectation is that this document is to be the first material to be looked at when onboarding on Osmosis. Links should be added for each topic to be explored in more depth on a needs basis.
I love the motivation, but I've seen this time and time again, eventually the docs fall out of date/sync and folks end up referencing material that is no longer relevant. Do you mean documentation of these concepts in relation to Osmosis?
I'm imagining a powerpoint, that has a brief descriptions of the various components of the stack, and known problems we face from them, e.g.:
- P2P layer, security concerns, gets overloaded very quickly, lots of annoying logs
- Mempool layer, FIFO txs, Runs ABCI CheckTX. (Which runs antehandler middleware & msg.ValidateBasic), builds txs based off of
GasWanted. - Tendermint Consensus, there exist prevote, precommits, and round increases. Some info on double signs
- ABCI, (CheckTx, DeliverTx, Commit) expectations
- ABCI++ (can just copy existing slides)
- State machine
- IAVL exists, is slow. We do one big write at end of block
- what is app module vs other modules
- Structure of a cosmos module
- Links to important genera info to have (staking)
- Osmosis repo modules
- Epochs, superfluid, gamm, lockup, incentivess
- Diagram of how they link together
As far as I know, haven't seen any high level explanations to show to new folks. I end up doing that on calls at the moment, in very ad-hoc ways
Nice! Yeah a PDF on this would be dope. I like the idea!
Not sure if you're familiar with markdown slides but it may be an easy way to keep it maintainable while still having it show up in slide format
ref: https://github.com/cosmos/cosmos-sdk/issues/13171
Just linking this to port some ideas over when we start working on this