Reference implementation of the Filecoin protocol, written in Go
Go to file
Steven Allen d3594835c4 [WIP] Network upgrade support
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.
2020-09-11 20:16:29 -07:00
.circleci ci: remove unnecessary go get. 2020-09-09 14:20:11 +01:00
.github initial CODEOWNERS. 2020-09-09 14:40:30 +01:00
api [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
build Bump version to 0.6.2-rc1 2020-09-09 13:07:15 +02:00
chain [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
cli Merge pull request #3676 from filecoin-project/feat/mpool-replace-auto 2020-09-09 19:31:43 +02:00
cmd [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
conformance fix lint. 2020-09-09 14:28:56 +01:00
documentation docs: add docs on how to use paych status 2020-09-09 15:37:34 +02:00
extern [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
gen rename p2p protocol to /fil/chain/xchg/0.0.1 (backwards-compatible); rename more. 2020-09-07 19:45:34 +01:00
genesis Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
journal Lint everything 2020-08-20 20:46:36 -07:00
lib Ignore the linter 2020-09-08 12:18:48 +02:00
lotuspond Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
markets typo fix in error message 2020-09-09 12:24:33 -04:00
metrics metrics: add expected height metric 2020-09-07 02:57:12 +00:00
miner add niceSleep 1 second when drand errors 2020-09-08 18:35:10 +02:00
node [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
paychmgr Update to specs v0.9.6 2020-09-07 15:48:41 -04:00
scripts Batch replacement,update lotus-storage-miner to lotus-miner. 2020-09-05 10:40:53 +08:00
storage [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
tools Add StageFetchingMessages to sync status 2020-09-08 20:42:20 +02:00
.codecov.yml Disable codecov annotations 2020-09-03 13:39:16 +02:00
.dockerignore add docker support 2019-12-05 11:31:32 +08:00
.gitignore Update lotus-seal-worker to lotus-worker 2020-07-09 11:04:45 +08:00
.gitmodules point test-vectors to master. 2020-08-16 22:05:43 +01:00
.golangci.yml Lint everything 2020-08-20 20:46:36 -07:00
CHANGELOG.md Lotus version 0.6.1 2020-09-08 03:10:27 -04:00
go.mod [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
go.sum [WIP] Network upgrade support 2020-09-11 20:16:29 -07:00
LICENSE-APACHE Add basic readme and licenses 2019-08-01 21:26:11 -07:00
LICENSE-MIT Add basic readme and licenses 2019-08-01 21:26:11 -07:00
Makefile docs: rename file 2020-08-24 18:13:52 +02:00
README.md docs: removed non used packages from the list 2020-08-26 12:10:11 +01:00
SECURITY.md doc: report a vulnerability 2020-06-22 12:45:24 -03:00

Project Lotus Logo

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 of next 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:

License

Dual-licensed under MIT + Apache 2.0