This page is also available in other languages:
← Back to the index
October 16, 2019

Announcing lotus, our first alternate Filecoin implementation

Announcing lotus, our first alternate Filecoin implementation

One of our most important goals is to make the Filecoin mainnet as secure and resilient as possible. One part of our network security strategy is launching the Filecoin network with multiple implementations. Today, we are delighted to announce lotus, our first alternate Filecoin implementation.

For several months, we have been working simultaneously toward building go-filecoin, our original reference implementation, while also collaborating with other teams to build multiple implementations of the Filecoin protocol spec. This effort will not alter our testnet and mainnet timelines, but it will make the Filecoin mainnet more secure and resilient. lotus is the first of many multiple implementation announcements that are coming very soon!

Specifically, today we’re announcing:

  1. The opening of the lotus codebase

  2. The launch of the lotus devnet

Let’s dive in!

Why multiple implementations?

As we’ve mentioned elsewhere, building a blockchain is like building a software rocket. We are working to ensure that our protocol and software implementations are secure – we have an internal protocol security team and are performing internal implementation security audits, external security audits, and more. But no matter how hard we work to protect the system and individual nodes, there is always the chance that an implementation bug might rear its head and result in adverse consequences for the network.

Having multiple software implementations that interoperate on the same network reduces this risk significantly. While each implementation might have its own set of bugs, it is unlikely that all implementations will have the exact same set of security issues – especially if these implementations do not share security-critical software components. Thus, launching a cryptocurrency network with multiple implementations decreases the likelihood of a catastrophic bug that can adversely affect or even take down the entire Filecoin network.

Multiple implementations offer other benefits, such as the ability to increase engagement with different developer communities and the opportunity to explore different implementation architectures (which may offer different performance and other optimizations). Ever since Ethereum launched with Geth and Parity, we have seen an increasing number of cryptonetworks launching with multiple software implementations.

Because multiple implementations are so valuable for network security, resilience, and community engagement, we have made it a goal to launch Filecoin (in March 2020) with 2+ interoperable protocol implementations. As of today, we have several Filecoin implementations in progress – go-filecoin, lotus, and others that will be formally announced soon. We are looking for even more talented teams to build Filecoin implementations. If interested, please apply for our grant to build an additional implementation by following the instructions here!

Tell me more about lotus

lotus is a minimal, experimental implementation of the Filecoin protocol specification, and is written in Go. The codebase is not yet feature-complete, but several core Filecoin protocol features have already been implemented, including:

In addition to opening the lotus codebase, today we are also announcing the launch of the first public lotus development network (devnet). After setting up a lotus node, you can connect to the devnet and begin storing data with other nodes or start mining. Read the *Getting Started with lotus* section below for more details.

A few very important notes:

Getting started with lotus

We encourage miners, clients, and developers to start experimenting with lotus today! We hope that your engagement and participation will help strengthen the security of the lotus codebase and network in advance of our December 11, 2019 testnet launch.

For miners and users, there are 4 main ways to get involved with lotus today:

  1. Download, install, and run lotus locally (instructions here)

  2. Connect to the lotus devnet (instructions here)

  3. Contribute to the lotus codebase (open issues here)

  4. Explore network activity via the lotus devnet dashboard

Adventurous developers can begin exploring the lotus RPC API to start building applications on the lotus devnet (and eventually testnet). Note that lotus will continue to evolve significantly until testnet, so be prepared for breaking changes.

Through any and all of these steps, we hope you will help us out by reporting any and all issues you encounter. Identifying issues helps us reach our security goals more quickly, so we really like bug reports. 🙏 You can post issues or explore what others have posted on:

Many Thanks

As always, many thanks for your continued support of the Filecoin project. We are excited to continue working with you to build a robust, decentralized, and efficient foundation for humanity’s information.

Onward!

← Back to the index