From efd3fd4bf545a97f9be08e2e12b281460cdd9946 Mon Sep 17 00:00:00 2001 From: "emily.vaughan@protocol.ai" Date: Thu, 8 Apr 2021 17:42:23 +0000 Subject: [PATCH 01/12] Update from Forestry.io emily.vaughan@protocol.ai created src/assets/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png --- ...37-90aa5d80-8736-11eb-9fbf-44e254214d1d.png | Bin 0 -> 244109 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 src/assets/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png diff --git a/src/assets/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png b/src/assets/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png new file mode 100644 index 0000000000000000000000000000000000000000..1a0bdffdc0db285ddda9a8736de3d85916b574c9 GIT binary patch literal 244109 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

#eN$9LEg-_*;k$! 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

_mjNlZz+DYGf!>F07kC9o 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�%OxT?35k+w(}XSy4koVtH1@%3dq@O1OQ$*huJ3VOdvBZ|^N!hC%NOd= z?er%mCWi5@Zu9^+S997l=CMmY6yDs#sM#u(Sn_H{FX{M6wzVc3h`pznAw(mlcgN;$EXYdYV9dn>UZB`D@JY>1FQ6*wY)n-U)-*39c>f+{!BScQiR0N

DDzsot4k?U+EZ1QXOkc+^y}stU8&k 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 Date: Thu, 8 Apr 2021 17:45:28 +0000 Subject: [PATCH 02/12] Update from Forestry.io emily.vaughan@protocol.ai created src/_blog/ipfs-nft-minting-and-long-term-storage.md --- .../front_matter/templates/blog-post.yml | 1 + .../ipfs-nft-minting-and-long-term-storage.md | 83 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/_blog/ipfs-nft-minting-and-long-term-storage.md diff --git a/.forestry/front_matter/templates/blog-post.yml b/.forestry/front_matter/templates/blog-post.yml index 65882a0f..909b0580 100644 --- a/.forestry/front_matter/templates/blog-post.yml +++ b/.forestry/front_matter/templates/blog-post.yml @@ -84,6 +84,7 @@ pages: - src/_blog/ipfs-at-ethdenver-2021.md - src/_blog/ipfs-in-brave-native-access-to-the-distributed-web.md - src/_blog/ipfs-in-opera-touch-on-ios.md +- src/_blog/ipfs-nft-minting-and-long-term-storage.md - src/_blog/join-us-at-ethdenver-2021-year-of-the-spork-marmot.md - src/_blog/libp2p-comes-to-protoschool.md - src/_blog/meet-the-new-ipfs-blog-news.md diff --git a/src/_blog/ipfs-nft-minting-and-long-term-storage.md b/src/_blog/ipfs-nft-minting-and-long-term-storage.md new file mode 100644 index 00000000..882755d2 --- /dev/null +++ b/src/_blog/ipfs-nft-minting-and-long-term-storage.md @@ -0,0 +1,83 @@ +--- +tags: [] +title: IPFS NFT Minting and Long Term Storage +description: Here's a recap of NFTHack, a weekend long hackathon & summit to gather + creatives & engineers focused on NFTs. +author: '' +date: 2021-04-08 +permalink: "/2021-04-08-NFTHack-Recap" +translationKey: '' +header_image: "/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png" + +--- +Last month ETHGlobal hosted [NFTHack](https://nfthack.ethglobal.co/), a weekend long hackathon and summit to gather creatives and engineers focused on NFTs. Protocol Labs sponsored the event and showed up to talk with the community about creative, sustainable solutions to NFT storage. + +And what a weekend! During the event alone, 1204 NFTs were stored on IPFS 🤯. + +[nft.storage](http://nft.storage/) is a new service built specifically for storing off-chain NFT data on IPFS and Filecoin. Nft.storage was a tremendous asset during the NFTHack weekend. The service made it possible for participants to focus fully on their hacks knowing that their off-chain data was safely being stored by nft.storage on IPFS and Filecoin. + +Between March 15-21 over 2,000 people visited nft.storage and a quarter of all NFTHack builders used it. Overall, 10% of all of the event participants used the JavaScript library powering nft.storage to store their NFTs. + +From a NFTHack team about nft.storage: + +"nft.storage really saved my butt, literally 2 lines of code”, they talked about how easy it was to integrate into their React and js build env, etc. Had many comments like that during the judging period - that basically it Just Worked ™️ and everyone appreciated how easy it made it for them to focus on building their thing. For 40% of the participants it was their first time doing anything with crypto, so having a non-crypto bridge like nft.storage was 💯" + +The $5k bounty for the event was split into two $1.5k awards and one $2k award. The winner of “The 🤯 Prize” was [NNFT (The 🚫Not Not-a-🔥 Flamethrower Token)](https://hack.ethglobal.co/showcase/nnft-the-%F0%9F%9A%ABnot-not-a-%F0%9F%94%A5-flamethrower-token-recqk5Rp8OqYkCwqD). Yes, it’s a flamethrower; but a flamethrower that creates an NFT out of anything it burns. The runners-up were [GFT](https://hack.ethglobal.co/showcase/gft-pronounced-gift-recLgL3xQVu1T0l07), which connects creators and consumers through NFTS, and [Rodeo](https://hack.ethglobal.co/showcase/rodeo-recCnrDlmB6FWgPss), which lets people quickly spin up NFT galleries for their websites. + +In case you didn’t join NFTHack, below are recaps, themes, and conclusions from different talks by IPFS and Filecoin contributors. Dive in, get familiar, and start (or continue!) your journey with NFTs. + +You can browse the full event [agenda](https://nfthack.ethglobal.co/) and check out the [NFTHack YouTube playlist here](https://www.youtube.com/playlist?list=PLXzKMXK2aHh50g55xEroWasKorT1YkUKs). + +## Minting Fresh NFTs with IPFS + +_The following is a summary of a talk given by Yousef Napora, Researcher at Protocol Labs._ [_Watch the full recording here._](https://www.youtube.com/watch?v=WNukgBtlWeU) + +In the last six months, NFTs have had an explosive boom, but there have been a number of storage issues. Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. Centralized marketplace storage is risky because creators and owners can lose access to their NFTs, and cloud storage is dangerous because it relies on https:// location-based addressing which can be altered to point to something that isn’t your NFT. Storing NFTs on the blockchain can be incredibly expensive because their state has to be replicated across every node and validated, plus there are gas fees. + +For these reasons, it was important to look at how IPFS and NFTs can best work together to make storage safer for creators and owners. This is how Minty was born, a command-line application to automatically mint an NFT and pin it to IPFS using Pinata. + +IPFS is decentralized, so this immediately removes the centralized marketplace risk. IPFS also offers an alternative to https:// location-addressing through content-based addressing, which identifies content by its cryptographic hash instead of its location. + +A cryptographic hash is a short string of letters and numbers calculated by feeding content into a cryptographic hash function. The cryptographic hash for a piece of content never changes, which means content addressing guarantees that the links will always return the same content, regardless of the location it is retrieved from, who added the block to the network, or when the content was added. + +The Minty Demo in this talk walks you through: + +* Installing Minty +* Deploying a smart contract +* What to know about metadata schema +* Loadshare specs +* Minting an NFT with IPFS +* Pinning with Pinata + +There are a lot of benefits to minting your NFTs with IPFS. If you’re curious about more of the tech specs of Minty or want to know more about minting best practices, check out [this guide](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#how-minty-works) from IPFS and Filecoin for more information. You can learn more about Minty [here](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#minty). + +## Interplanetary Timelessness: IPFS & Filecoin for the NFT Long Haul + +_The following is a summary of a talk given by Alan Shaw, Core Developer at IPFS._ [_Watch the full recording here._](https://www.youtube.com/watch?v=aNaj9xNF8OU) + +If you import data to an IPFS node, you get what is called a content identifier, or CID. CIDs are what make IPFS unique when it comes to storage because CIDs address content instead of the typical https:// location-based addressing. + +It’s important to note that CIDs are a cryptographic hash of the content. This means that: + +* Any change to the content will produce a different CID. +* The same content added to two different IPFS nodes using the same settings will produce the same CID. + +CIDs are very important to NFT storage because they help prevent “rug pull”, or the issue when NFT addresses are changed to lead to something else than the original NFT content. CIDs allow for safer NFT storage long term. + +To help NFT creators and owners more easily store their NFTs with CIDs, IPFS and Filecoin offer [https://nft.storage/](https://nft.storage/), a brand new service built specifically for storing off-chain NFT data. Data is stored decentralized on IPFS and Filecoin. + +The nft.storage demo in this talk walks you through: + +* Uploading data to nft.storage using the JS client in **Node.js** and the **browser** +* Managing API keys +* Data retrieval via IPFS gateways +* Querying for information about stored data: file size, IPFS pinning status and Filecoin deal status + +Along with nft.storage and Minty, IPFS and Filecoin have comprehensive [documentation on CIDs](https://docs.ipfs.io/concepts/content-addressing/#identifier-formats), an article detailing the differences between [content addressing and content integrity](https://blog.ipfs.io/2021-04-05-storing-nfts-on-ipfs/), a best practices guide to [long term NFT storage](https://docs.ipfs.io/how-to/best-practices-for-nft-data/), and how to mint NFTs on IPFS [with Minty](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#how-minty-works). + +Keep up with the latest by giving [Filecoin](https://twitter.com/filecoin?lang=en) and [IPFS](https://twitter.com/IPFS) a follow on Twitter. + +_Disclaimers:_ + +* _Nothing in these presentations is investment advice._ +* _Any models shown in presentations are based on many assumptions, and should not be relied upon as the source of truth. Any estimates should not be relied upon and are for illustrative purposes only. You should build your own models based on the code and the Filecoin spec._ \ No newline at end of file From a604b76728b89d2ad191b2a44804188687d1e1ad Mon Sep 17 00:00:00 2001 From: "emily.vaughan@protocol.ai" Date: Thu, 8 Apr 2021 17:56:14 +0000 Subject: [PATCH 03/12] Update from Forestry.io emily.vaughan@protocol.ai deleted src/_blog/ipfs-nft-minting-and-long-term-storage.md --- .../front_matter/templates/blog-post.yml | 1 - .../ipfs-nft-minting-and-long-term-storage.md | 83 ------------------- 2 files changed, 84 deletions(-) delete mode 100644 src/_blog/ipfs-nft-minting-and-long-term-storage.md diff --git a/.forestry/front_matter/templates/blog-post.yml b/.forestry/front_matter/templates/blog-post.yml index 909b0580..65882a0f 100644 --- a/.forestry/front_matter/templates/blog-post.yml +++ b/.forestry/front_matter/templates/blog-post.yml @@ -84,7 +84,6 @@ pages: - src/_blog/ipfs-at-ethdenver-2021.md - src/_blog/ipfs-in-brave-native-access-to-the-distributed-web.md - src/_blog/ipfs-in-opera-touch-on-ios.md -- src/_blog/ipfs-nft-minting-and-long-term-storage.md - src/_blog/join-us-at-ethdenver-2021-year-of-the-spork-marmot.md - src/_blog/libp2p-comes-to-protoschool.md - src/_blog/meet-the-new-ipfs-blog-news.md diff --git a/src/_blog/ipfs-nft-minting-and-long-term-storage.md b/src/_blog/ipfs-nft-minting-and-long-term-storage.md deleted file mode 100644 index 882755d2..00000000 --- a/src/_blog/ipfs-nft-minting-and-long-term-storage.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -tags: [] -title: IPFS NFT Minting and Long Term Storage -description: Here's a recap of NFTHack, a weekend long hackathon & summit to gather - creatives & engineers focused on NFTs. -author: '' -date: 2021-04-08 -permalink: "/2021-04-08-NFTHack-Recap" -translationKey: '' -header_image: "/111485037-90aa5d80-8736-11eb-9fbf-44e254214d1d.png" - ---- -Last month ETHGlobal hosted [NFTHack](https://nfthack.ethglobal.co/), a weekend long hackathon and summit to gather creatives and engineers focused on NFTs. Protocol Labs sponsored the event and showed up to talk with the community about creative, sustainable solutions to NFT storage. - -And what a weekend! During the event alone, 1204 NFTs were stored on IPFS 🤯. - -[nft.storage](http://nft.storage/) is a new service built specifically for storing off-chain NFT data on IPFS and Filecoin. Nft.storage was a tremendous asset during the NFTHack weekend. The service made it possible for participants to focus fully on their hacks knowing that their off-chain data was safely being stored by nft.storage on IPFS and Filecoin. - -Between March 15-21 over 2,000 people visited nft.storage and a quarter of all NFTHack builders used it. Overall, 10% of all of the event participants used the JavaScript library powering nft.storage to store their NFTs. - -From a NFTHack team about nft.storage: - -"nft.storage really saved my butt, literally 2 lines of code”, they talked about how easy it was to integrate into their React and js build env, etc. Had many comments like that during the judging period - that basically it Just Worked ™️ and everyone appreciated how easy it made it for them to focus on building their thing. For 40% of the participants it was their first time doing anything with crypto, so having a non-crypto bridge like nft.storage was 💯" - -The $5k bounty for the event was split into two $1.5k awards and one $2k award. The winner of “The 🤯 Prize” was [NNFT (The 🚫Not Not-a-🔥 Flamethrower Token)](https://hack.ethglobal.co/showcase/nnft-the-%F0%9F%9A%ABnot-not-a-%F0%9F%94%A5-flamethrower-token-recqk5Rp8OqYkCwqD). Yes, it’s a flamethrower; but a flamethrower that creates an NFT out of anything it burns. The runners-up were [GFT](https://hack.ethglobal.co/showcase/gft-pronounced-gift-recLgL3xQVu1T0l07), which connects creators and consumers through NFTS, and [Rodeo](https://hack.ethglobal.co/showcase/rodeo-recCnrDlmB6FWgPss), which lets people quickly spin up NFT galleries for their websites. - -In case you didn’t join NFTHack, below are recaps, themes, and conclusions from different talks by IPFS and Filecoin contributors. Dive in, get familiar, and start (or continue!) your journey with NFTs. - -You can browse the full event [agenda](https://nfthack.ethglobal.co/) and check out the [NFTHack YouTube playlist here](https://www.youtube.com/playlist?list=PLXzKMXK2aHh50g55xEroWasKorT1YkUKs). - -## Minting Fresh NFTs with IPFS - -_The following is a summary of a talk given by Yousef Napora, Researcher at Protocol Labs._ [_Watch the full recording here._](https://www.youtube.com/watch?v=WNukgBtlWeU) - -In the last six months, NFTs have had an explosive boom, but there have been a number of storage issues. Since an NFT can't be easily changed after it's been created, it's a good idea to think about how the data for your NFTs is stored, addressed, and made persistent over time. Centralized marketplace storage is risky because creators and owners can lose access to their NFTs, and cloud storage is dangerous because it relies on https:// location-based addressing which can be altered to point to something that isn’t your NFT. Storing NFTs on the blockchain can be incredibly expensive because their state has to be replicated across every node and validated, plus there are gas fees. - -For these reasons, it was important to look at how IPFS and NFTs can best work together to make storage safer for creators and owners. This is how Minty was born, a command-line application to automatically mint an NFT and pin it to IPFS using Pinata. - -IPFS is decentralized, so this immediately removes the centralized marketplace risk. IPFS also offers an alternative to https:// location-addressing through content-based addressing, which identifies content by its cryptographic hash instead of its location. - -A cryptographic hash is a short string of letters and numbers calculated by feeding content into a cryptographic hash function. The cryptographic hash for a piece of content never changes, which means content addressing guarantees that the links will always return the same content, regardless of the location it is retrieved from, who added the block to the network, or when the content was added. - -The Minty Demo in this talk walks you through: - -* Installing Minty -* Deploying a smart contract -* What to know about metadata schema -* Loadshare specs -* Minting an NFT with IPFS -* Pinning with Pinata - -There are a lot of benefits to minting your NFTs with IPFS. If you’re curious about more of the tech specs of Minty or want to know more about minting best practices, check out [this guide](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#how-minty-works) from IPFS and Filecoin for more information. You can learn more about Minty [here](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#minty). - -## Interplanetary Timelessness: IPFS & Filecoin for the NFT Long Haul - -_The following is a summary of a talk given by Alan Shaw, Core Developer at IPFS._ [_Watch the full recording here._](https://www.youtube.com/watch?v=aNaj9xNF8OU) - -If you import data to an IPFS node, you get what is called a content identifier, or CID. CIDs are what make IPFS unique when it comes to storage because CIDs address content instead of the typical https:// location-based addressing. - -It’s important to note that CIDs are a cryptographic hash of the content. This means that: - -* Any change to the content will produce a different CID. -* The same content added to two different IPFS nodes using the same settings will produce the same CID. - -CIDs are very important to NFT storage because they help prevent “rug pull”, or the issue when NFT addresses are changed to lead to something else than the original NFT content. CIDs allow for safer NFT storage long term. - -To help NFT creators and owners more easily store their NFTs with CIDs, IPFS and Filecoin offer [https://nft.storage/](https://nft.storage/), a brand new service built specifically for storing off-chain NFT data. Data is stored decentralized on IPFS and Filecoin. - -The nft.storage demo in this talk walks you through: - -* Uploading data to nft.storage using the JS client in **Node.js** and the **browser** -* Managing API keys -* Data retrieval via IPFS gateways -* Querying for information about stored data: file size, IPFS pinning status and Filecoin deal status - -Along with nft.storage and Minty, IPFS and Filecoin have comprehensive [documentation on CIDs](https://docs.ipfs.io/concepts/content-addressing/#identifier-formats), an article detailing the differences between [content addressing and content integrity](https://blog.ipfs.io/2021-04-05-storing-nfts-on-ipfs/), a best practices guide to [long term NFT storage](https://docs.ipfs.io/how-to/best-practices-for-nft-data/), and how to mint NFTs on IPFS [with Minty](https://docs.ipfs.io/how-to/mint-nfts-with-ipfs/#how-minty-works). - -Keep up with the latest by giving [Filecoin](https://twitter.com/filecoin?lang=en) and [IPFS](https://twitter.com/IPFS) a follow on Twitter. - -_Disclaimers:_ - -* _Nothing in these presentations is investment advice._ -* _Any models shown in presentations are based on many assumptions, and should not be relied upon as the source of truth. Any estimates should not be relied upon and are for illustrative purposes only. You should build your own models based on the code and the Filecoin spec._ \ No newline at end of file From 76f75bc471614c262b0705bd705ded55b7002a70 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 20:58:12 +0000 Subject: [PATCH 04/12] Update from Forestry.io Jessica Schilling updated src/_blog/035-go-ipfs-0-4-18.md --- src/_blog/035-go-ipfs-0-4-18.md | 242 +++++++++----------------------- 1 file changed, 67 insertions(+), 175 deletions(-) diff --git a/src/_blog/035-go-ipfs-0-4-18.md b/src/_blog/035-go-ipfs-0-4-18.md index 4a07ddcd..66ea3cc1 100644 --- a/src/_blog/035-go-ipfs-0-4-18.md +++ b/src/_blog/035-go-ipfs-0-4-18.md @@ -1,94 +1,59 @@ --- date: 2018-11-07 -permalink: /53-go-ipfs-0-4-18/ +permalink: "/53-go-ipfs-0-4-18/" title: go-ipfs 0.4.18 released -description: +description: author: Steven Allen, Erik Ingenito tags: - - 'go-ipfs' - - 'QUIC' - - 'pubsub' - - 'Gossipsub' - - 'IPFS Web UI' ---- +- go-ipfs +- QUIC +- pubsub +- Gossipsub +- IPFS Web UI +--- [go-ipfs 0.4.18](https://dist.ipfs.io/#go-ipfs) has been released! This is one of largest go-ipfs releases to date; 3 months in the making. _Thanks to all our contributors for your awesome work!_ ## ✨ Highlights The headline features this release are: -- **[Experimental QUIC support](#quic)** - for faster and more efficient peer connections, better handling of lossy - networks and improved NAT traversal. - -- **[Gossipsub pubsub routing algorithm](#pubsub)** - dramatically more efficient pubsub on IPFS, along with signed - messages - -- **[Updated WebUI](#webui)** - a big update to the IPFS WebUI with expanded features and information across the board - -- **[Enhanced `p2p`, `cid` and `add`](#commands-changes)** - refactors and new features to a number of IPFS +* [**Experimental QUIC support**](#quic) - for faster and more efficient peer connections, better handling of lossy networks and improved NAT traversal. +* [**Gossipsub pubsub routing algorithm**](#pubsub) - dramatically more efficient pubsub on IPFS, along with signed messages +* [**Updated WebUI**](#webui) - a big update to the IPFS WebUI with expanded features and information across the board +* [**Enhanced `p2p`, `cid` and `add`**](#commands-changes) - refactors and new features to a number of IPFS commands. - -- **[Performance](#performance)** - numerous performance and efficiency improvements in a number of IPFS subsystems. - IPFS is faster, smaller and more reliable. - -- **[And a lot more!](#refactors-and-endeavors)** +* [**Performance**](#performance) - numerous performance and efficiency improvements in a number of IPFS subsystems. IPFS is faster, smaller and more reliable. +* [**And a lot more!**](#refactors-and-endeavors) ## 🏃 QUIC -First up, on the networking front, this release introduced experimental -support for the QUIC protocol. QUIC is a new UDP-based network transport that -solves many of the long standing issues with TCP. +First up, on the networking front, this release introduced experimental support for the QUIC protocol. QUIC is a new UDP-based network transport that solves many of the long standing issues with TCP. For us, this means (eventually): -- **Fewer local resources** - TCP requires a file-descriptor per connection while - QUIC (and most UDP based transports) can share a single file descriptor - between all connections. This should allow us to dial faster and keep more - connections open. -- **Faster connection establishment** - When client authentication is included, QUIC - has a three-way handshake like TCP. However, unlike TCP, this handshake brings - us all the way from 0 to a fully encrypted, authenticated, and - multiplexed connection. In theory (not yet in practice), this should - significantly reduce the latency of DHT queries which will improve a number of IPFS operations like adding and - getting large volumes of data. -- **Behaves better on lossy networks** - When multiplexing multiple requests over a - single TCP connection, a single dropped packet will bring the entire - connection to a halt while the packet is re-transmitted. However, because QUIC - handles multiplexing internally, dropping a single packets affects only the - related stream. -- **Better NAT traversal** - NAT hole-punching is significantly easier and, in - many cases, more reliable with UDP than with TCP. +* **Fewer local resources** - TCP requires a file-descriptor per connection while QUIC (and most UDP based transports) can share a single file descriptor between all connections. This should allow us to dial faster and keep more connections open. +* **Faster connection establishment** - When client authentication is included, QUIC has a three-way handshake like TCP. However, unlike TCP, this handshake brings us all the way from 0 to a fully encrypted, authenticated, and multiplexed connection. In theory (not yet in practice), this should significantly reduce the latency of DHT queries which will improve a number of IPFS operations like adding and getting large volumes of data. +* **Behaves better on lossy networks** - When multiplexing multiple requests over a single TCP connection, a single dropped packet will bring the entire connection to a halt while the packet is re-transmitted. However, because QUIC handles multiplexing internally, dropping a single packets affects only the related stream. +* **Better NAT traversal** - NAT hole-punching is significantly easier and, in many cases, more reliable with UDP than with TCP. -However, we still have a long way to go. While we encourage users to test this, -the IETF QUIC protocol is still being actively developed and _will_ change. You can find instructions for enabling it [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#QUIC). +However, we still have a long way to go. While we encourage users to test this, the IETF QUIC protocol is still being actively developed and _will_ change. You can find instructions for enabling it [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#QUIC). ## 📨 Pubsub go-ipfs now supports the [gossipsub](https://github.com/libp2p/specs/tree/master/pubsub/gossipsub) routing algorithm and message signing. -The gossipsub routing algorithm is _significantly_ more efficient than the -current floodsub routing algorithm. Even better, it's fully backwards compatible -so you can enable it and still talk to nodes using the floodsub algorithm. You -can find instructions to enable gossipsub in go-ipfs -[here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#gossipsub). +The gossipsub routing algorithm is _significantly_ more efficient than the current floodsub routing algorithm. Even better, it's fully backwards compatible so you can enable it and still talk to nodes using the floodsub algorithm. You can find instructions to enable gossipsub in go-ipfs [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#gossipsub). -Messages are now **signed by their authors**. While signing is now -enabled by default, strict signature verification has not been and will not be -for at least one release (probably multiple) to avoid breaking existing -applications. You can read about how to configure this feature -[here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#message-signing). +Messages are now **signed by their authors**. While signing is now enabled by default, strict signature verification has not been and will not be for at least one release (probably multiple) to avoid breaking existing applications. You can read about how to configure this feature [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#message-signing). ## 🎛 Commands Changes -In terms of new toys, this release introduces 1) the`ipfs cid` subcommand for -working with CIDs, 2) a completely refactored `ipfs p2p` command, 3) streaming name -resolution, and 4) inline block support. +In terms of new toys, this release introduces 1) the`ipfs cid` subcommand for working with CIDs, 2) a completely refactored `ipfs p2p` command, 3) streaming name resolution, and 4) inline block support. #### 1. `ipfs cid` -The new `ipfs cid` command allows users to both inspect CIDs and convert them -between various formats and versions. Here are some examples: +The new `ipfs cid` command allows users to both inspect CIDs and convert them between various formats and versions. Here are some examples: ```sh # Print out the CID metadata (prefix) @@ -106,28 +71,19 @@ bafybeicg2rebjoofv4kbyovkw7af3rpiitvnl6i7ckcywaq6xjcxnc2mby #### 2. `ipfs p2p` -The refactored `ipfs p2p` command allows forwarding TCP streams through two IPFS -nodes from one host to another. It's `ssh -L` but for IPFS. -**It's still experimental** but we don't expect too many breaking changes after this -point (it will very likely be stabilized in the next release). +The refactored `ipfs p2p` command allows forwarding TCP streams through two IPFS nodes from one host to another. It's `ssh -L` but for IPFS. **It's still experimental** but we don't expect too many breaking changes after this point (it will very likely be stabilized in the next release). Here's a quick summary of the breaking changes in this release: -- We don't stop listening for local (forwarded) connections after accepting a - single connection. -- `ipfs p2p stream ls` output now returns more useful output, first address is - always the initiator address. -- `ipfs p2p listener ls` is renamed to `ipfs p2p ls` -- `ipfs p2p listener close` is renamed to `ipfs p2p close` -- Protocol names have to be prefixed with `/x/` and are now just passed to - libp2p as handler name. Previous version did this 'under the hood' and with - `/p2p/` prefix. There is a `--allow-custom-protocol` flag which allows you - to use any libp2p handler name. -- `ipfs p2p listener open` was renamed to `ipfs p2p listen` -- `ipfs p2p stream dial` got renamed to `ipfs p2p forward` +* We don't stop listening for local (forwarded) connections after accepting a single connection. +* `ipfs p2p stream ls` output now returns more useful output, first address is always the initiator address. +* `ipfs p2p listener ls` is renamed to `ipfs p2p ls` +* `ipfs p2p listener close` is renamed to `ipfs p2p close` +* Protocol names have to be prefixed with `/x/` and are now just passed to libp2p as handler name. Previous version did this 'under the hood' and with `/p2p/` prefix. There is a `--allow-custom-protocol` flag which allows you to use any libp2p handler name. +* `ipfs p2p listener open` was renamed to `ipfs p2p listen` +* `ipfs p2p stream dial` got renamed to `ipfs p2p forward` -You can find documentation [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#ipfs-p2p), -but here's a quick example of connecting the WebUI of a remote IPFS node: +You can find documentation [here](https://github.com/ipfs/go-ipfs/blob/master/docs/experimental-features.md#ipfs-p2p), but here's a quick example of connecting the WebUI of a remote IPFS node: ```sh # On the 'remote' IPFS host @@ -146,34 +102,21 @@ QmSiXjrYwLmDhRvAb3vK2TUP8W2pTDd34MhgCwpanVjdNT #### 3. `ipfs name resolve` streaming response -There is now a new flag for `ipfs name resolve` - `--stream`. When the command -is invoked with the flag set, it will start returning results as soon as they -are discovered in the DHT and other routing mechanisms. This enables certain -applications to start prefetching/displaying data while the discovery is still -running. Note that this command will likely return many outdated records -before it finding and returning the latest. However, it will always return -_valid_ records (even if a bit stale). +There is now a new flag for `ipfs name resolve` - `--stream`. When the command is invoked with the flag set, it will start returning results as soon as they are discovered in the DHT and other routing mechanisms. This enables certain applications to start prefetching/displaying data while the discovery is still running. Note that this command will likely return many outdated records before it finding and returning the latest. However, it will always return _valid_ records (even if a bit stale). #### 4. `ipfs add` block inlining -In the previous release, we added support for extracting blocks inlined -into CIDs. In this release, we've added support for creating these CIDs. You can -now run `ipfs add` with the `--inline` flag to inline blocks less than or equal -to 32 bytes in length into a CID, instead of writing an actual block. This -should significantly reduce the size of filesystem trees with many empty -directories and tiny files. +In the previous release, we added support for extracting blocks inlined into CIDs. In this release, we've added support for creating these CIDs. You can now run `ipfs add` with the `--inline` flag to inline blocks less than or equal to 32 bytes in length into a CID, instead of writing an actual block. This should significantly reduce the size of filesystem trees with many empty directories and tiny files. ## 🌐 WebUI -This release includes the latest, very shiny [updated webui](https://github.com/ipfs-shipyard/ipfs-webui). You can view it by -installing go-ipfs and visiting http://localhost:5001/webui. It deserves its own release note - oh look, it [got -one](../assets/51-js-ipfs-0-33/#web-ui-2-0)! Here's a peek: +This release includes the latest, very shiny [updated webui](https://github.com/ipfs-shipyard/ipfs-webui). You can view it by installing go-ipfs and visiting http://localhost:5001/webui. It deserves its own release note - oh look, it [got one](../assets/51-js-ipfs-0-33/#web-ui-2-0)! Here's a peek: ![Screenshot of the status page](../assets/ipfs-webui-status.png) -| Files | Explore | Peers | Settings | -| ---------------------------------------------------------------------- | ------------------------------------------------------------------------- | -------------------------------------------------------------------- | --------------------------------------------------------------------- | -| ![Screenshot of the file browser page](../assets/ipfs-webui-files.png) | ![Screenshot of the IPLD explorer page](../assets/ipfs-webui-explore.png) | ![Screenshot of the swarm peers map](../assets/ipfs-webui-peers.png) | ![Screenshot of the settings page](../assets/ipfs-webui-settings.png) | +| Files | Explore | Peers | Settings | +| --- | --- | --- | --- | +| | | | | Kudos and thanks to the webui team! 👏 @@ -183,9 +126,7 @@ This release includes some significant performance improvements, both in terms o ### Resource Utilization -In this release, we've (a) fixed a slow memory leak in libp2p and (b) -significantly reduced the allocation load. Together, these should improve both -memory and CPU usage. How much you ask? Glad you asked. +In this release, we've (a) fixed a slow memory leak in libp2p and (b) significantly reduced the allocation load. Together, these should improve both memory and CPU usage. How much you ask? Glad you asked. ![gc-latency](../assets/035-go-ipfs-0-4-18-gc-latency.png) @@ -193,133 +134,84 @@ Above is a graph of time our IPFS gateway nodes spend in GC. See the awesome loo ![cpu-load](../assets/035-go-ipfs-0-4-18-cpu-load.png) -This graph of time spent in execution has greater variability but the improvement is still pretty clear. You want the -light blue one. +This graph of time spent in execution has greater variability but the improvement is still pretty clear. You want the light blue one. #### Datastructures -We've changed two of our most frequently used datastructures, CIDs and -Multiaddrs, to reduce allocation load. +We've changed two of our most frequently used datastructures, CIDs and Multiaddrs, to reduce allocation load. -First, we now store CIDs _encoded_ as strings, instead of decoded in structs -(behind pointers). In addition to being more compact, our `Cid` type is now a -valid `map` key so we no longer have to encode CIDs every time we want to use -them in a map/set. Allocations when inserting CIDs into maps/sets was showing up -as a significant source of allocations under heavy load so this change should -improve memory usage. +First, we now store CIDs _encoded_ as strings, instead of decoded in structs (behind pointers). In addition to being more compact, our `Cid` type is now a valid `map` key so we no longer have to encode CIDs every time we want to use them in a map/set. Allocations when inserting CIDs into maps/sets was showing up as a significant source of allocations under heavy load so this change should improve memory usage. -Second, we've changed many of our multiaddr parsing/processing/formatting -functions to allocate less. Much of our DHT related-work includes processing -multiaddrs so this should reduce CPU utilization when heavily using the DHT. +Second, we've changed many of our multiaddr parsing/processing/formatting functions to allocate less. Much of our DHT related-work includes processing multiaddrs so this should reduce CPU utilization when heavily using the DHT. #### Streams and Yamux -Streams have always plagued us in terms of memory utilization. This was -partially solved by introducing the connection manager, keeping our maximum -connection count to a reasonable number but they're still a major memory sink. +Streams have always plagued us in terms of memory utilization. This was partially solved by introducing the connection manager, keeping our maximum connection count to a reasonable number but they're still a major memory sink. This release sees two improvements on this front: -1. A memory [leak in identify](https://github.com/libp2p/go-libp2p/issues/419) - has been fixed. This was slowly causing us to leak connections (locking up - the memory used by the connections' streams). -2. Yamux streams now use a buffer-pool backed, auto shrinking read buffer. - Before, this read buffer would grow to its maximum size (a few megabytes) and - never shrink, but **now** these buffers shrink as they're emptied and **free up space efficiently**. +1. A memory [leak in identify](https://github.com/libp2p/go-libp2p/issues/419) has been fixed. This was slowly causing us to leak connections (locking up the memory used by the connections' streams). +2. Yamux streams now use a buffer-pool backed, auto shrinking read buffer. Before, this read buffer would grow to its maximum size (a few megabytes) and never shrink, but **now** these buffers shrink as they're emptied and **free up space efficiently**. ### Bitswap Performance -Bitswap will now pack _multiple_ small blocks into a single message thanks to -[ipfs/go-bitswap#5](https://github.com/ipfs/go-bitswap/pull/5). While this won't -help when transferring large files (with large blocks), this should help when -transferring many tiny files. +Bitswap will now pack _multiple_ small blocks into a single message thanks to [ipfs/go-bitswap#5](https://github.com/ipfs/go-bitswap/pull/5). While this won't help when transferring large files (with large blocks), this should help when transferring many tiny files. ## 🛠 Refactors and Endeavors -This release saw yet another commands-library refactor, work towards the -CoreAPI, and the first step towards reliable base32 CID support. +This release saw yet another commands-library refactor, work towards the CoreAPI, and the first step towards reliable base32 CID support. ### Commands Lib -We've completely refactored our commands library (again). While it still needs -quite a bit of work, it now requires significantly less boilerplate and should -be significantly more robust. The refactor immediately found two broken tests -and probably fixed quite a few bugs around properly returning and handling -errors. +We've completely refactored our commands library (again). While it still needs quite a bit of work, it now requires significantly less boilerplate and should be significantly more robust. The refactor immediately found two broken tests and probably fixed quite a few bugs around properly returning and handling errors. ### CoreAPI -CoreAPI is a new way to interact with IPFS from Go. While it's still not -final, most things you can do via the CLI or HTTP interfaces can now be done -through the new API. +CoreAPI is a new way to interact with IPFS from Go. While it's still not final, most things you can do via the CLI or HTTP interfaces can now be done through the new API. -Currently only the Go implementation exists, but there are plans to expose the new API via HTTP soon. -We are also looking into creating an RPC interface to this API which could help performance in some use cases. +Currently only the Go implementation exists, but there are plans to expose the new API via HTTP soon. We are also looking into creating an RPC interface to this API which could help performance in some use cases. You can track progress in https://github.com/ipfs/go-ipfs/issues/4498 ### CIDv1/Base32 Migration -We're continuing work to upgrade our default CID format to Base32 while preserving compatibility with existing CIDs. We -need this change to improve the security of IPFS content in browsers. Currently, IPFS is usually used in browsers by browsing to `https://SOME_GATEWAY/ipfs/CID/...`. There are two significant drawbacks to this approach: +We're continuing work to upgrade our default CID format to Base32 while preserving compatibility with existing CIDs. We need this change to improve the security of IPFS content in browsers. Currently, IPFS is usually used in browsers by browsing to `https://SOME_GATEWAY/ipfs/CID/...`. There are two significant drawbacks to this approach: 1. From a browser security standpoint, all IPFS "sites" will live under the same origin (SOME_GATEWAY). 2. From a UX standpoint, this doesn't feel very "native" (even if the gateway is a local IPFS node). -To fix the security issue, we intend to switch IPFS gateway links -`https://ipfs.io/ipfs/CID` to `https://CID.ipfs.dweb.link`. This way, the CID -will be a part of the -["origin"](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) so -each IPFS website will get a separate security origin. +To fix the security issue, we intend to switch IPFS gateway links `https://ipfs.io/ipfs/CID` to `https://CID.ipfs.dweb.link`. This way, the CID will be a part of the ["origin"](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin) so each IPFS website will get a separate security origin. -To fix the UX issue, we've been working on adding support for `ipfs://CID/...` -to web browsers through our -[ipfs-companion](https://github.com/ipfs/ipfs-companion/) add-on and some new, -experimental extension APIs from Mozilla. This has the same effect of putting -the CID in the URL origin but has the added benefit of looking "native". +To fix the UX issue, we've been working on adding support for `ipfs://CID/...` to web browsers through our [ipfs-companion](https://github.com/ipfs/ipfs-companion/) add-on and some new, experimental extension APIs from Mozilla. This has the same effect of putting the CID in the URL origin but has the added benefit of looking "native". -Unfortunately, origins must be _case insensitive_. Currently, the most common CIDs -are _CIDv0_ CIDs (those starting with `Qm`) which are _always_ base58 -encoded and are therefore case-sensitive. +Unfortunately, origins must be _case insensitive_. Currently, the most common CIDs are _CIDv0_ CIDs (those starting with `Qm`) which are _always_ base58 encoded and are therefore case-sensitive. -Fortunately, CIDv1 (the latest CID format) supports arbitrary bases using the -[multibase](https://github.com/multiformats/multibase/) standard. Unfortunately, -IPFS has always treated equivalent CIDv0 and CIDv1 CIDs as distinct. This means -that files added with CIDv0 CIDs (the default) can't be looked up using the -equivalent CIDv1. +Fortunately, CIDv1 (the latest CID format) supports arbitrary bases using the [multibase](https://github.com/multiformats/multibase/) standard. Unfortunately, IPFS has always treated equivalent CIDv0 and CIDv1 CIDs as distinct. This means that files added with CIDv0 CIDs (the default) can't be looked up using the equivalent CIDv1. -This release makes some significant progress towards solving this issue by -introducing two features: +This release makes some significant progress towards solving this issue by introducing two features: -(1) The previous mentioned `ipfs cid base32` command for converting a CID to a -case insensitive encoding required by domain names. This command converts an existing base58 CIDv0 to -a CIDv1 encoded using base32. +(1) The previous mentioned `ipfs cid base32` command for converting a CID to a case insensitive encoding required by domain names. This command converts an existing base58 CIDv0 to a CIDv1 encoded using base32. -(2) A hack to allow locally looking up blocks associated with a CIDv0 CID using -the equivalent CIDv1 CID (or the reverse). This hack will eventually -be replaced with a multihash indexed blockstore, which is agnostic to both the -CID version and multicodec content type. +(2) A hack to allow locally looking up blocks associated with a CIDv0 CID using the equivalent CIDv1 CID (or the reverse). This hack will eventually be replaced with a multihash indexed blockstore, which is agnostic to both the CID version and multicodec content type. ## 📋 Full Changelog -As always, you can find the full (massive) changelog over at ipfs/go-ipfs's Github -repository: -https://github.com/ipfs/go-ipfs/blob/master/CHANGELOG.md#go-ipfs-changelog-1 +As always, you can find the full (massive) changelog over at ipfs/go-ipfs's Github repository: https://github.com/ipfs/go-ipfs/blob/master/CHANGELOG.md#go-ipfs-changelog-1 ## 🙌 Contributing Would you like to help contribute to the go-ipfs project? -- Join us on Github at https://github.com/ipfs/go-ipfs where you can find out more about the project. -- Check the issues with the help wanted label at the Ready column in our waffle board - https://waffle.io/ipfs/go-ipfs?label=help%20wanted -- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute or any cool demos of what you've built - https://github.com/ipfs/pm/#all-hands-call -- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers. -- Join the [Go Core Dev Team Weekly Sync](https://github.com/ipfs/pm/issues/674) 🙌🏽 and be part of the Sprint action! +* Join us on Github at https://github.com/ipfs/go-ipfs where you can find out more about the project. +* Check the issues with the help wanted label at the Ready column in our waffle board - https://waffle.io/ipfs/go-ipfs?label=help%20wanted +* Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute or any cool demos of what you've built - https://github.com/ipfs/pm/#all-hands-call +* Join the discussion at http://discuss.ipfs.io/ and help users finding their answers. +* Join the [Go Core Dev Team Weekly Sync](https://github.com/ipfs/pm/issues/674) 🙌🏽 and be part of the Sprint action! ## ⁉️ Do you have questions? The best place to ask your questions about IPFS, how it works and what you can do with it, is at [discuss.ipfs.io](https://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode. -Thanks! +Thanks! \ No newline at end of file From 98ce7b875b5a60b7a29920d6a0b33ba0f04f0515 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 20:59:10 +0000 Subject: [PATCH 05/12] Update from Forestry.io Jessica Schilling updated src/_blog/058-ipfs-desktop-0-9.md --- src/_blog/058-ipfs-desktop-0-9.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/_blog/058-ipfs-desktop-0-9.md b/src/_blog/058-ipfs-desktop-0-9.md index 57c1c385..22e318dc 100644 --- a/src/_blog/058-ipfs-desktop-0-9.md +++ b/src/_blog/058-ipfs-desktop-0-9.md @@ -1,13 +1,13 @@ --- date: 2019-09-19 -permalink: /2019-09-19-ipfs-desktop-0-9/ +permalink: "/2019-09-19-ipfs-desktop-0-9/" title: IPFS Desktop 0.9 released -description: +description: author: Henrique Dias tags: - - 'IPFS Desktop' ---- +- IPFS Desktop +--- IPFS Desktop has come a long way to reach its current form. We are here to celebrate and announce the [release of 0.9.0](https://github.com/ipfs-shipyard/ipfs-desktop/releases) and share the story of this application and, of course, all the exciting new features. ## Once upon a time... @@ -46,14 +46,14 @@ Adding `ipfs` command line tools to your system was actually introduced in 0.8.0 Other notable features from previous releases include: -- **Handle `ipfs://`, `ipns://` and `dweb:` links**. If you have IPFS Desktop installed and you click on [ipns://ipfs.io](ipns://ipfs.io) in your browser or any other application, that request will go through be redirected to your own gateway via the app, or to the public gateway if yours is not online. -- **Easily add files to IPFS**. Just drag and drop them to the application icon, either on the menubar for macOS users, or the shortcut icon for Windows users. -- **Add screenshots to IPFS**. You can click on 'Take Screenshot' on the app's menu or enable the global shortcut on "Settings". After taking a screenshot, a shareable link will be copied to your clipboard! -- **Download any CID content**. If you would like to download the contents of some CID or IPFS/IPNS path, you can copy it, go to the dropdown menu and select 'Download Hash'. Then, just pick wherever you want to write those files to! This is also available through a global shortcut. +* **Handle `ipfs://`, `ipns://` and `dweb:` links**. If you have IPFS Desktop installed and you click on [ipns://ipfs.io](ipns://ipfs.io) in your browser or any other application, that request will go through be redirected to your own gateway via the app, or to the public gateway if yours is not online. +* **Easily add files to IPFS**. Just drag and drop them to the application icon, either on the menubar for macOS users, or the shortcut icon for Windows users. +* **Add screenshots to IPFS**. You can click on 'Take Screenshot' on the app's menu or enable the global shortcut on "Settings". After taking a screenshot, a shareable link will be copied to your clipboard! +* **Download any CID content**. If you would like to download the contents of some CID or IPFS/IPNS path, you can copy it, go to the dropdown menu and select 'Download Hash'. Then, just pick wherever you want to write those files to! This is also available through a global shortcut. You can also take a look at this video: - + # Let's talk about future... @@ -65,4 +65,4 @@ Is there any feature you would like to see on IPFS Desktop? If so, please [creat # Don't forget... -Don't forget to [install IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop/releases) today and be part of the decentralized Internet! We also recommend you to install our browser extension, [IPFS Companion](https://github.com/ipfs-shipyard/ipfs-companion/#install), which gives your browser superpowers. Both of these applications work well together. While IPFS Desktop makes your OS InterPlanetary, IPFS Companion connects to your node on your browser, enabling further integration on your Internet interactions to the IPFS world. +Don't forget to [install IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop/releases) today and be part of the decentralized Internet! We also recommend you to install our browser extension, [IPFS Companion](https://github.com/ipfs-shipyard/ipfs-companion/#install), which gives your browser superpowers. Both of these applications work well together. While IPFS Desktop makes your OS InterPlanetary, IPFS Companion connects to your node on your browser, enabling further integration on your Internet interactions to the IPFS world. \ No newline at end of file From 5ffb50978d10e9fe663d5e8c8cd7db221607c262 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:01:07 +0000 Subject: [PATCH 06/12] Update from Forestry.io Jessica Schilling updated src/_blog/071-ipfs-in-web-browsers.md --- src/_blog/071-ipfs-in-web-browsers.md | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/_blog/071-ipfs-in-web-browsers.md b/src/_blog/071-ipfs-in-web-browsers.md index 4a83f78b..a51fa65f 100644 --- a/src/_blog/071-ipfs-in-web-browsers.md +++ b/src/_blog/071-ipfs-in-web-browsers.md @@ -1,14 +1,14 @@ --- date: 2019-10-08 -permalink: /2019-10-08-ipfs-browsers-update/ +permalink: "/2019-10-08-ipfs-browsers-update/" title: IPFS Browser Update -description: +description: author: Dietrich Ayala -header_image: /071-ipfs-in-web-browsers-header-image.png +header_image: "/071-ipfs-in-web-browsers-header-image.png" tags: - - 'browsers' ---- +- browsers +--- Decentralization can feel slow in providing user-centric approaches to the internet's biggest problems. Right now, software that is fully in the control of the user is often too technical, too fragile, and too time-consuming to be the default choice. But we're making headway. Today, we'd like to share some collaborations the IPFS project has had in the works for a while, which bring us a few steps closer to making unmediated access to information _just work_... by solving that "last mile" problem and _integrating IPFS directly into web browsers_. @@ -17,7 +17,7 @@ But we're making headway. Today, we'd like to share some collaborations the IPFS ![Stages of browser integration](../assets/071-ipfs-in-web-browsers-stages-of-browser-integration.png) -The path to a truly decentralized web is a long one. For over 30 years the browser has been a [_client_]() – but a foundational concept in P2P systems is that a participant is both a client _and a [server]()\_. Web browser vendors and web standards bodies have not designed for this architectural shift, so we're breaking it down into steps. +The path to a truly decentralized web is a long one. For over 30 years the browser has been a [_client_](https://en.wikipedia.org/wiki/Client_(computing)) – but a foundational concept in P2P systems is that a participant is both a client _and a [server](https://en.wikipedia.org/wiki/Server_(computing))_. Web browser vendors and web standards bodies have not designed for this architectural shift, so we're breaking it down into steps. From the beginning, IPFS had an HTTP gateway. The gateway lets HTTP clients like web browsers publish to and read from the IPFS network. Now there are [lots of different public HTTP gateways to the IPFS network](https://ipfs.github.io/public-gateway-checker/), and the gateway we run at ipfs.io serves over _five million_ requests per day. @@ -43,9 +43,9 @@ But that isn't all. One of the biggest barriers to even just experimenting with These powerful APIs enable the js-ipfs node embedded in the browser to provide a _true_ P2P experience without the need for an external daemon: -- The embedded HTTP Gateway removes reliance on public gateways, by connecting over HTTP to a local IPFS node -- TCP transport improves connectivity - not only by enabling transport interoperability with go-ipfs nodes, but also makes direct browser-to-browser communication within the same network possible -- UDP sockets enable DNS-based service discovery of go-ipfs in LAN, and we are working on additional browser-to-browser discovery methods that work in offline environments +* The embedded HTTP Gateway removes reliance on public gateways, by connecting over HTTP to a local IPFS node +* TCP transport improves connectivity - not only by enabling transport interoperability with go-ipfs nodes, but also makes direct browser-to-browser communication within the same network possible +* UDP sockets enable DNS-based service discovery of go-ipfs in LAN, and we are working on additional browser-to-browser discovery methods that work in offline environments By default, our browser extension still expects [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop#ipfs-desktop) to be installed, however you can select the experimental option shown below in order to run _a standalone IPFS node_ in Brave itself. Mind this is an _early preview_ of both a full JS IPFS node and a gateway running in a browser extension. Performance and features will improve over time. @@ -53,7 +53,7 @@ By default, our browser extension still expects [IPFS Desktop](https://github.co At IPFS Camp earlier this year, Brave engineer Jocelyn Liu demoed some of these features at the science fair, including one-click install of Companion, the embedded gateway, and also talks about what's to come: tackling the current connectivity limitations such as the lack of DHT support in js-ipfs, and also plans Brave has for the design of the address bar when loading IPFS content. - + ## Opera @@ -91,10 +91,10 @@ Web browsers have been solely a client for over 30 years - putting all power in Consider this a sneak peek. There's more on the way: -- In Brave, the gateway is, well... a gateway to even more: We're working on local discovery (mDNS) of IPFS nodes, and also Brave-to-Brave connectivity for embedded nodes. -- We're continuing our experiments with [libdweb](https://github.com/mozilla/libdweb) in Firefox, both on desktop and Android. -- [Puma Browser](https://www.pumabrowser.com/), the first mobile browser with support for [Coil's micropayments for publishers](https://www.grantfortheweb.org/), is interested in IPFS support. -- Keeping a close eye on [Bundled HTTP Exchanges](https://wicg.github.io/webpackage/draft-yasskin-wpack-bundled-exchanges.html) and ways IPFS could provide decentralized alternative to centralized HTTP CDNs. -- We're exploring what a native Chromium implementation might look like... +* In Brave, the gateway is, well... a gateway to even more: We're working on local discovery (mDNS) of IPFS nodes, and also Brave-to-Brave connectivity for embedded nodes. +* We're continuing our experiments with [libdweb](https://github.com/mozilla/libdweb) in Firefox, both on desktop and Android. +* [Puma Browser](https://www.pumabrowser.com/), the first mobile browser with support for [Coil's micropayments for publishers](https://www.grantfortheweb.org/), is interested in IPFS support. +* Keeping a close eye on [Bundled HTTP Exchanges](https://wicg.github.io/webpackage/draft-yasskin-wpack-bundled-exchanges.html) and ways IPFS could provide decentralized alternative to centralized HTTP CDNs. +* We're exploring what a native Chromium implementation might look like... -If you're an experienced Chromium developer or mobile app developer and you're interested in working on some of these projects, contact Dietrich Ayala on [Twitter](https://twitter.com/dietrich), the [fediverse](https://mastodon.social/@dietrich), [Secure Scuttlebutt](@vB/yLGZ7vBGgPMTG5NEczZc6ufr0YqhxRScOk6jPi60=.ed25519) or [LinkedIn](https://www.linkedin.com/in/dietrich). +If you're an experienced Chromium developer or mobile app developer and you're interested in working on some of these projects, contact Dietrich Ayala on [Twitter](https://twitter.com/dietrich), the [fediverse](https://mastodon.social/@dietrich), [Secure Scuttlebutt](@vB/yLGZ7vBGgPMTG5NEczZc6ufr0YqhxRScOk6jPi60=.ed25519) or [LinkedIn](https://www.linkedin.com/in/dietrich). \ No newline at end of file From 034cc8eca02459e8bd58c5e281f97cd68fc6cb3a Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:01:33 +0000 Subject: [PATCH 07/12] Update from Forestry.io Jessica Schilling updated src/_blog/071-ipfs-in-web-browsers.md --- src/_blog/071-ipfs-in-web-browsers.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_blog/071-ipfs-in-web-browsers.md b/src/_blog/071-ipfs-in-web-browsers.md index a51fa65f..ff4c2930 100644 --- a/src/_blog/071-ipfs-in-web-browsers.md +++ b/src/_blog/071-ipfs-in-web-browsers.md @@ -67,11 +67,11 @@ Earlier this year [Opera announced they were working on support for IPFS](https: We've been working with Mozilla on initial APIs since 2018, when the [libdweb project](https://github.com/mozilla/libdweb) emerged, providing browser extension APIs for many of the primitives a P2P system needs: filesystem access, TCP, UDP and protocol registration and handling. Earlier in 2018 the [ipfs:// scheme was whitelisted in Firefox](https://blog.mozilla.org/addons/2018/01/26/extensions-firefox-59/), so now with libdweb we were able to experiment with a proper [ipfs:// protocol handler](https://github.com/ipfs-shipyard/ipfs-companion/pull/533), which we demoed at Lab Day in August 2018: - + We used yet more APIs in libdweb to implement [local discovery and TCP transport](https://github.com/ipfs-shipyard/ipfs-companion/pull/553): - + Unfortunately, libdweb is still an experimental set of APIs - not included in Firefox yet. We're hoping to see more progress soon from Mozilla on shipping libdweb APIs in Firefox for at least some extensions this year! From 1d620918677a258ca1adef3c048bca071562a3b4 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:02:27 +0000 Subject: [PATCH 08/12] Update from Forestry.io Jessica Schilling updated src/_blog/077-collaborative-clusters.md --- src/_blog/077-collaborative-clusters.md | 58 ++++++++----------------- 1 file changed, 18 insertions(+), 40 deletions(-) diff --git a/src/_blog/077-collaborative-clusters.md b/src/_blog/077-collaborative-clusters.md index 17305f4c..e971919f 100644 --- a/src/_blog/077-collaborative-clusters.md +++ b/src/_blog/077-collaborative-clusters.md @@ -1,65 +1,43 @@ --- date: 2020-01-09 -permalink: /2020-01-09-collaborative-clusters/ +permalink: "/2020-01-09-collaborative-clusters/" title: Announcing collaborative clusters -description: +description: author: Hector Sanjuan -header_image: /077-collaborative-clusters-header-image.png +header_image: "/077-collaborative-clusters-header-image.png" tags: - - 'IPFS Cluster' - - 'collaborative cluster' +- IPFS Cluster +- collaborative cluster + --- +We are very excited to announce the first set of public _collaborative clusters_ and the first iteration of the [collaborative clusters website](https://collab.ipfscluster.io). -We are very excited to announce the first set of public _collaborative -clusters_ and the first iteration of the -[collaborative clusters website](https://collab.ipfscluster.io). +_Collaborative clusters_ are an easy way to join and help improving distribution and data availability of specific datasets in the IPFS Network. -_Collaborative clusters_ are an easy way to join and help improving distribution -and data availability of specific datasets in the IPFS Network. +Using IPFS Cluster's [latest release (0.12.1)](https://cluster.ipfs.io/news/0.12.0_release/) we have set up the first of those archives: -Using IPFS Cluster's -[latest release (0.12.1)](https://cluster.ipfs.io/news/0.12.0_release/) we -have set up the first of those archives: +* Filecoin cluster: which will be used to pin Filecoin parameters and Filecoin objects. +* Spanish books from the Gutenberg Project: a collection of Spanish literature from the [Gutenberg Project](http://www.gutenberg.org/). +* IPFS Websites: a list with a few of the IPFS-universe websites (such as ipfs.io, libp2p.io). -- Filecoin cluster: which will be used to pin Filecoin parameters and - Filecoin objects. -- Spanish books from the Gutenberg Project: a collection of Spanish literature - from the [Gutenberg Project](http://www.gutenberg.org/). -- IPFS Websites: a list with a few of the IPFS-universe websites (such as ipfs.io, libp2p.io). +Users can join these clusters by running a single `ipfs-cluster-follow` command. You will need to have enough space available in your IPFS repository (check the size row for each cluster on the [website](https://collab.ipfscluster.io)). -Users can join these clusters by running a single `ipfs-cluster-follow` -command. You will need to have enough space available in your IPFS repository -(check the size row for each cluster on the -[website](https://collab.ipfscluster.io)). - -Instructions on how to setup and join these and, in the future, other -collaborative clusters can be found at -[https://collab.ipfscluster.io](https://collab.ipfscluster.io). You can stop -and re-start replication whenever you want. Also, here's a quick video to show -how easy it is: +Instructions on how to setup and join these and, in the future, other collaborative clusters can be found at [https://collab.ipfscluster.io](https://collab.ipfscluster.io). You can stop and re-start replication whenever you want. Also, here's a quick video to show how easy it is:

asciicast powered by asciinema

-We hope that collaborative clusters will allow the community to participate in -the distribution and seeding of data they care about, enabling easy "mirroring" -on the IPFS network, along with unlocking _Content-Distribution-Network (CDN)_ -properties. +We hope that collaborative clusters will allow the community to participate in the distribution and seeding of data they care about, enabling easy "mirroring" on the IPFS network, along with unlocking _Content-Distribution-Network (CDN)_ properties. ## Creating your own Clusters Collaborative clusters are no different from normal IPFS Clusters, with the exception that they include a list of _trusted peers_ (peers that can modify the cluster pinset). -The process of setting up one of these and letting other peers easily join as -followers is documented at -[https://cluster.ipfs.io/documentation/collaborative/](https://cluster.ipfs.io/documentation/collaborative/). +The process of setting up one of these and letting other peers easily join as followers is documented at [https://cluster.ipfs.io/documentation/collaborative/](https://cluster.ipfs.io/documentation/collaborative/). ## About the IPFS Cluster project -The [IPFS Cluster project](https://cluster.ipfs.io) provides data -orchestration across a swarm of IPFS daemons by allocating, replicating and -tracking a global pinset distributed among multiple peers. +The [IPFS Cluster project](https://cluster.ipfs.io) provides data orchestration across a swarm of IPFS daemons by allocating, replicating and tracking a global pinset distributed among multiple peers. -For full documentation on how to setup and operate clusters, see -[https://cluster.ipfs.io/documentation](https://cluster.ipfs.io/documentation). +For full documentation on how to setup and operate clusters, see [https://cluster.ipfs.io/documentation](https://cluster.ipfs.io/documentation). \ No newline at end of file From 593115964dcccb29f8305176bcb777ae6e7cfe60 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:07:20 +0000 Subject: [PATCH 09/12] Update from Forestry.io Jessica Schilling updated src/_blog/028-go-libp2p-6.0.0.md --- src/_blog/028-go-libp2p-6.0.0.md | 242 ++++++++----------------------- 1 file changed, 59 insertions(+), 183 deletions(-) diff --git a/src/_blog/028-go-libp2p-6.0.0.md b/src/_blog/028-go-libp2p-6.0.0.md index 2da3b01f..9fa81f9d 100644 --- a/src/_blog/028-go-libp2p-6.0.0.md +++ b/src/_blog/028-go-libp2p-6.0.0.md @@ -1,107 +1,66 @@ --- date: 2018-06-15 -permalink: /39-go-libp2p-6-0-0/ +permalink: "/39-go-libp2p-6-0-0/" title: go-libp2p 6.0.0 released -description: +description: author: Steven Allen tags: - - 'libp2p' ---- +- libp2p +--- # 🔦 go-libp2p 6.0.0 release notes -We're pleased to announce go-libp2p 6.0.0. This release includes a massive -refactor of go-libp2p that paves the way for new transports such as QUIC. -Unfortunately, as it is broad sweeping, there are some breaking changes, -_especially_ for maintainers of custom transports. +We're pleased to announce go-libp2p 6.0.0. This release includes a massive refactor of go-libp2p that paves the way for new transports such as QUIC. Unfortunately, as it is broad sweeping, there are some breaking changes, _especially_ for maintainers of custom transports. -Below, we cover the changes you'll likely care about. For convenience, we've -broken this into a section for users and transport authors/maintainers. However, -transport maintainers should really read both sections. +Below, we cover the changes you'll likely care about. For convenience, we've broken this into a section for users and transport authors/maintainers. However, transport maintainers should really read both sections. ## 💁 For Users Libp2p users should be aware of a few major changes. -- Guarantees and performance concerning connect/disconnect notification - processing have improved. -- Handling of half-closed streams has changed (READ THIS SECTION). -- Some constructors and method signatures have changed slightly. +* Guarantees and performance concerning connect/disconnect notification processing have improved. +* Handling of half-closed streams has changed (READ THIS SECTION). +* Some constructors and method signatures have changed slightly. ### Dialing And Source Addresses -We've improved the logic that selects the source address when dialing. In the -past, you may have run into an issue where you couldn't dial non-local nodes -when listening on 127.0.0.1 as opposed to 0.0.0.0. This happened because -go-libp2p would randomly pick the source address from the set of addresses on -which the node was listening. We did this to ensure that the other end could -dial us back at the same address. Unfortunately, one can't use 127.0.0.1 as a -source address when dialing any non-local address so outbound dials failed. +We've improved the logic that selects the source address when dialing. In the past, you may have run into an issue where you couldn't dial non-local nodes when listening on 127.0.0.1 as opposed to 0.0.0.0. This happened because go-libp2p would randomly pick the source address from the set of addresses on which the node was listening. We did this to ensure that the other end could dial us back at the same address. Unfortunately, one can't use 127.0.0.1 as a source address when dialing any non-local address so outbound dials failed. -go-libp2p now tries to be smarter about this and avoids picking source addresses -that have no route to the destination address. +go-libp2p now tries to be smarter about this and avoids picking source addresses that have no route to the destination address. ### Bandwidth Metrics -To start out on an unhappy note, bandwidth metrics are now less accurate. In the -past, transports returned "minimal" connections (e.g., a TCP connection) so we -could wrap these transport connections in "metrics" connections that counted -every byte sent and received. +To start out on an unhappy note, bandwidth metrics are now less accurate. In the past, transports returned "minimal" connections (e.g., a TCP connection) so we could wrap these transport connections in "metrics" connections that counted every byte sent and received. -Unfortunately, now that we've moved encryption and multiplexing down into the -transport layer, the connection we're wrapping has significantly more -under-the-covers overhead. +Unfortunately, now that we've moved encryption and multiplexing down into the transport layer, the connection we're wrapping has significantly more under-the-covers overhead. -However, we do hope to improve this and get even _better_ bandwidth metrics than -we did before. See [libp2p/go-libp2p-transport#31][] for details. - -[libp2p/go-libp2p-transport#31]: https://github.com/libp2p/go-libp2p-transport/issues/31 +However, we do hope to improve this and get even _better_ bandwidth metrics than we did before. See [libp2p/go-libp2p-transport#31](https://github.com/libp2p/go-libp2p-transport/issues/31) for details. ### Notifications This release brings performance improvements and simple ordering guarantees for connect/disconnect events: -1. For any given connection/stream, libp2p will wait for all connect/open event - handlers to finish exit before triggering a disconnect/close event for the - connection/stream. -2. When a user calls the `Close` (or `Reset`) method on a connection or stream, - go-libp2p will process the close event asynchronously (i.e., not block the - call to `Close`). Otherwise, a call to `Close` from within a connect event - handler would deadlock. +1. For any given connection/stream, libp2p will wait for all connect/open event handlers to finish exit before triggering a disconnect/close event for the connection/stream. +2. When a user calls the `Close` (or `Reset`) method on a connection or stream, go-libp2p will process the close event asynchronously (i.e., not block the call to `Close`). Otherwise, a call to `Close` from within a connect event handler would deadlock. 3. Unless otherwise noted, events will be handled in parallel. What does this mean for end users? Well: -1. Reference counting connections to a peer using connect/disconnect events - should "just work" and should never go negative. -2. Under heavy connect/disconnect loads, connecting to new peers should be - faster (usually). +1. Reference counting connections to a peer using connect/disconnect events should "just work" and should never go negative. +2. Under heavy connect/disconnect loads, connecting to new peers should be faster (usually). For those interested in the history of this issue, ... -In the past, (dis)connect and stream open/close notifications have been a bit of -a pain point. For a long time, they were fired off in parallel and one could, for -example, process a disconnect notification before a connect notification (we had -to support _negative_ ref-counts in several places to account for this). +In the past, (dis)connect and stream open/close notifications have been a bit of a pain point. For a long time, they were fired off in parallel and one could, for example, process a disconnect notification before a connect notification (we had to support _negative_ ref-counts in several places to account for this). -After no end of trouble, we finally "fixed" this by synchronizing notification -delivery. We still delivered notifications to all notifiees in parallel, we just -processed the events in series. +After no end of trouble, we finally "fixed" this by synchronizing notification delivery. We still delivered notifications to all notifiees in parallel, we just processed the events in series. -Unfortunately, under heavy connect/disconnect load, new connections could easily -get stuck on open behind a queue of connect events all being handled in series. -In theory, these events should have been handled quickly but in practice, it's -very hard to avoid locks _entirely_ (bitswap's event handlers were especially +Unfortunately, under heavy connect/disconnect load, new connections could easily get stuck on open behind a queue of connect events all being handled in series. In theory, these events should have been handled quickly but in practice, it's very hard to avoid locks _entirely_ (bitswap's event handlers were especially problematic). -Worse, this serial delivery guarantee didn't actually provide us with an -_in-order_ delivery guarantee as it was still possible for a disconnect to -happen before we even _started_ to fire the connect event. The situation was -slightly better than before because the events couldn't overlap but still far -from optimal. +Worse, this serial delivery guarantee didn't actually provide us with an _in-order_ delivery guarantee as it was still possible for a disconnect to happen before we even _started_ to fire the connect event. The situation was slightly better than before because the events couldn't overlap but still far from optimal. -However, this has all been resolved now. From now on, you'll never receive a -disconnect event before a connect event. +However, this has all been resolved now. From now on, you'll never receive a disconnect event before a connect event. ### Conn.GetStreams Signature Change @@ -117,65 +76,39 @@ To: GetStreams() []Stream ``` -Listing the streams on an open connection should never involve IO or do anything -that can fail so we removed this error to improve usability. +Listing the streams on an open connection should never involve IO or do anything that can fail so we removed this error to improve usability. ### Libp2p Constructor -If you're not already doing so, you should be using the `libp2p.New` constructor -to make your libp2p nodes. This release brings quite a few new options to the -libp2p constructor so if it hasn't been flexible enough for you in the past, I -recommend that you try again. A simple example can be found in the -[echo][example:echo] example. +If you're not already doing so, you should be using the `libp2p.New` constructor to make your libp2p nodes. This release brings quite a few new options to the libp2p constructor so if it hasn't been flexible enough for you in the past, I recommend that you try again. A simple example can be found in the [echo](https://github.com/libp2p/go-libp2p/tree/master/examples/echo) example. -Given this work and in an attempt to consolidate all of our configuration logic -in one place, we've removed all default transports from go-libp2p-swarm. +Given this work and in an attempt to consolidate all of our configuration logic in one place, we've removed all default transports from go-libp2p-swarm. TL;DR: Please use the libp2p constructor. ### Zombie Streams -From this release on, when you're done with a stream, you must either call -`Reset` on it (in case of an error) or close it and read an EOF (or some other -error). Otherwise, libp2p can't determine if the stream is _actually_ closed and -will hang onto it indefinitely. +From this release on, when you're done with a stream, you must either call `Reset` on it (in case of an error) or close it and read an EOF (or some other error). Otherwise, libp2p can't determine if the stream is _actually_ closed and will hang onto it indefinitely. -To make properly closing streams a bit easier, we've added two methods to -[go-libp2p-net][]: `AwaitEOF` and `FullClose`. +To make properly closing streams a bit easier, we've added two methods to [go-libp2p-net](https://github.com/libp2p/go-libp2p-net): `AwaitEOF` and `FullClose`. -- `AwaitEOF(stream)` tries to read a single byte from the stream. If `Read` - returns an EOF, `AwaitEOF` returns success. Otherwise, if `Read` either reads - some data or returns some other error, `AwaitEOF` resets the stream and returns - an error. To avoid waiting indefinitely, `AwaitEOF` resets the stream - unconditionally after 1 minute. -- `FullClose(stream)` is a convenience function that closes the stream and then +* `AwaitEOF(stream)` tries to read a single byte from the stream. If `Read` returns an EOF, `AwaitEOF` returns success. Otherwise, if `Read` either reads some data or returns some other error, `AwaitEOF` resets the stream and returns an error. To avoid waiting indefinitely, `AwaitEOF` resets the stream unconditionally after 1 minute. +* `FullClose(stream)` is a convenience function that closes the stream and then calls `AwaitEOF` on it. Like with libp2p notifications, this issue has a bit of history... -In the beginning, libp2p assumed that calling `Close` on a stream would close -the stream for both reading and writing. Unfortunately, _none_ of our stream -multiplexers actually behaved this way. In practice, `Close` always closed the -stream for writing. +In the beginning, libp2p assumed that calling `Close` on a stream would close the stream for both reading and writing. Unfortunately, _none_ of our stream multiplexers actually behaved this way. In practice, `Close` always closed the stream for writing. After realizing this, we made two changes: 1. We accepted the fact that `Close` only closed the stream for writing. -2. We added a `Reset` method for killing the stream (closing it in both - directions, throwing away any buffered data). +2. We added a `Reset` method for killing the stream (closing it in both directions, throwing away any buffered data). -However, we ran into a bit of a snag because we try to track open streams and -need some way to tell when a stream has been closed. In the past this was easy: -when the user calls `Close` on the stream, stop tracking it. However, now that -`Close` only closes the stream for writing, we still _technically_ needed to -track it until the _other_ end closed the stream as well. Unfortunately, without -actually reading from the stream, we have no way of knowing about this. -Therefore, if the user calls `Close` on a stream and then walks away, we'd have +However, we ran into a bit of a snag because we try to track open streams and need some way to tell when a stream has been closed. In the past this was easy: when the user calls `Close` on the stream, stop tracking it. However, now that `Close` only closes the stream for writing, we still _technically_ needed to track it until the _other_ end closed the stream as well. Unfortunately, without actually reading from the stream, we have no way of knowing about this. Therefore, if the user calls `Close` on a stream and then walks away, we'd have to hang onto the stream indefinitely. -Our solution was to simply stop tracking streams once they were closed for -writing. This wasn't the _correct_ behavior but it avoided leaking memory in the -common case: +Our solution was to simply stop tracking streams once they were closed for writing. This wasn't the _correct_ behavior but it avoided leaking memory in the common case: 1. The user calls `Close` and drops all references to the stream. 2. The other end calls `Close` without writing any additional data. @@ -185,125 +118,68 @@ common case: However, this meant that: 1. The list of "open" streams was technically incomplete. -2. If the other side either failed to call `Close` or tried to send data before - closing, the stream would remain "open" (until the connection was closed). +2. If the other side either failed to call `Close` or tried to send data before closing, the stream would remain "open" (until the connection was closed). -In this release, we've changed this behavior. Now, when you `Close` a stream for -writing, libp2p _continues_ to track it. We only stop tracking it when either: +In this release, we've changed this behavior. Now, when you `Close` a stream for writing, libp2p _continues_ to track it. We only stop tracking it when either: 1. You call `Reset` (throwing away the stream). 2. You finish reading any data off of it and observe either an EOF or an error. -This way, we never "forget" about open streams or leave them in a half-forgotten -state. +This way, we never "forget" about open streams or leave them in a half-forgotten state. In the future, I'd like to add a `CloseAndForget` method to streams that: 1. Closes the stream (sends an EOF). 2. Tells the swarm to stop tracking the stream. -3. Tells the stream muxer to stop tracking the stream and throw away any data - the other side may send (possibly resetting the stream on unexpected data). +3. Tells the stream muxer to stop tracking the stream and throw away any data the other side may send (possibly resetting the stream on unexpected data). However: -1. This would likely require modifying our stream muxers which may not be - feasible. -2. Explicitly waiting for an EOF is still the correct thing to do unless you - really don't care if the operation succeeded. +1. This would likely require modifying our stream muxers which may not be feasible. +2. Explicitly waiting for an EOF is still the correct thing to do unless you really don't care if the operation succeeded. ## 📞 For Transport Maintainers -For transport maintainers, quite a bit has changed. Before this change, -transports created simple, unencrypted, stream connections and it was the job of -the libp2p Network (go-libp2p-swarm) to negotiate security, multiplexing, etc. +For transport maintainers, quite a bit has changed. Before this change, transports created simple, unencrypted, stream connections and it was the job of the libp2p Network (go-libp2p-swarm) to negotiate security, multiplexing, etc. -However, when attempting to add support for the QUIC protocol, we realized that -this was going to be a problem: QUIC already handles authentication and -encryption (using TLS1.3) and multiplexing. After much debate, we inverted our -current architecture and made transports responsible for encrypting/multiplexing -their connections (before returning them). +However, when attempting to add support for the QUIC protocol, we realized that this was going to be a problem: QUIC already handles authentication and encryption (using TLS1.3) and multiplexing. After much debate, we inverted our current architecture and made transports responsible for encrypting/multiplexing their connections (before returning them). -To make this palatable, we've also introduced a new ["upgrader" -library][go-libp2p-transport-upgrader] for upgrading go-multiaddr-net -connections/listeners to full libp2p transport connections/listeners. Transports -that don't support encryption/multiplexing out of the box can expect to have an -upgrader passed into the constructor. +To make this palatable, we've also introduced a new ["upgrader" library](https://github.com/libp2p/go-libp2p-transport-upgrader) for upgrading go-multiaddr-net connections/listeners to full libp2p transport connections/listeners. Transports that don't support encryption/multiplexing out of the box can expect to have an upgrader passed into the constructor. -To get a feel for how this new transport system works, take a look at the TCP -and WebSocket transports and the transport interface documentation: +To get a feel for how this new transport system works, take a look at the TCP and WebSocket transports and the transport interface documentation: -- [TCP Transport][go-tcp-transport] -- [WebSocket Transport][go-ws-transport] -- [Transport Interface][doc:go-libp2p-transport] +* [TCP Transport](https://github.com/libp2p/go-tcp-transport) +* [WebSocket Transport](https://github.com/libp2p/go-ws-transport) +* [Transport Interface](https://godoc.org/github.com/libp2p/go-libp2p-transport) ### Deprecated Packages This release sees the deprecation of a few packages: -- [go-peerstream][] has been deprecated and all functionality has been merged - into [go-libp2p-swarm][]. [go-peerstream][] was written as a general-purpose - (not libp2p specific) listener, connection, and stream manager. However, this - package caused more problems than it solved and was incompatible with the new - transport interface. -- [go-libp2p-interface-conn][] has been deprecated. These interfaces to bridge - the gap between transport-level connections and [go-libp2p-net][] connections - however, now that transport connections are fully multiplexed/encrypted, this - is no longer needed. -- [go-libp2p-conn][] has also been deprecated and most of the functionality has - been moved to [go-libp2p-transport-upgrader][]. This package used to provide - connection "upgrade" logic for upgrading transport-level connections to - [go-libp2p-interface-conn][] connections however, transport-level connections - now provide the required functionality out of the box. +* [go-peerstream](https://github.com/libp2p/go-peerstream) has been deprecated and all functionality has been merged into [go-libp2p-swarm](https://github.com/libp2p/go-libp2p/go-libp2p-swarm). [go-peerstream](https://github.com/libp2p/go-peerstream) was written as a general-purpose (not libp2p specific) listener, connection, and stream manager. However, this package caused more problems than it solved and was incompatible with the new transport interface. +* [go-libp2p-interface-conn](https://github.com/libp2p/go-libp2p-interface-conn) has been deprecated. These interfaces to bridge the gap between transport-level connections and [go-libp2p-net](https://github.com/libp2p/go-libp2p-net) connections however, now that transport connections are fully multiplexed/encrypted, this is no longer needed. +* [go-libp2p-conn](https://github.com/libp2p/go-libp2p-conn) has also been deprecated and most of the functionality has been moved to [go-libp2p-transport-upgrader](https://github.com/libp2p/go-libp2p-transport-upgrader). This package used to provide connection "upgrade" logic for upgrading transport-level connections to [go-libp2p-interface-conn](https://github.com/libp2p/go-libp2p-interface-conn) connections however, transport-level connections now provide the required functionality out of the box. ### Testing -We've moved `GenSwarmNetwork` in [go-libp2p-netutil][] to `GenSwarm` in -[go-libp2p-swarm/testing][] because: +We've moved `GenSwarmNetwork` in [go-libp2p-netutil](https://github.com/libp2p/go-libp2p/go-libp2p-netutil) to `GenSwarm` in [go-libp2p-swarm/testing](https://github.com/libp2p/go-libp2p/go-libp2p-swarm/testing) because: 1. The swarm duplicated this exact function for its own tests. -2. The swarm couldn't depend on [go-libp2p-netutil][] because - [go-libp2p-netutil][] depends on [go-libp2p-swarm][]. +2. The swarm couldn't depend on [go-libp2p-netutil](https://github.com/libp2p/go-libp2p/go-libp2p-netutil) because [go-libp2p-netutil](https://github.com/libp2p/go-libp2p/go-libp2p-netutil) depends on [go-libp2p-swarm](https://github.com/libp2p/go-libp2p/go-libp2p-swarm). -We've also added a new transport test suit -[go-libp2p-transport/test][]. If you implement a new transport, please consider -testing against these suite. If you find a bug in an existing transport, please -consider adding a test to this suite. +We've also added a new transport test suite [go-libp2p-transport/test](https://github.com/libp2p/go-libp2p-transport/test). If you implement a new transport, please consider testing against these suite. If you find a bug in an existing transport, please consider adding a test to this suite. ### go-addr-util -In go-addr-util, we've removed the `SupportedTransportStrings` and -`SupportedTransportProtocols` transport registries and the associated -`AddTransport` function. These registries were updated by `init` functions in -packages providing transports and were used to keep track of known transports. +In go-addr-util, we've removed the `SupportedTransportStrings` and `SupportedTransportProtocols` transport registries and the associated `AddTransport` function. These registries were updated by `init` functions in packages providing transports and were used to keep track of known transports. -However, _importing_ a transport doesn't mean any libp2p nodes have been -configured to actually _use_ that transport. Therefore, in the new go-libp2p, -it's go-libp2p-swarm's job to keep track of which transports are supported -(i.e., which transports have been registered with the swarm). +However, _importing_ a transport doesn't mean any libp2p nodes have been configured to actually _use_ that transport. Therefore, in the new go-libp2p, it's go-libp2p-swarm's job to keep track of which transports are supported (i.e., which transports have been registered with the swarm). -We've also removed the associated `AddrUsable`, `FilterUsableAddrs`, and -`AddrUsableFunc` functions. +We've also removed the associated `AddrUsable`, `FilterUsableAddrs`, and `AddrUsableFunc` functions. ### Pluggable Security Transports -This release brings a new pluggable security transport framework. Implementing a -new security framework is now as simple as: +This release brings a new pluggable security transport framework. Implementing a new security framework is now as simple as: -1. Implement the interfaces defined in [go-conn-security][]. -2. Pass it into the libp2p constructor using the `Security` option. - -[go-conn-security]: https://github.com/libp2p/go-conn-security -[go-libp2p-conn]: https://github.com/libp2p/go-libp2p-conn -[go-libp2p-interface-conn]: https://github.com/libp2p/go-libp2p-interface-conn -[go-libp2p-net]: https://github.com/libp2p/go-libp2p-net -[go-libp2p-netutil]: https://github.com/libp2p/go-libp2p/go-libp2p-netutil -[go-libp2p-swarm]: https://github.com/libp2p/go-libp2p/go-libp2p-swarm -[go-libp2p-swarm/testing]: https://github.com/libp2p/go-libp2p/go-libp2p-swarm/testing -[go-libp2p-transport]: https://github.com/libp2p/go-libp2p-transport -[go-libp2p-transport/test]: https://github.com/libp2p/go-libp2p-transport/test -[go-libp2p-transport-upgrader]: https://github.com/libp2p/go-libp2p-transport-upgrader -[go-peerstream]: https://github.com/libp2p/go-peerstream -[go-tcp-transport]: https://github.com/libp2p/go-tcp-transport -[go-ws-transport]: https://github.com/libp2p/go-ws-transport -[example:echo]: https://github.com/libp2p/go-libp2p/tree/master/examples/echo -[doc:go-libp2p-transport]: https://godoc.org/github.com/libp2p/go-libp2p-transport +1. Implement the interfaces defined in [go-conn-security](https://github.com/libp2p/go-conn-security). +2. Pass it into the libp2p constructor using the `Security` option. \ No newline at end of file From b4af95de6a98b2f5b0e20c3d0df2e662d773680e Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:17:38 +0000 Subject: [PATCH 10/12] Update from Forestry.io Jessica Schilling updated src/_blog/077-collaborative-clusters.md --- src/_blog/077-collaborative-clusters.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/_blog/077-collaborative-clusters.md b/src/_blog/077-collaborative-clusters.md index e971919f..16fe81bd 100644 --- a/src/_blog/077-collaborative-clusters.md +++ b/src/_blog/077-collaborative-clusters.md @@ -31,8 +31,7 @@ We hope that collaborative clusters will allow the community to participate in t ## Creating your own Clusters -Collaborative clusters are no different from normal IPFS Clusters, with the exception that -they include a list of _trusted peers_ (peers that can modify the cluster pinset). +Collaborative clusters are no different from normal IPFS Clusters, with the exception that they include a list of _trusted peers_ (peers that can modify the cluster pinset). The process of setting up one of these and letting other peers easily join as followers is documented at [https://cluster.ipfs.io/documentation/collaborative/](https://cluster.ipfs.io/documentation/collaborative/). From d8cf08ff8346fb9717bf3d12ddc96f0eca5c3abb Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:23:06 +0000 Subject: [PATCH 11/12] Update from Forestry.io Jessica Schilling updated src/_blog/058-ipfs-desktop-0-9.md --- src/_blog/058-ipfs-desktop-0-9.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/_blog/058-ipfs-desktop-0-9.md b/src/_blog/058-ipfs-desktop-0-9.md index 22e318dc..e1100a1c 100644 --- a/src/_blog/058-ipfs-desktop-0-9.md +++ b/src/_blog/058-ipfs-desktop-0-9.md @@ -53,7 +53,7 @@ Other notable features from previous releases include: You can also take a look at this video: - + # Let's talk about future... From 1e41c25541ddfcb1e48c3f2072bf7221f21cd2b8 Mon Sep 17 00:00:00 2001 From: Jessica Schilling Date: Thu, 8 Apr 2021 21:24:39 +0000 Subject: [PATCH 12/12] Update from Forestry.io Jessica Schilling updated src/_blog/071-ipfs-in-web-browsers.md --- src/_blog/071-ipfs-in-web-browsers.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/_blog/071-ipfs-in-web-browsers.md b/src/_blog/071-ipfs-in-web-browsers.md index ff4c2930..a1128359 100644 --- a/src/_blog/071-ipfs-in-web-browsers.md +++ b/src/_blog/071-ipfs-in-web-browsers.md @@ -17,7 +17,7 @@ But we're making headway. Today, we'd like to share some collaborations the IPFS ![Stages of browser integration](../assets/071-ipfs-in-web-browsers-stages-of-browser-integration.png) -The path to a truly decentralized web is a long one. For over 30 years the browser has been a [_client_](https://en.wikipedia.org/wiki/Client_(computing)) – but a foundational concept in P2P systems is that a participant is both a client _and a [server](https://en.wikipedia.org/wiki/Server_(computing))_. Web browser vendors and web standards bodies have not designed for this architectural shift, so we're breaking it down into steps. +The path to a truly decentralized web is a long one. For over 30 years the browser has been a [_client_](https://en.wikipedia.org/wiki/Client_(computing)) – but a foundational concept in P2P systems is that a participant is both a client _and a_ [_server_](https://en.wikipedia.org/wiki/Server_(computing)). Web browser vendors and web standards bodies have not designed for this architectural shift, so we're breaking it down into steps. From the beginning, IPFS had an HTTP gateway. The gateway lets HTTP clients like web browsers publish to and read from the IPFS network. Now there are [lots of different public HTTP gateways to the IPFS network](https://ipfs.github.io/public-gateway-checker/), and the gateway we run at ipfs.io serves over _five million_ requests per day. @@ -53,7 +53,7 @@ By default, our browser extension still expects [IPFS Desktop](https://github.co At IPFS Camp earlier this year, Brave engineer Jocelyn Liu demoed some of these features at the science fair, including one-click install of Companion, the embedded gateway, and also talks about what's to come: tackling the current connectivity limitations such as the lack of DHT support in js-ipfs, and also plans Brave has for the design of the address bar when loading IPFS content. - + ## Opera @@ -67,11 +67,11 @@ Earlier this year [Opera announced they were working on support for IPFS](https: We've been working with Mozilla on initial APIs since 2018, when the [libdweb project](https://github.com/mozilla/libdweb) emerged, providing browser extension APIs for many of the primitives a P2P system needs: filesystem access, TCP, UDP and protocol registration and handling. Earlier in 2018 the [ipfs:// scheme was whitelisted in Firefox](https://blog.mozilla.org/addons/2018/01/26/extensions-firefox-59/), so now with libdweb we were able to experiment with a proper [ipfs:// protocol handler](https://github.com/ipfs-shipyard/ipfs-companion/pull/533), which we demoed at Lab Day in August 2018: - + We used yet more APIs in libdweb to implement [local discovery and TCP transport](https://github.com/ipfs-shipyard/ipfs-companion/pull/553): - + Unfortunately, libdweb is still an experimental set of APIs - not included in Firefox yet. We're hoping to see more progress soon from Mozilla on shipping libdweb APIs in Firefox for at least some extensions this year!