Reference implementation of the Filecoin protocol, written in Go
d3594835c4
This patch starts adding support for network upgrades. * It adds an actors abstraction layer for loading abstract (cross-version) actors. * It starts switching over to a shared deadline type. * It adds an abstraction for ADTs (hamt/amt). * It removes the callback-based API in the StateManager (difficult to abstract across actor versions). * It _does not_ actually add support for actors v2. We can do that in a followup patch but that should be relatively easy. This patch is heavily WIP and does not compile. Feel free to push changes directly to this branch. Notes: * State tree access now needs a network version, because the HAMT type will change. * I haven't figured out a nice way to abstract over changes to the _message_ types. However, many of them will be type aliased to actors v0 in actors v2 so we can likely continue using the v0 versions (or use the v2 versions everywhere). I've been renaming imports to `v0*` to make it clear that we're importing types from a _specific_ actors version. TODO: * Consider merging incremental improvements? We'd have to get this compiling again first but we could merge in the new abstractions, and slowly switch over. * Finish migrating to the new abstractions. * Remove all actor state types from the public API. See `miner.State.Info()` for the planned approach here. * Fix the tests. This is likely going to be a massive pain. |
||
---|---|---|
.circleci | ||
.github | ||
api | ||
build | ||
chain | ||
cli | ||
cmd | ||
conformance | ||
documentation | ||
extern | ||
gen | ||
genesis | ||
journal | ||
lib | ||
lotuspond | ||
markets | ||
metrics | ||
miner | ||
node | ||
paychmgr | ||
scripts | ||
storage | ||
tools | ||
.codecov.yml | ||
.dockerignore | ||
.gitignore | ||
.gitmodules | ||
.golangci.yml | ||
CHANGELOG.md | ||
go.mod | ||
go.sum | ||
LICENSE-APACHE | ||
LICENSE-MIT | ||
Makefile | ||
README.md | ||
SECURITY.md |
Project Lotus - 莲
Lotus is an implementation of the Filecoin Distributed Storage Network. For more details about Filecoin, check out the Filecoin Spec.
Building & Documentation
For instructions on how to build lotus from source, please visit https://lotu.sh or read the source here.
Reporting a Vulnerability
Please send an email to security@filecoin.org. See our security policy for more details.
Development
The main branches under development at the moment are:
master
: current testnet.next
: working branch with chain-breaking changes.ntwk-calibration
: devnet running one ofnext
commits.
Tracker
All work is tracked via issues. An attempt at keeping an up-to-date view on remaining work towards Mainnet launch can be seen at the lotus github project board. The issues labeled with incentives
are there to identify the issues needed for Space Race launch.
Packages
The lotus Filecoin implementation unfolds into the following packages:
- This repo
- go-fil-markets which has its own kanban work tracker available here
- spec-actors which has its own kanban work tracker available here
License
Dual-licensed under MIT + Apache 2.0