We're happy to announce go-filecoin 0.2.2. This is a maintenance release with bug fixes and debugging improvements. After the 0.2.1 release, we found a bug in the dht (#2753) that caused some nodes to panic. This was fixed in #2754 by bumping the go-libp2p-kad-dht version from 0.0.4 to 0.0.8.
- Update to [email protected] | go-filecoin #2754
- Fix output for set price | go-filecoin #2727
- Add an approval step to user devnet deploy | go-filecoin #2765
- Log messages proper printing | go-filecoin #2728
- Add filecoin version command to inspect output | go-filecoin #2725
As a reminder, only the latest version of go-filecoin will connect to the user devnet until model for change work is complete. Users will need to upgrade to 0.2.2 to connect to the user devnet.
We're happy to announce go-filecoin 0.2.1. This release is heavy on behind-the-scenes upgrades, including support for filesystem repo migrations and storage disputes, a better message pool, proofs improvements, and a bump to libp2p version for more reliable relays. User-facing improvements such as new commands and options, better status messages, and lots of bugfixes are also included. Get pumped! 🎁
When a filecoin node is first created, it must download and verify the chain. We call this “chain syncing”. While initial commands (such as tapping the faucet or dashboard streaming) can be run immediately, any other commands (such as mining commands) will return errors until chain syncing is complete. Currently, this can take several hours.
To clarify, we’ve added wiki updates, better status messages, and cleaner console output for chain syncing. In future releases, we’ll also address the underlying problem of slow chain syncing.
Where would you like the filecoin node to store client data? You can now choose! There are two ways to specify the location of the sector storage directory: the sectorbase.rootdir
config entry, or the --sectordir
option to go-filecoin init
.
If you don’t specify a location, data is stored in $HOME/.filecoin_sectors
by default.
In addition to sealed client data, Filecoin nodes also store other data on-disk such as configuration data, blockchain blocks, deal state, and encryption keys. As development progresses, we need a way to safely change the type and schema of this data. In this release, we include an accepted design for filesystem repo migrations, and an initial layout for the migration tool. This paves the way for filecoin nodes to seamlessly update when running in production.
For more information, check out the help text:
tools/migration/go-filecoin-migrate --help
This release includes work towards storage protocol dispute resolution. Payment channels can now contain conditions that will query another actor before a voucher is redeemed. Payment channels can also be canceled by the payer. This will trigger an early close if the target of the channel does not redeem a payment. These features can be used together with piece inclusion proofs (coming soon) to enforce proof of storage when storage clients pay storage miners.
Three new commands (inspect
, protocol
, and bitswap
) are now available for your debugging and exploring adventures:
* go-filecoin inspect all
prints all the necessary information for opening a bug report on GitHub. This includes operating system details, your current go-filecoin config, and a few other commonly needed stats.
* go-filecoin protocol
prints details regarding parameters for a node’s protocol, such as autoseal interval and sector size. These are helpful for debugging some of the internals of Filecoin’s proofs and protocol systems.
* go-filecoin bitswap
prints details about a node’s libp2p bitswap system, such as blocks, data, and messages received and sent. These are commonly used in network debugging.
For more details, run any command followed by the --help
flag.
libp2p recently landed a bunch of improvements to relay functionality, addressing heavy resource usage in some production relay nodes. We’ve upgraded to go-libp2p 0.0.16 to enjoy the same fixes in filecoin.
We’ve taken several steps to harden the message pool. The pool now rejects messages that will obviously fail processing due to problems like invalid signature, insufficient funds, no gas, or non-existent actor. It also tracks nonces to ensure that messages are correctly sequenced, and that no account has too many messages in the pool. Finally, the pool now limits the total messages it will accept.
Behind the scenes, much groundwork has been laid for more flexible and powerful storage proofs. This release includes more efficient memory utilization when writing large pieces to a sector. It also includes initial support for piece inclusion proofs, multiple sector sizes, and variable proof lengths.
Over in rust-fil-proofs
, progress is accelerating on more complete and efficient implementations. This includes switching to mmap for more efficient merkle trees, abstractions over the hasher, limiting parallelism when generating groth proofs, and calculating and aggregating challenges across partitions.
We have significantly improved the FAST testing system for Filecoin since the last release. FAST now automatically includes relevant log data and messages from testing nodes in the event of a test failure. FAST also has an all-new localnet tool to quickly and easily set up local Filecoin node clusters for testing and experimentation. See the localnet readme for details.
With Go 1.11’s preliminary support for versioned modules, we have switched to Go modules for dependency management. This allows for easier dependency management and faster updates when dealing with updates from upstream dependencies.
We regularly write design docs before coding begins on important features or components. These short documents are useful in capturing knowledge, formalizing our thinking, and sharing design intent. Going forward, you can find new design docs in the designdocs repo.
A full list of all 177 PRs in this release, including many bugfixes not listed here, can be found on Github.
❤️ Huge thank you to everyone that made this release possible! By alphabetical order, here are all the humans who contributed to this release via the go-filecoin
, rust-fil-proofs
, and specs
repos:
- @814556001 (1 comment)
- @a8159236 (3 issues, 9 comments)
- @aaronhenshaw (1 issue, 1 comment)
- @AbelLaker (2 issues, 2 comments)
- @acruikshank (47 commits, 24 PRs, 42 issues, 81 comments)
- @aioloszcy (2 issues)
- @alanshaw (1 commit, 1 PR, 4 comments)
- @anacrolix (2 commits, 2 PRs, 17 comments)
- @andrewxhill (1 issue)
- @AndyChen1984 (5 issues, 9 comments)
- @anorth (61 commits, 65 PRs, 46 issues, 340 comments)
- @arcalinea (1 issue, 4 comments)
- @arielgabizon (1 issue)
- @arsstone (1 PR, 1 issue, 6 comments)
- @aschmahmann (4 comments)
- @bigs (1 comment)
- @block2020 (5 issues, 1 comment)
- @btcioner (2 comments)
- @bvohaska (1 commit, 1 PR, 6 issues, 26 comments)
- @Byte-Doctor (1 issue)
- @cgwyx (2 comments)
- @chenminjian (1 issue, 3 comments)
- @comradekingu (1 commit, 1 PR)
- @contrun (4 commits, 5 PRs, 1 issue, 7 comments)
- @craigbranscom (1 issue)
- @creationix (1 comment)
- @Cyanglacier (1 issue)
- @Daniel-Wang (1 commit, 1 PR, 1 comment)
- @danigrant (2 commits, 2 PRs)
- @dayou5168 (6 issues, 17 comments)
- @dayu26 (1 comment)
- @deaswang (1 comment)
- @decentralion (1 issue, 12 comments)
- @deltazxm (1 issue, 5 comments)
- @dignifiedquire (49 commits, 32 PRs, 16 issues, 151 comments)
- @diwufeiwen (3 issues, 3 comments)
- @djdv (2 comments)
- @DonaldTsang (1 issue)
- @EbonyBelle (1 comment)
- @ebuchman (1 issue)
- @eefahy (1 comment)
- @ElecRoastChicken (2 comments)
- @evildido (1 issue, 3 comments)
- @fengchenggang1 (1 issue)
- @firmianavan (1 commit, 2 PRs, 3 comments)
- @fjl (4 comments)
- @frrist (100 commits, 51 PRs, 44 issues, 111 comments)
- @gfc-test (1 PR)
- @gmas (12 commits)
- @gmasgras (22 commits, 19 PRs, 14 issues, 35 comments)
- @gnunicorn (1 comment)
- @haadcode (1 issue)
- @hango-hango (1 comment)
- @haoglehaogle (1 issue)
- @hsanjuan (3 commits, 2 PRs, 7 comments)
- @ianjdarrow (5 comments)
- @imrehg (7 issues, 4 comments)
- @ipfsmainofficial (1 issue, 1 comment)
- @irocnX (1 issue, 1 comment)
- @jamiew (1 comment)
- @jaybutera (1 issue)
- @jbenet (1 commit, 4 issues, 8 comments)
- @jcchua (1 issue, 1 comment)
- @jesseclay (1 issue, 1 comment)
- @jhiesey (1 issue)
- @jimpick (1 issue, 3 comments)
- @joshgarde (4 comments)
- @jscode017 (2 commits, 2 PRs, 4 issues, 17 comments)
- @karalabe (1 issue, 4 comments)
- @kishansagathiya (1 issue, 4 comments)
- @Kostadin (1 commit, 1 PR)
- @Kubuxu (13 commits, 9 PRs, 8 comments)
- @lanzafame (2 commits, 1 PR, 1 issue, 4 comments)
- @laser (73 commits, 64 PRs, 77 issues, 178 comments)
- @leinue (1 issue, 1 comment)
- @lidel (3 comments)
- @life-i (1 issue, 3 comments)
- @lin6461 (2 issues, 5 comments)
- @linsheng9731 (1 issue)
- @loulancn (1 issue, 1 comment)
- @Luca8991 (1 issue)
- @madper (1 commit, 1 PR)
- @magik6k (4 commits, 4 PRs, 9 comments)
- @MariusVanDerWijden (2 comments)
- @markwylde (2 issues, 5 comments)
- @mburns (1 PR)
- @mgoelzer (2 issues, 7 comments)
- @mhammersley (3 issues, 15 comments)
- @mikeal (1 PR, 1 issue, 2 comments)
- @mishmosh (21 commits, 8 PRs, 35 issues, 159 comments)
- @mkky-lisheng (1 issue, 1 comment)
- @moyid (4 comments)
- @mslipper (9 commits, 11 PRs, 7 issues, 51 comments)
- @muronglaowang (8 issues, 7 comments)
- @Nanofortress (1 issue, 4 comments)
- @NatoBoram (3 issues, 9 comments)
- @nicola (17 commits, 5 PRs, 7 issues, 25 comments)
- @nijynot (1 PR)
- @ognots (56 commits, 37 PRs, 19 issues, 86 comments)
- @olizilla (1 commit, 1 PR)
- @Pacius (1 issue)
- @ParadiseTaboo (1 comment)
- @pengxiankaikai (7 issues, 15 comments)
- @phritz (13 commits, 11 PRs, 50 issues, 366 comments)
- @pkrasam (1 issue, 1 comment)
- @pooja (5 commits, 1 PR, 11 issues, 95 comments)
- @porcuquine (62 commits, 25 PRs, 31 issues, 246 comments)
- @protocolin (1 issue)
- @pxrxingrui520 (1 issue)
- @rafael81 (2 commits, 2 PRs, 1 issue, 3 comments)
- @raulk (4 commits, 5 PRs, 22 comments)
- @redransil (1 issue)
- @RichardLitt (1 commit, 1 PR)
- @ridewindx (2 commits, 2 PRs)
- @rjan90 (1 comment)
- @rkowalick (52 commits, 46 PRs, 17 issues, 106 comments)
- @RobQuistNL (1 issue, 7 comments)
- @rosalinekarr (38 commits, 39 PRs, 48 issues, 157 comments)
- @sanchopansa (2 comments)
- @sandjj (5 issues, 8 comments)
- @SaveTheAles (1 issue, 3 comments)
- @schomatis (47 commits, 22 PRs, 12 issues, 173 comments)
- @scout (3 comments)
- @SCUTVincent (1 issue, 2 comments)
- @shannonwells (23 commits, 24 PRs, 43 issues, 68 comments)
- @sidke (79 commits, 22 PRs, 18 issues, 12 comments)
- @SmartMeshFoundation (1 issue)
- @songjiayang (1 comment)
- @Stebalien (4 commits, 6 PRs, 18 comments)
- @sternhenri (38 commits, 10 PRs, 5 issues, 50 comments)
- @steven004 (3 commits, 7 PRs, 4 issues, 11 comments)
- @sywyn219 (3 issues, 13 comments)
- @Tbaut (1 issue)
- @terichadbourne (1 issue, 12 comments)
- @thomas92911 (1 issue, 1 comment)
- @travisperson (98 commits, 53 PRs, 40 issues, 190 comments)
- @tycholiu (1 comment)
- @urugang (1 PR, 1 issue, 1 comment)
- @vmx (8 commits, 5 PRs, 2 issues, 19 comments)
- @vyzo (8 comments)
- @warpfork (6 comments)
- @waynewyang (3 commits, 5 PRs, 2 issues, 8 comments)
- @whyrusleeping (157 commits, 42 PRs, 55 issues, 296 comments)
- @windstore (1 issue, 2 comments)
- @woshihanhaoniao (5 issues, 6 comments)
- @wyblyf (1 issue, 6 comments)
- @xcshuan (1 issue, 1 comment)
- @yangjian102621 (1 PR, 4 issues, 16 comments)
- @yaohcn (1 PR, 1 issue, 3 comments)
- @yph152 (1 issue)
- @ytQiao (1 issue, 2 comments)
- @yusefnapora (1 comment)
- @yyh1102 (2 comments)
- @zebul (1 issue)
- @ZenGround0 (35 commits, 29 PRs, 85 issues, 128 comments)
- @zhangkuicheng (2 issues, 4 comments)
- @zixuanzh (4 comments)
- @zjoooooo (1 issue, 1 comment)
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-proofs - Join the community chat on Matrix/Slack, introduce yourself in #_fil-lobby, and let us know where you would like to contribute
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.
We're happy to announce go-filecoin 0.1.4. This release contains a better install experience, initial Proof-of-Spacetime integration, more reliable message sending and networking, and many other improvements. Get pumped! 🎁
Linux and MacOS binaries for go-filecoin are now available! See Installing from binary for instructions.
Running secure proofs requires parameter files that are several GB in size. Previously, these files were generated at install, an extremely memory-intensive process causing slow or impossible builds for many users. Now, you can download pre-generated files during install by running paramfetch
. This step is now included in the Installing from binary instructions.
go-filecoin now checks that it is running the same version (at the same commit) while connecting to a devnet. This is a temporary fix until a model for change is implemented, allowing different versions to interoperate.
Miners now call rust-fil-proofs
to periodically generate proofs of continued storage. With this major integration in place, you can expect some follow-up (for example, storage mining faults do not yet appear on-chain) and continued optimizations to the underlying Proof-of-Spacetime construction and implementation.
We’ve upgraded to go-libp2p 6.0.35 which has fixed autorelay reliability issues. We’ve also added a go-filecoin dht
command for interacting with and debugging our dht.
In the past, if messages failed, they failed silently. go-filecoin would continue to select nonces higher than the sent message, effectively deadlocking message sending. We have now implemented several improvements to message sending: incoming and outgoing queues, better nonce selection logic, and a message timeout after a certain number of blocks. See message status and mpool ls/show/rm commands for more.
Chain is now faster due to use of bitswap sessions. Woohoo!
In the past, the context deadline was set artificially low for file transfer. This caused some large file transfers to time out, preventing storage deals from being completed. Thank you to @markwylde, @muronglaowang, @pengxiankaikai, @sandjj, and others for bug reports.
FAST is a common library of go-filecoin code that can be used in daemon testing, devnet initialization, and other applications like network randomization that involve managing nodes, running commands against them, and observing their state.
Using FAST, we’ve developed localnet, a new tool to quickly and easily set up a local network for testing, debugging, development, and more. Want to give it a whirl? Check out the localnet README.
Previously, the node object contained both interfaces and internals for much of the core protocol. It was difficult to unit test due to many dependencies and complicated setup. Following the porcelain and plumbing pattern from Git, we have now decoupled the node object from many of its dependencies. We have also created a separate API for block, storage, and retrieval mining.
A full list of all 200 PRs in this release can be found on Github.
❤️ Huge thank you to everyone that made this release possible! By alphabetical order, here are all the humans who contributed issues and commits in go-filecoin
and rust-fil-proofs
to date:
- @aaronhenshaw
- @aboodman
- @AbelLaker
- @alanshaw
- @acruikshank
- @anacrolix
- @andychen1984
- @anorth
- @Byte-Doctor
- @chenminjuan
- @coderlane
- @comeradekingu
- @danigrant
- @dayou5168
- @dignifiedquire
- @diwufeiwen
- @ebuchman
- @eefahy
- @firmianavan
- @frrist
- @gmasgras
- @haoglehaogle
- @hsanjuan
- @imrehg
- @jaybutera
- @jbenet
- @jimpick
- @karalabe
- @kubuxu
- @lanzafame
- @laser
- @leinue
- @life-i
- @luca8991
- @madper
- @magik6k
- @markwylde
- @mburns
- @michellebrous
- @mikael
- @mishmosh
- @mslipper
- @muronglaowang
- @nanofortress
- @natoboram
- @nicola
- @ognots
- @olizilla
- @pacius
- @pengxiankaikai
- @pooja
- @porcuquine
- @phritz
- @pkrasam
- @pxrxingrui520
- @raulk
- @rafael81
- @richardlitt
- @rkowalick
- @rosalinekarr
- @sandjj
- @schomatis
- @shannonwells
- @sidka
- @stebalien
- @steven004
- @sywyn219
- @tbaut
- @thomas92911
- @travisperson
- @vmx
- @waynewyang
- @whyrusleeping
- @windstore
- @woshihanhaoniao
- @xcshuan
- @yangjian102621
- @yph152
- @zenground0
- @zhangkuicheng
- @zjoooooo
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-proofs - Join the community chat on Matrix/Slack, introduce yourself in #_fil-lobby, and let us know where you would like to contribute
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.