-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release v0.9.0 #8058
Comments
Some other FAQs about this release: Why aren't we proposing to start the release sooner?We're waiting to start the release process until the "What's left for release" items land because:
What are our options for releasing more quickly?
|
A question about the plans after this release. There's an extensive list of roadmap submissions and haven't heard anything about them. Is there still a plan to give some of them priorities and publish them? //cc @vorburger @JonasKruckenberg @Gozala @realChainLife @bertrandfalguiere @RhettSampson @Danger89 @rklaehn @obo20 @MichaelMure @autonome @atopal @dchoi27 @NatoBoram @momack2 |
I asked on Discourse and @momack2 wrote that a blog post was incoming. In her answer, it seems that they are multitasking and that they won't follow only one or two objectives IIUC. |
Oh, didn't found this post. Looks like they're just a bit overwhelmed with the amount of proposals, which is clearly a good thing 😬 Was just hoping to hop onto some smaller stuff and have a look for my first contributions. :) |
Did you find something? This likely needs to get better written up somewhere, but some links for getting started on finding issues:
Thanks, |
A quick update on dates: Our dates have slipped by a week from what was originally planned. The dates in the Issue description have been updated. This is in part due to getting additional functionality in (e.g., repo integrations over IPFS, configurable DNS servers) and also due to prioritizing reviews/input on other projects that will land in 0.10. |
@BigLep thanks for the links, currently still reading code and getting used to think in go not in shellscript or python. But soon they'll be helpful. Was just looking for some general direction for this year, to maybe do some small stuff in the right direction :) |
For those watching this issue, we are still actively working on this release. The issue description has been updated with the latest dates. |
@lidel : per 2021-05-13 verbal, can you please:
|
It might also be worth mentioning the block api as a potential upgrade from the object api. We used to use the object api extensively in Peergos originally, and tried upgrading to the dag api 5 years ago, but it had (has?) some issues [1] making it unsuitable. But the block api works perfectly. [1] #3503 |
For those watching this issue, @aschmahmann has been working through the checklist and we have our first rc: https://dist.ipfs.io/go-ipfs/v0.9.0-rc1 |
PSA: in case you are using go-ipfs as a dependency in a JS project (in E2E tests, or bundling inside of Electron app), the RC1 binary is available on NPM as |
Hey all, v0.9.0-rc2 is out Changes since rc1:
|
Heads up to early testers: pacman.store (@RubenKelevra) If you'd like to be added/removed from this list send a PR modifying https://github.com/ipfs/go-ipfs/blob/master/docs/EARLY_TESTERS.md |
@aschmahmann thanks! Will change push this today to my nodes and report any issues back! |
For those watching this issue, we are still actively working on getting this release out the door. We'll provide a status update by EOD 2021-06-16. |
Latest update: We are still active here finding/fixing blocking bugs before the release. We'll provide a status update by EOD 2021-06-18. |
Is there any possibility this fix could be included in the release? This would be earth shatteringly awesome for us and solve a host of issues we've been having. |
@ianopolous thanks for PRing the fix in ipfs/go-ipfs-blockstore#78. Does it resolve your issues? |
Thank you for your help @aschmahmann It sure looks like it! Average bandwidth to S3 has dropped from 5Mb/s to <1kb/s! That's 5000X less bandwidth to S3 used on average. |
Latest update: We are still finishing off the last blocking bugs before the release. Barring no new blockers identified, we will release by 2021-06-25. We will next communicate by EOD 2021-06-22. |
The release is out and published on dist and GitHub. There's still some broadcasting and package manager post-release work to take care of. |
Looks like everything is done (I posted to reddit and pinned the forum post). |
go-ipfs 0.9.0 Release
We're happy to announce go-ipfs 0.9.0. This release makes go-ipfs even more configurable with some fun experiments to boot. We're also deprecating or removing some uncommonly used features to make it easier for users to discover the easy ways to use go-ipfs safely and efficiently.
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
🗺 What's left for release
2021-04-142021-04-212021-04-302021-05-102021-04-142021-04-212021-04-302021-05-102021-04-162021-04-302021-05-102021-04-192021-04-302021-05-102021-04-302021-05-07🚢 Estimated shipping date
2021-04-142021-04-222021-05-042021-05-112021-04-212021-04-282021-05-112021-05-192021-04-282021-05-052021-05-182021-05-26202106🔦 Highlights
Highlights
📦 Exporting of DAGs via Gateways
Gateways now support downloading arbitrary IPLD graphs via the
/api/v0/dag/export
endpoint. This endpoint works in the same way as theipfs dag export
command.One major thing this enables is ability to verify data downloaded from public gateways. If you go to
https://somegateway.example.net/ipfs/bafyexample
you are using the old school HTTP transport, and trusting that the gateway is being well behaved. However, if you download the graph as a DAG archive then it is possible to verify that the data you downloaded does in fact matchbafyexample
.Additionally, it was previously quite painful to download things other than UnixFS (files + directories) using gateways. It is now possible to download arbitrary IPLD graphs from gateways, making them useful as a general-purpose alternative to p2p transports.
This opens exciting opportunities in areas like thin clients, mobile browsers and IoT devices, which now can delegate IPFS resolution to any public gateway, and have ability to verify that the data received matches the requested hash.
☁ Custom DNS Resolvers
Resolution of DNS records for DNSLink and DNSAddrs means that names are sent in cleartext between the operating system and the DNS server provided by an ISP. In the past, the only way to customize DNS resolution in IPFS stack was to set up own DNS proxy server.
There is now the ability to customize DNS resolution and override the default resolver from the OS with DNS over HTTPS (DoH) one. We made it really flexible: override can be applied globally, or per specific TLD/FQDN. Examples can be found in the documentation.
👪 Support for non-ICANN DNSLink names
Building off of the support for custom DNS resolvers it is now possible to create DNSLink names not handled by ICANN and choose how that domain name will be resolved. An example of this is how ENS is supported, despite
.eth
not being an ICANN TLD you can point.eth
to any ENS resolver you want (including a local one).While go-ipfs may have some DoH defaults for a few popular non-ICANN DNSLink names (e.g. ENS), you are free to use any protocol for a naming system and as long as it exposes a DNSLink record via a DNS endpoint you can make it work.
🖥️ Updated to the latest WebUI
Our web interface now includes experimental support for pinning services, and various updates to Files and Peers screens.
Remote pinning services added via the
ipfs pin remote service add
command are already detected, one can also add one from Settings screen, and it will appear in Set pinning interface on the Files screen.Data presented on the Peers screen can now be copied by simply clicking on a specific cell, and a list of open streams gives better insight into how a local node interacts with a specific peer.
See release notes for ipfs-webui v2.12 for screenshots and more details.
🔑 IPNS keys can now be exported via the CLI without stopping the daemon
ipfs key export
no longer requires interruptingipfs daemon
✨🕸 Experimental DHT Client and Provider System
An area of go-ipfs that has been historically tricky is how go-ipfs finds who has the data they are looking for. While the IPFS Public DHT is only one of the ways go-ipfs can find data it tends to be an important one. While since go-ipfs v0.5.0 the time to find content in the network has dropped significantly the time to put/get IPNS records or for a node to advertise the content it has still has much room for improvement.
We have been doing some experimenting and have an alternative DHT client that essentially trades off some resources and in return is much more performant. We have also included with the experimental DHT client a bulk provider system that takes advantage of the new client to more efficiently do many advertisements at a time
This work is quite new and still under development, however, the results so far have been promising especially for users with lots of data who have otherwise been having difficulty advertising their data into the IPFS Public DHT
As described in the experimental features documentation the experimental client can be enabled using the command below (or modifying the config file).
A few things to take note of when
AcceleratedDHTClient
is enabled:ipfs stats provide
command that will help you track your provide/reprovide usage, if you are providing lots of data you may want to consider how to reduce the amount you are providing (e.g. Reprovider Strategies and/or Strategic Providing)See the documentation for more details.
🚶♀️ Migrations
Migrations are now individually packaged
While previously the go-ipfs repo migration binary was monolithic and contained all migrations from previous go-ipfs versions the binaries are now packaged individually. However, the fs-repo-migrations binary is still there to help those who manually upgrade their repos to download all the individual migrations.
This means faster download times for upgrades, a much easier time building migrations for those who make use of custom plugins, and an easier time developing new migrations going forward.
Configurable migration downloads enable downloading over IPFS
Previously the migration downloader built into go-ipfs downloaded the migrations from dist.ipfs.io. While users could use tools like ipfs-update to download the migrations over IPFS or manually download the migrations (over IPFS or otherwise) themselves, this is now automated and configurable. Users can choose to download the migrations over IPFS or from any specified IPFS Gateway.
The configurable migration options are described in the config file documentation, although most users should not need to change the default settings.
The main benefit here is that users behind restrictive firewalls, or in offline/private deployments, won't have to run migrations manually, which is especially important for desktop use cases where go-ipfs is running inside of IPFS Desktop and Brave.
🍎 Published builds for Apple M1 hardware
Go now supports building for Darwin ARM64 and we are now publishing those builds
👋 Deprecations and Feature Removals
The
ipfs object
commands are now deprecatedIn the last couple years most of the Object API's commands have become fulfillable using alternative APIs.
The utility of Object API's is limited to data in UnixFS-v1 (
dag-pb
) format. If you are still using it, it is highly recommended that you switch to the DAGipfs dag
(supports modern data types likedag-cbor
) or Filesipfs files
(more intuitive for working withdag-pb
) APIs.While the Object API and commands are still usable they are now marked as deprecated and hidden from users on the command line to discourage further use. We also updated their
--help
text to point at the modern replacements.X-Ipfs-Gateway-Prefix
is now deprecatedIPFS community moved towards dedicated Origins (DNSLink and subdomain gateways) which are much easier to isolate and reason about.
Setting up
Gateway.PathPrefixes
andX-Ipfs-Gateway-Prefix
is no longer necessary and support will be removed in near future.Proquints support removed
A little known feature that was not well used or documented and was more well known for the error message
Error: not a valid proquint string
users received when trying to download invalid IPNS or DNSLink names (e.g.https://dweb.link/ipns/badname
). We have removed support for proquints as they were out of place and largely unused, however proquints are valid multibases so if there is renewed interest in them there is a way forward.SECIO support removed
SECIO was deprecated and turned off by default given the prevalence of TLS and Noise support, SECIO support is now removed entirely.
Changelog
Full Changelog
ipfs block stat
causes a panic #3047) (lucas-clemente/quic-go#3047)✅ Release Checklist
For each RC published in each stage:
version.go
has been updated (in therelease-vX.Y.Z
branch).vX.Y.Z-rcN
Checklist:
release-vX.Y.Z
) frommaster
and make any further release related changes to this branch. If any "non-trivial" changes (see the footnotes of docs/releases.md for a definition) get added to the release, uncheck all the checkboxes and return to this stage.version.go
in themaster
branch tovX.(Y+1).0-dev
.make test
)make test_go_lint
)./bin/mkreleaselog
to generate a nice starter listversion.go
has been updated.release-vX.Y.Z
into therelease
branch.release
branch) withvX.Y.Z
.release
branch back intomaster
, ignoring the changes toversion.go
(keep the-dev
version from master).❤️ Contributors
Contributors
Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:
help wanted
label in the go-ipfs repoThe best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the
#ipfs
channel on Freenode, which is also accessible through our Matrix bridge.The text was updated successfully, but these errors were encountered: