We’re happy to announce go-filecoin 0.3.2. This release is a big step towards completing the filecoin storage protocol. It includes many changes to the miner actor builtin smart contract that will allow the network to securely account for verifiable storage power once fault handling is in place. Many less visible but high impact code and testing improvements ship with this release. 0.3.2 also includes a big UX improvement with the new and improved go-filecoin deals
command for user friendly management of storage deals. Getting paid as a storage miner is now as simple as a single CLI call.
Features
π Storage protocol nearing completeness
Our number one goal is a network securely powered by verifiable storage. In order for this to work we need to penalize cheating miners who do not prove their storage on time. This release includes most of the groundwork needed, including fundamental data structures and encoding work for tracking sets of sectors, improved power tracking in the miner actor built-in smart contract, and charging fees for late storage proof (PoSt) submissions. Expect these changes to blossom into the complete fault reporting mechanism in the next release.
πͺ Multiple sector sizes
In order for the network to scale gracefully, different miners may choose from a variety of different sector sizes to put data in and prove over: smaller sectors for faster and more nimble storage; larger sectors for slower but efficient storage. This release includes all of the software updates we need to support multiple sector sizes in a single network; however, we plan to properly vet network conditions with much bigger sectors before enabling multiple sectors sizes in the user devnet. Expect 1 GiB sectors on the user devnet in the next release.
π€ Deal management and payments
Both clients and miners can now easily inspect the fine details of all storage deals they have entered into using go-filecoin deals list
and go-filecoin deals show
. Miners can get paid for honoring a deal by running go-filecoin deals redeem
. Additionally this release ships some improvements in payment channel safety for correct arbitration of deal disputes we want down the road.
Performance and Reliability
π³ Upgrade in place
This release drives home previous work on repo migrations. The go-filecoin-migrate
tool (included in the go-filecoin source repo) is now complete. This release includes a proof of concept migration: upgrading on-disk chain metadata from JSON to the more compact CBOR. Landing this means we are confident that this major technical challenge is behind us, putting us one step closer to a reliable, persistent testnet.
Refactors and Endeavors
πMajor testing improvements
Testing is the silent champion of reliability and development speed. This release includes tons of behind the scenes work improving the quality of existing unit and integration tests as well as adding new tests to existing code. Continued improvements to the FAST framework promise to further accelerate integration testing and devnet deployments.
π³ Tech debt paydown
This release is not playing around when it comes to paying off technical debt. Fundamental chain refactors include an improved immutable tipset type and tipset cache sharing are at the top of the list. A major refactor of the message handling system into inbox and outbox queues is also a notable improvement. Donβt forget about a consistent internal attoFIL token type, a sleek new miner deal acceptance codepath, sector builder reliability fixes… the list goes on. We are excited to be shipping higher quality software with each release so that we can move faster towards a robust mainnet.
Changelog
A full list of all 207 PRs in this release, including many bugfixes not listed here, can be found on Github.
CLI diff
go-filecoin command | change |
---|---|
deals list | added |
deals redeem | added |
deals show | added |
miner pledge | removed |
mining status | added |
show block | args changed |
Contributors
β€οΈ Huge thank you to everyone that made this release possible! By alphabetical order, here are all the humans who contributed to this release:
- @a8159236 (3 issues, 2 comments)
- @Aboatlai (1 issue)
- @acruikshank (6 commits, 8 PRs, 21 issues, 23 comments)
- @AkshitV (1 issue, 2 comments)
- @alanshaw (1 comment)
- @AndyChen1984 (1 issue, 5 comments)
- @anorth (22 commits, 24 PRs, 40 issues, 163 comments)
- @arielgabizon (1 issue, 2 comments)
- @benrogmans (1 issue)
- @bvohaska (1 PR, 1 comment)
- @callmez (1 comment)
- @carsonfly (2 issues, 7 comments)
- @chengzhigen (2 issues, 2 comments)
- @chenhonghe (1 issue, 5 comments)
- @chenxiaolin0105 (1 issue)
- @chenzhi201901 (2 issues, 1 comment)
- @codecov-io (57 comments)
- @Cryptovideos (1 issue)
- @dannyhchan (4 comments)
- @dayu26 (1 issue)
- @decentralion (3 commits, 1 PR, 6 comments)
- @deltazxm (2 comments)
- @dignifiedquire (76 commits, 25 PRs, 14 issues, 139 comments)
- @DrPeterVanNostrand (1 commit, 1 PR, 2 comments)
- @eshon (1 issue, 8 comments)
- @frrist (14 commits, 18 PRs, 10 issues, 46 comments)
- @gnunicorn (23 commits, 3 PRs, 1 issue, 17 comments)
- @grandhelmsman (3 issues, 2 comments)
- @idotial (1 issue)
- @imrehg (1 PR, 1 comment)
- @ingar (5 commits, 6 PRs, 7 comments)
- @ipfsmainofficial (1 issue)
- @jscode017 (1 comment)
- @Kentix (1 issue, 2 comments)
- @kishansagathiya (1 PR, 2 comments)
- @Kubuxu (1 commit, 1 PR, 1 comment)
- @laser (45 commits, 41 PRs, 24 issues, 97 comments)
- @maybeuright (1 comment)
- @meiqimichelle (1 comment)
- @merced (1 issue, 3 comments)
- @michellebrous (1 comment)
- @mishmosh (3 commits, 2 PRs, 2 issues, 20 comments)
- @mslipper (5 commits, 1 PR, 8 comments)
- @nicola (2 commits, 1 PR, 4 issues, 11 comments)
- @nijynot (1 commit, 1 comment)
- @no1lcy (1 issue, 1 comment)
- @ognots (6 commits, 5 PRs, 1 issue, 11 comments)
- @Peachooo (2 issues, 1 comment)
- @pooja (12 commits, 5 PRs, 9 issues, 45 comments)
- @porcuquine (8 commits, 4 PRs, 7 issues, 42 comments)
- @R-Niagra (1 issue, 1 comment)
- @ridewindx (1 commit, 1 PR)
- @RobQuistNL (2 comments)
- @rogerlzp (1 comment)
- @rosalinekarr (15 commits, 15 PRs, 3 issues, 36 comments)
- @schomatis (22 commits, 11 PRs, 3 issues, 28 comments)
- @shannonwells (8 commits, 8 PRs, 5 issues, 11 comments)
- @sidke (13 commits, 1 comment)
- @Stebalien (1 commit, 1 PR, 1 comment)
- @sternhenri (4 PRs, 1 issue, 24 comments)
- @steven004 (1 commit, 1 PR, 3 issues, 7 comments)
- @taoshengshi (2 issues, 6 comments)
- @taylorshuang (2 issues, 6 comments)
- @titilami (3 issues, 2 comments)
- @travisperson (3 commits, 3 PRs, 6 issues, 25 comments)
- @urugang (1 issue)
- @vhosakot (1 comment)
- @vmx (3 commits, 4 PRs, 14 comments)
- @vyzo (1 comment)
- @warpfork (3 comments)
- @waynewyang (3 commits, 4 PRs, 1 issue, 3 comments)
- @whyrusleeping (72 commits, 15 PRs, 11 issues, 73 comments)
- @windemut (1 issue, 5 comments)
- @yangjian102621 (2 issues, 5 comments)
- @yaohcn (1 commit, 1 PR, 1 comment)
- @yusefnapora (1 comment)
- @ZenGround0 (9 commits, 9 PRs, 23 issues, 37 comments)
- @zhengboowen (3 issues)
- @zixuanzh (1 PR)
ππ½ Want to contribute?
Would you like to contribute to the Filecoin project and donβt know how? Here are a few places you can get started:
Check out the Contributing Guidelines
Look for issues with the
good-first-issue
label in go-filecoin and rust-fil-proofsJoin the community chat on Matrix/Slack, introduce yourself in #_fil-lobby, and let us know where you would like to contribute
Join the user devnet
βοΈ Do you have questions?
The best place to ask your questions about go-filecoin, how it works, and what you can do with it is at discuss.filecoin.io. We are also available at the community chat on Matrix/Slack.