/spacenet

Testnet for new generation of Filecoin and Interplanetary Consensus (IPC)

Primary LanguageCSSApache License 2.0Apache-2.0

‼️ Spacenet has been deprecated in favour of Calibration as the recommended root network. This repo is now archived, its content stale.

Spacenet

A new-generation Filecoin IPC testnet.

Made with ❤ by ConsensusLab

Tests Linting

Check out the spacenet branch to connect to Spacenet.

Why Spacenet?

Spacenet is not yet another Filecoin testnet. Its consensus layer has been modified to integrate Mir, a distributed protocol implementation framework. The current version of Spacenet runs an implementation of the Trantor BFT consensus over Mir. And did we forget to mention Spacenet comes with Interplanetary Consensus (IPC) support?

Spacenet aims to provide developers with a testbed to deploy their FVM use cases and innovate with new Web3 applications that can benefit from operating in subnets. It is also a way for us to test our consensus innovations with real applications and real users. Developers will be able to deploy their own subnets from Spacenet while maintaining the ability to seamlessly interact with state and applications in the original network, from which they have otherwise become independent.

In the meantime, to learn more about IPC you can read the design reference and/or watch this (slightly outdated) talk:

Watch the video

SLA of the network

Spacenet is an experimental network. We aim to have it constantly running, but some hiccups may appear along the way. If you are looking to rely on Spacenet for your applications, you should expect:

  • Unplanned (and potentially long-lasting) downtime while we investigate bugs.
  • Complete restarts of the network and loss of part or all stored state. In case of serious issues, it may be necessary to restart the network from a previous checkpoint, or completely restart from genesis.
  • Bugs and rough edges to be fixed and polished along the way.

Announcements about new releases and status updates about the network are given in the #spacenet channel of the Filecoin Slack and through this repo. You can also ping us there or open an issue in this repo if you encounter a bug or some other issue with the network. You can also direct your requests through this form.

Getting started for users

Spacenet is a Filecoin testnet, and as such it is supposed to do (almost) everything that the Filecoin network supports:

That being said, as the consensus layer is no longer storage-dependent, Spacenet has limited support for storage-related features. In particular, we have stripped out some of the functionalities of the lotus miner. While you deploy a lotus-miner over Spacenet to onboard storage to the network and perform deals, lotus-miners are not allowed to propose and validate blocks anymore (this is handled by Mir-Trantor validators).

⚠️ Support for storage-specific features in Spacenet is limited.

Getting Spacenet FIL

In order to fund your account with Spacenet FIL we provide a faucet at https://spacenet.consensus.ninja. Getting FIL is as simple as inputting your address in the textbox and clicking the button.

  • The per-request allowance given by the faucet is of 10 FIL.
  • There is a daily maximum of 20 FIL per address.
  • And we have also limited the maximum amount of funds that the faucet can withdraw daily. If, for some reason, you require more Spacenet FIL for your application, feel free to drop us a message in the #spacenet Slack channel, via consensuslab@protocol.ai to increase your allowance, or fill-in a request in this form.

Getting started for developers

You can run a full-node and connect it to Spacenet by running eudico (a fork of lotus that is able to run several consensus algorithms):

  • Cloning the modified lotus implementation (eudico) for Spacenet
git clone --branch spacenet https://github.com/consensus-shipyard/lotus
  • Installing lotus and running all dependencies as described in the README of the repo
  • Once you have all lotus dependencies installed you can run the following command to compile eudico with Spacenet support.
make spacenet
  • With that, you are ready to run your spacenet daemon and connect to the network by connecting to any its bootstrap nodes.
./eudico mir daemon --bootstrap=true

Eudico in Spacenet supports every lotus command supported in mainnet, so you'll be able to configure your Spacenet full-node at will (by exposing a different API port, running Lotus lite, etc.). More info available in Lotus' docs.

Using eudico Lite for Spacenet

The Spacenet blockchain is growing fast in size! If you are looking to tinker a bit with the network and get some Spacenet FIL, but you are not planning to extensively use the network to the extent of running your own full-node, we have provided a read endpoint so you can interace with Spacenet through an Eudico Lite node.

To connect to Spacenet through a Eudico Lite you need to configure FULLNODE_API_INFO to point to the following peer with the following API_KEY:

FULLNODE_API_INFO=/dns4/api.spacenet.ipc.space/tcp/1234/http ./eudico mir daemon --lite

To test that the connection has been successful you can try to create a new wallet and send some funds from the faucet. More info about Lotus/Eudico Lite can be found here

📓 We are only providing read access through our current Eudico Lite endpoint, if you would like to have write or admin access to a Spacenet full-node to test the network without having to sync your own node get in touch in FIL Slack's #spacenet.

In future versions of Spacenet, we will provide periodic snapshots to help developers sync their full-nodes in a tractable amount of time. You can follow the progress of this feature in the following issue

Getting started with IPC

Spacenet now features support for IPC subnets. You're able to create, join, and leave subnets, to operate as a subnet validator, and to issue transactions and deploy smart contracts in subnets.

The instuctions in the IPC Agent repository will guide you through the deployment of an IPC subnet under Spacenet.

Getting started for validators

Support for external validators coming soon! Track the work in the following issue. If you are interested in becoming a validator let us know via ipc@protocol.ai.

Spacenet is currently run by a committee of 4 validators owned by CL. We don't accept externally owned validators during this initial testing phase, until the network deployment is stabilized, but support for reconfiguration and external validators will be added soon.