Our current plan for the onboarding covers the following topics:
Fundamentals
Those represent basic knowledge for the system that is crucial in order to dive deeper:
- tools and networks - what is testnet, what is mainnet, what wallets are out there, why we need them, middleware web page and etc.
- system architecture and startup - AE node is a multi-application software and follows the OTP approach but still it has its own solutions regarding how different applications are setup and started
- blocks and headers - BitcoinNG, block structure, header structure and etc. Initial accounts in genesis block also are discussed
- serialization - aeserialization lib - IDs, RLP, structures serializations (with a strong focus on fork awareness), Base58c vs Base 64 encodings
- transaction fundamentals - signed and unsigned transactions, spend transaction, account’s tree
- mining - cuckoo cycle, tx pool, micro block generation, transaction fees, miner rewards, BRI
- stratum - how it works ( optional )
- MPtrees - Mtrees, MPTrees, DB, GC
- http - internal and external endpoints, swagger, validation of requests
Sync
Describing how nodes sync from the network, how they gossip new transactions, how they share peer lists and so on
- coordinator - aec_chain & coordinator processes, how blocks are validated, executed and consumed
- p2p protocols - sync protocol, peers lists, gossip
Transactions
Discussions around different transaction types, strong focus on why certain decisions were made
- oracles - mechanics, transactions and trees
- names - mechanics, transactions and trees
- contracts & calls - mechanics, transactions and trees
- channels - mechanics, transactions and trees
- generalized accounts - mechanics and transactions
State channels
A deeper dive in AESC reference implementation of the off-chain protocol
- FSM - FSM, chain watcher and noise sessions; if this can be broken into a couple of smaller discussions - that would be great
- WebSocket API - client facing interface, discussion around how it is intended to work; log examples
Smart contracts
A deeper dive into AE’s smart contract system
- Sophia language - a language overview with a focus on why certain decisions were made
- Sophia compiler - implementation details
- VMs - AEVM & FATE, primops
After the foundamentals’ section is done, the rest can be done in a parallel.