status-im / nimbus-eth2

Nim implementation of the Ethereum Beacon Chain
https://nimbus.guide
Other
521 stars 223 forks source link

Roadmap to production-ready phase 0 launch #484

Closed zah closed 2 years ago

zah commented 4 years ago

This roadmap attempts to cover all areas where we'll have to spend time before being ready to publish a release of the beacon node intended for use on mainnet with staked ETH.

Profiling and Optimization

Shipping a production-ready phase 0 client will require us code freeze large parts of our codebase while the components are subjected to fuzzing and security audit. This forces us to prioritize our optimization efforts, so the code can get closer to its final state earlier. As an initial goal, we need to develop better understanding what are the optimisation gains that can be achieved in each subsystem, as this knowledge will help us developer a better Fuzzing and Auditing roadmap.

We have identified a number of possible optimizations. Their relative importance is to be determined through the profiling efforts:

Over time, we should start profiling on all of our target platforms:

ETH1 Integration

Discovery V5

LibP2P

Our progress towards implementing a native Nim LibP2P implementation is tracked in the LibP2P roadmap.

Spec compliance

Attestation aggregation and fork choice

Database

Beacon chain syncing

RPC interface

CLI and config files

Logging

Release management

The initial version of the beacon node will target Windows, macOS and Linux.

All published binaries should be archived together with their debug symbols, so we are able to receive and investigate crash reports featuring memory dumps.

Testnet improvements

Beacon node web UI

TBD

Validator client

Operational safety

Security Audit

Before we are ready to ship, we must undergo a security audit. Please see our Fuzzing and Auditing roadmap for more details.

Market research and business development

Web-site improvements

Before the official launch we'll need to prepare significant amount of new content for the Nimbus web-site. The content should achieve the following goals (wip, more to be added):

Localisation

Market research can demonstrate that implementing a localized client can significantly increase our popularity in certain markets.

riptl commented 2 years ago

Publish a homebrew recipe.

I've started work on this https://github.com/Homebrew/homebrew-core/pull/91969

zah commented 2 years ago

The majority of the items here have been either implemented, migrated to individual issues or obsoleted by alternative ideas, so I'm closing this issue.