It is a good time to start working towards the scalability plan (A Scalability Plan for Ergo). As it is too early likely to have concrete plans for offchain and sidechain solutions (they will depend on applications profile), I am going to provide a sketch for networking (L0) and blockchain processing (L1) improvements which we can done in coming months:
Networking Layer
Currently this layer is not efficient. Some issues already resolved recently ( https://github.com/ergoplatform/ergo/pull/1166 ), what’s ahead:
-
P2P layer documentation ( https://github.com/ergoplatform/ergo/issues/1151 ), needed for some applications as well, e.g. Cypra guys asking for it
-
Improve syncing process. Currently syncing messages are large, and the process is not efficient.
-
Improve propagation of new blocks. Currently a node generating a block is announcing identifiers of the block sections , while in e.g. Bitcoin it sends the sections immediately
-
Consider what other nodes have. E.g. do not ask digest nodes for proofs, pruned nodes for blocks etc. Let’s call it smart downloading.
Blockchain Clients (L1)
-
After the smart downloading is done, we can promote stateless clients. Some problems found with light clients also needed to be resolved (https://github.com/ergoplatform/ergo/issues/1176 , https://github.com/ergoplatform/ergo/issues/1159 ).
-
Nipopow bootstrapping.
Nipopow bootstrapping + stateless clients give possibility to bootstrap a node with full-node security basically within few minutes.