Skip to content
This repository has been archived by the owner on Apr 16, 2021. It is now read-only.

Draft of 0.4.0 blog post #30

Closed
wants to merge 2 commits into from
Closed

Conversation

kyledrake
Copy link
Contributor

This announces 0.4.0. It may need some more specific examples than provided if there's new related functionality, but the main thing is that it makes sure people know this is a breaking protocol change and that they need to upgrade.

@whyrusleeping
Copy link
Contributor

cc @RichardLitt

@whyrusleeping
Copy link
Contributor

on top of this we have:

  • utp: ipfs can now use this udp based protocol for inter-node communications
  • ipfs now uses gx for vendoring
  • libp2p has been extracted from the core ipfs codebase
  • ipns has been sped up a bit


[IPFS (go) 0.4.0](https://github.com/ipfs/go-ipfs/releases/tag/v0.4.0) has been released! Among the many changes are a revamped implementation of the IPFS communication protocols, increased performance, improvements to IPNS, many bugfixes, and a couple new features to make IPFS even more powerful.

This is a **breaking change** release, with a major refactor and upgrade to the IPFS networking protocol. Because of the refactor, **all IPFS (go) daemons earlier than 0.4.0 will not be able to communicate with the newest version**. It is strongly recommended that everyone running an IPFS node upgrade to the latest version as soon as possible, as these nodes will, after a certain time, no longer be able to communicate with the majority of the network until they are upgraded.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

upgrades to the latest version

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Both are grammatical.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would add a subheading before this: ### On Breaking Changes. Just style, though.

@dignifiedquire
Copy link

Files api is missing as well as I can tell


So by supporting as many muxers as we can, we get to choose the best multiplexors for the job. It also makes it much easier to implement the IPFS protocols in a new language. And of course, if a better multiplexor standard comes along, it will be easier to upgrade IPFS to support it in the future.

In addition to the multiplexor changes, the protocol revamp has also improved efficiency and performance in a few important ways, including the elimination of a double wrapping of the length prefixer, and the removal of some unneccessary round trips between nodes.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/multiplexor/multiplexer

@RichardLitt
Copy link
Contributor

LGTM. A few things to add, some comments, but overall, this is pretty awesome.


[IPFS 0.4.0](https://github.com/ipfs/go-ipfs/releases/tag/v0.4.0) has been released! Among the many changes are a revamped implementation of the IPFS communication protocols, increased performance, improvements to IPNS, many bugfixes, and a couple new features to make IPFS even more powerful.

### On Breaking Changes
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess breaking and changes shouldn't be capitalised for consistency. Sorry.

@jbenet
Copy link
Contributor

jbenet commented Feb 22, 2016

Notes:

  • great to cover the breaking change and reasoning! (btw this post builds on https://ipfs.io/blog/9-v04x-migration/ and will be linked to from it later)
  • the majority of this post should be about the 0.4.0 improvements. the breaking change is minor compared to everything else. I'd expect 90% other stuff, 10% breaking change.
  • There is a ton to cover and not a single person will be able to do this. We should enumerate all the things that have changed (@whyrusleeping make a CHANGELOG entry?) and from there craft an outline of what things to highlight, broken up into sections.
  • then we can assign sections to different people to ensure this is still manageable.
  • yes i expect all the content to be very big. this is a huge release for us.
  • if desired, for big things (like the files api, or the new pinning implementation) we can write own blog posts and link to them from this one.

@jbenet
Copy link
Contributor

jbenet commented Feb 22, 2016

thanks @kyledrake for pushing on this! 👍 👍

@jbenet
Copy link
Contributor

jbenet commented Feb 22, 2016

Here's a great example of a great update of this magnitude:

@RichardLitt
Copy link
Contributor

Next steps to edit this: basically, we need to know everything that has changed to meaningfully change the copy. This depends on @whyrusleeping's list of things in 0.4.0 that are different.


## Why we're changing the protocol

The most important change was to allow IPFS implementations to use pluggable stream multiplexers, such as [yamux](https://github.com/hashicorp/yamux), [spdystream](https://github.com/docker/spdystream), or [muxado](https://github.com/inconshreveable/muxado). Instead of locking IPFS permanently into a single multiplexer that won't work for every language or situation, this change allows the implementations to implement the multiplexers of their choosing.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"... and then nodes will negotiate which multiplexer to use between them during the initial connection handshake"

@whyrusleeping
Copy link
Contributor

any update here? cc @RichardLitt

@whyrusleeping whyrusleeping mentioned this pull request Mar 17, 2016
@whyrusleeping
Copy link
Contributor

closing in favor of #37

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants