consensus-shipyard / lotus

Reference implementation of the Filecoin protocol, written in Go
https://lotus.filecoin.io/
Other
7 stars 3 forks source link

Project Eudico

‼️ The IPC Agent, the IPC actors, and eudico haven't been audited, tested in depth, or otherwise verified. Moreover, the system is missing critical recovery functionality in case of crashes. There are multiple ways in which you may lose funds moved into an IPC subnet, and we strongly advise against deploying IPC on mainnet and/or using it with tokens with real value.

Eudico is a modularised implementation of Lotus, itself an implementation of the Filecoin Distributed Storage Network. For more details about Filecoin, check out the Filecoin Spec. This is a work-in-progress intended to enable easier experimentation with future protocol features and is not meant to be used in the production network.

consensus-shipyard

Branching Strategy

Production branch

The production branch is main. The main branch is always compatible with the stable version of the IPC Agent. Updates to main always come from the dev branch.

Development branch

The primary development branch is dev. dev contains the most up-to-date software but may not be compatible with the stable version of the IPC Agent. Only use dev if doing a full local deployment. In such cases, use the IPC Agent dev branch too, but note that the packaged deployment scripts default to checking out main.

Building & Documentation

Note: The dev branch is the cutting-edge implementation, recommended for subnets, while the main branch guarantees compatibility with the stable version of the rest of the stack.

For complete instructions on how to build, install and setup eudico/lotus, please visit https://lotus.filecoin.io. Basic build instructions can be found further down in this readme.

Security

Please send any security reports to ipc@protocol.ai.

Basic Build Instructions

System-specific Software Dependencies:

Building eudico requires some system dependencies, usually provided by your distribution.

Ubuntu/Debian:

sudo apt install mesa-opencl-icd ocl-icd-opencl-dev gcc git bzr jq pkg-config curl clang build-essential hwloc libhwloc-dev wget -y && sudo apt upgrade -y

Fedora:

sudo dnf -y install gcc make git bzr jq pkgconfig mesa-libOpenCL mesa-libOpenCL-devel opencl-headers ocl-icd ocl-icd-devel clang llvm wget hwloc hwloc-devel

For other distributions you can find the required dependencies here. For instructions specific to macOS, you can find them here.

Go

To build eudico, you need a working installation of Go 1.19.7 or higher:

wget -c https://golang.org/dl/go1.19.7.linux-amd64.tar.gz -O - | sudo tar -xz -C /usr/local

TIP: You'll need to add /usr/local/go/bin to your path. For most Linux distributions you can run something like:

echo "export PATH=$PATH:/usr/local/go/bin" >> ~/.bashrc && source ~/.bashrc

See the official Golang installation instructions if you get stuck.

Build and install Lotus

Once all the dependencies are installed, you can build and install eudico.

   git clone https://github.com/consensus-shipyard/lotus.git
   cd lotus/
   make spacenet

Eudico will use the $HOME/.lotus folder by default for storage (configuration, chain data, wallets, etc). See advanced options for information on how to customize the Lotus folder.

You should now have Lotus installed. You can now start the Lotus daemon and sync the chain.

License

Dual-licensed under MIT + Apache 2.0