We're happy to announce go-ipfs 0.8.0! This release is focused on making it easier to work with pins. We have some snazzy new features around being able to ask remote services to pin data for you, and modifying large pin sets is much faster than ever before.
๐ฆ Highlights
๐งท Remote pinning services
There is now support for asking remote services to pin data for you.
This comes with a redesign of how we're thinking about pinning and includes some commonly requested features such as:
Pins can have names (and coming soon metadata)
Data can be pinned in either the foreground or background
Pins can be searched by name, CID, or status
Command-line users benefit from ipfs pin remote commands, which simplify remote pinning operations. The built-in pinning service API client executes all the necessary remote calls under the hood. HTTP API users have access to new commands under /api/v0/pin/remote.
As long a service supports the vendor-agnostic IPFS Pinning Service API, it can be used directly in go-ipfs.
Examples include:
ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken
ipfs pin remote service ls --stat # confirm service mysrv is available
ipfs pin remote add /ipfs/bafymydata --service=mysrv --name=myfile # will block until status is pinned
ipfs pin remote ls --service=mysrv --name=myfile
ipfs pin remote rm --serivce=mysrv --name=myfile
More examples can be found under ipfs pin remote --help
A few notes:
Remote pinning services work with recursive pins. This means commands like ipfs pin remote ls will not list indirectly pinned CIDs.
By default, only finished, successful pins are listed. To list or remove pending/failed pins, pass explicit status: --status=queued,pinning,pinned,failed
While pinning service data is stored in the configuration file it cannot be edited directly via the ipfs config commands due to the sensitive nature of pinning service API keys. The ipfs pin remote service commands can be used for interacting with remote service settings.
An OpenAPI ipfs-pinning-service.yaml makes it easy to create or generate a compatible client/server. Anyone can implement it and allow for pin management.
๐ Remote MFS pinning policy
Every service added via ipfs pin remote service add can be tasked to update a pin every time MFS root changes:
We're happy to announce go-ipfs 0.8.0! This is planned to be a fairly small release focused on integrating in the new pinning service/remote pinning API that makes the experience of managing pins across pinning services easier and more uniform.
๐ฆ Highlights
๐งท Remote pinning services
There is now support for asking remote services to pin data for you. This means anyone can implement the spec (developed in this repo) and allow for pin management.
All of the CLI (and corresponding HTTP API) commands are available under ipfs pin remote.
This remote pinning service comes with a redesign of how we're thinking about pinning and includes some commonly requested features such as:
Pins can have names (and coming soon metadata)
The same content can be pinned multiple times, but of course stored only once
This allows applications using the same pinning service to manage their own pins without worrying about removing content important to another application
Data can be pinned in either the foreground or background
Examples include:
ipfs pin remote service add myservice https://myservice.tld:1234/api/path myaccess key
Remote pinning services work with recursive pins. This means commands like ipfs pin remote ls will not list indirectly pinned CIDs.
While pinning service data is stored in the configuration file it cannot be edited directly via the ipfs config commands due to the sensitive nature of pinning service API keys. The ipfs pin remote service commands can be used for interacting with remote service settings.
๐ Faster local pinning and unpinning
The pinning subsystem has been redesigned to be much faster and more flexible in how it tracks pins. For users who are working with many pins this will lead to a big speed increase in listing and modifying the set of pinned items as well as decreased memory usage.
Part of the redesign was setup to account for being able to interact with local pins the same way we can now interact with remote pins (e.g. names, being allowed to pin the same CID multiple times, etc.). Keep posted for more improvements to pinning.
DNSLink names on https:// subdomains
Previously DNSLink names would have trouble loading over subdomain gateways with HTTPS support since there is no way to get multilevel wildcard certificates (e.g. en.wikipedia-on-ipfs.org.ipns.dweb.link cannot be covered by *.ipns.dweb.link). Therefore, when trying to load DNSLink names over https:// subdomains go-ipfs we now forward to an encoded DNS name. Since DNS names cannot contain . in them they are escaped using -.
/ipns/en.wikipedia-on-ipfs.org โ
ipns://en.wikipedia-on-ipfs.org โ
https://dweb.link/ipns/en.wikipedia-on-ipfs.orghttps://en-wikipedia--on--ipfs-org.ipns.dweb.link :point_left: a single DNS label, no TLS error
QUIC update
... (truncated)
Commits
ce693d7 Merge pull request #7924 from ipfs/release-v0.8.0
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
- `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language
- `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language
- `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language
- `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/codynhat/ipfs-ios-backup/network/alerts).
Bumps github.com/ipfs/go-ipfs from 0.5.1 to 0.8.0.
Release notes
Sourced from github.com/ipfs/go-ipfs's releases.
... (truncated)
Changelog
Sourced from github.com/ipfs/go-ipfs's changelog.
... (truncated)
Commits
ce693d7
Merge pull request #7924 from ipfs/release-v0.8.030fa364
update CHANGELOG for v0.8.09a20c9e
Release v0.8.03d8321a
docs: RepinInterval94dd4be
style: docs/config.mde29ae2e
style: improved MFS PinName examplea40cbb0
docs: Pinning.RemoteServices.Policies5e330b2
Fix build issue with go1.169b8308d
update deps4080333
Release v0.8.0-rc2Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/codynhat/ipfs-ios-backup/network/alerts).