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.11 #8343
Comments
Merged
ChangelogFull Changelog
|
| Contributor | Commits | Lines ± | Files Changed |
|---|---|---|---|
| Will | 13 | +73226/-130481 | 43 |
| Masih H. Derkani | 99 | +10549/-5799 | 489 |
| hannahhoward | 43 | +5515/-3293 | 233 |
| Daniel Martí | 60 | +5312/-2883 | 208 |
| Marten Seemann | 175 | +4839/-3254 | 396 |
| Eric Myhre | 73 | +3924/-3328 | 175 |
| Jessica Schilling | 52 | +2709/-2386 | 75 |
| Rod Vagg | 30 | +2719/-1703 | 79 |
| vyzo | 10 | +3516/-177 | 87 |
| Gus Eggert | 64 | +1677/-1416 | 147 |
| Adin Schmahmann | 23 | +1708/-381 | 95 |
| Lucas Molas | 14 | +1557/-365 | 48 |
| Will Scott | 7 | +1846/-15 | 34 |
| Steven Allen | 32 | +537/-897 | 56 |
| Cory Schwartz | 3 | +614/-109 | 12 |
| rht | 3 | +576/-4 | 7 |
| Simon Zhu | 9 | +352/-51 | 16 |
| Petar Maymounkov | 7 | +173/-167 | 23 |
| RubenKelevra | 1 | +107/-188 | 1 |
| jwh | 2 | +212/-80 | 7 |
| longfeiW | 1 | +4/-249 | 10 |
| guseggert | 5 | +230/-21 | 11 |
| Kevin Neaton | 8 | +137/-80 | 13 |
| Takashi Matsuda | 1 | +199/-0 | 5 |
| Andrey Kostakov | 1 | +107/-49 | 2 |
| Jesse Bouwman | 1 | +151/-0 | 7 |
| web3-bot | 39 | +136/-3 | 52 |
| Marcin Rataj | 16 | +62/-57 | 25 |
| Marco Munizaga | 1 | +118/-0 | 2 |
| Aaron Riekenberg | 4 | +64/-52 | 6 |
| Ian Davis | 4 | +81/-32 | 7 |
| Jorropo | 2 | +79/-19 | 6 |
| Mohsin Zaidi | 1 | +89/-1 | 20 |
| Andey Robins | 1 | +70/-3 | 3 |
| gammazero | 3 | +40/-25 | 4 |
| Steve Loeppky | 2 | +26/-27 | 3 |
| Dimitris Apostolou | 1 | +25/-25 | 15 |
| Sudarshan Reddy | 1 | +9/-40 | 1 |
| Richard Littauer | 2 | +42/-1 | 3 |
| pymq | 1 | +32/-8 | 2 |
| Dirk McCormick | 2 | +23/-1 | 2 |
| Nicholas Bollweg | 1 | +21/-0 | 1 |
| anorth | 1 | +14/-6 | 2 |
| Jack Loughran | 1 | +16/-0 | 2 |
| whyrusleeping | 2 | +11/-2 | 2 |
| bt90 | 1 | +13/-0 | 1 |
| Yi Cao | 1 | +10/-0 | 1 |
| Max | 1 | +7/-3 | 1 |
| Juan Batiz-Benet | 2 | +8/-2 | 2 |
| Keenan Nemetz | 1 | +8/-0 | 1 |
| muXxer | 1 | +3/-3 | 1 |
| galargh | 2 | +3/-3 | 3 |
| Didrik Nordström | 1 | +2/-4 | 1 |
| Ben Lubar | 1 | +3/-3 | 1 |
| arjunraghurama | 1 | +5/-0 | 1 |
| Whyrusleeping | 1 | +3/-2 | 1 |
| TUSF | 1 | +3/-2 | 3 |
| mathew-cf | 1 | +3/-1 | 2 |
| Stephen Whitmore | 1 | +2/-2 | 1 |
| Song Zhu | 1 | +2/-2 | 1 |
| Michael Muré | 1 | +4/-0 | 1 |
| Alex Good | 1 | +4/-0 | 2 |
| aarshkshah1992 | 1 | +2/-1 | 1 |
| susarlanikhilesh | 1 | +1/-1 | 1 |
| falstack | 1 | +1/-1 | 1 |
| Michael Vorburger |
1 | +1/-1 | 1 |
| Ismail Khoffi | 1 | +1/-1 | 1 |
| George Xie | 1 | +1/-1 | 1 |
| Bryan Stenson | 1 | +1/-1 | 1 |
| Lars Gierth | 1 | +1/-0 | 1 |
|
Reported/Known RC related bugs: |
|
Tagged RC2, see #8582 |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
3 tasks
|
|
This was referenced Dec 16, 2021
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
BigLep commentedAug 14, 2021
•
edited by guseggert
go-ipfs 0.11.0 Release Notes
We're happy to announce go-ipfs 0.11.0. This release comes with improvements to the UnixFS Sharding and PubSub experiments as well as support for Circuit-Relay v2 which sets the network up for decentralized hole punching support.
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.
ipfs add -r <directory>may result in different CIDs due to the different DAG representations.Experimental.ShardingEnabledis removed.Swarm.EnableRelayHopis set totrue/api/v0/pubsubchanged.Keep reading to learn more details.
Truly big directories can have so many items, that the root block with all of their names is too big to be exchanged with other peers. This was partially solved by HAMT-sharding, which was introduced a while ago as opt-in. The main downside of the implementation was that it was a global flag that sharded all imported directories (big and small).
This release solves that inconvenience by making UnixFS sharding smarter and applies it only to larger directories (i.e. directories that would be at least ~256KiB). This is now the default behavior in
ipfs addandipfs filescommands, where UnixFS sharding works out-of-the-box.This release adds support for the circuit relay v2 protocol based on the reference implementation from go-libp2p 0.16.
This is the cornerstone for maximizing p2p connections between IPFS peers. Every publicly dialable peer can now act as a limited relay v2, which can be used for hole punching and other decentralized signaling protocols.
Limited relay v2 configuration options
go-ipfs can now be configured to act as a
RelayClientthat uses other peers for autorelay functionality when behind a NAT, or provide a limitedRelayServiceto other peers on the network.Starting with go-ipfs v0.11 every publicly dialable go-ipfs (based on AutoNAT determination) will start a limited
RelayService.RelayClientremains disabled by default for now, as we want the network to update and get enough v2 service providers first.Note: the limited Circuit Relay v2 provided with this release only allows low-bandwidth protocols (identify, ping, holepunch) over transient connections. If you want to relay things like bitswap sessions, you need to set up a v1 relay by some other means. See details below.
Removal of unlimited v1 relay service provider
Switching to v2 of the relay spec means removal or deprecation of configuration keys that were specific to v1.
Swarm.EnableAutoRelaywas replaced bySwarm.RelayClient.Enable.Swarm.DisableRelayis deprecated, relay transport can be now disabled globally (both client and service) by settingSwarm.Transports.Network.RelaytofalseSwarm.EnableRelayHopno longer starts an unlimited v1 relay. If you have it set totruethe node will refuse to start and display an error message.RelayV1.Enabledset totrue. Be mindful that v1 relays are unlimited, and one may want to set up some ACL based either on PeerIDs or Subnets.We are working towards enabling hole punching for NAT traversal when port forwarding is not possible.
go-libp2p 0.16 provides an implementation of the DCUtR (decentralized hole punching) protocol. It is hidden behind the
Swarm.EnableHolePunchingconfiguration flag.When enabled, go-ipfs will coordinate with the counterparty using a relayed v2 connection, to upgrade to a direct connection through a NAT/firewall whenever possible.
This feature is disabled by default in this release, but we hope to enable it by default as soon the network updates to go-ipfs v0.11 and gains a healthy set of limited v2 relays.
This release fixed some edge cases that were reported by users of the PubSub experiment, getting it closer to becoming a stable feature of go-ipfs. Some PubSub users will notice that the plaintext limitation is lifted: one can now use line breaks in messages published to non-ascii topic names, or even publish arbitrary bytes to arbitrary topics. It required a change to the wire format used when pubsub commands are executed over the HTTP RPC API at
/api/v0/pubsub/*, and also modified the behavior of theipfs pubsub pubcommand, which now is publishing only a single pubsub message with data read from a file or stdin.PubSub client migration tips
If you use the HTTP RPC API with the go-ipfs-http-client library, make sure to update to the latest version. The next version of js-ipfs-http-client will use the new wire format as well, so you don't need to do anything.
If you use
/api/v0/pubsub/*directly or maintain your own client library, you must adjust your HTTP client code. Byte fields and URL args are now encoded inbase64urlMultibase. Encode/decode bytes using theipfs multibase --helpcommands, or use the multiformats libraries (js-multiformats, go-multibase).Low level changes:
topicpassed as URLargin requests to/api/v0/pubsub/*must be encoded in URL-safe multibase (base64url)data,from,seqnoandtopicIDsreturned in JSON responses are now encoded in multibasefromnow use the same default text representation from go-libp2p and peerid encoder/decoder from libp2p. This means the same text representation as in as inswarm peers, which makes it possible to compare them without decoding multibase./api/v0/pubsub/pubno longer acceptsdatato be passed as URL, it has to be sent asmultipart/form-data. This removes size limitations based on URL length, and enables regular HTTP clients to publish data to PubSub topics. For example, to publishsome-fileto topic namedtest-topicusing vanillacurl, one would execute:curl -X POST -v -F "stdin=@some-file" 'http://127.0.0.1:5001/api/v0/pubsub/pub?arg=$(echo -n test-topic | ipfs multibase encode -b base64url)'ipfs pubsub pubon the command line no longer accepts variadicdataarguments. Instead, it expects a single file input or stream of bytes from stdin. This ensures arbitrary stream of bytes can be published, removing limitation around messages that include\nor\r\n.Addresses.AppendAnnounceis an array of multiaddrs, similar toAddresses.Announce, except it does not override inferred swarm addresses, but appends custom ones to the list.Pubsub.Enabledenables the pubsub system.Ipns.UsePubsubenables IPFS over pubsub experiment for publishing IPNS records in real time.JOSE is a standard for signing and encrypting JSON objects. DAG-JOSE is an IPLD codec based on JOSE and represented in CBOR. Upon encountering the
dag-josemulticodec indicator, implementations can expect that the block contains dag-cbor encoded data which matches the IPLD schema from the DAG-JOSE spec.This work was contributed by Ceramic and acts as a template for future IPFS improvements driven by the real world needs of the IPFS community.
RC1: 2021-11-29
ECD: 2021-12-06
For each RC published in each stage:
version.gohas been updated (in therelease-vX.Y.Zbranch).vX.Y.Z-rcNChecklist:
release-vX.Y.Z) frommasterand 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.goin themasterbranch tovX.(Y+1).0-dev.make test)make test_go_lint)./bin/mkreleaselogto generate a nice starter listversion.gohas been updated.release-vX.Y.Zinto thereleasebranch.releasebranch) withvX.Y.Z.releasebranch back intomaster, ignoring the changes toversion.go(keep the-devversion from master).The 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
#lobby:ipfs.ioMatrix channel which is bridged with other chat platforms.Release improvements for next time
< Add any release improvements that were observed this cycle here so they can get incorporated into future releases. >
The text was updated successfully, but these errors were encountered: