1 Commits

Author SHA1 Message Date
Zé Bateira
4526833e9a wip 2021-07-29 11:00:27 +01:00
649 changed files with 1449 additions and 13557 deletions

View File

@@ -32,7 +32,7 @@ fields:
Data is saved in the </em><a href="https://github.com/ipfs/ipfs-blog" title=""
target="_blank"><em>ipfs/ipfs-blog</em></a><em> public GitHub repo as soon as
you hit the save button. So any sensitive information will also be publicly available
on GitHub, but hidden from the website blog.ipfs.tech.</em>'
on GitHub, but hidden from the website blog.ipfs.io.</em>'
config:
required: true
date_format: YYYY/MM/DD
@@ -42,8 +42,8 @@ fields:
name: permalink
label: Permalink
description: 'URL for this post. Must start and end with slashes. <br>For blog posts,
include the date: <em>/2022-09-23-descriptive-title/</em><br>For newsletters,
use the edition number: <em>/newsletter-123/</em>'
include the date: <em>/2022-09-23-descriptive-title/</em><br>For weekly newsletters,
use the edition number: <em>/weekly-123/</em>'
config:
required: true
- type: text
@@ -59,9 +59,9 @@ fields:
page. <br><strong>Must be twice as wide as it is tall (2:1 aspect ratio) and at
least 400px tall.</strong> <strong>Name the image file something that can be easily
searched for in the media directory later (consider adding a date).</strong><br>Need
help? <a href="https://blog.ipfs.tech/image-crop/" title="Use this crop/scale
tool" target="_blank">Use this crop/scale tool</a> to save a revised image to
your local machine, then upload here.
help? <a href="https://blog.ipfs.io/image-crop/" title="Use this crop/scale tool"
target="_blank">Use this crop/scale tool</a> to save a revised image to your local
machine, then upload here.
- name: tags
type: list
config:
@@ -77,7 +77,6 @@ fields:
- AEgir
- API
- async/await
- Bacalhau
- Bitswap
- blockstore
- bootstrap nodes
@@ -120,7 +119,6 @@ fields:
- IPLD
- js-ipfs
- Kademlia
- kubo
- libp2p
- MFS
- mobile
@@ -152,113 +150,40 @@ fields:
target="_blank">file an issue</a> with the details.
pages:
- src/_blog/2021-05-31-distributed-wikipedia-mirror-update.md
- src/_blog/2022-12-07-testground-in-2022.md
- src/_blog/2023-01-10-announcing-pin-tweet-to-ipfs.md
- src/_blog/2023-01-26-announcing-durin.md
- src/_blog/3s-studio-bringing-unreal-engine-to-ipfs.md
- src/_blog/a-brave-new-wallet-the-future-of-the-browser-wallet.md
- src/_blog/a-guide-to-ipfs-connectivity-in-web-browsers.md
- src/_blog/about-500-000-in-prizes-and-grants-for-asia-hackathon-season-2021.md
- src/_blog/adding-ipfs-protocol-support-to-chromium.md
- src/_blog/announcing-js-ipfs-0.53.0.md
- src/_blog/announcing-the-jupiter-hackathon.md
- src/_blog/announcing-the-second-ever-ipfs-camp.md
- src/_blog/audius-uses-ipfs-for-content-streaming-storage-to-empower-artists-creators-worldwide.md
- src/_blog/aug-20-ipfs.io-gateway-outage-resolution-next-steps.md
- src/_blog/bacalhau-beta-v1.md
- src/_blog/browsers-3000-winners-18k-in-prizes-goes-to-security-cryptography-and-gaming-applications.md
- src/_blog/building-web3-berty.md
- src/_blog/building-web3-pinata.md
- src/_blog/cargox-s-ipfs-based-nft-solution-is-trusted-in-international-trade.md
- src/_blog/ceramic-launches-mainnet-using-ipfs-and-filecoin-for-decentralized-storage.md
- src/_blog/community-highlight-esteroids.md
- src/_blog/congrats-gitcoin-grants-round-9-winners.md
- src/_blog/content-addressed-computing-at-ipfs-camp-2022.md
- src/_blog/decentralized-games-at-gamedev.js-jam-2021.md
- src/_blog/decentralizing-infrastructure-during-scaling-ethereum.md
- src/_blog/decentralizing-the-internet-s-root.md
- src/_blog/developing-consumer-decentralized-applications-with-slate.md
- src/_blog/filebase-building-web3-on-web3.md
- src/_blog/fleek-a-web3-developer-hub-on-ipfs.md
- src/_blog/free-to-use-blockchain-koinos-introduces-plugin-architecture-for-developers-that-relies-on-libp2p.md
- src/_blog/functionland-using-ipfs-to-enable-free-to-use-cloud-applications.md
- src/_blog/gala-games-decentralized-gaming-supported-by-ipfs-and-filecoin.md
- src/_blog/go-ipfs-0.8.0-and-remote-pinning-is-here.md
- src/_blog/go-ipfs-v0.9.0-has-been-released.md
- src/_blog/guardian-ipfs-hedera.md
- src/_blog/hey-ethdenver-hack-on-ipfs-with-these-bounties.md
- src/_blog/how-to-store-and-maintain-nft-metadata.md
- src/_blog/how-we-put-ipfs-in-brave.md
- src/_blog/interplanetary-timelessness-ipfs-filecoin-for-the-nft-long-haul.md
- src/_blog/introducing-js-ipfs-0.54.0.md
- src/_blog/introducing-probelab.md
- src/_blog/introducing-reframe.md
- src/_blog/introducing-the-browsers-3000-hackathon.md
- src/_blog/ion-a-path-to-decentralized-identity.md
- src/_blog/ipfs-and-filecoin-s-impact-on-music-media-and-culture.md
- src/_blog/ipfs-as-a-first-class-citizen-in-ffmpeg-who-s-next.md
- src/_blog/ipfs-at-ethdenver-2021.md
- src/_blog/ipfs-browser-connectivity-walkthrough.md
- src/_blog/ipfs-camp-2022-recap.md
- src/_blog/ipfs-cluster-scaling-ipfs-data-storage.md
- src/_blog/ipfs-community-highlight-omnilingo.md
- src/_blog/ipfs-filecoin-and-content-persistence.md
- src/_blog/ipfs-filecoin-chainlink-hackathon-winners.md
- src/_blog/ipfs-in-2021-the-backbone-of-web3-s-mainstream-momentum.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-over-webdav.md
- src/_blog/ipfs-thing-2022-recap.md
- src/_blog/join-us-at-ethdenver-2021-year-of-the-spork-marmot.md
- src/_blog/js-ipfs-0.55.0-greatly-improves-type-definitions.md
- src/_blog/js-ipfs-0.56.0-upgrades-to-new-multiformats-stack-and-adds.car-import-export.md
- src/_blog/js-ipfs-0.63.0-esm-libp2p-0.37.x-and-lightweight-peerids.md
- src/_blog/just-released-ipfs-cluster-0.14.0.md
- src/_blog/kitsumon-blends-the-best-of-metaverse-gaming-with-content-addressability.md
- src/_blog/libp2p-comes-to-protoschool.md
- src/_blog/libp2p-day-2022-recap.md
- src/_blog/libp2p-hole-punching.md
- src/_blog/libp2p-paris-p2p-festival-2022-recap.md
- src/_blog/meet-the-new-ipfs-blog-news.md
- src/_blog/minting-fresh-nfts-with-ipfs.md
- src/_blog/nebulus-the-virtual-ipfs-network.md
- src/_blog/openfabric-brings-web3-and-ai-together.md
- src/_blog/opensea-decentralizes-and-persists-nft-storage-with-ipfs-and-filecoin.md
- src/_blog/own-your-identity-with-ion.md
- src/_blog/rarible-adds-extra-resiliency-to-nfts-with-ipfs-and-filecoin-via-nft.storage.md
- src/_blog/recapping-nfthack-with-ipfs-and-protocol-labs.md
- src/_blog/skiff-integrates-ipfs-to-bring-decentralization-and-encryption-to-consumers.md
- src/_blog/spring-university-hackathons-roundup.md
- src/_blog/storing-nfts-on-ipfs.md
- src/_blog/understanding-the-three-fundamental-principles-of-how-ipfs-works.md
- src/_blog/using-ipfs-to-help-with-scaling-ethereum.md
- src/_blog/valist-relies-on-ipfs-and-filecoin-to-move-software-from-web2-to-web3.md
- src/_blog/web3-browsers-for-decentralized-storage.md
- src/_blog/web3-weekend-in-review.md
- src/_blog/welcome-to-ipfs-news-168.md
- src/_blog/welcome-to-ipfs-news-169.md
- src/_blog/welcome-to-ipfs-news-170.md
- src/_blog/welcome-to-ipfs-news-171.md
- src/_blog/welcome-to-ipfs-news-172.md
- src/_blog/welcome-to-ipfs-news-173.md
- src/_blog/welcome-to-ipfs-news-174.md
- src/_blog/welcome-to-ipfs-news-175.md
- src/_blog/welcome-to-ipfs-news-176.md
- src/_blog/welcome-to-ipfs-news-177.md
- src/_blog/welcome-to-ipfs-news-178.md
- src/_blog/welcome-to-ipfs-news-179.md
- src/_blog/welcome-to-ipfs-news-180.md
- src/_blog/welcome-to-ipfs-news-182.md
- src/_blog/welcome-to-ipfs-news-183.md
- src/_blog/welcome-to-ipfs-news-184.md
- src/_blog/welcome-to-ipfs-news-185.md
- src/_blog/welcome-to-ipfs-news-186.md
- src/_blog/welcome-to-ipfs-news-187.md
- src/_blog/welcome-to-ipfs-news-188.md
- src/_blog/welcome-to-ipfs-news-189.md
- src/_blog/welcome-to-ipfs-news-190.md
- src/_blog/welcome-to-ipfs-news-191.md
- src/_blog/welcome-to-ipfs-news-192.md
- src/_blog/welcome-to-ipfs-weekly-119.md
- src/_blog/welcome-to-ipfs-weekly-120.md
- src/_blog/welcome-to-ipfs-weekly-121.md
@@ -287,26 +212,4 @@ pages:
- src/_blog/welcome-to-ipfs-weekly-144.md
- src/_blog/welcome-to-ipfs-weekly-145.md
- src/_blog/welcome-to-ipfs-weekly-146.md
- src/_blog/welcome-to-ipfs-weekly-147.md
- src/_blog/welcome-to-ipfs-weekly-148.md
- src/_blog/welcome-to-ipfs-weekly-149-huge-news-out-of-audius-249k-distributed-to-dorahacks-winners-a-preview-of-sxsw-2021-and-more.md
- src/_blog/welcome-to-ipfs-weekly-150-celebrating-the-150th-ipfs-newsletter-with-another-set-of-nfts-stored-on-ipfs-and-more-in-the-ipfs-ecosystem.md
- src/_blog/welcome-to-ipfs-weekly-151.md
- src/_blog/welcome-to-ipfs-weekly-152.md
- src/_blog/welcome-to-ipfs-weekly-153.md
- src/_blog/welcome-to-ipfs-weekly-154.md
- src/_blog/welcome-to-ipfs-weekly-155.md
- src/_blog/welcome-to-ipfs-weekly-156.md
- src/_blog/welcome-to-ipfs-weekly-157.md
- src/_blog/welcome-to-ipfs-weekly-158.md
- src/_blog/welcome-to-ipfs-weekly-159.md
- src/_blog/welcome-to-ipfs-weekly-160.md
- src/_blog/welcome-to-ipfs-weekly-161.md
- src/_blog/welcome-to-ipfs-weekly-162.md
- src/_blog/welcome-to-ipfs-weekly-163.md
- src/_blog/welcome-to-ipfs-weekly-164.md
- src/_blog/welcome-to-ipfs-weekly-165.md
- src/_blog/welcome-to-ipfs-weekly-166.md
- src/_blog/welcome-to-ipfs-weekly-167.md
- src/_blog/what-is-ipld.md
- src/_blog_zh/ipfs-136.md

View File

@@ -43,8 +43,8 @@ fields:
leave this blank.<br><br><strong><em>WARNING</em></strong><em>: Data is saved
in the </em><a href="https://github.com/ipfs/ipfs-blog" title="" target="_blank"><em>ipfs/ipfs-blog</em></a><em>
public GitHub repo as soon as you hit the Save button. This means anything you
save will also be publicly visible on GitHub, but not on the blog.ipfs.tech
site. Be careful if you are drafting something sensitive!</em>'
save will also be publicly visible on GitHub, but not on the blog.ipfs.io site.
Be careful if you are drafting something sensitive!</em>'
config:
required: false
date_format:
@@ -66,7 +66,7 @@ fields:
description: '<strong>Must be twice as wide as it is tall (2:1 aspect ratio) and
at least 400px tall.</strong> <strong>Name the image file something that can
be easily searched for in the media directory later (consider adding a date).
</strong><br>Need help? <a href="https://blog.ipfs.tech/image-crop/" title="Use
</strong><br>Need help? <a href="https://blog.ipfs.io/image-crop/" title="Use
this crop/scale tool" target="_blank">Use this crop/scale tool</a> to save a
revised image to your local machine, then upload here.<br>Video links don''t
need images: they use the video thumbnail!'

View File

@@ -14,8 +14,4 @@ updates:
assignees:
- 'zebateira'
labels:
- 'dependencies'
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
- 'dependencies'

View File

@@ -14,7 +14,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
uses: actions/checkout@v2
- name: Compress Images
uses: calibreapp/image-actions@main

View File

@@ -8,16 +8,16 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v2
- name: Install dependencies
run: npm ci
- name: Check for scheduled posts
run: echo "should_publish=$(${{ github.workspace }}/scripts/scheduled-publishing.js)" >> $GITHUB_OUTPUT
run: echo "::set-output name=should_publish::$(${{ github.workspace }}/scripts/scheduled-publishing.js)"
id: should_publish_step
- name: Trigger Fleek Build
if: ${{ steps.should_publish_step.outputs.should_publish == 'true' }}
run: curl -H "Authorization:${{ secrets.FLEEK_API_KEY }}" -H "Content-Type:application/json" -d '{"query":"mutation { triggerDeploy(siteId:\"${{ secrets.FLEEK_SITE_ID }}\") { status } }"}' https://api.fleek.co/graphql
- name: Scheduled posts published
if: ${{ steps.should_publish_step.outputs.should_publish == 'true' }}
run: echo "Check https://blog.ipfs.tech"
run: echo "Check https://blog.ipfs.io"

View File

@@ -1,13 +0,0 @@
name: Close and mark stale issue
on:
schedule:
- cron: '0 0 * * *'
permissions:
issues: write
pull-requests: write
jobs:
stale:
uses: pl-strflt/.github/.github/workflows/reusable-stale-issue.yml@v0.3

View File

@@ -27,7 +27,7 @@ jobs:
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Sync target branch

View File

@@ -1,9 +0,0 @@
# This configuration file was automatically generated by Gitpod.
# Please adjust to your needs (see https://www.gitpod.io/docs/config-gitpod-file)
# and commit this file to your remote git repository to share the goodness with others.
tasks:
- init: npm install && npm run build
command: npm run start

View File

@@ -8,69 +8,44 @@
![Image of IPFS blog displayed on a laptop](https://user-images.githubusercontent.com/1507828/110040308-d2331580-7cff-11eb-8a05-8f5bad5ca819.png)
This repository contains code and content for the [IPFS Blog & News](https://blog.ipfs.tech) website. To contribute to the site, please follow the instructions below for _post authors/editors_ and _site developers_.
This repository contains code and content for the [IPFS Blog & News](https://blog.ipfs.io) website. To contribute to the site, please follow the instructions below for _post authors/editors_ and _site developers_.
**If you just want to submit a link (event, academic paper, tutorial, video or news coverage) to add to the site, [use this easy form](https://airtable.com/shrNH8YWole1xc70I)!**
### Creating a new blog post via Github pull request
## For post authors/editors
Each blog post is a markdown file in the [`src/_blog`](./src/_blog) folder, with a little metadata at the top (known as YAML frontmatter) to help us create the post index page.
While it's possible to manually PR a new blog post from a local build, **you are strongly encouraged to [use this site's Forestry integration](https://forestry.io) for drafting and editing new content.** Using Forestry offers you WYSIWYG editing (in addition to raw markdown mode), easy image upload/crop tools, and instant previews. If you're an IPFS core team member and don't have Forestry access, contact Jessica Schilling.
A blog post looks like this:
Forestry uses the `staging` branch as a work-in-progress scratchpad for blog content. Once content in `staging` is approved, it can be merged into `main`, which is the branch that feeds the production site at blog.ipfs.io. Merges into `main` are _automatically deployed_ to the production site using [Fleek](https://fleek.co/).
```markdown
---
title: Announcing the New IPFS Community Calendar
description: 'Check out the new IPFS community calendar where you can participate and contribute to one of the many working groups advancing IPFS.'
author: Daniel Norman
date: 2022-12-15
permalink: '/2022-12-ipfs-community-calendar/'
header_image: '/ipfs-calendar/ipfs-calendar-cover.png'
tags:
- 'community'
- 'calendar'
- 'working groups'
---
### Forestry authoring/editing tips
## The IPFS community is growing
- Use the "Content Types" section of Forestry's left-hand menu to drill down to the type of item (blog post, video, news coverage, event) you want to create/edit.
- For card and blog post header images, **be sure to use the [image crop/scale tool](https://blog.ipfs.io/image-crop/)** to resize and save images so they're the correct dimensions. (Don't have an image? Don't worry, there are generic fallback images.)
- Want to embed a YouTube video in a blog post? Switch to raw markdown view and use `@[youtube](videoID)`, substituting the video's unique ID from the URL (e.g. `https://www.youtube.com/watch?v=eFbKKsEoQNg`) for `videoID`.
- To switch between WYSIWYG and raw markdown while writing a blog post, choose "Raw Editor" or "WYSIWYG Editor" from the dots menu at the top right of the page:<br/>![image](https://user-images.githubusercontent.com/1507828/110036257-fbe93e00-7cf9-11eb-935c-a70f9d21c14f.png)
...
```
### Forestry build preview tips
**To create your new post** create a new markdown `md` file in `src/_blog` prefixed with the year and month (as a convention) and change the name to be relevant for your post. e.g.
While WYSIWYG mode usually gives you a good enough idea of what a blog post will look like, you can also load Forestry's own _build preview_ in a new tab by clicking the eye icon at the top right of the page:<br/>![image](https://user-images.githubusercontent.com/1507828/110036918-f4766480-7cfa-11eb-9cf3-a0082e61a7a0.png)
```console
$ cd src/_blog
$ touch 2022-12-community-calendar.md
```
This build preview lets you preview changes to any content type (not just blog posts), and _does not_ require you to save your changes in order to see them.
Now edit the metadata at the top of the file.
A few tips:
- `title` - used as the `h1` and `title` tag on the post-page, and the name of the post on the index page. **required**
- `description` - used as the meta description tag on the post-page. **required**
- `date` - the "_published at_" date, shown on the [blog index page](https://blog.ipfs.io), please update at posting time to reflect current date - **required** (posts will not be displayed until this date on the live blog, but you will see them locally when using `make dev`)
- `author` - used to give you credit for your words - **required**
- `tags` - used to categorize the blog post
- `permalink` - can be used to override the post URL if needed. Please start and end URLs with a `/` (`/my/url/`).
- `header_image` - name of the image displayed on the [blog homepage](https://blog.ipfs.tech/). See [Custom header image](#custom-header-image) for more details.
- Click the eye icon to _regenerate_ a build preview at any time from a Forestry edit page. You may need to reload the build preview tab if you don't see changes come through immediately.
- Occasionally, a build preview page gets stuck at a URL ending in `forestry/pending` or simply won't load. In this case, try the following:
- Remove `forestry/pending` from the URL and try again.
- Check the Previews section of Forestry's [`Site > Settings` page](https://app.forestry.io/sites/lg5t7mxcqbr-da/#/settings/previews) to see the preview server's current status, start/stop/restart the server, or examine the logs for errors. Simply restarting the preview server can fix many problems.
- If all else fails, save your changes, wait a few minutes, and take a look at [Fleek's build of the latest version of the `staging` branch](https://ipfs-blog-staging.on.fleek.co/). It's a considerably slower build/deploy time, but does reflect the latest changes once it finishes deploying.
#### Custom header image
### To deploy to the live site
Each post can have a custom image that is shown on the [blog homepage](https://blog.ipfs.tech/). To set an image:
Changes you _save_ in Forestry are written directly to the `staging` branch and automatically generate a staging preview at https://ipfs-blog-staging.on.fleek.co/.
1. Add the image into `assets\header_images`. Typically the image is `2048×1152px` in jpg/png.
1. Rename the image to match the file name of your post. For example, the `2022-12-community-calendar.md` post uses `2022-12-community-calendar.png` as the header.
1. In the post markdown, edit the front-matter to include the `header_image` variable:
**Once a staged post is ready to go live, please PR `staging` to `main` using [this handy shortcut](https://github.com/ipfs/ipfs-blog/compare/main...staging?expand=1).** Give your PR a title explaining what changes are inside (the default just says "Staging", which isn't helpful.) _Note that if multiple posts are in-flight in staging and only one is approved to go live, your PR may need some massaging by a reviewer._
```markdown
header_image: 2022-12-community-calendar.png
```
#### Creating a pull request
To create a pull request, you will need to fork this repository. See the GitHub docs on [how to create a pull request from a fork](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request-from-a-fork). If you have the [GitHub CLI](https://cli.github.com/) installed, you can use the [`gh pr create` command](https://cli.github.com/manual/gh_pr_create) from the terminal to conveniently create a pull request.
Once you create the pull request, await review. If you have permissions to merge, always preview the post first to ensure everything looks right. You can do this by clicking on the "Details" link next to the **fleek/build** check that runs automatically. Clicking this link will take you to a staging site where you will then need to click on the intended post in the feed to see it.
_Note for PR reviewers: While we continue to dogfood Forestry, please leave your edits in comments rather than making additional commits._ As our overall workflow continues to solidify, this direction may change.
### To add a URL redirect for a blog post
@@ -95,7 +70,7 @@ To build a local copy, run the following:
1. Move into the `ipfs-blog` folder and install the npm dependencies:
```bash
cd ipfs-blog
cd ipfs-docs
npm install
```

60
package-lock.json generated
View File

@@ -59,6 +59,7 @@
"tailwindcss-touch": "^1.0.1",
"vue": "^2.6.12",
"vuepress": "^1.8.2",
"vuepress-plugin-canonical": "^1.0.0",
"vuepress-plugin-chunkload-redirect": "^1.0.3",
"vuepress-plugin-clean-urls": "^1.1.2",
"vuepress-plugin-ipfs": "^1.0.2",
@@ -6364,20 +6365,10 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001470",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001470.tgz",
"integrity": "sha512-065uNwY6QtHCBOExzbV6m236DDhYCCtPmQUCoQtwkVqzud8v5QPidoMr6CoMkC2nfp6nksjttqWQRRh75LqUmA==",
"dev": true,
"funding": [
{
"type": "opencollective",
"url": "https://opencollective.com/browserslist"
},
{
"type": "tidelift",
"url": "https://tidelift.com/funding/github/npm/caniuse-lite"
}
]
"version": "1.0.30001207",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz",
"integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==",
"dev": true
},
"node_modules/caseless": {
"version": "0.12.0",
@@ -21325,18 +21316,6 @@
"fsevents": "~2.3.1"
}
},
"node_modules/tailwindcss/node_modules/chokidar/node_modules/glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"dependencies": {
"is-glob": "^4.0.1"
},
"engines": {
"node": ">= 6"
}
},
"node_modules/tailwindcss/node_modules/fs-extra": {
"version": "10.0.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
@@ -23094,6 +23073,12 @@
"object.getownpropertydescriptors": "^2.0.3"
}
},
"node_modules/vuepress-plugin-canonical": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/vuepress-plugin-canonical/-/vuepress-plugin-canonical-1.0.0.tgz",
"integrity": "sha512-R2mcc+bp9VbKBQ3YIbCqUbWcWfmWSp1NIEyNGiLKkrcZmyUF/+0D48BqMCTx61AgJzWPW5DJzB6VkmpjbMIDbA==",
"dev": true
},
"node_modules/vuepress-plugin-chunkload-redirect": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/vuepress-plugin-chunkload-redirect/-/vuepress-plugin-chunkload-redirect-1.0.3.tgz",
@@ -30067,9 +30052,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001470",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001470.tgz",
"integrity": "sha512-065uNwY6QtHCBOExzbV6m236DDhYCCtPmQUCoQtwkVqzud8v5QPidoMr6CoMkC2nfp6nksjttqWQRRh75LqUmA==",
"version": "1.0.30001207",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001207.tgz",
"integrity": "sha512-UPQZdmAsyp2qfCTiMU/zqGSWOYaY9F9LL61V8f+8MrubsaDGpaHD9HRV/EWZGULZn0Hxu48SKzI5DgFwTvHuYw==",
"dev": true
},
"caseless": {
@@ -42458,17 +42443,6 @@
"is-glob": "~4.0.1",
"normalize-path": "~3.0.0",
"readdirp": "~3.5.0"
},
"dependencies": {
"glob-parent": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true,
"requires": {
"is-glob": "^4.0.1"
}
}
}
},
"fs-extra": {
@@ -43952,6 +43926,12 @@
}
}
},
"vuepress-plugin-canonical": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/vuepress-plugin-canonical/-/vuepress-plugin-canonical-1.0.0.tgz",
"integrity": "sha512-R2mcc+bp9VbKBQ3YIbCqUbWcWfmWSp1NIEyNGiLKkrcZmyUF/+0D48BqMCTx61AgJzWPW5DJzB6VkmpjbMIDbA==",
"dev": true
},
"vuepress-plugin-chunkload-redirect": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/vuepress-plugin-chunkload-redirect/-/vuepress-plugin-chunkload-redirect-1.0.3.tgz",

View File

@@ -55,6 +55,7 @@
"tailwindcss-touch": "^1.0.1",
"vue": "^2.6.12",
"vuepress": "^1.8.2",
"vuepress-plugin-canonical": "^1.0.0",
"vuepress-plugin-chunkload-redirect": "^1.0.3",
"vuepress-plugin-clean-urls": "^1.1.2",
"vuepress-plugin-ipfs": "^1.0.2",

View File

@@ -1,7 +1,7 @@
'use strict'
/**
The ipfs.io website requests for a blog.ipfs.tech/news.json file
The ipfs.io website requests for a blog.ipfs.io/news.json file
with the latest 3 news.
*/

View File

@@ -1,7 +1,7 @@
'use strict'
/**
The ipfs.io website requests for a blog.ipfs.tech/index.json file
The ipfs.io website requests for a blog.ipfs.io/index.json file
with the latest 4 posts.
This script parses the rss feed file index.xml and generates the
required index.json file.

View File

@@ -1,7 +1,7 @@
'use strict'
/**
The ipfs.io website requests for a blog.ipfs.tech/videos.json file
The ipfs.io website requests for a blog.ipfs.io/videos.json file
with the latest 2 videos.
*/

View File

@@ -1,8 +1,9 @@
const { reverse, sortBy } = require('lodash')
// configure this to an absolute url to enable a generated sitemap & blog RSS feeds
const CANONICAL_BASE = process.env.CANONICAL_BASE || 'https://blog.ipfs.tech'
const CANONICAL_BASE = process.env.CANONICAL_BASE || ''
const IPFS_DEPLOY = process.env.IPFS_DEPLOY === 'true' || false
const SPEEDCURVE_ID = process.env.SPEEDCURVE_ID || ''
const themeConfigDefaults = {
dateFormat: 'DD MMMM YYYY',
@@ -30,30 +31,33 @@ const themeConfigDefaults = {
],
footerLinks: [
{ text: 'Blog & news', link: '/' },
{ text: 'Press', link: 'https://ipfs.tech/media/' },
{ text: 'Press', link: 'https://ipfs.io/media/' },
{
text: 'Code of conduct',
link: 'https://github.com/ipfs/community/blob/master/code-of-conduct.md',
},
{
text: 'Security',
link: 'https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues',
link:
'https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues',
},
],
footerLegal: '',
headerLinks: [
{ text: 'About', link: 'https://ipfs.tech/' },
{ text: 'Community', link: 'https://ipfs.tech/community/' },
{ text: 'Developers', link: 'https://ipfs.tech/developers/' },
{ text: 'Docs', link: 'https://docs.ipfs.tech/' },
{ text: 'About', link: 'https://ipfs.io/#why' },
{ text: 'Install', link: 'https://ipfs.io/#install' },
{ text: 'Docs', link: 'https://docs.ipfs.io/' },
{ text: 'Team', link: 'https://ipfs.io/team' },
{ text: 'Blog', link: '/' },
{ text: 'Help', link: 'https://ipfs.io/help' },
],
mobileNavLinks: [
{ text: 'About', link: 'https://ipfs.tech/' },
{ text: 'Community', link: 'https://ipfs.tech/community/' },
{ text: 'Developers', link: 'https://ipfs.tech/developers/' },
{ text: 'Docs', link: 'https://docs.ipfs.tech/' },
{ text: 'About', link: 'https://ipfs.io/#why' },
{ text: 'Install', link: 'https://ipfs.io/#install' },
{ text: 'Docs', link: 'https://docs.ipfs.io/' },
{ text: 'Team', link: 'https://ipfs.io/team' },
{ text: 'Blog', link: '/' },
{ text: 'Help', link: 'https://ipfs.io/help' },
],
}
@@ -99,34 +103,39 @@ module.exports = {
...themeConfigDefaults,
footerLinks: [
{ text: 'Blog & news', link: '/zh-cn/' },
{ text: 'Press', link: 'https://ipfs.tech/media/' },
{ text: 'Press', link: 'https://ipfs.io/media/' },
{
text: 'Code of conduct',
link: 'https://github.com/ipfs/community/blob/master/code-of-conduct.md',
link:
'https://github.com/ipfs/community/blob/master/code-of-conduct.md',
},
{
text: 'Security',
link: 'https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues',
link:
'https://github.com/ipfs/community/blob/master/CONTRIBUTING.md#security-issues',
},
],
headerLinks: [
{ text: 'About', link: 'https://ipfs.tech/' },
{ text: 'Community', link: 'https://ipfs.tech/community/' },
{ text: 'Developers', link: 'https://ipfs.tech/developers/' },
{ text: 'Docs', link: 'https://docs.ipfs.tech/' },
{ text: 'About', link: 'https://ipfs.io/#why' },
{ text: 'Install', link: 'https://ipfs.io/#install' },
{ text: 'Docs', link: 'https://docs.ipfs.io/' },
{ text: 'Team', link: 'https://ipfs.io/team' },
{ text: 'Blog', link: '/zh-cn' },
{ text: 'Help', link: 'https://ipfs.io/help' },
],
mobileNavLinks: [
{ text: 'About', link: 'https://ipfs.tech/' },
{ text: 'Community', link: 'https://ipfs.tech/community/' },
{ text: 'Developers', link: 'https://ipfs.tech/developers/' },
{ text: 'Docs', link: 'https://docs.ipfs.tech/' },
{ text: 'About', link: 'https://ipfs.io/#why' },
{ text: 'Install', link: 'https://ipfs.io/#install' },
{ text: 'Docs', link: 'https://docs.ipfs.io/' },
{ text: 'Team', link: 'https://ipfs.io/team' },
{ text: 'Blog', link: '/zh-cn/' },
{ text: 'Help', link: 'https://ipfs.io/help' },
],
},
},
},
plugins: [
[require('./plugins/vuepress-plugin-speedcurve'), { id: SPEEDCURVE_ID }],
['@vuepress/last-updated'],
[
'vuepress-plugin-clean-urls',
@@ -136,8 +145,16 @@ module.exports = {
notFoundPath: '/ipfs-404.html',
},
],
[
'vuepress-plugin-canonical',
CANONICAL_BASE
? {
baseURL: CANONICAL_BASE,
stringExtension: true,
}
: false,
],
[require('./plugins/pageData')],
[require('./plugins/canonical'), { CANONICAL_BASE }],
[require('./plugins/vuepress-plugin-trigger-scroll')],
[
'@vuepress/blog',
@@ -232,27 +249,6 @@ module.exports = {
countdown: 0,
},
],
[
'vuepress-plugin-container',
{
type: 'callout',
defaultTitle: '',
},
],
[
'vuepress-plugin-container',
{
type: 'right',
defaultTitle: '',
},
],
[
'vuepress-plugin-container',
{
type: 'left',
defaultTitle: '',
},
],
'vuepress-plugin-chunkload-redirect',
['vuepress-plugin-ipfs', IPFS_DEPLOY],
],

View File

@@ -30,12 +30,4 @@ module.exports = [
['meta', { name: 'msapplication-TileColor', content: '#156ff7' }],
['meta', { name: 'apple-mobile-web-app-title', content: 'IPFS Blog & News' }],
['meta', { name: 'application-name', content: 'IPFS Blog & News' }],
[
'script',
{
defer: true,
'data-domain': 'blog.ipfs.tech',
src: 'https://plausible.io/js/plausible.js',
},
],
].concat(favicons)

View File

@@ -1,13 +0,0 @@
// 👇 ensure one trailing slash is present
const normalizePath = (path) => path.replace('/_blog', '').replace(/\/*$/, '/')
module.exports = ({ CANONICAL_BASE } = {}) => ({
name: 'vuepress-default-canonical',
extendPageData({ frontmatter, path }) {
// If no canonicalUrl is explicitly defined in the frontmatter, construct it from the permaLink or $page.path
if (!frontmatter.canonicalUrl && CANONICAL_BASE) {
frontmatter.canonicalUrl =
CANONICAL_BASE + normalizePath(frontmatter.permalink || path || '')
}
},
})

View File

@@ -25,6 +25,14 @@ function shouldBeHidden(frontmatter) {
shouldHide = shouldHide || isDateInFuture(frontmatter.publish_date)
}
// only hide on production environment, show on dev and staging
if (
!process.env.CANONICAL_BASE ||
!process.env.CANONICAL_BASE.includes('blog.ipfs.io')
) {
shouldHide = false
}
return shouldHide
}

View File

@@ -0,0 +1,29 @@
'use strict'
/* global SPEEDCURVE_ID */
module.exports = () => {
if (
process.env.NODE_ENV === 'production' &&
SPEEDCURVE_ID &&
typeof window !== 'undefined'
) {
;(function () {
const customScriptCode = `LUX=(function(){var a=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMarks)?LUX.gaMarks:[]);var d=("undefined"!==typeof(LUX)&&"undefined"!==typeof(LUX.gaMeasures)?LUX.gaMeasures:[]);var j="LUX_start";var k=window.performance;var l=("undefined"!==typeof(LUX)&&LUX.ns?LUX.ns:(Date.now?Date.now():+(new Date())));if(k&&k.timing&&k.timing.navigationStart){l=k.timing.navigationStart}function f(){if(k&&k.now){return k.now()}var o=Date.now?Date.now():+(new Date());return o-l}function b(n){if(k){if(k.mark){return k.mark(n)}else{if(k.webkitMark){return k.webkitMark(n)}}}a.push({name:n,entryType:"mark",startTime:f(),duration:0});return}function m(p,t,n){if("undefined"===typeof(t)&&h(j)){t=j}if(k){if(k.measure){if(t){if(n){return k.measure(p,t,n)}else{return k.measure(p,t)}}else{return k.measure(p)}}else{if(k.webkitMeasure){return k.webkitMeasure(p,t,n)}}}var r=0,o=f();if(t){var s=h(t);if(s){r=s.startTime}else{if(k&&k.timing&&k.timing[t]){r=k.timing[t]-k.timing.navigationStart}else{return}}}if(n){var q=h(n);if(q){o=q.startTime}else{if(k&&k.timing&&k.timing[n]){o=k.timing[n]-k.timing.navigationStart}else{return}}}d.push({name:p,entryType:"measure",startTime:r,duration:(o-r)});return}function h(n){return c(n,g())}function c(p,o){for(i=o.length-1;i>=0;i--){var n=o[i];if(p===n.name){return n}}return undefined}function g(){if(k){if(k.getEntriesByType){return k.getEntriesByType("mark")}else{if(k.webkitGetEntriesByType){return k.webkitGetEntriesByType("mark")}}}return a}return{mark:b,measure:m,gaMarks:a,gaMeasures:d}})();LUX.ns=(Date.now?Date.now():+(new Date()));LUX.ac=[];LUX.cmd=function(a){LUX.ac.push(a)};LUX.init=function(){LUX.cmd(["init"])};LUX.send=function(){LUX.cmd(["send"])};LUX.addData=function(a,b){LUX.cmd(["addData",a,b])};LUX_ae=[];window.addEventListener("error",function(a){LUX_ae.push(a)});LUX_al=[];if("function"===typeof(PerformanceObserver)&&"function"===typeof(PerformanceLongTaskTiming)){var LongTaskObserver=new PerformanceObserver(function(c){var b=c.getEntries();for(var a=0;a<b.length;a++){var d=b[a];LUX_al.push(d)}});try{LongTaskObserver.observe({type:["longtask"]})}catch(e){}};`
const src = `https://cdn.speedcurve.com/js/lux.js?id=${SPEEDCURVE_ID}`
const remoteScript = document.createElement('script')
remoteScript.src = src
remoteScript.type = 'text/javascript'
remoteScript.async = true
remoteScript.defer = true
remoteScript.crossOrigin = 'anonymous'
const script = document.createElement('script')
script.innerHTML = customScriptCode
document.head.prepend(script)
document.head.insertBefore(remoteScript, script.nextSibling)
})()
}
}

View File

@@ -0,0 +1,11 @@
const path = require('path')
module.exports = (params = {}) => ({
name: 'vuepress-plugin-speedcurve',
define() {
const id = params.id
return { SPEEDCURVE_ID: id || false }
},
enhanceAppFiles: path.resolve(__dirname, 'enhanceAppFiles.js'),
})

View File

@@ -1,4 +1,3 @@
/hello-world /0-hello-worlds
/2021-02-19-go-ipfs-0-6-0 /2021-02-19-go-ipfs-0-8-0/
/2021-03-24/own-your-identity-with-ion /2021-03-24-own-your-identity-with-ion/
/2021-08-27-IPFS.io-gateway-outage-resolution /2021-08-27-IPFS-io-gateway-outage-resolution/

View File

@@ -55,7 +55,7 @@
|
<a
class="text-blueGreenLight hover:underline"
href="https://ipfs.tech/legal/"
href="https://ipfs.io/legal/"
target="_blank"
@click="onLinkClick"
>DMCA</a

View File

@@ -16,7 +16,7 @@
<div class="flex justify-between items-center h-20">
<a
class="hover:opacity-75 transition transition-opacity duration-300 ease-in-out mobile-list-item"
href="https://ipfs.tech/"
href="https://ipfs.io/"
>
<SVGIcon
name="ipfs-logo"

View File

@@ -5,6 +5,9 @@
v-bind="card"
:open-video-modal="openVideoModal"
class="card-post h-full"
:class="{
'is-scheduled': isScheduled
}"
/>
</div>
</template>
@@ -39,7 +42,6 @@ export default {
case 'News coverage':
case 'Release notes':
case 'Tutorial':
case 'Ecosystem content':
case 'Video':
return LinkCard
@@ -50,3 +52,10 @@ export default {
},
}
</script>
<style scoped>
.card-post.is-scheduled::after {
content: "SCHEDULED";
position: absolute;
right: 0;
}
</style>

View File

@@ -6,40 +6,23 @@
</template>
<script>
const safePermalink = (permalink, date) => {
let domain = 'https://blog.ipfs.tech/'
try {
// Use old domain for legacy comment theads
// created before we switched to the new domain
// https://github.com/ipfs/ipfs-blog/issues/417
if (new Date(date) < new Date('2022-08-15')) {
domain = 'https://blog.ipfs.io/'
}
} catch (e) {
console.error('unable to parse this.$frontmatter.date', e)
}
// https://meta.discourse.org/t/referer-with-domain-name-in-the-slug-breaks-comments-embed/204807/4?u=lidel
const url = new URL(domain)
url.pathname = permalink
return url.toString()
}
export default {
name: 'Comments',
components: {},
computed: {
embedSrc() {
return `https://discuss.ipfs.tech/embed/comments?embed_url=${safePermalink(this.$frontmatter.permalink, this.$frontmatter.date)}`
return `https://discuss.ipfs.io/embed/comments?embed_url=https://blog.ipfs.io${this.$frontmatter.permalink}`
},
},
mounted() {
window.DiscourseEmbed = {
discourseUrl: 'https://discuss.ipfs.tech/',
discourseEmbedUrl: safePermalink(this.$frontmatter.permalink, this.$frontmatter.date),
discourseUrl: 'https://discuss.ipfs.io/',
discourseEmbedUrl: `https://blog.ipfs.io${this.$frontmatter.permalink}`,
}
const d = document.createElement('script')
d.type = 'text/javascript'
d.async = true
d.src = window.DiscourseEmbed.discourseUrl + 'javascripts/embed.js'
d.src = 'https://discuss.ipfs.io/javascripts/embed.js'
document.getElementsByTagName('body')[0].appendChild(d)
},
}

View File

@@ -14,7 +14,7 @@
an item or view the
<a
class="text-blueGreen hover:underline"
href="https://ipfs.tech/media/"
href="https://ipfs.io/media/"
rel="noopener noreferrer"
@click="trackPressKit"
>IPFS press kit.</a
@@ -26,7 +26,7 @@
class="text-blueGreen hover:underline"
href="#newsletter-form"
@click="blockLazyLoad()"
>newsletter</a
>weekly newsletter</a
>{{ `, ` }}
<a
class="text-blueGreen hover:underline"

View File

@@ -6,7 +6,7 @@
<div class="flex-shrink lg:max-w-sm xl:max-w-xl mb-4 lg:mb-0">
<h2 class="type-h2">Stay informed</h2>
<p class="mt-2 mr-2">
Sign up for the IPFS newsletter (<router-link
Sign up for the IPFS Weekly newsletter (<router-link
:to="latestWeeklyPost ? latestWeeklyPost.path : ''"
class="text-blueGreenLight hover:underline"
>example</router-link

View File

@@ -1,51 +0,0 @@
<template>
<div class="number-block">
<div v-for="{ value, text } in items" class="number-block-item">
<div class="number-block-number">{{ value }}</div>
<div>{{ text }}</div>
</div>
</div>
</template>
<script>
export default {
name: 'NumberBlock',
props: {
items: {
type: Array,
default: []
}
}
}
</script>
<style lang="stylus">
.number-block-item {
background-color: #cbe9e9;
margin-top: 1em;
padding: 1em;
text-align: center;
}
.number-block-number {
color: #296161;
font-size: 3em;
font-weight: 700;
}
@media (min-width: $MQNarrow) {
.number-block {
display: flex;
margin-top: 1em;
}
.number-block-item {
flex: 1 1 0;
margin-right: 1em;
}
.number-block-item:last-child {
margin-right: 0;
}
}
</style>

View File

@@ -85,7 +85,7 @@ export default {
this.showComments =
!!ipfsPathPrefix ||
window.location.hostname.includes('.ipns.localhost') ||
window.location.hostname === 'blog.ipfs.tech' ||
window.location.hostname === 'blog.ipfs.io' ||
window.location.hostname === 'ipfs-blog.on.fleek.co' ||
window.location.hostname === 'ipfs-blog-staging.on.fleek.co'
},

View File

@@ -9,16 +9,5 @@
<script>
export default {
name: 'Layout',
mounted() {
// redirect blog.ipfs.io → blog.ipfs.tech (incl. gateways)
// https://github.com/ipfs/ipfs-blog/issues/417
const { href } = window.location
if (href.includes('blog.ipfs.io')) {
window.location.replace(href.replace('blog.ipfs.io', 'blog.ipfs.tech'));
}
if (href.includes('blog-ipfs-io')) { // subdomain gws
window.location.replace(href.replace('blog-ipfs-io', 'blog-ipfs-tech'));
}
}
}
</script>

View File

@@ -4,20 +4,20 @@
height: 0;
padding: 0;
overflow: hidden;
}
.embed-responsive-item,
iframe,
embed,
object,
video {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
.embed-responsive .embed-responsive-item,
.embed-responsive iframe,
.embed-responsive embed,
.embed-responsive object,
.embed-responsive video {
position: absolute;
top: 0;
bottom: 0;
left: 0;
width: 100%;
height: 100%;
border: 0;
}
.embed-responsive-16by9 {

View File

@@ -29,31 +29,3 @@
.hr-transparent {
@apply bg-white opacity-60;
}
.custom-block.callout {
background-color: #cae8e8;
padding: 1rem 2rem;
border-color: #296161;
border-left-width: 0.5rem;
border-left-style: solid;
}
.custom-block.callout p {
line-height: 32px;
}
.custom-block.right {
float: right;
padding: 1em 0 1em 1em;
}
.custom-block.left {
float: left;
padding: 1em 1em 1em 0em;
}
.type-rich .cta-button {
@apply text-white bg-webBlue hover:bg-blue-800 hover:no-underline font-bold py-2 px-4 rounded mr-2;
}

View File

@@ -1,6 +1,5 @@
@import './fonts/index.css';
@import './tailwind.css';
@import './prism-okaidia.min.css';
body {
@apply bg-gray-light antialiased;

View File

@@ -1 +0,0 @@
code[class*=language-],pre[class*=language-]{color:#f8f8f2;background:0 0;text-shadow:0 1px rgba(0,0,0,.3);font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto;border-radius:.3em}:not(pre)>code[class*=language-],pre[class*=language-]{background:#272822}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#8292a2}.token.punctuation{color:#f8f8f2}.token.namespace{opacity:.7}.token.constant,.token.deleted,.token.property,.token.symbol,.token.tag{color:#f92672}.token.boolean,.token.number{color:#ae81ff}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#a6e22e}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url,.token.variable{color:#f8f8f2}.token.atrule,.token.attr-value,.token.class-name,.token.function{color:#e6db74}.token.keyword{color:#66d9ef}.token.important,.token.regex{color:#fd971f}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}

View File

@@ -20,7 +20,7 @@ export function loadScript() {
var Countly = Countly || {};
Countly.q = Countly.q || [];
//provide countly initialization parameters
Countly.app_key = location.hostname === 'blog.ipfs.tech' ? '9e8a52b6b06d84f50321c4c3b96ba03d4bab7717' : 'c68a0191d53e5d079372653d7d6158f0374c2172';
Countly.app_key = location.hostname === 'blog.ipfs.io' ? '9e8a52b6b06d84f50321c4c3b96ba03d4bab7717' : 'c68a0191d53e5d079372653d7d6158f0374c2172';
Countly.url = 'https://countly.ipfs.io';
Countly.q.push(['track_sessions']);
Countly.q.push(['track_pageview']);

5
src/README.md Normal file
View File

@@ -0,0 +1,5 @@
# Hello World
Welcome to the VuePress website starter kit
{{ $site }}

View File

@@ -23,11 +23,11 @@ This post kicks off the official IPFS (InterPlanetary File System) Blog. This is
You can't _yet_ "follow" the blog with ipfs, but we're working on it and expect to have it working soon. For now, you can follow one of these ways:
- HTTP: https://blog.ipfs.tech
- HTTP: https://blog.ipfs.io
- Git: `git clone https://github.com/ipfs/blog`
- GitHub: click watch at https://github.com/ipfs/blog
- RSS: [follow RSS Feed](https://blog.ipfs.tech/index.xml)
- IPFS: https://gateway.ipfs.io/ipns/blog.ipfs.tech
- RSS: [follow RSS Feed](https://blog.ipfs.io/index.xml)
- IPFS: https://gateway.ipfs.io/ipns/blog.ipfs.io
Don't miss any InterPlanetary updates!

View File

@@ -62,8 +62,8 @@ After the release, you can:
Please note that installation with `go get` does not work at this time.
We are experimenting with [gx, the new IPFS-based package manager][gx].
[ipfs-update]: http://dist.ipfs.tech/#ipfs-update
[ipfs-binary]: http://dist.ipfs.tech/#go-ipfs
[ipfs-update]: http://dist.ipfs.io/#ipfs-update
[ipfs-binary]: http://dist.ipfs.io/#go-ipfs
[ipfs-github]: https://github.com/ipfs/go-ipfs
[ipfs-source]: https://github.com/ipfs/go-ipfs#build-from-source
[gx]: https://github.com/whyrusleeping/gx

View File

@@ -11,7 +11,7 @@ tags:
- go-ipfs
---
[go-ipfs 0.4.0](http://dist.ipfs.tech/#go-ipfs) has been released! Among the many changes are a revamped implementation of the IPFS communication protocols, increased performance, improvements to IPNS (the Interplanetary Naming System), many bugfixes, and lots of new features to make IPFS even more powerful.
[go-ipfs 0.4.0](http://dist.ipfs.io/#go-ipfs) has been released! Among the many changes are a revamped implementation of the IPFS communication protocols, increased performance, improvements to IPNS (the Interplanetary Naming System), many bugfixes, and lots of new features to make IPFS even more powerful.
![0.4.0](../assets/005-ipfs-0-4-0-released-fireworks.jpg)
@@ -92,7 +92,7 @@ This release also includes performance and usability improvements to IPNS, which
## How to upgrade
Depending on how you initially installed IPFS, there are several ways to upgrade. If you installed IPFS with a pre-built binary, you can either head over to [dist.ipfs.tech](http://dist.ipfs.tech/#go-ipfs) and grab the latest version from there. Or alternatively, from the same page you can grab the `ipfs-update` binary, and use it to perform the upgrade for you. If you installed from source, you can simply update your git repo to the `v0.4.0` tag, run `make toolkit_upgrade && make install`.
Depending on how you initially installed IPFS, there are several ways to upgrade. If you installed IPFS with a pre-built binary, you can either head over to [dist.ipfs.io](http://dist.ipfs.io/#go-ipfs) and grab the latest version from there. Or alternatively, from the same page you can grab the `ipfs-update` binary, and use it to perform the upgrade for you. If you installed from source, you can simply update your git repo to the `v0.4.0` tag, run `make toolkit_upgrade && make install`.
Please upgrade your IPFS nodes as soon as you can, so you can take advantage of the improvements!

View File

@@ -6,17 +6,17 @@ description:
author: Richard Littauer
---
[![](../assets/006-distributions-screenshot.png)](https://dist.ipfs.tech/)
[![](../assets/006-distributions-screenshot.png)](https://dist.ipfs.io/)
[dist.ipfs.tech](https://dist.ipfs.tech/) is the new distributions page for IPFS. This is the new one-stop-shop for finding and downloading all official binaries that the IPFS Team produces.
[dist.ipfs.io](https://dist.ipfs.io/) is the new distributions page for IPFS. This is the new one-stop-shop for finding and downloading all official binaries that the IPFS Team produces.
## The IPFS Distributions Website
The distributions website itself is served by, hosted, and distributed through IPFS. The website assets and all of the binaries form one large IPFS content graph. This means that you can view and use this website through any IPFS node, even your own local ipfs node. All you need to do is to run an IPFS daemon and direct your browser to http://localhost:8080/ipns/dist.ipfs.tech. Of course, you'll need to be online and connected to the internet, so you can find other ipfs nodes that have this website.
The distributions website itself is served by, hosted, and distributed through IPFS. The website assets and all of the binaries form one large IPFS content graph. This means that you can view and use this website through any IPFS node, even your own local ipfs node. All you need to do is to run an IPFS daemon and direct your browser to http://localhost:8080/ipns/dist.ipfs.io. Of course, you'll need to be online and connected to the internet, so you can find other ipfs nodes that have this website.
### Download Deduplication
If you download files from dist.ipfs.tech using your local IPFS node, future downloads **may be** much faster. When you click to download a file, your browser will ask to download it from your local IPFS node. In turn, your IPFS node will fetch the relevant content from other nodes in the network, and return it to your browser. Your browser will place the file in your Downloads folder, or wherever you directed it to.
If you download files from dist.ipfs.io using your local IPFS node, future downloads **may be** much faster. When you click to download a file, your browser will ask to download it from your local IPFS node. In turn, your IPFS node will fetch the relevant content from other nodes in the network, and return it to your browser. Your browser will place the file in your Downloads folder, or wherever you directed it to.
However, once your local IPFS node has fetched the content, it will cache it locally for some time. This makes subsequent downloads of the exact same content instantaneous! Your browser asks the IPFS node for the content; the node already has it and simply returns it, without ever having to connect to other nodes. This also means that if other IPFS nodes in your local area network try to download the file, they may be able to fetch it from your node. Once you have the content locally, this can even work while disconnected from the internet!
@@ -34,9 +34,9 @@ Every distribution has a section, which includes:
- A `Changelog`, a link to a summary of all version changes;
- An `All Versions`, a link to view and download previous versions.
The `All Versions` link on each distribution shows directory listings for all the available versions, and a `versions` file ([example](https://dist.ipfs.tech/go-ipfs/versions)). This file can be used by tools, such as [ipfs-update](https://dist.ipfs.tech/#ipfs-update), to find all the available versions and download the latest.
The `All Versions` link on each distribution shows directory listings for all the available versions, and a `versions` file ([example](https://dist.ipfs.io/go-ipfs/versions)). This file can be used by tools, such as [ipfs-update](https://dist.ipfs.io/#ipfs-update), to find all the available versions and download the latest.
The directory listing of each version ([example](https://dist.ipfs.tech/go-ipfs/v0.3.11)) has all the platform archives (`.zip` or `.tar.gz`), a `README.md` and a `dist.json` which describe the release for humans and machines. It is meant to be easily consumed and used by tools.
The directory listing of each version ([example](https://dist.ipfs.io/go-ipfs/v0.3.11)) has all the platform archives (`.zip` or `.tar.gz`), a `README.md` and a `dist.json` which describe the release for humans and machines. It is meant to be easily consumed and used by tools.
The site is also used directly by [`ipfs-update`](https://github.com/ipfs/ipfs-update) to update IPFS.

View File

@@ -21,9 +21,9 @@ We'll be **shutting down** the v03x bootstrappers and gateways on **Thursday, Ju
- The bootstrap nodes configured by default will no longer allow you to connect.
- The public HTTP-to-IPFS gateway at [ipfs.io][gw] will no longer be able to access data from v03x networks.
We ask you to update to the latest 0.4.x version, available through [dist.ipfs.tech][dist]. If you can't update just yet, you can still connect your v03x nodes to each other by using the `ipfs bootstrap` or `ipfs swarm connect` commands.
We ask you to update to the latest 0.4.x version, available through [dist.ipfs.io][dist]. If you can't update just yet, you can still connect your v03x nodes to each other by using the `ipfs bootstrap` or `ipfs swarm connect` commands.
[migration]: https://blog.ipfs.tech/9-v04x-migration/
[v04x]: https://blog.ipfs.tech/14-ipfs-0-4-0-released/
[dist]: https://dist.ipfs.tech
[migration]: https://ipfs.io/blog/9-v04x-migration/
[v04x]: https://ipfs.io/blog/14-ipfs-0-4-0-released/
[dist]: https://dist.ipfs.io
[gw]: https://ipfs.io

View File

@@ -8,7 +8,7 @@ tags:
- go-ipfs
---
[go-ipfs 0.4.3](https://dist.ipfs.tech/#go-ipfs) has been released today,
[go-ipfs 0.4.3](https://dist.ipfs.io/#go-ipfs) has been released today,
and we're incredibly proud as it's the fastest and most stable IPFS ever.
Give it a try as soon as you can, we're sure you'll like it as much as we do.
@@ -36,7 +36,7 @@ And plenty of bug fixes as well as improvements to documentation and test covera
Depending on how you initially installed IPFS, there are several ways to
upgrade. If you installed IPFS with a pre-built binary, you can either head over
to [dist.ipfs.tech](https://dist.ipfs.tech/#go-ipfs) and grab the latest version
to [dist.ipfs.io](https://dist.ipfs.io/#go-ipfs) and grab the latest version
from there. Or alternatively, from the same page you can grab the `ipfs-update`
binary, and use it to perform the upgrade for you. If you installed from
source, you can simply run `git checkout v0.4.3`, then run `make install`.

View File

@@ -9,7 +9,7 @@ tags:
- 'go-ipfs'
---
[go-ipfs 0.4.4](https://dist.ipfs.tech/#go-ipfs) has been released today, including an important hotfix for a bug we discovered in how _pinning_ works. If you had a large number of pins, new pins would overwrite existing pins. Apart from the hotfix, this release is equal to the previous release 0.4.3.
[go-ipfs 0.4.4](https://dist.ipfs.io/#go-ipfs) has been released today, including an important hotfix for a bug we discovered in how _pinning_ works. If you had a large number of pins, new pins would overwrite existing pins. Apart from the hotfix, this release is equal to the previous release 0.4.3.
- [How pinning works](#how-pinning-works)
- [The bug](#the-bug)
@@ -44,8 +44,8 @@ For now, don't run `ipfs repo gc` on sensitive data that is not otherwise backed
## Find out if you're affected
If you think you have experienced this issue and have _not_ run a garbage collection, you can still find the 'lost' pins. We have written a new tool called 'ipfs-see-all' that allows you to try and recover any old pins that are still in your local repo. The tool is available on [our distributions page](https://dist.ipfs.tech), or, if you prefer building from source, head over to [the GitHub repo](https://github.com/whyrusleeping/ipfs-see-all). Once you have the tool, invoke it as `ipfs-see-all lost-pins` and it will scan for and print out every pin object that is not actually pinned in your pinset. Note that this may contain anything you have manually unpinned.
If you think you have experienced this issue and have _not_ run a garbage collection, you can still find the 'lost' pins. We have written a new tool called 'ipfs-see-all' that allows you to try and recover any old pins that are still in your local repo. The tool is available on [our distributions page](https://dist.ipfs.io), or, if you prefer building from source, head over to [the GitHub repo](https://github.com/whyrusleeping/ipfs-see-all). Once you have the tool, invoke it as `ipfs-see-all lost-pins` and it will scan for and print out every pin object that is not actually pinned in your pinset. Note that this may contain anything you have manually unpinned.
## How to upgrade
Depending on how you initially installed IPFS, there are several ways to upgrade. If you installed IPFS with a pre-built binary, you can head over to [dist.ipfs.tech](https://dist.ipfs.tech/#go-ipfs) and grab the latest version from there. Or alternatively, from the same page you can grab the `ipfs-update` binary, and use it to perform the upgrade for you. If you installed from source, you can simply run `git checkout v0.4.4`, then run `make install`.
Depending on how you initially installed IPFS, there are several ways to upgrade. If you installed IPFS with a pre-built binary, you can head over to [dist.ipfs.io](https://dist.ipfs.io/#go-ipfs) and grab the latest version from there. Or alternatively, from the same page you can grab the `ipfs-update` binary, and use it to perform the upgrade for you. If you installed from source, you can simply run `git checkout v0.4.4`, then run `make install`.

View File

@@ -24,7 +24,7 @@ First, let's get the packages we'll need to install IPFS:
Now you can download the latest build of IPFS from the [install page](https://ipfs.io/docs/install/). We'll be using Linux x86_64:
```sh
> wget https://dist.ipfs.tech/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz
> wget https://dist.ipfs.io/go-ipfs/v0.4.14/go-ipfs_v0.4.14_linux-amd64.tar.gz
> tar xfv go-ipfs_v0.4.14_linux-amd64.tar.gz
# Move it into your bin. This requires root permissions.
> sudo cp go-ipfs/ipfs /usr/local/bin/

View File

@@ -52,7 +52,7 @@ This took us more time than what we had initially expected, however, now it is a
If you would like to know more about the issue we faced, you can find more info here: ["Stream Muxing issues between go-ipfs and js-ipfs are a thing of the past"](https://github.com/ipfs/js-ipfs/issues/721)
**Note:** Interop is only fully available with go-ipfs 0.4.7 and onwards, if you haven't updated yet, please do so by visiting http://dist.ipfs.tech/.
**Note:** Interop is only fully available with go-ipfs 0.4.7 and onwards, if you haven't updated yet, please do so by visiting http://dist.ipfs.io/.
### 🌍 js-ipfs will now also bootstrap with bootstrap nodes as well

View File

@@ -101,7 +101,7 @@ This link points to a specific snapshot. It will always point to that specific d
For your convenience we have set up a domain name and DNS entry at [tr.wikipedia-on-ipfs.org](http://tr.wikipedia-on-ipfs.org) that will resolve to the current IPFS snapshot.
If you are not able to access `ipfs.io`, or `wikipedia-on-ipfs.org`, you can use this [dnslink](https://docs.ipfs.tech/concepts/dnslink/) URL to access the content -- simply replace `ipfs.io` with the address of any [IPFS gateway](https://ipfs.github.io/public-gateway-checker/):
If you are not able to access `ipfs.io`, or `wikipedia-on-ipfs.org`, you can use this [dnslink](https://docs.ipfs.io/concepts/dnslink/) URL to access the content -- simply replace `ipfs.io` with the address of any [IPFS gateway](https://ipfs.github.io/public-gateway-checker/):
* Turkish Wikipedia: [https://ipfs.io/ipns/tr.wikipedia-on-ipfs.org/](https://ipfs.io/ipns/tr.wikipedia-on-ipfs.org/wiki/)
@@ -119,7 +119,7 @@ Your main options for accessing the snapshot of Wikipedia are: _(depending on yo
* **Option**: Use any gateway to access the latest DNSLink version: https://ipfs.io/ipns/tr.wikipedia-on-ipfs.org/wiki/
* **Option**: Connect to gateway over Tor (this is experimental). Read [this tutorial on Tor gateways](https://dweb-primer.ipfs.io/avenues-for-access/lessons/tor-gateways.html).
* **Option**: Install an IPFS node on your computer and access Wikipedia through that node (requires [using the command line](http://lifehacker.com/5633909/who-needs-a-mouse-learn-to-use-the-command-line-for-almost-anything). _This is the most reliable method because it retrieves the content directly from the IPFS peer-to-peer network)_
1. Install IPFS [following these instructions](https://docs.ipfs.tech/install/command-line/). Use the most recent verison of IPFS: 0.4.9-rc2 or higher if possible.
1. Install IPFS [following these instructions](https://docs.ipfs.io/install/command-line/). Use the most recent verison of IPFS: 0.4.9-rc2 or higher if possible.
2. Start your IPFS node by running `ipfs daemon` so it can connect to the network.
3. Read the content through your IPFS node's local HTTP gateway by visiting:
* 30 April 2017 snapshot: http://localhost:8080/ipfs/QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX/wiki/
@@ -144,7 +144,7 @@ If you don't have enough storage space to hold full copies of the snapshot(s), y
**Steps**:
1. Install IPFS [following these instructions](https://docs.ipfs.tech/install/command-line/). Use the most recent verison of IPFS -- 0.4.9-rc2 or higher if possible.
1. Install IPFS [following these instructions](https://docs.ipfs.io/install/command-line/). Use the most recent verison of IPFS -- 0.4.9-rc2 or higher if possible.
2. Start your IPFS node by running `ipfs daemon` so it can connect to the network.
3. Pin the snapshot(s) onto your machine
* Pin Turkish Wikipedia: `ipfs pin add QmT5NvUtoM5nWFfrQdVrFtvGfKFmG7AHE8P34isapyhCxX`

View File

@@ -76,4 +76,4 @@ Please note that this is a simple first-blush implementation of the technology.
## Enjoy!
All that said, we hope you give `ipfs pubsub` a try. You can head over to the [Discussion Forum](https://discuss.ipfs.tech/categories) to ask questions, get help, or simply let us know how it goes.
All that said, we hope you give `ipfs pubsub` a try. You can head over to the [Discussion Forum](https://discuss.ipfs.io/categories) to ask questions, get help, or simply let us know how it goes.

View File

@@ -55,4 +55,4 @@ A few other subcommands and flags were added around the API, as well as many oth
- Expose port 8081 in docker container for /ws listener ([ipfs/go-ipfs#3954](https://github.com/ipfs/go-ipfs/pull/3954))
If you have questions or run into any issues, please post in the IPFS Discussion and Support Forum's [go-ipfs 0.4.10 release thread](https://discuss.ipfs.tech/t/ipfs-0-4-10-release/687). For bugs, please open an issue in [ipfs/go-ipfs/issues](https://github.com/ipfs/go-ipfs/issues).
If you have questions or run into any issues, please post in the IPFS Discussion and Support Forum's [go-ipfs 0.4.10 release thread](https://discuss.ipfs.io/t/ipfs-0-4-10-release/687). For bugs, please open an issue in [ipfs/go-ipfs/issues](https://github.com/ipfs/go-ipfs/issues).

View File

@@ -9,7 +9,7 @@ tags:
- 'tutorial'
---
IPFS pubsub was first introduced in September 2016 behind an experimental flag. This initial implementation allowed [orbit](https://orbit.chat/), a chat application built on top of IPFS, to become fully distributed. [@haadcode](https://github.com/haadcode) presented that work at [DEVCON2](https://www.youtube.com/watch?v=vQrbxyDPSXg). Later, [the IPFS team announced that pubsub ](https://blog.ipfs.tech/25-pubsub) was ready for the whole community to use.
IPFS pubsub was first introduced in September 2016 behind an experimental flag. This initial implementation allowed [orbit](https://orbit.chat/), a chat application built on top of IPFS, to become fully distributed. [@haadcode](https://github.com/haadcode) presented that work at [DEVCON2](https://www.youtube.com/watch?v=vQrbxyDPSXg). Later, [the IPFS team announced that pubsub ](https://ipfs.io/blog/25-pubsub) was ready for the whole community to use.
In this post I'll show you how to use pubsub with the [JavaScript implementation of IPFS](https://github.com/ipfs/js-ipfs). I start by using the pubsub primitives available in `js-ipfs` and end with a new module [plus video tutorial](https://youtu.be/Nv_Teb--1zg) of how to use it. Make sure to read to the end!

View File

@@ -9,7 +9,7 @@ tags:
- 'CRDTs'
---
With the introduction of [IPFS PubSub](https://blog.ipfs.tech/25-pubsub/), it became possible for IPFS nodes to declare shared _pubsub_ topics, broadcasting updates in real-time to other nodes in the network that have subscribed to the topic. The pubsub pattern is a powerful construct but it does not guarantee delivery of messages and does not guarantee message order. Enter [CRDTs, Conflict-Free Replicated Data Types](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type), a higher level data structure that allows us to overcome these shortcomings.
With the introduction of [IPFS PubSub](https://ipfs.io/blog/25-pubsub/), it became possible for IPFS nodes to declare shared _pubsub_ topics, broadcasting updates in real-time to other nodes in the network that have subscribed to the topic. The pubsub pattern is a powerful construct but it does not guarantee delivery of messages and does not guarantee message order. Enter [CRDTs, Conflict-Free Replicated Data Types](https://en.wikipedia.org/wiki/Conflict-free_replicated_data_type), a higher level data structure that allows us to overcome these shortcomings.
## Enter CRDTs, Conflict-Free Replicated Data Types

View File

@@ -60,7 +60,7 @@ There is an [open issue on the Node.js project to expose the RSA key generation
### PubSub tutorial published
@pgte published an amazing tutorial on how to use PubSub with js-ipfs and in the browser! Read it on the [IPFS Blog https://blog.ipfs.tech/29-js-ipfs-pubsub/](https://blog.ipfs.tech/29-js-ipfs-pubsub/).
@pgte published an amazing tutorial on how to use PubSub with js-ipfs and in the browser! Read it on the [IPFS Blog https://ipfs.io/blog/29-js-ipfs-pubsub/](https://ipfs.io/blog/29-js-ipfs-pubsub/).
# 🌱 Future

View File

@@ -80,10 +80,10 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
# ⁉️ 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.
That is all for this post. Thank you for being part of the community. I bid you a good day!

View File

@@ -73,11 +73,11 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- **NEW** Join the [ⒿⓈ⚡️ js-ipfs Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/js-ipfs/issues/1179) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.
That is all for this post. Thank you for being part of the community. I bid you a good day!

View File

@@ -8,7 +8,7 @@ tags:
- 'go-ipfs'
---
[go-ipfs 0.4.14](https://dist.ipfs.tech/#go-ipfs) has been released today. Not only have we improved memory and CPU usage but we also managed to fix a lot of bugs, ship a major improvement to IPNS performance and lots of refactoring! \o/
[go-ipfs 0.4.14](https://dist.ipfs.io/#go-ipfs) has been released today. Not only have we improved memory and CPU usage but we also managed to fix a lot of bugs, ship a major improvement to IPNS performance and lots of refactoring! \o/
- [Refactoring](#refactoring)
- [IPNS Improvements](#ipns-improvements)

View File

@@ -75,7 +75,7 @@ Would you like to contribute to the IPFS browser extension and don't know how? W
# 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.tech](http://discuss.ipfs.tech). We are also
do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also
available at the `#ipfs` channel on Freenode.
That is all for this post. Thank you for being part of the community. Have a great day!

View File

@@ -84,8 +84,8 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- 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 call, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- The All Hands call is also the perfect venue for demos, join in and show us what you built!
- Join the discussion at <http://discuss.ipfs.tech/>
- Join the discussion at <http://discuss.ipfs.io/>
# 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.tech](http://discuss.ipfs.tech). We are also available at the [#ipfs](irc://freenode.net/ipfs) channel on Freenode.
The best place to ask your questions about IPFS, how it works, and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the [#ipfs](irc://freenode.net/ipfs) channel on Freenode.

View File

@@ -82,11 +82,11 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [ⒿⓈ⚡️ js-ipfs Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/js-ipfs/issues/1179) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.
That is all for this post. Thank you for being part of the community. I bid you a good day!

View File

@@ -61,11 +61,11 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/pm/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.
That is all for this post. Thank you for being part of the community. I bid you a good day!

View File

@@ -64,12 +64,12 @@ Would you like to contribute to the libp2p project and don't know how? Well, the
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/libp2p/js-libp2p?label=help%20wanted
- Join an IPFS/libp2p All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with libp2p and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽 ](https://github.com/ipfs/pm/issues/650) and be part of the Sprint action!
# ⁉️ Do you have questions?
The best place to ask your questions about libp2p, how it works and what you can do with it is at [discuss.ipfs.tech](http://discuss.ipfs.tech). We are also available at the #libp2p channel on Freenode.
The best place to ask your questions about libp2p, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #libp2p channel on Freenode.
That is all for this post. Thank you for being part of the community.

View File

@@ -49,9 +49,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/pm/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.

View File

@@ -51,9 +51,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/pm/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.

View File

@@ -56,9 +56,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/pm/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.

View File

@@ -58,9 +58,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/pm/#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/pm/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.

View File

@@ -12,7 +12,7 @@ tags:
- IPFS Web UI
---
[go-ipfs 0.4.18](https://dist.ipfs.tech/#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!_
[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
@@ -207,11 +207,11 @@ 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.tech/ and help users finding their answers.
* 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.tech](https://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
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!

View File

@@ -38,11 +38,11 @@ Would you like to contribute to the libp2p project and don't know how? Well, the
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/libp2p/js-libp2p?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽 ](https://github.com/ipfs/team-mgmt/issues/650) and be part of the Sprint action!
# ⁉️ Do you have questions?
The best place to ask your questions about libp2p, how it works and what you can do with it is at [discuss.ipfs.tech](http://discuss.ipfs.tech). We are also available at the #libp2p channel on Freenode.
The best place to ask your questions about libp2p, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #libp2p channel on Freenode.
That's all for now!

View File

@@ -18,7 +18,7 @@ tags:
## 🏎 Reading Protobuf DAG nodes is super fast
Reading Protobuf DAG nodes just got a serious speed boost as well as a memory reduction. Previously Protobuf DAG nodes (dag-pb nodes for short) carried a multihash property (a [CIDv0](https://docs.ipfs.tech/guides/concepts/cid/#version-0)) with them. This used up loads of CPU time calculating the hash for a given node as it was retrieved from storage and with the advent of [CIDv1](https://docs.ipfs.tech/guides/concepts/cid/#version-1) there was no guarantee the hashing algorithm and length were correct.
Reading Protobuf DAG nodes just got a serious speed boost as well as a memory reduction. Previously Protobuf DAG nodes (dag-pb nodes for short) carried a multihash property (a [CIDv0](https://docs.ipfs.io/guides/concepts/cid/#version-0)) with them. This used up loads of CPU time calculating the hash for a given node as it was retrieved from storage and with the advent of [CIDv1](https://docs.ipfs.io/guides/concepts/cid/#version-1) there was no guarantee the hashing algorithm and length were correct.
So, we removed it! 🦖 ...but that had the unfortunate consequence of making the object API a whole lot less useful when writing data - the DAG nodes you got back were basically the data you put in. Hence the object API was refactored to return CIDs instead of DAG nodes for write operations...and we all lived happily ever after.
@@ -30,13 +30,13 @@ Read all about it in [the pull request notes](https://github.com/ipfs/js-ipfs-un
## 🎄 HAMT support added to MFS
We're putting the whole of npm on IPFS! These days npm is like 5.3 terabytes of data and it's all going in [MFS](https://docs.ipfs.tech/guides/concepts/mfs/). This is super rad, but we needed a good sharding strategy because 5TB is a lorra lorra files.
We're putting the whole of npm on IPFS! These days npm is like 5.3 terabytes of data and it's all going in [MFS](https://docs.ipfs.io/guides/concepts/mfs/). This is super rad, but we needed a good sharding strategy because 5TB is a lorra lorra files.
If you're curious about npm on IPFS, check out the [project here](https://github.com/ipfs-shipyard/npm-on-ipfs).
## 📣 IPNS over pubsub and DHT
Get informed of [IPNS](https://docs.ipfs.tech/guides/concepts/ipns/) record updates and read and publish your IPNS records to the DHT. It's all there and it's all awesome. For those of you new to IPNS, let me give you the lowdown - IPNS puts the mutable in immutable 🤣 It's an age old problem, content addressing is rad and all that, but if I change something the hash changes - 👎 boo...but wait, IPNS solves this, you get a permenant address for changeable content - hooray \o/.
Get informed of [IPNS](https://docs.ipfs.io/guides/concepts/ipns/) record updates and read and publish your IPNS records to the DHT. It's all there and it's all awesome. For those of you new to IPNS, let me give you the lowdown - IPNS puts the mutable in immutable 🤣 It's an age old problem, content addressing is rad and all that, but if I change something the hash changes - 👎 boo...but wait, IPNS solves this, you get a permenant address for changeable content - hooray \o/.
IPNS over pubsub gets the word out quicker to peers that are interested when an IPNS record changes. IPNS over DHT allows peers to find and resolve your IPNS address to some content in the first place! In the next JS IPFS release (0.35) the DHT will be enabled by default and it's going to be epic.
@@ -55,7 +55,7 @@ QmT78zSuBmuS4z925WZfrqQ1qHaJ56DQaTfyMUF7F8ff5o
uAXASIEbUSBS5xa8UHDqqt8BdxehE6tX5HxKFiwIeukV2i0wO
```
This is all work to smooth out the eventual transition to base32 CIDv1 by default - a move to allow CIDs to be used as valid URL origins. Have a [read of this for more](https://blog.ipfs.tech/53-go-ipfs-0-4-18/#cidv1-base32-migration).
This is all work to smooth out the eventual transition to base32 CIDv1 by default - a move to allow CIDs to be used as valid URL origins. Have a [read of this for more](https://blog.ipfs.io/53-go-ipfs-0-4-18/#cidv1-base32-migration).
To help you craft your artisanal CIDs we've introduced a `--cid-base` option to a bunch of CLI commands (and `?cid-base` option to a bunch of HTTP API endpoints). Check it out:
@@ -66,7 +66,7 @@ added bafybeibns4lrebrxaymvyshgmki5biwh6cd53idxfpen6ysomzrywtsm44 file.txt
## 💪 Deps got upgrades!
We got you covered with [WebUI 2.3](https://github.com/ipfs-shipyard/ipfs-webui/releases/tag/v2.2.0) (quic support, responsive navbar, and a language selector), [libp2p 0.24](https://blog.ipfs.tech/55-js-libp2p-0-24/) and many other upgrades giving you a faster and smaller JS IPFS.
We got you covered with [WebUI 2.3](https://github.com/ipfs-shipyard/ipfs-webui/releases/tag/v2.2.0) (quic support, responsive navbar, and a language selector), [libp2p 0.24](https://blog.ipfs.io/55-js-libp2p-0-24/) and many other upgrades giving you a faster and smaller JS IPFS.
# 🏗 API Changes
@@ -306,9 +306,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/team-mgmt/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode.

View File

@@ -15,7 +15,7 @@ In the week of May 21, 2018, we hosted one more Hack Week in the sunny city of L
The week was great for core developers, contributors and researchers to spend quality time together and work in a fast paced synchronous format towards solving concrete problems. It was incredible to see ideas and solutions flourishing for open problems we've been thinking for a while. The hacker spirit was strong throughout the entire week, culminating in a "Show Me What You Got" presentation to report back on decisions and demos.
The majority of discussions and collaborations were around IPFS, libp2p and applications built on top of them, but we also hosted a [CRDT Research meetup](https://blog.ipfs.tech/67-crdt-research-meetup) on the second day - check out the video playlist [here](https://www.youtube.com/playlist?list=PLuhRWgmPaHtTVkko1ZTn-qcGb-n6EqHff).
The majority of discussions and collaborations were around IPFS, libp2p and applications built on top of them, but we also hosted a [CRDT Research meetup](https://blog.ipfs.io/67-crdt-research-meetup) on the second day - check out the video playlist [here](https://www.youtube.com/playlist?list=PLuhRWgmPaHtTVkko1ZTn-qcGb-n6EqHff).
Didn't have a chance to attend? No worries, we got your back. Many of the report-back presentations were recorded so that you can learn about what got developed, designed and decided. We have compiled them into a [YouTube playlist](https://www.youtube.com/playlist?list=PLuhRWgmPaHtR1hDEAKYXtUguNBkg2qceQ) for your viewing pleasure. You can see them all here:

View File

@@ -246,9 +246,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label at the Ready column in our waffle board - https://waffle.io/ipfs/js-ipfs?label=help%20wanted
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/team-mgmt/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the #ipfs channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the #ipfs channel on Freenode.

View File

@@ -120,7 +120,7 @@ Would you like to contribute to the libp2p project and don't know how? Well, the
- Check the issues with the `help wanted` label in the [libp2p repo](https://github.com/libp2p/js-libp2p/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt#all-hands-call
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽 ](https://github.com/ipfs/team-mgmt/issues/650) and be part of the Sprint action!
# ⁉️ Do you have questions?

View File

@@ -91,8 +91,8 @@ PR: https://github.com/libp2p/js-libp2p/pull/362
- See CHANGELOGs for each IPLD format for it's respective changes, you can read more about the [`dag-pb` changes in the CHANGELOG](https://github.com/ipld/js-ipld-dag-pb/blob/master/CHANGELOG.md#0160-2019-05-08)
1. Commands `refs` and `refs local` have been added to core, the CLI and the HTTP API
- [Core API docs](https://github.com/ipfs/interface-js-ipfs-core/blob/master/SPEC/REFS.md)
- [HTTP API docs](https://docs.ipfs.tech/reference/api/http/#api-v0-refs)
- [CLI API docs](https://docs.ipfs.tech/reference/api/cli/#ipfs-refs)
- [HTTP API docs](https://docs.ipfs.io/reference/api/http/#api-v0-refs)
- [CLI API docs](https://docs.ipfs.io/reference/api/cli/#ipfs-refs)
1. Support for DOM [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects has been added to [`ipfs.add`](https://github.com/ipfs/interface-js-ipfs-core/blob/master/SPEC/FILES.md#add)
# ❤️ Huge thank you to everyone that made this release possible
@@ -175,9 +175,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [⚡️ⒿⓈ Core Dev Team Weekly Sync 🙌🏽](https://github.com/ipfs/team-mgmt/issues/650) 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode.

View File

@@ -348,9 +348,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [go-ipfs repo](https://github.com/ipfs/go-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- 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/team-mgmt/issues/674) and be part of the 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode.

View File

@@ -81,7 +81,7 @@ For this batch we have:
If you are interested in receiving an update when the next calls are out, you can do this in one of the following ways:
- Watch and Star the [ipfs/camp repo](https://github.com/ipfs/camp/blob/master/README.md), where all the content will live ad-eternum.
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.tech/index.xml).
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.io/index.xml).
- Subscribe to the [IPFS Weekly Newsletter](https://tinyletter.com/ipfsnewsletter) if you are interested in general IPFS updates.
- Subscribe to the [IPFS Events Newsletter](https://protocol.us20.list-manage.com/subscribe?u=62e1eb7f68461b5a2ab5c52e6&id=f3fed9af1d) if you are interested in IPFS events.

View File

@@ -36,7 +36,7 @@ Your feedback is a large part of identifying these challenges, evaluating how we
These new working groups meet regularly, and you can join them to help us achieve these goals! Check the [IPFS community calendar](https://github.com/ipfs/community/blob/master/README.md#calendar) for times and connection information, or watch the meetings at your leisure on the [IPFS Youtube channel](https://www.youtube.com/channel/UCdjsUXJ3QawK4O5L1kqqsew).
The work these teams are doing will require a number of different skillsets, and could use your help! If you're interested and have bandwidth to help out - jump on a community call or Github issue and share your time and expertise! Looking for fulltime roles to help out on these and other IPFS challenges? Check the IPFS Weekly Newsletter for [IPFS-focused job opportunities](https://blog.ipfs.tech/weekly-51/#open-positions-working-on-ipfs)!
The work these teams are doing will require a number of different skillsets, and could use your help! If you're interested and have bandwidth to help out - jump on a community call or Github issue and share your time and expertise! Looking for fulltime roles to help out on these and other IPFS challenges? Check the IPFS Weekly Newsletter for [IPFS-focused job opportunities](https://blog.ipfs.io/weekly-51/#open-positions-working-on-ipfs)!
## How does this work affect you?

View File

@@ -215,9 +215,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode.

View File

@@ -40,9 +40,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [go-ipfs repo](https://github.com/ipfs/go-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at [discuss.ipfs.tech](https://discuss.ipfs.tech/) and help users finding their answers.
- Join the discussion at [discuss.ipfs.io](https://discuss.ipfs.io/) and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org).
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org).

View File

@@ -70,6 +70,6 @@ More content from IPFS Camp is being salvaged and transcoded.
If you are interested in receiving an update when the next batch of videos are available, you can do this in one of the following ways:
- Watch and Star the [ipfs/camp repo](https://github.com/ipfs/camp/blob/master/README.md), where all the content will live, in addition to other other locations (IPFS 😄) shielded from the Global Electromagnetic Fire Disaster of 2027
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.tech/index.xml).
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.io/index.xml).
- Subscribe to the [IPFS Weekly Newsletter](https://tinyletter.com/ipfsnewsletter) if you are interested in general IPFS updates.
- Subscribe to the [IPFS Events Newsletter](https://protocol.us20.list-manage.com/subscribe?u=62e1eb7f68461b5a2ab5c52e6&id=f3fed9af1d) if you are interested in IPFS events.

View File

@@ -11,7 +11,7 @@ tags:
> EXCELLENT NEWS! You can now pubsub with the JS IPFS HTTP API client in the BROWSER!
Due to [boring technical reasons](https://github.com/ipfs/js-ipfs-http-client/issues/518) its previously not been possible to support [pubsub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) over the [HTTP API](https://docs.ipfs.tech/reference/api/http/) in the browser. Now that the [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) supports cancelation, and has done so for a while, pubsub support has arrived! Hooray \o/
Due to [boring technical reasons](https://github.com/ipfs/js-ipfs-http-client/issues/518) its previously not been possible to support [pubsub](https://en.wikipedia.org/wiki/Publish%E2%80%93subscribe_pattern) over the [HTTP API](https://docs.ipfs.io/reference/api/http/) in the browser. Now that the [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) supports cancelation, and has done so for a while, pubsub support has arrived! Hooray \o/
Theres also a brand new example application that you can play with showing how to use pubsub in the browser:

View File

@@ -26,7 +26,7 @@ This core course covers the basics of how IPFS deals with files, including key c
This workshop introduced a few awesome visualization and learning tools that you can try out at home:
- Explore the [**ProtoSchool tutorial on the Mutable File System (MFS)**](https://proto.school/#/mutable-file-system) for coding challenges designed to familiarize you with its API
- Paste a Content Identifier (CID) into the [**CID Inspector**](https://cid.ipfs.tech/) to break down its anatomy
- Paste a Content Identifier (CID) into the [**CID Inspector**](https://cid.ipfs.io/) to break down its anatomy
- Drag a file into the [**DAG Builder**](https://dag.ipfs.io/) and adjust chunk size, DAG layouts, etc. to see how it affects the Merkle DAG
Watch the recording below or check out the [slides](https://github.com/ipfs/camp/blob/master/CORE_AND_ELECTIVE_COURSES/CORE_COURSE_A/IPFS_Camp_Core_Course_A_Slides.pdf)!
@@ -79,6 +79,6 @@ The ProtoSchool curriculum is growing, and we're excited to explore all of the f
There's even more great content from IPFS Camp content coming your way, including recordings of keynotes and interviews. If you're interested in receiving an update when the next batch of videos are available, try out one of these strategies:
- Watch and star the [ipfs/camp repo](https://github.com/ipfs/camp/blob/master/README.md), where all the content will live.
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.tech/index.xml).
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.io/index.xml).
- Subscribe to the [IPFS Weekly Newsletter](https://tinyletter.com/ipfsnewsletter) if you're interested in general IPFS updates.
- Subscribe to the [IPFS Events Newsletter](https://protocol.us20.list-manage.com/subscribe?u=62e1eb7f68461b5a2ab5c52e6&id=f3fed9af1d) if you're interested in IPFS events.

View File

@@ -24,7 +24,7 @@ The newest version of IPFS Desktop, 0.9.2 - yes, we already released two patch v
### Browse the wild...
With the [recent update to the Web UI](https://github.com/ipfs-shipyard/ipfs-webui/releases/tag/v2.5.0), we are now capable of navigating through the whole IPFS system. Previously, you could only access your 'Files' (the contents of the [Mutable File System](https://proto.school/#/mutable-file-system)). Now, you can navigate not only to any `/ipfs/` or `/ipns/` path, but also any content [pinned](https://docs.ipfs.tech/guides/concepts/pinning/) to your IPFS node!
With the [recent update to the Web UI](https://github.com/ipfs-shipyard/ipfs-webui/releases/tag/v2.5.0), we are now capable of navigating through the whole IPFS system. Previously, you could only access your 'Files' (the contents of the [Mutable File System](https://proto.school/#/mutable-file-system)). Now, you can navigate not only to any `/ipfs/` or `/ipns/` path, but also any content [pinned](https://docs.ipfs.io/guides/concepts/pinning/) to your IPFS node!
![Browsing /ipns/ipns.io](../assets/058-ipfs-desktop-0-9-browse-wild.jpg)

View File

@@ -39,7 +39,7 @@ Long-time IPFS community members [Textile](https://textile.io) brought their cro
</div>
_Hector explains the topology of the RPi cluster (feat. many blinkenlights)_
Hector and the rest of the [IPFS Cluster](https://ipfscluster.io) team came through with a project high in fun, fabric, and blinking lights: the Raspberry Pi IPFS Cluster. Six tiny but mighty (and lovingly upholstered) nodes tirelessly worked together to pin whatever CIDs were thrown at them and reported their pinset load through an ingenious hardware display. Not pictured: [@cluster-labs'](https://github.com/cluster-labs) [Horizon UI for IPFS Cluster](https://medium.com/towardsblockchain/we-made-a-dashboard-for-ipfs-clusters-and-now-we-want-you-to-check-it-out-a87234629908) giving fair attendees even more fine-grained insights into the pinset.
Hector and the rest of the [IPFS Cluster](https://cluster.ipfs.io) team came through with a project high in fun, fabric, and blinking lights: the Raspberry Pi IPFS Cluster. Six tiny but mighty (and lovingly upholstered) nodes tirelessly worked together to pin whatever CIDs were thrown at them and reported their pinset load through an ingenious hardware display. Not pictured: [@cluster-labs'](https://github.com/cluster-labs) [Horizon UI for IPFS Cluster](https://medium.com/towardsblockchain/we-made-a-dashboard-for-ipfs-clusters-and-now-we-want-you-to-check-it-out-a87234629908) giving fair attendees even more fine-grained insights into the pinset.
![@achingbrain's npm-in-a-box](../assets/059-ipfs-camp-sci-fi-fair-videos-npm-in-box.jpg)
_[Alex Potsidess](https://github.com/achingbrain) npm-in-a-box project_
@@ -85,6 +85,6 @@ Huge thanks to our SciFi Fair participants for making IPFS Camp so out-of-this-w
There's still more great content from IPFS Camp content coming your way, including recordings of keynotes and interviews. If you're interested in receiving an update when the next batch of videos are available, try out one of these routes:
- Watch and star the [ipfs/camp repo](https://github.com/ipfs/camp/blob/master/README.md), where all the content will live.
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.tech/index.xml).
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.io/index.xml).
- Subscribe to the [IPFS Weekly Newsletter](https://tinyletter.com/ipfsnewsletter) if you're interested in general IPFS updates.
- Subscribe to the [IPFS Events Newsletter](https://protocol.us20.list-manage.com/subscribe?u=62e1eb7f68461b5a2ab5c52e6&id=f3fed9af1d) if you're interested in IPFS events.

View File

@@ -38,7 +38,7 @@ To close, Juan set us back out through the airlock back toward Earth with his [I
[![Screen Shot 2019-10-02 at 7 44 37 PM](../assets/ipfs-camp-2019-recap.png)](https://youtu.be/cQJXnJDbXv4)
Curious how everything fit together, or want to understand how the pieces of IPFS Camp became a greater whole? Check out [this overview from Molly](https://youtu.be/cQJXnJDbXv4) on how different components like the Poster Sessions & Deep Dives, SciFi Fair, Lightning Talks, and the Core & Elective Courses, wove together into a great community event. Many connections between different attendees and projects emerged from IPFS Camp too - spurring new collaborations and integrations. These great recaps from [Textile](https://medium.com/textileio/ipfs-camp-2019-the-highlights-and-takeaways-2b3cb4f42513), [Berty](https://berty.tech/blog/ipfs-camp/), and of course [the IPFS blog](https://blog.ipfs.tech/2019-07-08-ipfs-camp-recap/) highlight a few!
Curious how everything fit together, or want to understand how the pieces of IPFS Camp became a greater whole? Check out [this overview from Molly](https://youtu.be/cQJXnJDbXv4) on how different components like the Poster Sessions & Deep Dives, SciFi Fair, Lightning Talks, and the Core & Elective Courses, wove together into a great community event. Many connections between different attendees and projects emerged from IPFS Camp too - spurring new collaborations and integrations. These great recaps from [Textile](https://medium.com/textileio/ipfs-camp-2019-the-highlights-and-takeaways-2b3cb4f42513), [Berty](https://berty.tech/blog/ipfs-camp/), and of course [the IPFS blog](https://blog.ipfs.io/2019-07-08-ipfs-camp-recap/) highlight a few!
## Community Interviews
@@ -75,6 +75,6 @@ And on top of all that, Steven joined us from Shanghai City to discuss his work
This concludes our series of updates from IPFS Camp recap-ing the amazing presentations, demos, courses, and learnings we had together. We're so grateful to everyone for making this event so vibrant and creative - and are already looking forward to the **next** IPFS Camp. If you want more IPFS updates in the meantime, try these channels:
- Watch and star the [ipfs/camp repo](https://github.com/ipfs/camp/blob/master/README.md), where all the content (and follow-ups) live.
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.tech/index.xml).
- Subscribe to the [RSS feed of this blog](https://blog.ipfs.io/index.xml).
- Subscribe to the [IPFS Weekly Newsletter](https://tinyletter.com/ipfsnewsletter) if you're interested in general IPFS updates.
- Subscribe to the [IPFS Events Newsletter](https://protocol.us20.list-manage.com/subscribe?u=62e1eb7f68461b5a2ab5c52e6&id=f3fed9af1d) if you're interested in IPFS events.

View File

@@ -50,7 +50,7 @@ Read more about the design at [`libp2p/specs/pubsub/gossipsub`](https://github.c
## 📛 IPNS support for `ipfs resolve`
You can now resolve [IPNS](https://docs.ipfs.tech/guides/concepts/ipns/) names via `ipfs resolve`, what's more the recursive option is now on by default.
You can now resolve [IPNS](https://docs.ipfs.io/guides/concepts/ipns/) names via `ipfs resolve`, what's more the recursive option is now on by default.
```bash
$ jsipfs resolve /ipns/Qmqux
@@ -125,9 +125,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode.

View File

@@ -132,9 +132,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at http://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at http://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](https://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode and [Matrix](https://matrix.to/#/#ipfs:matrix.org)
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 and [Matrix](https://matrix.to/#/#ipfs:matrix.org)

View File

@@ -14,7 +14,7 @@ The title says it all. Learn how to use [go-ipfs as a library with the new tutor
![](../assets/go-ipfs-as-a-library.gif)
Let us know what you think by opening a topic with your questions and feedback at https://discuss.ipfs.tech.
Let us know what you think by opening a topic with your questions and feedback at https://discuss.ipfs.io.
Invite your friends to share it and help us broadcast it to reach a wider audience of DWeb developers

View File

@@ -54,5 +54,5 @@ _Video: [Understanding How IPFS Deals with Files](https://youtu.be/Z5zNPwMDYGg)_
This course also introduces new visualization tools that you can use to see how IPFS addresses and manipulates files:
- Paste a Content Identifier (CID) into the [**CID Inspector**](https://cid.ipfs.tech/) to break down its anatomy
- Paste a Content Identifier (CID) into the [**CID Inspector**](https://cid.ipfs.io/) to break down its anatomy
- Drag a file into the [**DAG Builder**](https://dag.ipfs.io/) and adjust chunk size, DAG layouts, etc. to see how it affects the Merkle DAG

View File

@@ -40,7 +40,7 @@ So, bad times.
...but wait, [Peer IDs _ARE_ CIDs](https://github.com/libp2p/specs/blob/master/RFC/0001-text-peerid-cid.md)! I know, weird, but also rad because in theory we should be able to re-encode them as `base32`. Right now though, everything expects a `base58` encoded string (a v0 CID) because they're actually just a multihash.
In this js-ipfs release we've made a small change to allow you to take your Peer ID (a v0 CID), convert it to a base32 encoded v1 CID and use it in an IPNS path like `/ipns/bafybeidta3hkxk3ihxfsk765oswgsjhmvcnkeestyuov6r2t5tyts4xuoe`. You can take advantage of [cid.ipfs.tech](https://cid.ipfs.tech) (base32 version is provided for your convenience at the very bottom of the page) or do the conversion with the command line tools:
In this js-ipfs release we've made a small change to allow you to take your Peer ID (a v0 CID), convert it to a base32 encoded v1 CID and use it in an IPNS path like `/ipns/bafybeidta3hkxk3ihxfsk765oswgsjhmvcnkeestyuov6r2t5tyts4xuoe`. You can take advantage of [cid.ipfs.io](https://cid.ipfs.io) (base32 version is provided for your convenience at the very bottom of the page) or do the conversion with the command line tools:
```sh
jsipfs id | json id | jsipfs cid base32
@@ -223,9 +223,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at https://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at https://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](https://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
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.

View File

@@ -10,9 +10,9 @@ tags:
- 'community'
---
**Were excited to announce [the new IPFS documentation site is live in beta](https://docs.ipfs.tech/)!** The doors are open, and just like any housewarming, youre cordially invited to stop by, have a look around, and let us know what you think.
**Were excited to announce [the new IPFS documentation site is live in beta](https://docs.ipfs.io/)!** The doors are open, and just like any housewarming, youre cordially invited to stop by, have a look around, and let us know what you think.
<a href="https://docs.ipfs.tech/" target="_blank"><img src="../assets/076-ipfs-docs-beta-screenshot.png" alt="Screenshot of docs beta"></a>
<a href="https://docs.ipfs.io/" target="_blank"><img src="../assets/076-ipfs-docs-beta-screenshot.png" alt="Screenshot of docs beta"></a>
<br/>
_New year, new look._

View File

@@ -14,7 +14,7 @@ We are very excited to announce the first set of public _collaborative clusters_
_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://ipfscluster.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/).
@@ -33,10 +33,10 @@ We hope that collaborative clusters will allow the community to participate in t
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://ipfscluster.io/documentation/collaborative/](https://ipfscluster.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://ipfscluster.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://ipfscluster.io/documentation](https://ipfscluster.io/documentation).
For full documentation on how to setup and operate clusters, see [https://cluster.ipfs.io/documentation](https://cluster.ipfs.io/documentation).

View File

@@ -96,9 +96,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [go-ipfs repo](https://github.com/ipfs/go-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at [discuss.ipfs.tech](https://discuss.ipfs.tech/) and help users finding their answers.
- Join the discussion at [discuss.ipfs.io](https://discuss.ipfs.io/) and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org).
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org).

View File

@@ -18,7 +18,7 @@ On Thursday, February 13, the IPFS Community is hosting the [Distributed Network
## Did we mention we have bounties?
Well have bounties for using and improving IPFS, and building IPFS or our communitys libraries and services into your dapps—all managed through the ETHDenver DAO. ETHDenver will announce the bounties on February 10th, so until then take a look at [awesome.ipfs.tech](https://awesome.ipfs.tech/) to get your mental propellers spinning!
Well have bounties for using and improving IPFS, and building IPFS or our communitys libraries and services into your dapps—all managed through the ETHDenver DAO. ETHDenver will announce the bounties on February 10th, so until then take a look at [awesome.ipfs.io](https://awesome.ipfs.io/) to get your mental propellers spinning!
## Join us at the following events

View File

@@ -27,19 +27,19 @@ Its a new year, and with it time to update the [IPFS Project Roadmap](https:/
![IPFS Ecosystem Diagram](../assets/ipfs-ecosystem-diagram.png)
See our [Ecosystem Update from IPFS Camp](https://www.youtube.com/watch?v=jpQnQbfhuBc&feature=youtu.be) to learn more about 2019 adoption!
This growth caused us to shift some of our attention midyear to support new usage and demand - re-focusing some of our working groups on improving documentation, gateway performance, and testing tools to validate large-scale network upgrades (see our [Operation Task-Force blog post](https://blog.ipfs.tech/2019-07-31-operation-task-force/) for details). We still made progress on our Package Managers goal, but less than we hoped given **also** investing heavily in other critical areas to support the ecosystem. 🤞
This growth caused us to shift some of our attention midyear to support new usage and demand - re-focusing some of our working groups on improving documentation, gateway performance, and testing tools to validate large-scale network upgrades (see our [Operation Task-Force blog post](https://blog.ipfs.io/2019-07-31-operation-task-force/) for details). We still made progress on our Package Managers goal, but less than we hoped given **also** investing heavily in other critical areas to support the ecosystem. 🤞
### 5 Notable Wins
1. We held the first [IPFS Camp](https://www.youtube.com/watch?v=cQJXnJDbXv4&feature=youtu.be), a gathering for developers and builders in the wider InterPlanetary community to [learn](https://blog.ipfs.tech/2019-09-18-ipfs-camp-course-videos/), [share](https://www.youtube.com/playlist?list=PLuhRWgmPaHtQVNQcBaCKg5kKhfOBv45Jb), and [demo](https://blog.ipfs.tech/2019-10-03-ipfs-camp-sci-fi-fair-videos/) their work (see [this recap](https://blog.ipfs.tech/2019-07-08-ipfs-camp-recap/) for more)! 🏕
2. We made significant progress on our Package Managers goal (read on for awesome new features like [collaborative clusters](https://blog.ipfs.tech/2020-01-09-collaborative-clusters/)!) 🎯
1. We held the first [IPFS Camp](https://www.youtube.com/watch?v=cQJXnJDbXv4&feature=youtu.be), a gathering for developers and builders in the wider InterPlanetary community to [learn](https://blog.ipfs.io/2019-09-18-ipfs-camp-course-videos/), [share](https://www.youtube.com/playlist?list=PLuhRWgmPaHtQVNQcBaCKg5kKhfOBv45Jb), and [demo](https://blog.ipfs.io/2019-10-03-ipfs-camp-sci-fi-fair-videos/) their work (see [this recap](https://blog.ipfs.io/2019-07-08-ipfs-camp-recap/) for more)! 🏕
2. We made significant progress on our Package Managers goal (read on for awesome new features like [collaborative clusters](https://blog.ipfs.io/2020-01-09-collaborative-clusters/)!) 🎯
3. We developed and launched [TestGround v0.1](https://github.com/ipfs/testground/releases/tag/v0.1.0) in collaboration with the libp2p team, a platform for testing distributed systems and networks at various scales ⚖️
4. We launched [ProtoSchool](https://proto.school/#/), a new portal for interactive tutorials to learn about decentralized web concepts, protocols, and tools, with 23 chapters across 4 continents! 🌏
5. We built a [new IPFS docs site](https://blog.ipfs.tech/2020-01-07-ipfs-docs-beta/) with improved search, information architecture, and explainers on InterPlanetary concepts 📖
5. We built a [new IPFS docs site](https://blog.ipfs.io/2020-01-07-ipfs-docs-beta/) with improved search, information architecture, and explainers on InterPlanetary concepts 📖
## Our 2019 Roadmap
To chart our path for the year, we did a large 2019 Roadmapping effort to write down our [mission](https://github.com/ipfs/roadmap#ipfs-mission-statement), define some of the many [long-term goals for the IPFS Project](https://github.com/ipfs/roadmap#future-goals), and [prioritize](https://github.com/ipfs/roadmap#sorting-function) where to focus our energy first. We had a lot of “planning” debt, so going from 0 to 1 on a project roadmap was a large endeavor. Our process involved each working group generating a roadmap around a shared goal, and then merging important work streams into “epics” for the whole project that highlighted our major objectives. You can see how we did against these objectives in our [2019 Project Roadmap](https://github.com/ipfs/roadmap/blob/master/2019-IPFS-Project-Roadmap.md), or dive more into how we chose those goals in our [2019 Roadmap blog post](https://blog.ipfs.tech/78-ipfs-2019-roadmap).
To chart our path for the year, we did a large 2019 Roadmapping effort to write down our [mission](https://github.com/ipfs/roadmap#ipfs-mission-statement), define some of the many [long-term goals for the IPFS Project](https://github.com/ipfs/roadmap#future-goals), and [prioritize](https://github.com/ipfs/roadmap#sorting-function) where to focus our energy first. We had a lot of “planning” debt, so going from 0 to 1 on a project roadmap was a large endeavor. Our process involved each working group generating a roadmap around a shared goal, and then merging important work streams into “epics” for the whole project that highlighted our major objectives. You can see how we did against these objectives in our [2019 Project Roadmap](https://github.com/ipfs/roadmap/blob/master/2019-IPFS-Project-Roadmap.md), or dive more into how we chose those goals in our [2019 Roadmap blog post](https://blog.ipfs.io/78-ipfs-2019-roadmap).
### Our Focus on Package Managers
@@ -54,7 +54,7 @@ We also formed collaborations with IPFS users to partner on improving IPFS for p
![5ms-1024mb](../assets/5ms-1024MB.png =400x)
![5ms-40mb](../assets/5ms-40MB.png =400x)
IPFS Cluster also released _[collaborative clusters](https://blog.ipfs.tech/2020-01-09-collaborative-clusters/)_, a new feature to enable package manager maintainers and mirrors to add and replicate repositories across a community of IPFS nodes. With collaborative clusters, any maintainer can push new updates to the pinset of data to mirror, which is then sharded and syncd across all mirroring nodes. Weve already seen package managers like Pac-Man added to collaborative clusters along with many “data package managers” like Wikipedia and Project Gutenberg, [follow these instructions to add your own!](https://collab.ipfscluster.io/)
IPFS Cluster also released _[collaborative clusters](https://blog.ipfs.io/2020-01-09-collaborative-clusters/)_, a new feature to enable package manager maintainers and mirrors to add and replicate repositories across a community of IPFS nodes. With collaborative clusters, any maintainer can push new updates to the pinset of data to mirror, which is then sharded and syncd across all mirroring nodes. Weve already seen package managers like Pac-Man added to collaborative clusters along with many “data package managers” like Wikipedia and Project Gutenberg, [follow these instructions to add your own!](https://collab.ipfscluster.io/)
### How We Did Against Our Package Managers Goal
@@ -80,7 +80,7 @@ During our IPFS Planning “Spike”, we took stock of our wider ecosystem and p
> Based on our decision-making criteria, we chose **improving the performance and reliability of Content Routing in the IPFS network** as our main priority for the next 6 months (through mid-year 2020).
Content routing is the process of finding a node hosting the content youre looking for, such that you can fetch the desired data and quickly load your website, dapp, video, or data. As the IPFS public network scaled this past year (over 30x!), it ran into new problems in our distributed routing algorithms: struggling to find content spread across many unreliable nodes. This was especially painful for [IPNS](https://docs.ipfs.tech/guides/concepts/ipns/), which relied on _multiple_ of these slow/unreliable queries to find the latest version of a file. These performance gaps caused IPFS to lag and stall while searching for the needed content, hurting the end user experience and making IPFS feel broken. Searching the network to find desired content (a.k.a., using IPFS as a decentralized CDN) is one of the most common actions for new IPFS users and is required by most ipfs-powered dapp use cases—therefore, its the **number 1 pain point** we need to mitigate in order to unlock increased adoption and scalability of the network! Our goal for midyear: **95th percentile content routing speed is less than 5 seconds.**
Content routing is the process of finding a node hosting the content youre looking for, such that you can fetch the desired data and quickly load your website, dapp, video, or data. As the IPFS public network scaled this past year (over 30x!), it ran into new problems in our distributed routing algorithms: struggling to find content spread across many unreliable nodes. This was especially painful for [IPNS](https://docs.ipfs.io/guides/concepts/ipns/), which relied on _multiple_ of these slow/unreliable queries to find the latest version of a file. These performance gaps caused IPFS to lag and stall while searching for the needed content, hurting the end user experience and making IPFS feel broken. Searching the network to find desired content (a.k.a., using IPFS as a decentralized CDN) is one of the most common actions for new IPFS users and is required by most ipfs-powered dapp use cases—therefore, its the **number 1 pain point** we need to mitigate in order to unlock increased adoption and scalability of the network! Our goal for midyear: **95th percentile content routing speed is less than 5 seconds.**
To achieve this goal, weve formed a Content Routing team (and spun down our Package Managers working group) to focus our main engineering effort on this problem for the next 6 months. Improving content routing performance requires making improvements and bugfixes to the go-libp2p DHT _at scale_, and changing how we form, query, and resolve content in the IPFS network to be faster and more resilient. This involves a combination of research, design, implementation, and testing. Making changes to the _configuration of the entire network_ is non-trivial, which is why weve been investing in the [InterPlanetary Testground](https://github.com/ipfs/testground/), a new set of tools for testing next generation P2P applications, to help us diagnose issues and evaluate improvements prior to rolling out upgrades to the entire public network. You can follow along with the team's work in the [Content Routing ZenHub Roadmap](https://app.zenhub.com/workspaces/content-routing-2020-5e29be25ab9d8da0b032cfcc/roadmap):

View File

@@ -27,7 +27,7 @@ To speed this up even more, we added some useful new capabilities to the Bitswap
IPFS breaks up files into chunks called Blocks, identified by a Content IDentifier ([CID](https://github.com/multiformats/cid)). When nodes running the [Bitswap](https://github.com/ipfs/go-bitswap) protocol want to fetch a file, they send out "want lists" to other peers. A "want list" is a list of CIDs for blocks a peer wants to receive. Each node remembers which blocks its peers want, and each time the node receives a block it checks if any of its peers want the block and sends it to them.
To find out which peers have the blocks that make up a file, a Bitswap node first sends a want for the root block CID to all the peers it is connected to. If the peers dont have the block, the node queries the Distributed Hash Table ([DHT](https://docs.ipfs.tech/guides/concepts/dht/)) to ask who has the root block. Any peers that respond with the root block are added to a session. From now on Bitswap only sends wants to peers in the session, so as not to flood the network with requests.
To find out which peers have the blocks that make up a file, a Bitswap node first sends a want for the root block CID to all the peers it is connected to. If the peers dont have the block, the node queries the Distributed Hash Table ([DHT](https://docs.ipfs.io/guides/concepts/dht/)) to ask who has the root block. Any peers that respond with the root block are added to a session. From now on Bitswap only sends wants to peers in the session, so as not to flood the network with requests.
The node sends out a want for each CID to several peers in the session in parallel, because not all peers will have all blocks. If the node starts receiving a lot of duplicate blocks, it sends a want for each CID to fewer peers. If the node gets timeouts waiting for blocks, it sends a want for each CID to more peers. In this way the node tries to maintain a high download speed without too many duplicate blocks.

View File

@@ -35,7 +35,7 @@ It's been a long and emotional voyage but this refactor brings a plethora of inc
Using `async`/`await` in JavaScript is gaining a _lot_ of traction in the ecosystem and is rapidly becoming the de facto way of writing idiomatic JS. We want js-ipfs to **move with the times and continue to be attractive to contributors** by using modern JS features, techniques and practices. The big idea with these changes is for the code to be easier to contribute to, easier to understand, easier to maintain, and be faster and smaller than ever.
This change is so big, and so significant, we wrote a whole [blog post](https://blog.ipfs.tech/2020-02-01-async-await-refactor/) about it to explain the motivations behind the changes...in ~~excruciating~~ delightful depth 🤣!
This change is so big, and so significant, we wrote a whole [blog post](https://blog.ipfs.io/2020-02-01-async-await-refactor/) about it to explain the motivations behind the changes...in ~~excruciating~~ delightful depth 🤣!
We've also compiled some stats on this refactor for your viewing pleasure:
@@ -199,7 +199,7 @@ There are significant and breaking core API changes in this release. Please see
## Other changes
- libp2p has been upgraded to 0.27, which also includes breaking changes to it's core API. Please see the release announcement post for more info:
- https://blog.ipfs.tech/2020-02-07-js-libp2p-0-27/
- https://blog.ipfs.io/2020-02-07-js-libp2p-0-27/
- The protocol _name_ for peer IDs in multiaddrs has changed from 'ipfs' to 'p2p'. There's no changes to data on the wire but this change is seen when multiaddrs are converted to strings.
# ❤️ Huge thank you to everyone that made this release possible
@@ -317,9 +317,9 @@ Would you like to contribute to the IPFS project and don't know how? Well, there
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at https://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at https://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](https://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
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.

View File

@@ -24,7 +24,7 @@ We also take a look at the evolution of the [CID specification](https://github.c
### CID Inspector
Did you know you can paste any IPFS CID into the [**CID Inspector**](https://cid.ipfs.tech/) for a human-friendly breakdown of its multihash format and length, multicodec, multibase, and version? It can even convert CIDv0 to CIDv1! The awesome [Oli Evans](https://github.com/olizilla) built this super-useful visualization tool that we explore in this new tutorial and which you can now access from our coding challenges.
Did you know you can paste any IPFS CID into the [**CID Inspector**](https://cid.ipfs.io/) for a human-friendly breakdown of its multihash format and length, multicodec, multibase, and version? It can even convert CIDv0 to CIDv1! The awesome [Oli Evans](https://github.com/olizilla) built this super-useful visualization tool that we explore in this new tutorial and which you can now access from our coding challenges.
![CID Inspector](../assets/084-explore-the-anatomy-of-a-cid-on-protoschool-cid-inspector.png)

View File

@@ -13,7 +13,7 @@ tags:
---
![IPFS built-in to Opera for Android](../assets/086-ipfs-in-opera-for-android-banner.png)
As we hinted in our previous post about [IPFS in web browsers](https://blog.ipfs.tech/2019-10-08-ipfs-browsers-update/), IPFS support in the Opera web browser has been in development for some time.
As we hinted in our previous post about [IPFS in web browsers](https://blog.ipfs.io/2019-10-08-ipfs-browsers-update/), IPFS support in the Opera web browser has been in development for some time.
Today, **Opera for Android 57** is live in the Google Play Store with default support for IPFS with a native handler for `ipfs://` addresses that redirects to the HTTP gateway of your choosing! [Install Opera Android with IPFS now](https://play.google.com/store/apps/details?id=com.opera.browser).
@@ -55,7 +55,7 @@ Theres a lot more work to do in maturing [naming in IPFS and distributed web
You can register _decentralized domain names_ that map to IPFS addresses using services like [Unstoppable Domains](https://unstoppabledomains.com/) or the [Ethereum Name System (ENS)](https://medium.com/the-ethereum-name-service/ethdns-9d56298fa38a?source=rss----63df5ce4636f---4).
You can also register and use any _DNS_ domain name, and map it to IPFS addresses using services like [Terminal.co](https://terminal.co) or tools like [DNSLink](https://docs.ipfs.tech/guides/concepts/dnslink/).
You can also register and use any _DNS_ domain name, and map it to IPFS addresses using services like [Terminal.co](https://terminal.co) or tools like [DNSLink](https://docs.ipfs.io/guides/concepts/dnslink/).
## Implementation
@@ -65,7 +65,7 @@ IPFS features in this implementation:
* Implements the [IPFS Web Browser Addressing specification](https://github.com/ipfs/in-web-browsers/blob/master/ADDRESSING.md), both `ipfs://` and `ipns://`
* Configurable HTTP gateway, with options to use gateways like `dweb.link`, Infura, or a local node
* Supports [subdomain gateways](https://docs.ipfs.tech/how-to/address-ipfs-on-web/#subdomain-gateway) for secure web apps
* Supports [subdomain gateways](https://docs.ipfs.io/how-to/address-ipfs-on-web/#subdomain-gateway) for secure web apps
* Supports mixed protocol use, such as loading images over IPFS in an HTTP web page
Read on to learn more about these features.

View File

@@ -191,13 +191,13 @@ Would you like to contribute to the IPFS project and dont know how? Well, the
- Check the issues with the `help wanted` label in the [js-ipfs repo](https://github.com/ipfs/js-ipfs/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute: https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at https://discuss.ipfs.tech/ and help users finding their answers.
- Join the discussion at https://discuss.ipfs.io/ and help users finding their answers.
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the 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.tech](https://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode.
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.
[unixfs]: https://docs.ipfs.tech/guides/concepts/unixfs/
[cid]: https://docs.ipfs.tech/guides/concepts/cid/
[mfs]: https://docs.ipfs.tech/guides/concepts/mfs/
[unixfs]: https://docs.ipfs.io/guides/concepts/unixfs/
[cid]: https://docs.ipfs.io/guides/concepts/cid/
[mfs]: https://docs.ipfs.io/guides/concepts/mfs/

View File

@@ -14,7 +14,7 @@ If youve spent time in the Web3 ecosystem, youve probably come across work
### Motivation
As with every growing ecosystem, theres a lot to be done to make IPFS successful. Last June, we gathered with the rest of the community at [IPFS Camp](https://blog.ipfs.tech/2019-07-08-ipfs-camp-recap/), where the variety and vitality of the projects building in this space was exemplified in the SciFi fair, showcasing projects from Brave, Metamask, Textile, Berty, and more. Spending time with this thriving ecosystem (while immensely inspiring), also clarified the demand for more IPFS tooling: the functionality, features, and integrations outside the core IPFS protocol to help accelerate development by many projects across the community.
As with every growing ecosystem, theres a lot to be done to make IPFS successful. Last June, we gathered with the rest of the community at [IPFS Camp](https://blog.ipfs.io/2019-07-08-ipfs-camp-recap/), where the variety and vitality of the projects building in this space was exemplified in the SciFi fair, showcasing projects from Brave, Metamask, Textile, Berty, and more. Spending time with this thriving ecosystem (while immensely inspiring), also clarified the demand for more IPFS tooling: the functionality, features, and integrations outside the core IPFS protocol to help accelerate development by many projects across the community.
The newly updated IPFS Grant Platform aims to support exactly this need—helping the community coordinate and fund production of high-leverage tooling to grow IPFS adoption and usability. We call it the IPFS Grant _Platform_, because its intended to bring together community members at every stage of the grant-making and grant-writing process. Anyone can propose new RFPs or bounties for features and enhancements theyd like to see, and the process of refining and selecting grant recipients happens transparently in the open. Multiple organizations can even fund grants together!
@@ -24,7 +24,7 @@ We soft launched this updated Grants Platform in Q1, with a [quarterly focus](ht
### Launch and Q2 Focus
This batch has already borne fruit, including [half a dozen completed bounties](https://github.com/ipfs/devgrants/projects/1), the beginnings of a [Rust IPFS implementation](https://github.com/ipfs-rust/rust-ipfs), [new user research into IPFS on mobile](https://blog.ipfs.tech/2020-04-10-ipfs-mobile-design-research/), and more! Therefore, were excited to **officially launch the IPFS Grants Platform!** Hop over to the [repo](https://github.com/ipfs/devgrants) to learn more. Well be following up soon with an IPFS Grants Guide here on the blog, including a deep dive into the different grant types and how to participate.
This batch has already borne fruit, including [half a dozen completed bounties](https://github.com/ipfs/devgrants/projects/1), the beginnings of a [Rust IPFS implementation](https://github.com/ipfs-rust/rust-ipfs), [new user research into IPFS on mobile](https://blog.ipfs.io/2020-04-10-ipfs-mobile-design-research/), and more! Therefore, were excited to **officially launch the IPFS Grants Platform!** Hop over to the [repo](https://github.com/ipfs/devgrants) to learn more. Well be following up soon with an IPFS Grants Guide here on the blog, including a deep dive into the different grant types and how to participate.
Unfortunately, spinning up this Grants Platform also happened to coincide with the spread of the worst pandemic this century. Therefore, were making the Q2 [Quarterly Focus](https://github.com/ipfs/devgrants/blob/master/FOCUS.md) **COVID-19 relief** to help the many projects and tools working to contain the spread and impact of this disease. This means proposals like making COVID-19 related datasets [more durable and available](https://github.com/ipfs/ipfs-cluster/issues/1021), enabling local community support networks, empowering remote work during quarantine, and so on, will be given first consideration.

View File

@@ -10,7 +10,7 @@ tags:
- 'project planning'
---
For IPFS to succeed, it needs to be where people will use it, and for the vast majority around the world that is on their smartphones. In the [introductory post](https://blog.ipfs.tech/2020-04-10-ipfs-mobile-design-research/), we laid out the intent of this project - to provide a foundation for successful IPFS apps on mobile by understanding how people are building, using and thinking about P2P and IPFS on mobile today, and then publishing tools to guide the next wave of application builders.
For IPFS to succeed, it needs to be where people will use it, and for the vast majority around the world that is on their smartphones. In the [introductory post](https://blog.ipfs.io/2020-04-10-ipfs-mobile-design-research/), we laid out the intent of this project - to provide a foundation for successful IPFS apps on mobile by understanding how people are building, using and thinking about P2P and IPFS on mobile today, and then publishing tools to guide the next wave of application builders.
In this first phase of the work, we carried out primary research and analysis consisting of qualitative interviews, and surveys of technology and interaction methods. Were now ready to publish the results of that research!

View File

@@ -27,9 +27,9 @@ The distributed web is changing that. IPFS rearchitects the web to work peer to
The IPFS Public Network has experienced substantial growth (scaling 30x in 2019!), bringing new opportunities for IPFS users and the wider InterPlanetary ecosystem. Major deployments and applications that require fast and reliable connectivity have started building on and supporting IPFS:
- **Opera & Brave:** [Opera](https://blog.ipfs.tech/2020-03-30-ipfs-in-opera-for-android/) became the first major web browser to offer default IPFS support on Android, shortly after [Brave](https://blog.ipfs.tech/2019-10-08-ipfs-browsers-update/) started directly embedding the IPFS Companion extension (complete with a built-in js-ipfs node). This means millions of people around the world now have access to the decentralized web built directly into their browsers.
- **Opera & Brave:** [Opera](https://blog.ipfs.io/2020-03-30-ipfs-in-opera-for-android/) became the first major web browser to offer default IPFS support on Android, shortly after [Brave](https://blog.ipfs.io/2019-10-08-ipfs-browsers-update/) started directly embedding the IPFS Companion extension (complete with a built-in js-ipfs node). This means millions of people around the world now have access to the decentralized web built directly into their browsers.
- **Microsoft ION:** [Microsoft has turned to IPFS](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/toward-scalable-decentralized-identifier-systems/ba-p/560168) as the content addressed storage layer to power its take on a decentralized identity system.
- **Netflix:** [We began collaborating](https://blog.ipfs.tech/2020-02-14-improved-bitswap-for-container-distribution/) on ways to incorporate peer-to-peer services into Netflixs developer tooling to speed up container image distribution in their build pipeline.
- **Netflix:** [We began collaborating](https://blog.ipfs.io/2020-02-14-improved-bitswap-for-container-distribution/) on ways to incorporate peer-to-peer services into Netflixs developer tooling to speed up container image distribution in their build pipeline.
- **Cloudflare:** Cloudflare runs a [distributed web gateway](https://www.cloudflare.com/distributed-web-gateway/) to serve content hosted on IPFS easily, quickly, and securely.
We worked with these organizations, as well as many active IPFS users and our broader community, to source feedback and identify priorities for this release and the remainder of 2020. With their help, we zeroed in on two major pain points: performance and reliability.
@@ -42,10 +42,10 @@ Here are a few of the improvements made in IPFS 0.5.0:
![Improvements to go-ipfs 0.5.0](../assets/090-go-ipfs-0-5-0-Infographic.png)
- **Faster content discovery:** IPFS 0.5.0 makes finding and sharing data in the network much faster, thanks to large improvements to our [DHT logic](https://docs.ipfs.tech/concepts/dht/). More efficient routing and providing—already 2-3x faster—lowers bandwidth usage and background traffic. Weve also updated our experimental QUIC transport to reduce connection latency and round-trips—with the aim to make this the default next release!
- **Speedy files transfers:** We sped up our file transfer mechanism, [Bitswap](https://docs.ipfs.tech/concepts/bitswap/), to make sharing data between many nodes much faster. [Read more](https://blog.ipfs.tech/2020-02-14-improved-bitswap-for-container-distribution/) about how we worked with Netflix to benchmark and stress-test these improvements!
- **Faster content discovery:** IPFS 0.5.0 makes finding and sharing data in the network much faster, thanks to large improvements to our [DHT logic](https://docs.ipfs.io/concepts/dht/). More efficient routing and providing—already 2-3x faster—lowers bandwidth usage and background traffic. Weve also updated our experimental QUIC transport to reduce connection latency and round-trips—with the aim to make this the default next release!
- **Speedy files transfers:** We sped up our file transfer mechanism, [Bitswap](https://docs.ipfs.io/concepts/bitswap/), to make sharing data between many nodes much faster. [Read more](https://blog.ipfs.io/2020-02-14-improved-bitswap-for-container-distribution/) about how we worked with Netflix to benchmark and stress-test these improvements!
- **Faster file adding:** Its now up to 2x faster to add files to the IPFS network using the Badger datastore on Linux and MacOS. Huzzah for async writes! Weve also configured Badger to use less memory.
- **Faster and more reliable mutable links:** The Inter-Planetary Name System ([IPNS](https://docs.ipfs.tech/concepts/ipns/)), our system for creating mutable links for content addresses, now provides faster naming lookups and has a new experimental pubsub transport to speed up record distribution. Providing an IPNS record is now _30-40x_ faster in 1K node network simulations!
- **Faster and more reliable mutable links:** The Inter-Planetary Name System ([IPNS](https://docs.ipfs.io/concepts/ipns/)), our system for creating mutable links for content addresses, now provides faster naming lookups and has a new experimental pubsub transport to speed up record distribution. Providing an IPNS record is now _30-40x_ faster in 1K node network simulations!
To ensure the reliability of all these large-scale improvements, we created [Testground](http://testground.ipfs.team/), a new testing tool for peer-to-peer networks at scale. This allowed us to validate and benchmark each enhancement across many network configurations with 1K+ node simulations—increasing development velocity and rigor.
@@ -75,7 +75,7 @@ With our new testing and release process, IPFS 0.5.0 has already been put to use
**_Brendan OBrien, Qri:_** “Our engineering time is one of our most valuable resources. Were now seeing a much more mature version of IPFS, which means we're able to spend more time on our own code vs our dependencies. It took less than a day to upgrade to IPFS 0.5.0, allowing us to commit more of our engineering time to building and fixing our own things.”
If youre running IPFS, we highly encourage you to upgrade ASAP to take advantage of all these improvements! Check out our [release notes](https://docs.ipfs.tech/recent-releases/go-ipfs-0-5/) and [upgrade how-to](https://docs.ipfs.tech/recent-releases/go-ipfs-0-5/update-procedure) to get started today!
If youre running IPFS, we highly encourage you to upgrade ASAP to take advantage of all these improvements! Check out our [release notes](https://docs.ipfs.io/recent-releases/go-ipfs-0-5/) and [upgrade how-to](https://docs.ipfs.io/recent-releases/go-ipfs-0-5/update-procedure) to get started today!
## Thank you, thank you, and thank you.
@@ -100,7 +100,7 @@ Also, a huge thank you to [everyone who contributed](https://github.com/ipfs/go-
Wed like to know what you think and help answer any questions you may have. [Please join us for a virtual meetup](https://www.meetup.com/San-Francisco-IPFS/events/270212268/) on **Friday, May 1st**, to deep-dive on the improvements in this release and field questions and feedback.
[![IPFS 0.5 Launch Meetup](../assets/090-go-ipfs-0-5-0-launch-meetup.png)](https://www.meetup.com/San-Francisco-IPFS/events/270212268/)
In the meantime, get started by [installing go-ipfs](https://dist.ipfs.tech/#go-ipfs) or [upgrading to go-ipfs 0.5](https://docs.ipfs.tech/recent-releases/go-ipfs-0-5/update-procedure) to see the improvements yourself!
In the meantime, get started by [installing go-ipfs](https://dist.ipfs.io/#go-ipfs) or [upgrading to go-ipfs 0.5](https://docs.ipfs.io/recent-releases/go-ipfs-0-5/update-procedure) to see the improvements yourself!
And, of course, there are many other ways to get involved with IPFS based on your skill set, interest, and availability. Please check out [our contribution page](https://github.com/ipfs/community/blob/master/CONTRIBUTING.md) on GitHub for guidance and next steps.

View File

@@ -9,11 +9,11 @@ tags:
- 'community'
---
Since its founding in 2014, the IPFS project has been stewarded by the [core IPFS working groups](https://github.com/ipfs/team-mgmt/blob/master/TEAMS_ROLES_STRUCTURES.md#active-teams), including developers, designers, researchers and project managers that work very hard towards its [success](https://blog.ipfs.tech/weekly-84/).
Since its founding in 2014, the IPFS project has been stewarded by the [core IPFS working groups](https://github.com/ipfs/team-mgmt/blob/master/TEAMS_ROLES_STRUCTURES.md#active-teams), including developers, designers, researchers and project managers that work very hard towards its [success](https://blog.ipfs.io/weekly-84/).
However, this success would be impossible without the participation of the open source community that has grown around IPFS - with participants from individuals, to nascent community-owned tools, to large organizations. We are lucky to have this thriving and influential community participating in our journey towards decentralization during these years. With their help, weve grown IPFS to empower [hundreds of tools, applications and projects](https://awesome.ipfs.tech/).
However, this success would be impossible without the participation of the open source community that has grown around IPFS - with participants from individuals, to nascent community-owned tools, to large organizations. We are lucky to have this thriving and influential community participating in our journey towards decentralization during these years. With their help, weve grown IPFS to empower [hundreds of tools, applications and projects](https://awesome.ipfs.io/).
A thriving, growing, and participatory open source community is key to the success of the IPFS project, and continues to be a focus for the core IPFS working groups. We want every user and developer interested in building IPFS applications — or willing to join forces to fix and improve the codebase — to feel welcomed, informed, and empowered by the community. Therefore, as part of our [secondary 2020 focus on contributor velocity and support](https://blog.ipfs.tech/2020-02-10-our-focus-for-2020/#increasing-contributor-velocity-supporting-adoption) we will:
A thriving, growing, and participatory open source community is key to the success of the IPFS project, and continues to be a focus for the core IPFS working groups. We want every user and developer interested in building IPFS applications — or willing to join forces to fix and improve the codebase — to feel welcomed, informed, and empowered by the community. Therefore, as part of our [secondary 2020 focus on contributor velocity and support](https://blog.ipfs.io/2020-02-10-our-focus-for-2020/#increasing-contributor-velocity-supporting-adoption) we will:
- Improve how users and developers get help, reducing response times and improving access to existing information and documentation.
- Reduce the number of pull requests and issue reports that stay in limbo by giving consistent feedback on status, prioritization and team capacity.
@@ -22,11 +22,11 @@ A thriving, growing, and participatory open source community is key to the succe
After discussion with active IPFS contributors and research into other OSS community best practices, weve identified a few changes to help improve the IPFS contributor experience:
- Contributors need a clear and explicit contribution process to the more than 100 active repositories in the IPFS organization. Any new contribution should have clarity on who is going to review the submission, what priority it has, and what the next steps are. To meet this need, well be drafting a new process in the [official IPFS forums](http://discuss.ipfs.tech/) so that it can be iterated on by the community.
- Contributors need a clear and explicit contribution process to the more than 100 active repositories in the IPFS organization. Any new contribution should have clarity on who is going to review the submission, what priority it has, and what the next steps are. To meet this need, well be drafting a new process in the [official IPFS forums](http://discuss.ipfs.io/) so that it can be iterated on by the community.
- The new IPFS Github organization [labelling taxonomy](https://github.com/ipfs/community/blob/master/ISSUE_LABELS.md) (recently rolled out to all repositories) aims to improve triaging of discussions and requests to clearly reflect status and priority. This comes with an additional effort to consolidate and clean up outdated issues and inactive repositories. As a result, many inactive repos have been moved to the [ipfs-inactive Github organization](https://github.com/ipfs-inactive) to clearly differentiate code that is actively maintained from code that is dormant or deprecated.
- To help funnel users and devs where the community can better support them, our [IPFS discussion forums](https://discuss.ipfs.tech/) will be more prominently displayed (in docs, READMEs and issue templates) as the default venue for support (along with pointers to [ipfs.io/help](https://ipfs.io/help)). Some discussion-only and meta-topic repositories are also in the process of migrating their conversations to the forums, where they can reach a wider audience and be more easily searchable and discoverable by other users.
- To help funnel users and devs where the community can better support them, our [IPFS discussion forums](https://discuss.ipfs.io/) will be more prominently displayed (in docs, READMEs and issue templates) as the default venue for support (along with pointers to [ipfs.io/help](https://ipfs.io/help)). Some discussion-only and meta-topic repositories are also in the process of migrating their conversations to the forums, where they can reach a wider audience and be more easily searchable and discoverable by other users.
- New contributors to repositories will now receive automated responses on their first submission, giving context on the process outlined above and reminders for needed information. This will help reduce the number of round trips for contributors and reviewers/maintainers.
- A [major review of the documentation](https://docs.ipfs.tech/) site is already underway to provide better developer documentation for our major implementations and products. [Watch this space!](https://github.com/ipfs/docs/milestones)
- A [major review of the documentation](https://docs.ipfs.io/) site is already underway to provide better developer documentation for our major implementations and products. [Watch this space!](https://github.com/ipfs/docs/milestones)
![IPFS Autoresponder and labels](../assets/091-dev-exp-labels-autoresponder.png)
@@ -35,7 +35,7 @@ At the same time, there are some things that are NOT changing:
- Old issues will not be closed or locked because they are old, or stale, or very low priority. Some parts of the IPFS project have a large backlog and it is important that the information is not lost or dismissed, but can be found by others interested in the topic.
- The core working groups will still dedicate a large portion of time to help users, answer questions, and review and merge contributions. However, there will be an extra focus on keeping discussions on point and limiting information explosion.
We want to empower the developer community to build amazing things with IPFS, and these contributor experience changes aim to make it faster and easier to start participating in the IPFS Community (whether filing issues or making PRs). However, improving that experience requires feedback and iteration as we refine our next steps as a community. For this, [a new discussion thread](https://discuss.ipfs.tech/t/ideas-to-improve-the-ipfs-developer-experience/7750) is available in the forum, where anyone can post new proposals or give suggestions/feedback on recent changes.
We want to empower the developer community to build amazing things with IPFS, and these contributor experience changes aim to make it faster and easier to start participating in the IPFS Community (whether filing issues or making PRs). However, improving that experience requires feedback and iteration as we refine our next steps as a community. For this, [a new discussion thread](https://discuss.ipfs.io/t/ideas-to-improve-the-ipfs-developer-experience/7750) is available in the forum, where anyone can post new proposals or give suggestions/feedback on recent changes.
We hope these measures help everyone build a happy and growing IPFS developer community!

Some files were not shown because too many files have changed in this diff Show More