nimbus-site/docs/milestones.md

6.4 KiB

id title
milestones Milestones

Timelines are approximate and affected by research, implementation considerations, and revisions made while the team produces a detailed implementation timeline.

Formation of the Team, and Detailed Project Implementation Timeline

January - February 2018

Completed:

  1. Form the initial team
  2. Define the project's scope, architecture, and implementation timelines

Goals:

  1. Hire core contributors:
    1. Five (5) full-time core contributors
    2. Up to five (5) part-time core contributors
    3. One (1) Technical Program Manager
    4. One (1) Technical Writer
    5. Up to ten (10) full-time core contributors by 2019
  2. Create a detailed timeline for implementing the project as a deliverable

Compatibility with Ethereum 1.0

January - November 2018

As an initial goal, we will focus on implementing all components required for interoperability with the Ethereum ecosystem. We will publish these components as independently reusable modules and libraries.

However, before starting the implementation in Nim, we will develop an understanding of the existing implementations of Ethereum: Go Ethereum, Pyethereum, Py-EVM, and Parity.

The code will consist of independently reusable libraries that have the same permissive license as that of Nimbus itself:

  1. RLP encoding and decoding
  2. Handling of the state database and users' keyfiles
  3. Connecting to the Ethereum network
  4. Ethereum Patricia Trees
  5. RLPx sub-protocols
  6. Ethereum Ethash function
  7. Implementation of EVM

Goals:

  1. Nimbus is able to
    1. Sync with the latest blockchain, from scratch
    2. Accurately execute the entire transaction history
  2. The team is familiar with all codebases used to implement Ethereum.
  3. The team understands the main themes from ethresear.ch and actively participates in EIPs.

Sharding Phase 1

July - November 2018

While implementing compatibility with Ethereum 1.0, we will gain early experience with the complete setup of sharding. As a result:

  1. The client will implement the core features necessary for sharding Phase 1.
  2. The team will actively participate in sharding-related EIPs.

Goal:

The architecture of Nimbus supports sharding nodes.

Auditing of Beta and Security

November 2018 - March 2019

An independent security partner will continuously perform a security audit on the Nimbus codebase. We will also adopt frequent reviews of code, testing with automated fuzzing frameworks, and other practices that enhance security. In addition, we will develop a Nim-optimized fuzzing framework and will release it for use by the community at large.

Goal:

Deliver a security-audited, production-ready client.

Implementation of Whisper and PSS

July - November 2018

We will set and advertise the bounties as soon as the P2P layer gets implemented. The core team will start working on this in July, unless already completed.

Goals:

  1. Make Nimbus the leading platform for conducting research into the scalability aspects of Whisper and PSS. We consider this a key requirement for implementing a fully decentralised Status messaging platform within the Ethereum network.
  2. Deliver easy-to-use APIs for conducting large-scale and small-scale experiments within the network.

Support for LES

July - November 2018

We will optimize the architecture of Nimbus for implementing the LES protocol. We will also optimize all internal state-handling operations such that they work efficiently and asynchronously. This will enable on-demand fetching of data from the network. This will also ensure that Nimbus runs with a high degree of concurrency and that the client UI is responsive.

Goals:

  1. Enable a Light Mode switch in Nimbus.
  2. Successfully operate Nimbus in a mobile environment, without relying on a proxy service.

Sharding Phase 2

November 2018 - July 2019

We will focus on achieving compatibility with all other clients. In addition, we will implement an eWASM runtime and will add Nim as one of the languages that can target the new VM.

Goals:

Implement the following in Nim:

  1. CLI tools and APIs for running Phase 2 nodes and for interacting with the Validator Manager Contract (VMC)
  2. The development tools that will target the eWASM runtime environment

Casper Implementation

December 2018 - February 2019

The team will closely follow the development of Casper and will try to achieve and maintain compatibility with the existing Casper deployments.

Implementation of Swarm

January - July 2019

We will set and advertise the bounties as soon as the P2P layer gets implemented. The core team will start working on this in January, unless already completed.

Goals:

Implement the following:

  1. Ability to embed Nimbus into applications that deliver the complete Web 3.0 experience
  2. Support for the Ethereum Name Service
  3. Support for a virtual file-system interface for accessing web content published on Swarm
  4. Reusable APIs for publishing and obtaining content from Swarm

Sharding Phase 3

March - August 2019

We will leverage our LES-optimized architecture to deliver a fully stateless client optimized for mobile devices.

Goals:

Implement support for the following:

  1. Always-on operations on mobile devices, without disrupting the battery life or inducing significant bandwidth charges
  2. Running stateless executor nodes in deployments of headless servers

Ongoing Improvements in Sharding

August - December 2019

Goals:

  1. Become one of the leading production-ready sharding implementations in the Ethereum ecosystem.
  2. Take active part in the effort to specify the new programming models required for cross-shard interactions.
  3. Provide an ongoing research into the applicability and performance characteristics of all super-quadratic sharding designs in a mobile environment.