Minimal (github.com/umbracle/minimal) is a modular Ethereum 1x client. The logical components of the client stack (network, protocols, storage…) are built as independent and interchangeable components of functionality. This modularity helps to prototype and introduce new features in a more maintainable way (i.e. new sync protocols).

This design contrasts with the monolithic architecture of current clients. They are black boxes of functionality, self-contained applications with little space for extensibility. With a modular framework we can build clients for specific tasks, including but not limited to mining, data feeds and archives.

Features

Minimal builds upon three pillars:

Light: RAM and CPU usage is optimized. Aiming to build clients that run on off-the-shelf computers again.

Modular: Extensible functionality (PostgreSQL, libp2p, private transactions, etc.).

Friendly: Intuitive and effective UX to interact with Ethereum.

In the comming weeks there will be a technical post diving deep in some of these aspects.

License

Minimal was initially built from the ground up, taking the different network- and communication components of Geth and refactoring them in a modular fashion. On top of that, it used Geth as a library to provide core functionality for the Ethash, Merkle-tree or EVM execution. As the project evolved, many of those components have been independently developed so that at this moment Minimal does not use Geth as a library and there are only a few snippets left of derivative work.

Geth is licensed under LGPL, a viral license that requires one to open source any project that modifies or has a dependency on the original work. Therefore, Minimal was licensed under LGPL as well. However, LGPL may be a roadblock for companies wishing to use this code in their commercial application(s) (which would also be required to be open source). It is our intention to re-license Minimal with a more permissive OSS license (either Apache or MPL) in the following months.

Enterprise

Minimal Open Source provides all the features required to access the Ethereum blockchain and interact with it as any other client.

Additionally, we also provide an Enterprise version which will offer an extended set of features intended to run Minimal on enterprise environments such as reliable cluster deployments, cloud support, private transactions, different types of consensus algorithms, etc.

If you are interested in hearing more about any of these features, please contact enterprise@umbracle.io. We are always open to talk with different actors in the ecosystem to help us better understand the possible future requirements and improvements in the client.

Conclusion

Minimal Open Source aims to be fully functional and relicensed by the end of October. Feature requests, third-party pull requests, and bug reports are welcome.

Minimal is built by Umbracle, a blockchain lab based in Madrid, Spain. If you want to get in touch send an email to contact@umbracle.io