github.com/TRON-US/go-btfs
v1.5.0
TRON-US/go-btfs
What this package is like to depend on
Last release 5 years ago
no release in 18 months
Release timing varies
gaps range from 2 weeks to 4 months
Most releases are documented
notes for 23 of 34 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
108 releases · first in 2015
0 releases in the last 12 months
see the full history below
Release timeline
108 releases · Feb 2015 to Dec 2021Releases
latest 60 of 108-
v1.5.1-0.20210305051426-208e58603d9b05 Mar 2021 pre-releaseNothing published for this version
-
v1.5.011 Jan 2021Nothing published for this version
-
v0.4.21-0.20211217075402-928f9db7ed3217 Dec 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211215110639-8e2142b81de015 Dec 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211125100234-18b4d803c1a025 Nov 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211125081821-f7f05e3c0bd725 Nov 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211124105655-9b39d4cf6a7524 Nov 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211123131955-190b26c1f51823 Nov 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20211029064910-76fb0542bd5229 Oct 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210917094104-9fd8fa5868cb17 Sep 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210901090359-cf6994e1c51b01 Sep 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210819192215-89a173d9e21419 Aug 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210818075115-7c9305a76ac118 Aug 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210406105202-c947a6828e3a06 Apr 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210308075344-49ef4d934ecc08 Mar 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210305051426-208e58603d9b05 Mar 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210305040956-b1dd052b7ecc05 Mar 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20210111023934-86e66331967c11 Jan 2021 pre-releaseNothing published for this version
-
v0.4.21-0.20201118102157-56b342bc124718 Nov 2020 pre-releaseNothing published for this version
-
v0.4.21-0.20201117041602-488bfb801d7417 Nov 2020 pre-releaseNothing published for this version
-
v0.4.21-0.20200928070058-68f24b1189c628 Sep 2020 pre-releaseNothing published for this version
-
v0.4.21-0.20200714225159-9692ef0b354e14 Jul 2020 pre-releaseNothing published for this version
-
v0.4.21-0.20200704060757-ed6b1d7a9a0b04 Jul 2020 pre-releaseNothing published for this version
-
v0.4.21-0.20200703040301-8b7e78bbd2de03 Jul 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200609024748-fc383f54001709 Jun 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200604070432-a4bdf5c9a3df04 Jun 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200529021411-78da3d3ac12229 May 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200430183258-86bbcbc4e04630 Apr 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200214011122-c5c7e4577cae14 Feb 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20200117222509-c80b9462bd3517 Jan 2020 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20191224005818-01f683c1d05324 Dec 2019 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20191021203602-be1389c8971521 Oct 2019 pre-releaseNothing published for this version
-
v0.4.20-rc2.0.20190809235203-7443043bce2309 Aug 2019 pre-releaseNothing published for this version
-
v0.4.1901 Mar 2019Nothing published for this version
-
v0.4.19-rc227 Feb 2019 pre-releaseNothing published for this version
-
v0.4.19-rc123 Feb 2019 pre-releaseNothing published for this version
-
v0.4.1802 Nov 2018Nothing published for this version
-
v0.4.18-rc201 Nov 2018 pre-releaseNothing published for this version
-
v0.4.18-rc128 Oct 2018 pre-releaseNothing published for this version
-
v0.4.1727 Jul 2018Nothing published for this version
-
v0.4.17-rc124 Jul 2018 pre-releaseNothing published for this version
-
v0.4.1613 Jul 2018Nothing published for this version
-
v0.4.16-rc309 Jul 2018 pre-releaseNothing published for this version
-
v0.4.16-rc205 Jul 2018 pre-releaseNothing published for this version
-
v0.4.16-rc128 Jun 2018 pre-releaseNothing published for this version
-
v0.4.1510 May 2018Nothing published for this version
-
v0.4.15-rc127 Apr 2018 pre-releaseNothing published for this version
-
v0.4.1423 Mar 2018Nothing published for this version
-
v0.4.14-rc320 Mar 2018 pre-releaseNothing published for this version
-
v0.4.14-rc213 Mar 2018 pre-releaseNothing published for this version
-
v0.4.14-rc107 Mar 2018 pre-releaseNothing published for this version
-
v0.4.1316 Nov 2017Nothing published for this version
-
v0.4.13-rc114 Nov 2017 pre-releaseNothing published for this version
-
v0.4.1210 Nov 2017Nothing published for this version
-
v0.4.12-rc205 Nov 2017 pre-releaseNothing published for this version
-
v0.4.12-rc126 Oct 2017 pre-releaseNothing published for this version
-
v0.4.1127 Sep 2017Release notes
Open source →Ipfs 0.4.11 is a larger release that brings many long-awaited features and performance improvements. These include new datastore options, more efficient bitswap transfers, greatly improved resource consumption, circuit relay support, ipld plugins, and more! Take a look at the full changelog below for a detailed list of every change.
The ipfs datastore has, until now, been a combination of leveldb and a custom git-like storage backend called 'flatfs'. This works well enough for the average user, but different ipfs usecases demand different backend configurations. To address this, we have changed the configuration file format for datastores to be a modular way of specifying exactly how you want the datastore to be structured. You will now be able to configure ipfs to use flatfs, leveldb, badger, an in-memory datastore, and more to suit your needs. See the new datastore documentation for more information.
Bitswap received some much needed attention during this release cycle. The concept of 'Bitswap Sessions' allows bitswap to associate requests for different blocks to the same underlying session, and from that infer better ways of requesting that data. In more concrete terms, parts of the ipfs codebase that take advantage of sessions (currently, only
ipfs pin add) will cause much less extra traffic than before. This is done by making optimistic guesses about which nodes might be providing given blocks and not sending wantlist updates to every connected bitswap partner, as well as searching the DHT for providers less frequently. In future releases we will migrate over more ipfs commands to take advantage of bitswap sessions. As nodes update to this and future versions, expect to see idle bandwidth usage on the ipfs network go down noticeably.The never ending effort to reduce resource consumption had a few important updates this release. First, the bitswap sessions changes discussed above will help with improving bandwidth usage. Aside from that there are two important libp2p updates that improved things significantly. The first was a fix to a bug in the dial limiter code that was causing it to not limit outgoing dials correctly. This resulted in ipfs running out of file descriptors very frequently (as well as incurring a decent amount of excess outgoing bandwidth), this has now been fixed. Users who previously received "too many open files" errors should see this much less often in 0.4.11. The second change was a memory leak in the DHT that was identified and fixed. Streams being tracked in a map in the DHT weren't being cleaned up after the peer disconnected leading to the multiplexer session not being cleaned up properly. This issue has been resolved, and now memory usage appears to be stable over time. There is still a lot of work to be done improving memory usage, but we feel this is a solid victory.
It is often said that NAT traversal is the hardest problem in peer to peer technology, we tend to agree with this. In an effort to provide a more ubiquitous p2p mesh, we have implemented a relay mechanism that allows willing peers to relay traffic for other peers who might not otherwise be able to communicate with each other. This feature is still pretty early, and currently users have to manually connect through a relay. The next step in this endeavour is automatic relaying, and research for this is currently in progress. We expect that when it lands, it will improve the perceived performance of ipfs by spending less time attempting connections to hard to reach nodes. A short guide on using the circuit relay feature can be found here.
The last feature we want to highlight (but by no means the last feature in this release) is our new plugin system. There are many different workflows and usecases that ipfs should be able to support, but not everyone wants to be able to use every feature. We could simply merge in all these features, but that causes problems for several reasons: first off, the size of the ipfs binary starts to get very large very quickly. Second, each of these different pieces needs to be maintained and updated independently, which would cause significant churn in the codebase. To address this, we have come up with a system that allows users to install plugins to the vanilla ipfs daemon that augment its capabilities. The first of these plugins are a git plugin that allows ipfs to natively address git objects and an ethereum plugin that lets ipfs ingest and operate on all ethereum blockchain data. Soon to come are plugins for the bitcoin and zcash data formats. In the future, we will be adding plugins for other things like datastore backends and specialized libp2p network transports. You can read more on this topic in Plugin docs
In order to simplify its integration with fs-repo-migrations, we've switched the ipfs/go-ipfs docker image from a musl base to a glibc base. For most users this will not be noticeable, but if you've been building your own images based off this image, you'll have to update your dockerfile. We recommend a multi-stage dockerfile, where the build stage is based off of a regular Debian or other glibc-based image, and the assembly stage is based off of the ipfs/go-ipfs image, and you copy build artifacts from the build stage to the assembly stage. Note, if you are using the docker image and see a deprecation message, please update your usage. We will stop supporting the old method of starting the dockerfile in the next release.
Finally, I would like to thank all of our contributors, users, supporters, and friends for helping us along the way. Ipfs would not be where it is without you.
- Features
- Add
--pinoption toipfs dag put(ipfs/go-ipfs#4004) - Add
--pinoption toipfs object put(ipfs/go-ipfs#4095) - Implement
--profileoption onipfs init(ipfs/go-ipfs#4001) - Add CID Codecs to
ipfs block put(ipfs/go-ipfs#4022) - Bitswap sessions (ipfs/go-ipfs#3867)
- Create plugin API and loader, add ipld-git plugin (ipfs/go-ipfs#4033)
- Make announced swarm addresses configurable (ipfs/go-ipfs#3948)
- Reprovider strategies (ipfs/go-ipfs#4113)
- Circuit Relay integration (ipfs/go-ipfs#4091)
- More configurable datastore configs (ipfs/go-ipfs#3575)
- Add experimental support for badger datastore (ipfs/go-ipfs#4007)
- Add
- Improvements
- Add better support for Raw Nodes in MFS and elsewhere (ipfs/go-ipfs#3996)
- Added file size to response of
ipfs addcommand (ipfs/go-ipfs#4082) - Add /dnsaddr bootstrap nodes (ipfs/go-ipfs#4127)
- Do not publish public keys extractable from ID (ipfs/go-ipfs#4020)
- Documentation
- Adding documentation that PubSub Sub can be encoded. (ipfs/go-ipfs#3909)
- Add Comms items from js-ipfs, including blog (ipfs/go-ipfs#3936)
- Add Developer Certificate of Origin (ipfs/go-ipfs#4006)
- Add
transports.mddocument (ipfs/go-ipfs#4034) - Add
experimental-features.mddocument (ipfs/go-ipfs#4036) - Update release docs (ipfs/go-ipfs#4165)
- Add documentation for datastore configs (ipfs/go-ipfs#4223)
- General update and clean-up of docs (ipfs/go-ipfs#4222)
- Bugfixes
- Fix shutdown check in t0023 (ipfs/go-ipfs#3969)
- Fix pinning of unixfs sharded directories (ipfs/go-ipfs#3975)
- Show escaped url in gateway 404 message (ipfs/go-ipfs#4005)
- Fix early opening of bitswap message sender (ipfs/go-ipfs#4069)
- Fix determination of 'root' node in dag put (ipfs/go-ipfs#4072)
- Fix bad multipart message panic in gateway (ipfs/go-ipfs#4053)
- Add blocks to the blockstore before returning them from blockservice sessions (ipfs/go-ipfs#4169)
- Various fixes for /ipfs fuse code (ipfs/go-ipfs#4194)
- Fix memory leak in dht stream tracking (ipfs/go-ipfs#4251)
- General Changes and Refactorings
- Require go 1.8 (ipfs/go-ipfs#4044)
- Change IPFS to use the new pluggable Block to IPLD decoding framework. (ipfs/go-ipfs#4060)
- Remove tour command from ipfs (ipfs/go-ipfs#4123)
- Add support for Go 1.9 (ipfs/go-ipfs#4156)
- Remove some dead code (ipfs/go-ipfs#4204)
- Switch docker image from musl to glibc (ipfs/go-ipfs#4219)
- Features
-
v0.4.11-rc117 Sep 2017 pre-releaseNothing published for this version
-
v0.4.1027 Jun 2017Release notes
Open source →Ipfs 0.4.10 is a patch release that contains several exciting new features, bugfixes and general improvements. Including new commands, easier corruption recovery, and a generally cleaner codebase.
The
ipfs pincommand has two new subcommands,verifyandupdate.ipfs pin verifyis used to scan the repo for pinned object graphs and check their integrity. Any issues are reported back with helpful error text to make error recovery simpler. This subcommand was added to help recover from datastore corruptions, particularly if using the experimental filestore and accidentally deleting tracked files.ipfs pin updatewas added to make the task of keeping a large, frequently changing object graph pinned. Previously users had to callipfs pin rmon the old pin, andipfs pin addon the new one. The 'new'ipfs pin addcall would be very expensive as it would need to verify the entirety of the graph again. Theipfs pin updatecommand takes shortcuts, portions of the graph that were covered under the old pin are assumed to be fine, and the command skips checking them.Next up, we have finally implemented an
ipfs shutdowncommand so users can shut down their ipfs daemons via the API. This is especially useful on platforms that make it difficult to control processes (Android, for example), and is also useful when needing to shut down a node remotely and you do not have access to the machine itself.ipfs addhas gained a new flag; the--hashflag allows you to select which hash function to use and we have given it the ability to selectblake2b-256. This pushes us one step closer to shifting over to using blake2b as the default. Blake2b is significantly faster than sha2-256, and also is conjectured to provide superior security.We have also finally implemented a very early (and experimental)
ipfs p2p. This command and its subcommands will allow you to open up arbitrary streams to other ipfs peers through libp2p. The interfaces are a little bit clunky right now, but shouldn't get in the way of anyone wanting to try building a fully peer to peer application on top of ipfs and libp2p. For more info on this command, to ask questions, or to provide feedback, head over to the feedback issue for the command.A few other subcommands and flags were added around the API, as well as many other requested improvements. See below for the full list of changes.
- Features
- Add support for specifying the hash function in
ipfs add(ipfs/go-ipfs#3919) - Implement
ipfs key {rm, rename}(ipfs/go-ipfs#3892) - Implement
ipfs shutdowncommand (ipfs/go-ipfs#3884) - Implement
ipfs pin update(ipfs/go-ipfs#3846) - Implement
ipfs pin verify(ipfs/go-ipfs#3843) - Implemented experimental p2p commands (ipfs/go-ipfs#3943)
- Add support for specifying the hash function in
- Improvements
- Add MaxStorage field to output of "repo stat" (ipfs/go-ipfs#3915)
- Add Suborigin header to gateway responses (ipfs/go-ipfs#3914)
- Add "--file-order" option to "filestore ls" and "verify" (ipfs/go-ipfs#3938)
- Allow selecting ipns keys by Peer ID (ipfs/go-ipfs#3882)
- Don't redirect to trailing slash in gateway for
go get(ipfs/go-ipfs#3963) - Add 'ipfs dht findprovs --num-providers' to allow choosing number of providers to find (ipfs/go-ipfs#3966)
- Make sure all keystore keys get republished (ipfs/go-ipfs#3951)
- Documentation
- Adding documentation on PubSub encodings (ipfs/go-ipfs#3909)
- Change 'neccessary' to 'necessary' (ipfs/go-ipfs#3941)
- README.md: add Nix to the linux package managers (ipfs/go-ipfs#3939)
- More verbose errors in filestore (ipfs/go-ipfs#3964)
- Bugfixes
- Fix typo in message when file size check fails (ipfs/go-ipfs#3895)
- Clean up bitswap ledgers when disconnecting (ipfs/go-ipfs#3437)
- Make odds of 'process added after close' panic less likely (ipfs/go-ipfs#3940)
- General Changes and Refactorings
- Remove 'ipfs diag net' from codebase (ipfs/go-ipfs#3916)
- Update to dht code with provide announce option (ipfs/go-ipfs#3928)
- Apply the megacheck code vetting tool (ipfs/go-ipfs#3949)
- Expose port 8081 in docker container for /ws listener (ipfs/go-ipfs#3954)
- Features
-
v0.4.10-rc119 Jun 2017 pre-releaseNothing published for this version