Changelog History
Page 1
-
v0.13.0 Changes
May 04, 2022We're happy to announce go-ipfs 0.13.0, packed full of changes and improvements!
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
Overview
π Below is an outline of all that is in this release, so you get a sense of all that's included.
- [π BREAKING CHANGES](#---breaking-changes)
- [
ipfs block put
command](#-ipfs-block-put--command) - [
ipfs cid codecs
command](#-ipfs-cid-codecs--command) - [
Swarm
configuration](#-swarm--configuration) - Circuit Relay V1 is deprecated
- [
ls
requests for/multistream/1.0.0
are removed](#-ls--requests-for---multistream-100--are-removed) - Gateway Items
- [
- [π¦ Highlights](#---highlights)
- [π§βπΌ libp2p Network Resource Manager (
Swarm.ResourceMgr
)](#------libp2p-network-resource-manager---swarmresourcemgr--) - [π Relay V2 client with auto discovery (
Swarm.RelayClient
)](#---relay-v2-client-with-auto-discovery---swarmrelayclient--) - [π HTTP Gateway improvements](#---http-gateway-improvements)
- [π± Support for Block and CAR response formats](#---support-for-block-and-car-response-formats)
- [π Fast listing generation for huge directories](#---fast-listing-generation-for-huge--directories)
- [π« Improved
Etag
andIf-None-Match
for bandwidth savings](#---improved--etag--and--if-none-match--for-bandwidth-savings) - [βοΈ Added X-Ipfs-Roots for smarter HTTP caches](#---added-x-ipfs-roots-for-smarter-http-caches)
- [π‘οΈ Added metrics per response type](#----added-metrics-per-response-type)
- [π΅οΈ OpenTelemetry tracing](#----opentelemetry-tracing)
- How to use Jaeger UI for visual tracing?
- [π©Ί Built-in
ipfs diag profile
to ease debugging](#---built-in--ipfs-diag-profile--to-ease-debugging) - [π Support for PEM/PKCS8 for key import/export](#---support-for-pem-pkcs8-for-key-import-export)
- [π§Ή Using standard IPLD codec names across the CLI/HTTP API](#---using-standard-ipld-codec-names-across-the-cli-http-api)
- [π³ Custom initialization for Docker](#---custom-initialization-for-docker)
- RPC API docs for experimental and deprecated commands
- Yamux over Mplex
- [π§βπΌ libp2p Network Resource Manager (
π BREAKING CHANGES
ipfs block put
command0οΈβ£
ipfs block put
command returns a CIDv1 withraw
codec by default now.ipfs block put --cid-codec
makesblock put
return CID with alternative codec- This impacts only the returned CID; it does not trigger any validation or data transformation.
- Retrieving a block with a different codec or CID version than it was put with is valid.
- Codec names are validated against tables from go-multicodec library.
- π
ipfs block put --format
is deprecated. It used incorrect codec names and should be avoided for new deployments. Use it only if you need the old, invalid behavior, namely:ipfs block put --format=v0
will produce CIDv0 (implicit dag-pb)ipfs block put --format=cbor
will produce CIDv1 with dag-cbor (!)ipfs block put --format=protobuf
will produce CIDv1 with dag-pb (!)
ipfs cid codecs
command- Now lists codecs from go-multicodec library.
- π
ipfs cid codecs --supported
can be passed to only show codecs supported in various go-ipfs commands.
ipfs cid format
command- π
--codec
was removed and replaced with--mc
to ensure existing users are aware of the following changes:--mc protobuf
now correctly points to code0x50
(was0x70
, which isdab-pg
)--mc cbor
now correctly points to code0x51
(was0x71
, which isdag-cbor
)
π§
Swarm
configuration- π Daemon will refuse to start if long-deprecated RelayV1 config key
Swarm.EnableAutoRelay
orSwarm.DisableRelay
is set totrue
. - If
Swarm.Transports.Network.Relay
is disabled, thenSwarm.RelayService
andSwarm.RelayClient
are also disabled (unless they have been explicitly enabled).
π Circuit Relay V1 is deprecated
- 0οΈβ£ By default,
Swarm.RelayClient
does not use Circuit Relay V1. Circuit V1 support is only enabled whenSwarm.RelayClient.StaticRelays
are specified.
- [π BREAKING CHANGES](#---breaking-changes)
-
v0.12.2 Changes
April 08, 2022π This patch release fixes a security issue wherein traversing some malformed DAGs can cause the node to panic.
π See also the security advisory: https://github.com/ipfs/go-ipfs/security/advisories/GHSA-mcq2-w56r-5w2w
π Note: the v0.11.1 patch release contains the Docker compose fix from v0.12.1 as well
π Changelog
Full Changelog
- github.com/ipld/go-codec-dagpb (v1.3.0 -> v1.3.2):
- fix: use protowire for Links bytes decoding
β€ Contributors
Contributor Commits Lines Β± Files Changed Rod Vagg 1 +34/-19 2 - github.com/ipld/go-codec-dagpb (v1.3.0 -> v1.3.2):
-
v0.12.1 Changes
March 17, 2022π This patch release fixes a security issue with the
docker-compose.yaml
file in which the IPFS daemon API listens on all interfaces instead of only the loopback interface, which could allow remote callers to control your IPFS daemon. If you use the includeddocker-compose.yaml
file, it is recommended to upgrade.π See also the security advisory: https://github.com/ipfs/go-ipfs/security/advisories/GHSA-fx5p-f64h-93xc
Thanks to @LynHyper for finding and disclosing this.
π Changelog
Full Changelog
- github.com/ipfs/go-ipfs:
- fix: listen on loopback for API and gateway ports in docker-compose.yaml
β€ Contributors
Contributor Commits Lines Β± Files Changed guseggert 1 +10/-3 1 - github.com/ipfs/go-ipfs:
-
v0.12.0 Changes
February 17, 2022π We're happy to announce go-ipfs 0.12.0. This release switches the storage of IPLD blocks to be keyed by multihash instead of CID.
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
π BREAKING CHANGES
ipfs refs local
will now list all blocks as if they were raw CIDv1 instead of with whatever CID version and IPLD codecs they were stored with. All other functionality should remain the same.
β‘οΈ Note: This change also effects ipfs-update so if you use that tool to mange your go-ipfs installation then grab ipfs-update v1.8.0 from dist.
Keep reading to learn more details.
π¦ Highlights
There is only one change since 0.11:
Blockstore migration from full CID to Multihash keys
0οΈβ£ We are switching the default low level datastore to be keyed only by the Multihash part of the CID, and deduplicate some blocks in the process. The blockstore will become codec-agnostic.
Rationale
π The blockstore/datastore layers are not concerned with data interpretation, only with storage of binary blocks and verification that the Multihash they are addressed with (which comes from the CID), matches the block. In fact, different CIDs, with different codecs prefixes, may be carrying the same multihash, and referencing the same block. Carrying the CID abstraction so low on the stack means potentially fetching and storing the same blocks multiple times just because they are referenced by different CIDs. Prior to this change, a CIDv1 with a
dag-cbor
codec and a CIDv1 with araw
codec, both containing the same multihash, would result in two identical blocks stored. A CIDv0 and CIDv1 both being the samedag-pb
block would also result in two copies.How migration works
β‘οΈ In order to perform the switch, and start referencing all blocks by their multihash, a migration will occur on update. This migration will take the repository version from 11 (current) to 12.
0οΈβ£ One thing to note is that any content addressed CIDv0 (all the hashes that start with
Qm...
, the current default in go-ipfs), does not need any migration, as CIDv0 are raw multihashes already. This means the migration will be very lightweight for the majority of users.The migration process will take care of re-keying any CIDv1 block so that it is only addressed by its multihash. Large nodes with lots of CIDv1-addressed content will need to go through a heavier process as the migration happens. This is how the migration works:
π§ 1. Phase 1: The migration script will perform a pass for every block in the datastore and will add all CIDv1s found to a file named
11-to-12-cids.txt
, in the go-ipfs configuration folder. Nothing is written in this first phase and it only serves to identify keys that will be migrated in phase 2. π§ 2. Phase 2: The migration script will perform a second pass where every CIDv1 block will be read and re-written with its raw-multihash as key. There is 1 worker performing this task, although more can be configured. Every 100MiB-worth of blocks (this is configurable), each worker will trigger a datastore "sync" (to ensure all written data is flushed to disk) and delete the CIDv1-addressed blocks that were just renamed. This provides a good compromise between speed and resources needed to run the migration.π At every sync, the migration emits a log message showing how many blocks need to be rewritten and how far the process is.
# FlatFS specific migration
π For those using a single FlatFS datastore as their backing blockstore (i.e. the default behavior), the migration (but not reversion) will take advantage of the ability to easily move/rename the blocks to improve migration performance.
π Unfortunately, other common datastores do not support renames which is what makes this FlatFS specific. If you are running a large custom datastore that supports renames you may want to consider running a fork of fs-repo-11-to-12 specific to your datastore.
If you want to disable this behavior, set the environment variable
IPFS_FS_MIGRATION_11_TO_12_ENABLE_FLATFS_FASTPATH
tofalse
.π§ ####### Migration configuration
π§ For those who want to tune the migration more precisely for their setups, there are two environment variables to configure:
IPFS_FS_MIGRATION_11_TO_12_NWORKERS
: an integer describing the number of migration workers - defaults to 1IPFS_FS_MIGRATION_11_TO_12_SYNC_SIZE_BYTES
: an integer describing the number of bytes after which migration workers will sync - defaults to 104857600 (i.e. 100MiB)
Migration caveats
Large repositories with very large numbers of CIDv1s should be mindful of the migration process:
- π We recommend ensuring that IPFS runs with an appropriate (high) file-descriptor limit, particularly when Badger is use as datastore backend. Badger is known to open many tables when experiencing a high number of writes, which may trigger "too many files open" type of errors during the migrations. If this happens, the migration can be retried with a higher FD limit (see below).
- Migrations using the Badger datastore may not immediately reclaim the space freed by the deletion of migrated blocks, thus space requirements may grow considerably. A periodic Badger-GC is run every 2 minutes, which will reclaim space used by deleted and de-duplicated blocks. The last portion of the space will only be reclaimed after go-ipfs starts (the Badger-GC cycle will trigger after 15 minutes).
- βͺ While there is a revert process detailed below, we recommend keeping a backup of the repository, particularly for very large ones, in case an issue happens, so that the revert can happen immediately and cases of repository corruption due to crashes or unexpected circumstances are not catastrophic.
Migration interruptions and retries
If a problem occurs during the migration, it is be possible to simply re-start and retry it:
π 1. Phase 1 will never overwrite the
11-to-12-cids.txt
file, but only append to it (so that a list of things we were supposed to have migrated during our first attempt is not lost - this is important for reverts, see below).- Phase 2 will proceed to continue re-keying blocks that were not re-keyed during previous attempts.
βͺ ###### Migration reverts
π It is also possible to revert the migration after it has succeeded, for example to go to a previous go-ipfs version (<=0.11), even after starting and using go-ipfs in the new version (>=0.12). The revert process works as follows:
- The
11-to-12-cids.txt
file is read, which has the list of all the CIDv1s that had to be rewritten for the migration. π§ 2. A CIDv1-addressed block is written for every item on the list. This work is performed by 1 worker (configurable), syncing every 100MiB (configurable). π 3. It is ensured that every CIDv1 pin, and every CIDv1 reference in MFS, are also written as CIDV1-addressed blocks, regardless of whether they were part of the original migration or were added later.
β¬οΈ The revert process does not delete any blocks--it only makes sure that blocks that were accessible with CIDv1s before the migration are again keyed with CIDv1s. This may result in a datastore becoming twice as large (i.e. if all the blocks were CIDv1-addressed before the migration). This is however done this way to cover corner cases: user can add CIDv1s after migration, which may reference blocks that existed as CIDv0 before migration. The revert aims to ensure that no data becomes unavailable on downgrade.
β‘οΈ While go-ipfs will auto-run the migration for you, it will not run the reversion. To do so you can download the latest migration binary or use ipfs-update.
Custom datastores
π As with previous migrations if you work with custom datastores and want to leverage the migration you can run a fork of fs-repo-11-to-12 specific to your datastore. The repo includes instructions on building for different datastores.
For this migration, if your datastore has fast renames you may want to consider writing some code to leverage the particular efficiencies of your datastore similar to what was done for FlatFS.
π Changelog
- github.com/ipfs/go-ipfs:
- Release v0.12.0
- docs: v0.12.0 release notes
- chore: bump migrations dist.ipfs.io CID to contain fs-repo-11-to-12 v1.0.2
- feat: refactor Fetcher interface used for downloading migrations (#8728) (ipfs/go-ipfs#8728)
- feat: log multifetcher errors
- Release v0.12.0-rc1
- chore: bump Go version to 1.16.12
- feat: switch to raw multihashes for blocks (ipfs/go-ipfs#6816)
- chore: add release template snippet for fetching artifact tarball
- chore: bump Go version to 1.16.11
- chore: add release steps for upgrading Go
- Merge branch 'release'
- fix(corehttp): adjust peer counting metrics (#8577) (ipfs/go-ipfs#8577)
- chore: update version to v0.12.0-dev
- github.com/ipfs/go-filestore (v0.1.0 -> v1.1.0):
- Version 1.1.0
- feat: plumb through context changes
- sync: update CI config files (#54) (ipfs/go-filestore#54)
- fix staticcheck (ipfs/go-filestore#48)
- Work with Multihashes directly (#21) (ipfs/go-filestore#21)
- github.com/ipfs/go-ipfs-blockstore (v0.2.1 -> v1.1.2):
- Release v1.1.2
- feat: per-cid locking
- Version 1.1.1
- fix: remove context from HashOnRead
- Version 1.1.0 (#91) (ipfs/go-ipfs-blockstore#91)
- feat: add context to interfaces (#90) (ipfs/go-ipfs-blockstore#90)
- sync: update CI config files (#88) (ipfs/go-ipfs-blockstore#88)
- add constructor that doesnt mess with datastore keys (ipfs/go-ipfs-blockstore#83)
- Use bloom filter in GetSize
- fix staticcheck (ipfs/go-ipfs-blockstore#73)
- add BenchmarkARCCacheConcurrentOps (ipfs/go-ipfs-blockstore#70)
- fix(arc): striped locking on last byte of CID (ipfs/go-ipfs-blockstore#67)
- make idstore implement io.Closer. (#60) (ipfs/go-ipfs-blockstore#60)
- add View() to all the various blockstores. (#59) (ipfs/go-ipfs-blockstore#59)
- Optimize id store (ipfs/go-ipfs-blockstore#56)
- add race fix for HashOnRead (ipfs/go-ipfs-blockstore#50)
- Add test to maintain Put contract of calling Has first (ipfs/go-ipfs-blockstore#47)
- Update readme and license (ipfs/go-ipfs-blockstore#44)
- feat: switch to raw multihashes for blocks (ipfs/go-ipfs-blockstore#38)
- github.com/ipfs/go-ipfs-ds-help (v0.1.1 -> v1.1.0):
- Update version.json (#38) (ipfs/go-ipfs-ds-help#38)
- sync: update CI config files (#37) (ipfs/go-ipfs-ds-help#37)
- feat: switch to raw multihashes for blocks (ipfs/go-ipfs-ds-help#18)
β€οΈ Contributors
Contributor Commits Lines Β± Files Changed Gus Eggert 10 +333/-321 24 Steven Allen 7 +289/-190 13 Hector Sanjuan 9 +134/-109 18 Adin Schmahmann 11 +179/-55 21 RaΓΊl Kripalani 2 +152/-42 5 Daniel MartΓ 1 +120/-1 1 frrist 1 +95/-13 2 Alex Trottier 2 +22/-11 4 Andrey Petrov 1 +32/-0 1 Lucas Molas 1 +18/-7 2 π Marten Seemann 2 +11/-7 whyrusleeping 1 +10/-0 1 web3-bot 3 +9/-0 3 postables 1 +5/-3 1 Dr Ian Preston 1 +4/-0 1 -
v0.11.0 Changes
December 08, 2021π We're happy to announce go-ipfs 0.11.0. This release comes with improvements to the UnixFS Sharding and PubSub experiments as well as support for Circuit-Relay v2 which sets the network up for decentralized hole punching support.
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
π BREAKING CHANGES
- 0οΈβ£ UnixFS sharding is now automatic and enabled by default
- HAMT-based sharding is applied to large directories (i.e. those that would serialize into block larger than ~256KiB)s. This means importing data via commands like
ipfs add -r <directory>
may result in different CIDs due to the different DAG representations. - Support for
Experimental.ShardingEnabled
is removed.
- HAMT-based sharding is applied to large directories (i.e. those that would serialize into block larger than ~256KiB)s. This means importing data via commands like
- π go-ipfs can no longer act as a Circuit Relay v1
- Node will refuse to start if
Swarm.EnableRelayHop
is set totrue
- If you depend on v1 relay service provider, see "Removal of v1 relay service" section for available migration options.
- Node will refuse to start if
- HTTP RPC wire format for experimental commands at
/api/v0/pubsub
changed.- If you use js-ipfs-http-client or go-ipfs-http-client, just update to their latest version.
- If you use something else, see "Multibase in PubSub" section below for migration details.
Keep reading to learn more details.
π¦ Highlights
π Automatic UnixFS sharding
π Truly big directories can have so many items, that the root block with all of their names is too big to be exchanged with other peers. This was partially solved by HAMT-sharding, which was introduced a while ago as opt-in. The main downside of the implementation was that it was a global flag that sharded all imported directories (big and small).
π This release solves that inconvenience by making UnixFS sharding smarter and applies it only to larger directories (i.e. directories that would be at least ~256KiB). This is now the default behavior in
ipfs add
andipfs files
commands, where UnixFS sharding works out-of-the-box.π Circuit Relay v2
π This release adds support for the circuit relay v2 protocol based on the reference implementation from go-libp2p 0.16.
π¦ This is the cornerstone for maximizing p2p connections between IPFS peers. Every publicly dialable peer can now act as a limited relay v2, which can be used for hole punching and other decentralized signaling protocols.
π§ Limited relay v2 configuration options
π§ go-ipfs can now be configured to act as a
RelayClient
that uses other peers for autorelay functionality when behind a NAT, or provide a limitedRelayService
to other peers on the network.β‘οΈ Starting with go-ipfs v0.11 every publicly dialable go-ipfs (based on AutoNAT determination) will start a limited
RelayService
.RelayClient
remains disabled by default for now, as we want the network to update and get enough v2 service providers first.π Note: the limited Circuit Relay v2 provided with this release only allows low-bandwidth protocols (identify, ping, holepunch) over transient connections. If you want to relay things like bitswap sessions, you need to set up a v1 relay by some other means. See details below.
Removal of unlimited v1 relay service provider
π§ Switching to v2 of the relay spec means removal or deprecation of configuration keys that were specific to v1.
- π Relay transport and client support circuit-relay v2:
Swarm.EnableAutoRelay
was replaced bySwarm.RelayClient.Enabled
.Swarm.DisableRelay
is deprecated, relay transport can be now disabled globally (both client and service) by settingSwarm.Transports.Network.Relay
tofalse
- Relay v1 service provider was replaced by v2:
Swarm.EnableRelayHop
no longer starts an unlimited v1 relay. If you have it set totrue
the node will refuse to start and display an error message.- Existing users who choose to continue running a v1 relay should migrate their setups to relay v1 based on js-ipfs running in node, or the standalone libp2p-relay-daemon configured with
RelayV1.Enabled
set totrue
. Be mindful that v1 relays are unlimited, and one may want to set up some ACL based either on PeerIDs or Subnets.
π³ Decentralized Hole Punching (DCUtR protocol client)
We are working towards enabling hole punching for NAT traversal when port forwarding is not possible.
π go-libp2p 0.16 provides an implementation of the DCUtR (decentralized hole punching) protocol. It is hidden behind the
Swarm.EnableHolePunching
configuration flag.β¬οΈ When enabled, go-ipfs will coordinate with the counterparty using a relayed v2 connection, to upgrade to a direct connection through a NAT/firewall whenever possible.
π This feature is disabled by default in this release, but we hope to enable it by default as soon the network updates to go-ipfs v0.11 and gains a healthy set of limited v2 relays.
π¬ Multibase in PubSub HTTP RPC API
π This release fixed some edge cases that were reported by users of the PubSub experiment, getting it closer to becoming a stable feature of go-ipfs. Some PubSub users will notice that the plaintext limitation is lifted: one can now use line breaks in messages published to non-ascii topic names, or even publish arbitrary bytes to arbitrary topics. It required a change to the wire format used when pubsub commands are executed over the HTTP RPC API at
/api/v0/pubsub/*
, and also modified the behavior of theipfs pubsub pub
command, which now is publishing only a single pubsub message with data read from a file or stdin.PubSub client migration tips
β‘οΈ If you use the HTTP RPC API with the go-ipfs-http-client library, make sure to update to the latest version. The next version of js-ipfs-http-client will use the new wire format as well, so you don't need to do anything.
π If you use
/api/v0/pubsub/*
directly or maintain your own client library, you must adjust your HTTP client code. Byte fields and URL args are now encoded inbase64url
Multibase. Encode/decode bytes using theipfs multibase --help
commands, or use the multiformats libraries (js-multiformats, go-multibase).Low level changes:
topic
passed as URLarg
in requests to/api/v0/pubsub/*
must be encoded in URL-safe multibase (base64url
)data
,from
,seqno
andtopicIDs
returned in JSON responses are now encoded in multibase- 0οΈβ£ Peer IDs returned in
from
now use the same default text representation from go-libp2p and peerid encoder/decoder from libp2p. This means the same text representation as in as inswarm peers
, which makes it possible to compare them without decoding multibase. - π
/api/v0/pubsub/pub
no longer acceptsdata
to be passed as URL, it has to be sent asmultipart/form-data
. This removes size limitations based on URL length, and enables regular HTTP clients to publish data to PubSub topics. For example, to publishsome-file
to topic namedtest-topic
using vanillacurl
, one would execute:curl -X POST -v -F "[email protected]" 'http://127.0.0.1:5001/api/v0/pubsub/pub?arg=$(echo -n test-topic | ipfs multibase encode -b base64url)'
- π»
ipfs pubsub pub
on the command line no longer accepts variadicdata
arguments. Instead, it expects a single file input or stream of bytes from stdin. This ensures arbitrary stream of bytes can be published, removing limitation around messages that include\n
or\r\n
.
π§ β New configuration flags
- π
Addresses.AppendAnnounce
is an array of multiaddrs, similar toAddresses.Announce
, except it does not override inferred swarm addresses, but appends custom ones to the list. - Pubsub experiments can now be enabled via config, removing the need for CLI flag to be passed every time daemon starts:
Pubsub.Enabled
enables the pubsub system.Ipns.UsePubsub
enables IPFS over pubsub experiment for publishing IPNS records in real time.
π π Support for DAG-JOSE IPLD codec
JOSE is a standard for signing and encrypting JSON objects. DAG-JOSE is an IPLD codec based on JOSE and represented in CBOR. Upon encountering the
dag-jose
multicodec indicator, implementations can expect that the block contains dag-cbor encoded data which matches the IPLD schema from the DAG-JOSE spec.This work was contributed by Ceramic and acts as a template for future IPFS improvements driven by the real world needs of the IPFS community.
π Changelog
- github.com/ipfs/go-ipfs:
- docs: update changelog for v0.11.0
- Release v0.11.0-rc2
- fix(corehttp): adjust peer counting metrics (#8577) (ipfs/go-ipfs#8577)
- Release v0.11.0-rc1
- feat: Swarm.EnableHolePunching flag (#8562) (ipfs/go-ipfs#8562)
- feat: enabling pubsub and ipns-pubsub via config flags (#8510) (ipfs/go-ipfs#8510)
- Integrate go-dag-jose plugin (#8569) (ipfs/go-ipfs#8569)
- feat: Addresses.AppendAnnounce (#8177) (ipfs/go-ipfs#8177)
- fix: multibase in pubsub http rpc (#8183) (ipfs/go-ipfs#8183)
- refactor: remove dir-index-html submodule (ipfs/go-ipfs#8555)
- feat: hard deprecation of IPFS_REUSEPORT
- feat: go-libp2p 0.16, UnixFS autosharding and go-datastore with contexts (#8563) (ipfs/go-ipfs#8563)
- chore: fix link in README.md (#8551) (ipfs/go-ipfs#8551)
- Updating release template based off some 0.10 learnings (#8491) (ipfs/go-ipfs#8491)
- fix: multiple subdomain gateways on same domain (#8556) (ipfs/go-ipfs#8556)
- Fix typos (#8548) (ipfs/go-ipfs#8548)
- Add support for multiple files to
ipfs files rm
. - add a docker-compose file (#8387) (ipfs/go-ipfs#8387)
- fix(sharness): use -Q option instead of pipe to tail cmd
- Add Homebrew installation method. (ipfs/go-ipfs#8545)
- docs: fix ipfs files cp examples (#8533) (ipfs/go-ipfs#8533)
- fix(unixfs): check for errors before dereferencing the link (ipfs/go-ipfs#8508)
- chore: replace go-merkledag walk with go-ipld-prime traversal for dag export (#8506) (ipfs/go-ipfs#8506)
- test: add sharness test for reading ADLs with FUSE
- fix: allow the levelds compression level to be unspecified
- (ipfs/go-ipfs#8457)
- (ipfs/go-ipfs#8482)
- Added the missing heathcheck for the container (#8429) (ipfs/go-ipfs#8429)
- chore: update dir-index-html to v1.2.2
- Update RELEASE_ISSUE_TEMPLATE.md
- Update RELEASE_ISSUE_TEMPLATE.md
- add more logging to flaky TestPeersTotal
- Update RELEASE_ISSUE_TEMPLATE.md
- Update RELEASE_ISSUE_TEMPLATE.md
- Updating chocolatey to reference go-ipfs
- chore: update changelog for v0.10.0
- add testground plans to bitswap on CI
- ci: move Docker image build to Actions (#8467) (ipfs/go-ipfs#8467)
- fix(cli): object add-link: do not allow blocks over BS limit (#8414) (ipfs/go-ipfs#8414)
- fuse: load unixfs adls as their dagpb substrates
- enable the legacy mDNS implementation
- change ipfs dag get flag name from format to output-codec (ipfs/go-ipfs#8440)
- change names of ipfs dag put flags to make changes clearer (ipfs/go-ipfs#8439)
- test: check behavior of loading UnixFS sharded directories with missing shards
- (ipfs/go-ipfs#8432)
- feat: dag import --stats (#8237) (ipfs/go-ipfs#8237)
- feat: ipfs-webui v2.13.0 (#8430) (ipfs/go-ipfs#8430)
- feat(cli): add daemon option --agent-version-suffix (#8419) (ipfs/go-ipfs#8419)
- feat: multibase transcode command (#8403) (ipfs/go-ipfs#8403)
- fix: take the lock while listing peers
- feature: 'ipfs swarm peering' command (#8147) (ipfs/go-ipfs#8147)
- chore: update IPFS Desktop testing steps (#8393) (ipfs/go-ipfs#8393)
- add more buttons; remove some sections covered in the docs; general cleanup (ipfs/go-ipfs#8274)
- Cosmetic fixups in examples (#8325) (ipfs/go-ipfs#8325)
- perf: use performance-enhancing FUSE mount options
- ci: publish Docker images for bifrost-* branches
- chore: add comments to peerlog plugin about being unsupported
- test: add unit tests for peerlog config parsing
- ci: preload peerlog plugin, disable by default
- fix(mkreleaselog): specify the parent commit when diffing
- update version to v0.11.0-dev
- github.com/ipfs/go-bitswap (v0.4.0 -> v0.5.1):
- Version 0.5.1
- Change incorrect function name in README (#541) (ipfs/go-bitswap#541)
- Version 0.5.0 (#540) (ipfs/go-bitswap#540)
- feat: plumb through contexts (#539) (ipfs/go-bitswap#539)
- sync: update CI config files (#538) (ipfs/go-bitswap#538)
- fix: optimize handling for peers with lots of tasks (ipfs/go-bitswap#537)
- Enable custom task prioritization logic (ipfs/go-bitswap#535)
- feat: cache the materialized wantlist (ipfs/go-bitswap#530)
- fix: reduce receive contention (ipfs/go-bitswap#536)
- Fix ProviderQueryManager test timings (ipfs/go-bitswap#534)
- fix: rename wiretap to tracer (ipfs/go-bitswap#531)
- fix: fix race on "responsive" check (ipfs/go-bitswap#528)
- fix: reduce log verbosity
- github.com/ipfs/go-blockservice (v0.1.7 -> v0.2.1):
- Version 0.2.1
- Version 0.2.0 (#87) (ipfs/go-blockservice#87)
- feat: add context to interfaces (#86) (ipfs/go-blockservice#86)
- sync: update CI config files (#85) (ipfs/go-blockservice#85)
- chore: update log (ipfs/go-blockservice#84)
- github.com/ipfs/go-cid (v0.0.7 -> v0.1.0):
- amend the CidFromReader slice extension math
- implement CidFromReader
- chore: fixups from running go vet, go fmt and staticcheck (ipfs/go-cid#122)
- s/characters/bytes
- Fix inaccurate comment for uvarint
- coverage: more tests for cid
- coverage: more tests for varint
- coverage: more tests for builder
- fix: make tests run with Go 1.15
- Add the dagjose multiformat
- github.com/ipfs/go-datastore (v0.4.6 -> v0.5.1):
- Release v0.5.1
- chore: add lots of interface assertions
- fix: make NullDatastore satisfy the Batching interface again
- Update version.json (#183) (ipfs/go-datastore#183)
- feat: add context to interfaces (#181) (ipfs/go-datastore#181)
- sync: update CI config files (ipfs/go-datastore#182)
- github.com/ipfs/go-ds-badger (v0.2.7 -> v0.3.0):
- feat: plumb through contexts (#119) (ipfs/go-ds-badger#119)
- github.com/ipfs/go-ds-flatfs (v0.4.5 -> v0.5.1):
- Update version.json
- fix: add context to DiskUsage()
- Version 0.5.0 (#99) (ipfs/go-ds-flatfs#99)
- feat: add contexts on datastore methods (#98) (ipfs/go-ds-flatfs#98)
- sync: update CI config files (#97) (ipfs/go-ds-flatfs#97)
- sync: update CI config files (ipfs/go-ds-flatfs#96)
- fix staticcheck (ipfs/go-ds-flatfs#92)
- fix typo in readme.go (ipfs/go-ds-flatfs#89)
- github.com/ipfs/go-ds-leveldb (v0.4.2 -> v0.5.0):
- Version 0.5.0 (#58) (ipfs/go-ds-leveldb#58)
- feat: plumb through contexts (#57) (ipfs/go-ds-leveldb#57)
- sync: update CI config files (#56) (ipfs/go-ds-leveldb#56)
- fix closing of datastore in tests (ipfs/go-ds-leveldb#52)
- fix staticcheck (ipfs/go-ds-leveldb#49)
- fix typo in function documentation (ipfs/go-ds-leveldb#46)
- github.com/ipfs/go-ds-measure (v0.1.0 -> v0.2.0):
- Version 0.2.0 (#39) (ipfs/go-ds-measure#39)
- feat: add contexts on datastore methods (#38) (ipfs/go-ds-measure#38)
- sync: update CI config files (#37) (ipfs/go-ds-measure#37)
- github.com/ipfs/go-fetcher (v1.5.0 -> v1.6.1):
- Version 1.6.1
- Version 1.6.0 (#29) (ipfs/go-fetcher#29)
- feat: plumb through context changes (#28) (ipfs/go-fetcher#28)
- sync: update CI config files (#27) (ipfs/go-fetcher#27)
- add a fetcher constructor for the case where we already have a session (ipfs/go-fetcher#26)
- github.com/ipfs/go-filestore (v0.0.3 -> v0.1.0):
- feat: plumb through context changes (#56) (ipfs/go-filestore#56)
- github.com/ipfs/go-graphsync (v0.8.0 -> v0.11.0):
- docs(CHANGELOG): update for v0.11.0 release
- Merge branch 'release/v0.10.6'
- update to context datastores (#275) (ipfs/go-graphsync#275)
- feat!(requestmanager): remove request allocation backpressure (#272) (ipfs/go-graphsync#272)
- message/pb: stop using gogo/protobuf (#277) (ipfs/go-graphsync#277)
- mark all test helper funcs via t.Helper (#276) (ipfs/go-graphsync#276)
- chore(queryexecutor): remove unused RunTraversal
- chore(responsemanager): remove unused workSignal
- chore(queryexecutor): fix tests for runtraversal refactor + clean up
- feat(queryexecutor): merge RunTraversal into QueryExecutor
- feat(responsemanager): QueryExecutor to separate module - use TaskQueue, add tests
- Merge branch 'release/v0.10.5'
- fix(responseassembler): dont hold block data reference in passed on subscribed block link (#268) (ipfs/go-graphsync#268)
- sync: update CI config files (#266) (ipfs/go-graphsync#266)
- Check IPLD context cancellation error type instead of string comparison
- Use
context.CancelFunc
instead offunc()
(#257) (ipfs/go-graphsync#257) - fix: bail properly when budget exceeded
- feat(requestmanager): report inProgressRequestCount on OutgoingRequests event
- fix(requestmanager): remove failing racy test select block
- feat(requestmanager): add OutgoingRequeustProcessingListener
- Merge branch 'release/v0.10.4'
- fix(allocator): prevent buffer overflow (#248) (ipfs/go-graphsync#248)
- Merge branch 'release/v0.10.3'
- Configure message parameters (#247) (ipfs/go-graphsync#247)
- Stats! (#246) (ipfs/go-graphsync#246)
- Limit simultaneous incoming requests on a per peer basis (#245) (ipfs/go-graphsync#245)
- sync: update CI config files (#191) (ipfs/go-graphsync#191)
- Merge branch 'release/v0.10.2'
- test(responsemanager): fix flakiness TestCancellationViaCommand (#243) (ipfs/go-graphsync#243)
- Fix deadlock on notifications (#242) (ipfs/go-graphsync#242)
- Merge branch 'release/v0.10.1'
- Free memory on request finish (#240) (ipfs/go-graphsync#240)
- release: v1.10.0 (ipfs/go-graphsync#238)
- Add support for IPLD prime's budgets feature in selectors (#235) (ipfs/go-graphsync#235)
- feat(graphsync): add an index for blocks in the on new block hook (#234) (ipfs/go-graphsync#234)
- Do not send first blocks extension (#230) (ipfs/go-graphsync#230)
- Protect Libp2p Connections (#229) (ipfs/go-graphsync#229)
- test(responsemanager): remove check (#228) (ipfs/go-graphsync#228)
- feat(graphsync): give missing blocks a named error (#227) (ipfs/go-graphsync#227)
- Add request limits (#224) (ipfs/go-graphsync#224)
- Tech Debt Cleanup and Docs Update (#219) (ipfs/go-graphsync#219)
- Release/v0.9.3 (ipfs/go-graphsync#218)
- 0.9.2 release (ipfs/go-graphsync#217)
- fix(requestmanager): remove main thread block on allocation (#216) (ipfs/go-graphsync#216)
- feat(allocator): add debug logging (#213) (ipfs/go-graphsync#213)
- fix: spurious warn log (#210) (ipfs/go-graphsync#210)
- docs(CHANGELOG): update for v0.9.1 release (#212) (ipfs/go-graphsync#212)
- fix(message): fix dropping of response extensions (#211) (ipfs/go-graphsync#211)
- docs(CHANGELOG): update change log (ipfs/go-graphsync#208)
- docs(README): add notice about branch rename
- fix(graphsync): make sure linkcontext is passed (#207) (ipfs/go-graphsync#207)
- Merge final v0.6.x commit history, and 0.8.0 changelog (#205) (ipfs/go-graphsync#205)
- Fix broken link to IPLD selector documentation (#189) (ipfs/go-graphsync#189)
- fix: check errors before defering a close (#200) (ipfs/go-graphsync#200)
- chore: fix checks (#197) (ipfs/go-graphsync#197)
- Merge the v0.6.x commit history (#190) (ipfs/go-graphsync#190)
- Ready for universal CI (#187) (ipfs/go-graphsync#187)
- fix(requestmanager): pass through linksystem (#166) (ipfs/go-graphsync#166)
- fix missing word in section title (#179) (ipfs/go-graphsync#179)
- github.com/ipfs/go-ipfs-blockstore (v0.1.6 -> v0.2.1):
- fix: revert back to [email protected] (#92) (ipfs/go-ipfs-blockstore#92)
- feat: add context to interfaces & plumb through datastore contexts (#89) (ipfs/go-ipfs-blockstore#89)
- github.com/ipfs/go-ipfs-config (v0.16.0 -> v0.18.0):
- Release v0.18.0 (#159) (ipfs/go-ipfs-config#159)
- feat: add Addresses.AppendAnnounce (#135) (ipfs/go-ipfs-config#135)
- feat: omitempty Swarm.EnableRelayHop for circuit v1 migration (#157) (ipfs/go-ipfs-config#157)
- chore: omitempty Experimental.ShardingEnabled (#158) (ipfs/go-ipfs-config#158)
- chore: update comment to match struct
- Release v0.17.0 (#156) (ipfs/go-ipfs-config#156)
- feat: add a flag to enable the hole punching service (#155) (ipfs/go-ipfs-config#155)
- improve AutoRelay configuration, add config option for static relays (ipfs/go-ipfs-config#154)
- feat: Swarm.RelayService (circuit v2) (#146) (ipfs/go-ipfs-config#146)
- fix: String method on the OptionalString (#153) (ipfs/go-ipfs-config#153)
- sync: update CI config files (#152) (ipfs/go-ipfs-config#152)
- feat: OptionalString type and UnixFSShardingSizeThreshold (#149) (ipfs/go-ipfs-config#149)
- feat: pubsub and ipns pubsub flags (#145) (ipfs/go-ipfs-config#145)
- feat: add an OptionalDuration type (#148) (ipfs/go-ipfs-config#148)
- github.com/ipfs/go-ipfs-exchange-interface (v0.0.1 -> v0.1.0):
- Update version.json (#20) (ipfs/go-ipfs-exchange-interface#20)
- sync: update CI config files (#19) (ipfs/go-ipfs-exchange-interface#19)
- feat: add context to interface (#18) (ipfs/go-ipfs-exchange-interface#18)
- doc: add a lead maintainer
- github.com/ipfs/go-ipfs-exchange-offline (v0.0.1 -> v0.1.1):
- Version 0.1.1
- Version 0.1.0 (#43) (ipfs/go-ipfs-exchange-offline#43)
- feat: plumb through contexts (#42) (ipfs/go-ipfs-exchange-offline#42)
- sync: update CI config files (#41) (ipfs/go-ipfs-exchange-offline#41)
- fix staticcheck (ipfs/go-ipfs-exchange-offline#35)
- chore(gx): remove gx
- github.com/ipfs/go-ipfs-files (v0.0.8 -> v0.0.9):
- sync: update CI config files (ipfs/go-ipfs-files#40)
- fix: manually parse the content disposition to preserve directories (ipfs/go-ipfs-files#42)
- fix: round timestamps down by truncating them to seconds (ipfs/go-ipfs-files#41)
- sync: update CI config files (ipfs/go-ipfs-files#34)
- Fix test failure on Windows caused by nil
sys
in mockFileInfo
(ipfs/go-ipfs-files#39) - fix staticcheck (ipfs/go-ipfs-files#35)
- fix linters (ipfs/go-ipfs-files#33)
- github.com/ipfs/go-ipfs-pinner (v0.1.2 -> v0.2.1):
- feat: plumb through context changes (#18) (ipfs/go-ipfs-pinner#18)
- github.com/ipfs/go-ipfs-provider (v0.6.1 -> v0.7.1):
- Fix go vet and staticcheck (ipfs/go-ipfs-provider#40)
- feat: plumb through datastore contexts (#39) (ipfs/go-ipfs-provider#39)
- github.com/ipfs/go-ipfs-routing (v0.1.0 -> v0.2.1):
- Version 0.2.1
- Bump version to 0.2.0 (#29) (ipfs/go-ipfs-routing#29)
- feat: plumb through context changes (#28) (ipfs/go-ipfs-routing#28)
- sync: update CI config files (#27) (ipfs/go-ipfs-routing#27)
- fix staticcheck (ipfs/go-ipfs-routing#24)
- github.com/ipfs/go-merkledag (v0.4.0 -> v0.5.1):
- Version 0.5.1
- Version 0.5.0 (#79) (ipfs/go-merkledag#79)
- feat: plumb through contexts (#78) (ipfs/go-merkledag#78)
- sync: update CI config files (#77) (ipfs/go-merkledag#77)
- expose session construction to other callers
- fix RawNode incomplete stats
- github.com/ipfs/go-mfs (v0.1.2 -> v0.2.1):
- Version 0.2.1
- Version 0.2.0 (#96) (ipfs/go-mfs#96)
- support threshold based automatic sharding and unsharding of directories (#88) (ipfs/go-mfs#88)
- sync: update CI config files (#94) (ipfs/go-mfs#94)
- Fix lint errors (ipfs/go-mfs#90)
- remove Makefile (ipfs/go-mfs#89)
- github.com/ipfs/go-namesys (v0.3.1 -> v0.4.0):
- Release v0.4.0
- feat: plumb through datastore contexts
- sync: update CI config files (#23) (ipfs/go-namesys#23)
- github.com/ipfs/go-path (v0.1.2 -> v0.2.1):
- Version 0.2.1
- Version 0.2.0 (#48) (ipfs/go-path#48)
- feat: plumb through context changes (#47) (ipfs/go-path#47)
- sync: update CI config files (#46) (ipfs/go-path#46)
- Revert "feat: plumb through context changes"
- feat: plumb through context changes
- github.com/ipfs/go-peertaskqueue (v0.4.0 -> v0.7.0):
- feat: optimize checking if a new task is "better" (ipfs/go-peertaskqueue#19)
- Adds customizable prioritization logic for peertracker and peertaskqueue (ipfs/go-peertaskqueue#17)
- When priority is equal, use FIFO (ipfs/go-peertaskqueue#16)
- github.com/ipfs/go-unixfs (v0.2.5 -> v0.3.1):
- Version 0.3.1
- Version 0.3.0 (#114) (ipfs/go-unixfs#114)
- feat: plumb through datastore context changes
- Size-based unsharding (#94) (ipfs/go-unixfs#94)
- sync: update CI config files (#112) (ipfs/go-unixfs#112)
- chore(deps): move bitfield to ipfs org (ipfs/go-unixfs#98)
- fix staticcheck (ipfs/go-unixfs#95)
- fix(directory): initialize size when computing it (ipfs/go-unixfs#93)
- fix: always return upgradeable instead of basic dir (#92) (ipfs/go-unixfs#92)
- feat: switch to HAMT based on size (#91) (ipfs/go-unixfs#91)
- go fmt
- fix: add pointer receiver
- add test
- feat: add UpgradeableDirectory
- github.com/ipfs/interface-go-ipfs-core (v0.5.1 -> v0.5.2):
- fix: check errors by string (ipfs/interface-go-ipfs-core#76)
- github.com/ipfs/tar-utils (v0.0.1 -> v0.0.2):
- Release v0.0.2 (#8) (ipfs/tar-utils#8)
- sync: update CI config files (ipfs/tar-utils#7)
- sync: update CI config files (#6) (ipfs/tar-utils#6)
- allow .. in file and directory names (ipfs/tar-utils#5)
- github.com/ipld/go-car (v0.3.1 -> v0.3.2):
- Expose selector traversal options for SelectiveCar (ipld/go-car#251)
- Implement API to allow replacing root CIDs in a CARv1 or CARv2
- blockstore: OpenReadWrite should not modify if it refuses to resume
- clarify the relation between StoreIdentityCIDs and SetFullyIndexed
- Implement options to handle
IDENTITY
CIDs gracefully - Combine API options for simplicity and logical coherence
- Add test script for car verify (#236) (ipld/go-car#236)
- cmd/car: add first testscript tests
- integrate
car/
cli intocmd/car
(#233) (ipld/go-car#233) - Add
car get-dag
command (#232) (ipld/go-car#232) - Separate CLI to separate module (#231) (ipld/go-car#231)
- add
get block
to car cli (#230) (ipld/go-car#230) - use file size when loading from v1 car (#229) (ipld/go-car#229)
- add interface describing iteration (#228) (ipld/go-car#228)
- Add
list
andfilter
commands (#227) (ipld/go-car#227) - Add
car split
command (#226) (ipld/go-car#226) - Make
MultihashIndexSorted
the default index codec for CARv2 - Add carve utility for updating the index of a car{v1,v2} file (#219) (ipld/go-car#219)
- Ignore records with
IDENTITY
CID inIndexSorted
- Fix index GetAll infinite loop if function always returns
true
- Expose the ability to iterate over records in
MultihasIndexSorted
- avoid another alloc per read byte
- avoid allocating on every byte read
- Implement new index type that also includes mutltihash code
- Return
nil
as Index reader when reading indexless CARv2 - Assert
OpenReader
from file does not panic after closure - Document performance caveats of
ExtractV1File
and address comments - Implement utility to extract CARv1 from a CARv2
- v2/blockstore: add ReadWrite.Discard
- update LICENSE files to point to the new gateway
- re-add root LICENSE file
- v2: stop using a symlink for LICENSE.md
- Update the readme with link to examples
- update package godocs and root level README for v2
- blockstore: stop embedding ReadOnly in ReadWrite
- Implement version agnostic streaming CAR block iterator
- blockstore: use errors when API contracts are broken
- add the first read-only benchmarks
- Implement reader block iterator over CARv1 or CARv2
- Propagate async
blockstore.AllKeysChan
errors via context - Add zero-length sections as EOF option to internal CARv1 reader
- Improve error handing in tests
- Allow
ReadOption
s to be set when getting or generating index - Use
ioutil.TempFile
to simplify file creation in index example - Avoid writing to files in testdata
- blockstore: implement UseWholeCIDs
- Merge wip-v2 into master (#178) (ipld/go-car#178)
- github.com/ipld/go-ipld-prime (v0.12.2 -> v0.14.2):
- dagcbor: coerce undef to null. (ipld/go-ipld-prime#308)
- fluent: add toInterface (#304) (ipld/go-ipld-prime#304)
- traversal: s/Walk/WalkLocal/
- traversal: add a primitive walk function.
- Remove dependency to
go-wish
- mark v0.14.0
- (ipld/go-ipld-prime#279)
- Port
traversal
package tests to quicktest - Port
codec
package tests to quicktest - changelog: backfill.
- Gracefully handle
TypedNode
withnil
type of kindMap
- Gracefully print typed nodes with
nil
type - Implement handling of
Link
and[]byte
inprinter
(#294) (ipld/go-ipld-prime#294) - changelog: backfill for the v0.12.x series.
- readme: introduce a migration guide.
- Port
fluent
package tests to quicktest - Port
datamodel
package tests to quicktest - Port
adl
package tests to quicktest - Port
node
package tests to quicktest - node/bindnode: support links in ProduceGoTypes
- bump CI to Go 1.16 and 1.17
- node/bindnode: support links in schema-type verification
- node/bindnode: export ProduceGoTypes
- all: fix "an" typos after the ipld->datamodel refactor
- node/bindnode: fix test code after two PR merges
- add LoadSchema APIs to the root package
- storage: add 'Has' feature. (ipld/go-ipld-prime#276)
- node/bindnode: start verifying schema compatibility
- linking: add LoadRaw and LoadPlusRaw functions to LinkSystem. (ipld/go-ipld-prime#267)
- node/bindnode: add support for lists behind kinded unions
- node/bindnode: also run TestPrototype with just schemas
- node/bindnode: polish a few TODO panics away
- node/bindnode: add support for all scalars behind kinded unions
- node/bindnode: get closer to passing the Links schema tests
- start using Rod's schema tests from ipld/ipld
- fully support parsing, encoding, and decoding the schema-schema
- node/bindnode: add native support for cid.Cid
- A more Featureful Approach to Storage APIs (ipld/go-ipld-prime#265)
- Add a cidlink.Memory storage option (#266) (ipld/go-ipld-prime#266)
- Improve docs for AssignNode; and datamodel.Copy function. (ipld/go-ipld-prime#264)
- schemadsl: assign the struct representation.
- schema,tests,gen/go: more tests, gen union fixes. (ipld/go-ipld-prime#257)
- fix: deal with LinkRevisit->LinkVisitOnlyOnce change
- traversal: the link-visit-only-once behavior should require opt-in, rather than defaulting to on.
- chore: add LinkRevisit:false traversal test
- traversal: track seen links, and revisit only if configured to do so.
- fix: use datamodel.Node selectors
- Revert encode round-trip to leave unencoded node test intact
- Add more walk tests, including tests for use of SkipMe
- Round-trip test nodes through custom codec to ensure stability
- Don't abort block processing when encountering SkipMe
- traversal: implement monotonically decrementing budgets. (ipld/go-ipld-prime#260)
- Use datamodel.Node for "Common" selector variants
- schema/dmt: first pass at a parser (ipld/go-ipld-prime#253)
- drop codectools.
- drop jst codec. It lives in https://github.com/warpfork/go-jst/ now.
- drop dagjson2.
- fix(traversal): properly wrap errors
- printer: empty maps and lists and structs should stay on one line.
- schema: turn TypeName into an alias
- schema/dmt: sync with schema-schema changes, finish Compile
- schema: add ways to set and access the ImplicitValue for a struct field.
- schema: accessor for TypeEnum.Representation.
- schema: finish minimum viable support for describing enum types.
- π github.com/libp2p/go-conn-security-multistream (v0.2.1 -> v0.3.0):
- use the new SecureTransport and SecureMuxer interfaces (#36) (libp2p/go-conn-security-multistream#36)
- fix go vet and staticcheck (libp2p/go-conn-security-multistream#33)
- github.com/libp2p/go-libp2p (v0.15.0 -> v0.16.0):
- release v0.16.0 (libp2p/go-libp2p#1246)
- allow the ping protocol on transient connections (libp2p/go-libp2p#1244)
- make the Type field required in the HolePunch protobuf (libp2p/go-libp2p#1241)
- reject hole punching attempts when we don't have any public addresses (libp2p/go-libp2p#1214)
- refactor the AutoRelay code (libp2p/go-libp2p#1240)
- remove dead API link in README (libp2p/go-libp2p#1233)
- pass static relays to EnableAutoRelay, deprecate libp2p.StaticRelays and libp2p.DefaultStaticRelays (libp2p/go-libp2p#1239)
- feat: plumb through peerstore context changes (#1237) (libp2p/go-libp2p#1237)
- emit the EvtPeerConnectednessChanged event (libp2p/go-libp2p#1230)
- update go-libp2p-swarm to v0.7.0 (libp2p/go-libp2p#1226)
- sync: update CI config files (#1225) (libp2p/go-libp2p#1225)
- simplify circuitv2 package structure (libp2p/go-libp2p#1224)
- use a random string for the mDNS peer-name (libp2p/go-libp2p#1222)
- remove {Un}RegisterNotifee functions from mDNS service (libp2p/go-libp2p#1220)
- fix structured logging in holepunch coordination (libp2p/go-libp2p#1213)
- fix flaky TestStBackpressureStreamWrite test (libp2p/go-libp2p#1212)
- properly close hosts in mDNS tests (libp2p/go-libp2p#1216)
- close the ObserverAddrManager when the ID service is closed (libp2p/go-libp2p#1218)
- make it possible to pass options to a transport constructor (libp2p/go-libp2p#1205)
- remove goprocess from the NATManager (libp2p/go-libp2p#1193)
- add an option to start the relay v2 (libp2p/go-libp2p#1197)
- fix flaky TestFastDisconnect identify test (libp2p/go-libp2p#1200)
- chore: update go-tcp-transport to v0.3.0 (libp2p/go-libp2p#1203)
- fix: skip variadic params in constructors (libp2p/go-libp2p#1204)
- fix flaky BasicHost tests (libp2p/go-libp2p#1202)
- remove dependency on github.com/ipfs/go-detect-race (libp2p/go-libp2p#1201)
- fix flaky TestEndToEndSimConnect holepunching test (libp2p/go-libp2p#1191)
- autorelay support for circuitv2 relays (#1198) (libp2p/go-libp2p#1198)
- reject circuitv2 reservations with nonsensical expiration times (libp2p/go-libp2p#1199)
- Tag relay hops in relay implementations (libp2p/go-libp2p#1188)
- Add standalone implementation of v1 Relay (#1186) (libp2p/go-libp2p#1186)
- remove the context from the libp2p and the Host constructor (libp2p/go-libp2p#1190)
- don't use a context to shut down the circuitv2 (libp2p/go-libp2p#1185)
- fix: remove v1 go-log dep (libp2p/go-libp2p#1189)
- don't use the context to shut down the relay (libp2p/go-libp2p#1184)
- Use circuitv2 code (#1183) (libp2p/go-libp2p#1183)
- clean up badges in README (libp2p/go-libp2p#1179)
- remove recommendation about Go module proxy from README (libp2p/go-libp2p#1180)
- merge branch 'hole-punching'
- don't use a context for closing the ObservedAddrManager (libp2p/go-libp2p#1175)
- move the circuit v2 code here (libp2p/go-libp2p#1174)
- make QUIC a default transport (libp2p/go-libp2p#1128)
- stop using jbenet/go-cienv (libp2p/go-libp2p#1176)
- fix flaky TestObsAddrSet test (libp2p/go-libp2p#1172)
- clean up messy defer logic in IDService.sendIdentifyResp (libp2p/go-libp2p#1169)
- remove secio from README, add noise (libp2p/go-libp2p#1165)
- github.com/libp2p/go-libp2p-asn-util (v0.0.0-20200825225859-85005c6cf052 -> v0.1.0):
- Update from upstream and make regeneration easier (#17) (libp2p/go-libp2p-asn-util#17)
- add license file so it can be found by go-licenses (libp2p/go-libp2p-asn-util#10)
- refactor: rename ASN table files (libp2p/go-libp2p-asn-util#9)
- Library for IP -> ASN mapping (libp2p/go-libp2p-asn-util#1)
- github.com/libp2p/go-libp2p-autonat (v0.4.2 -> v0.6.0):
- Version 0.6.0 (#112) (libp2p/go-libp2p-autonat#112)
- feat: plumb through contexts from peerstore (#111) (libp2p/go-libp2p-autonat#111)
- sync: update CI config files (#110) (libp2p/go-libp2p-autonat#110)
- remove context from constructor, implement a proper Close method (libp2p/go-libp2p-autonat#109)
- fix stream deadlines (libp2p/go-libp2p-autonat#107)
- disable failing integration test (libp2p/go-libp2p-autonat#108)
- fix staticcheck (libp2p/go-libp2p-autonat#103)
- github.com/libp2p/go-libp2p-core (v0.9.0 -> v0.11.0):
- release v0.11.0 (#217) (libp2p/go-libp2p-core#217)
- remove the ConnHandler (#214) (libp2p/go-libp2p-core#214)
- sync: update CI config files (#216) (libp2p/go-libp2p-core#216)
- remove the Process from the Network interface (#212) (libp2p/go-libp2p-core#212)
- pass the peer ID to SecureInbound in the SecureTransport and SecureMuxer (#211) (libp2p/go-libp2p-core#211)
- save the role (client, server) in the simultaneous connect context (#210) (libp2p/go-libp2p-core#210)
- sync: update CI config files (#209) (libp2p/go-libp2p-core#209)
- github.com/libp2p/go-libp2p-discovery (v0.5.1 -> v0.6.0):
- feat: plumb peerstore contexts changes through (#75) (libp2p/go-libp2p-discovery#75)
- remove deprecated types (libp2p/go-libp2p-discovery#73)
- github.com/libp2p/go-libp2p-kad-dht (v0.13.1 -> v0.15.0):
- Bump version to 0.15.0 (#755) (libp2p/go-libp2p-kad-dht#755)
- sync: update CI config files (#754) (libp2p/go-libp2p-kad-dht#754)
- feat: plumb through datastore contexts (#753) (libp2p/go-libp2p-kad-dht#753)
- custom ProviderManager that brokers AddrInfos (#751) (libp2p/go-libp2p-kad-dht#751)
- feat: make compatible with go-libp2p 0.15 (libp2p/go-libp2p-kad-dht#747)
- sync: update CI config files (libp2p/go-libp2p-kad-dht#743)
- Disallow GetPublicKey when DisableValues is passed (libp2p/go-libp2p-kad-dht#604)
- github.com/libp2p/go-libp2p-nat (v0.0.6 -> v0.1.0):
- remove Codecov config file (libp2p/go-libp2p-nat#39)
- stop using goprocess for shutdown (libp2p/go-libp2p-nat#38)
- chore: update go-log (libp2p/go-libp2p-nat#37)
- remove unused field permanent from mapping (libp2p/go-libp2p-nat#33)
- github.com/libp2p/go-libp2p-noise (v0.2.2 -> v0.3.0):
- add the peer ID to SecureInbound (libp2p/go-libp2p-noise#104)
- update go-libp2p-core, remove integration test (libp2p/go-libp2p-noise#102)
- github.com/libp2p/go-libp2p-peerstore (v0.2.8 -> v0.4.0):
- Update version.json (#178) (libp2p/go-libp2p-peerstore#178)
- limit the number of protocols we store per peer (libp2p/go-libp2p-peerstore#172)
- sync: update CI config files (#177) (libp2p/go-libp2p-peerstore#177)
- feat: plumb through datastore contexts (#176) (libp2p/go-libp2p-peerstore#176)
- remove leftover peerstore implementation in the root package (libp2p/go-libp2p-peerstore#173)
- fix: replace deprecated call (libp2p/go-libp2p-peerstore#168)
- feat: remove queue (libp2p/go-libp2p-peerstore#166)
- remove deprecated types (libp2p/go-libp2p-peerstore#165)
- github.com/libp2p/go-libp2p-pubsub (v0.5.4 -> v0.6.0):
- feat: plumb through context changes (#459) (libp2p/go-libp2p-pubsub#459)
- support MinTopicSize without a discovery mechanism
- clear peerPromises map when fullfilling a promise
- README: remove obsolete notice, fix example code for tracing.
- remove peer filter check from subscriptions (#453) (libp2p/go-libp2p-pubsub#453)
- Create peer filter option
- github.com/libp2p/go-libp2p-pubsub-router (v0.4.0 -> v0.5.0):
- Version 0.5.0
- feat: plumb through datastore contexts
- sync: update CI config files (#86) (libp2p/go-libp2p-pubsub-router#86)
- Remove arbitrary sleeps from tests (libp2p/go-libp2p-pubsub-router#87)
- cleanup: fix staticcheck failures (libp2p/go-libp2p-pubsub-router#84)
- Add WithDatastore option. (libp2p/go-libp2p-pubsub-router#82)
- github.com/libp2p/go-libp2p-quic-transport (v0.12.0 -> v0.15.0):
- release v0.15.0 (#241) (libp2p/go-libp2p-quic-transport#241)
- reuse the same router until we change listeners (libp2p/go-libp2p-quic-transport#240)
- release v0.14.0 (libp2p/go-libp2p-quic-transport#237)
- fix error assertions in the tracer (libp2p/go-libp2p-quic-transport#234)
- sync: update CI config files (#235) (libp2p/go-libp2p-quic-transport#235)
- read the client option from the simultaneous connect context (libp2p/go-libp2p-quic-transport#230)
- github.com/libp2p/go-libp2p-swarm (v0.5.3 -> v0.8.0):
- Version 0.8.0 (#292) (libp2p/go-libp2p-swarm#292)
- feat: plumb contexts through from peerstore (#290) (libp2p/go-libp2p-swarm#290)
- release v0.7.0 (libp2p/go-libp2p-swarm#289)
- update go-tcp-transport to v0.4.0 (libp2p/go-libp2p-swarm#287)
- remove the ConnHandler (libp2p/go-libp2p-swarm#286)
- sync: update CI config files (#288) (libp2p/go-libp2p-swarm#288)
- remove a lot of incorrect statements from the README (libp2p/go-libp2p-swarm#284)
- unexport the DialSync (libp2p/go-libp2p-swarm#281)
- add an error return value to the constructor (libp2p/go-libp2p-swarm#280)
- use functional options to configure the swarm (libp2p/go-libp2p-swarm#279)
- stop using goprocess to control teardown (libp2p/go-libp2p-swarm#278)
- read and use the direction from the simultaneous connect context (libp2p/go-libp2p-swarm#277)
- simplify the DialSync code (libp2p/go-libp2p-swarm#272)
- remove redundant self-dialing check, simplify starting of dialWorkerLoop (libp2p/go-libp2p-swarm#273)
- add a test case for the testing package (libp2p/go-libp2p-swarm#276)
- simplify limiter by removing the injected isFdConsumingFnc (libp2p/go-libp2p-swarm#274)
- update badges (libp2p/go-libp2p-swarm#271)
- remove unused context in Swarm.dialWorkerLoop (libp2p/go-libp2p-swarm#268)
- remove Codecov config (libp2p/go-libp2p-swarm#270)
- fix race condition in TestFailFirst (libp2p/go-libp2p-swarm#269)
- β
github.com/libp2p/go-libp2p-testing (v0.4.2 -> v0.5.0):
- chore: update go-libp2p-core to v0.10.0 (libp2p/go-libp2p-testing#38)
- sync: update CI config files (#37) (libp2p/go-libp2p-testing#37)
- github.com/libp2p/go-libp2p-tls (v0.2.0 -> v0.3.1):
- release v0.3.1 (libp2p/go-libp2p-tls#101)
- set a random certificate subject (libp2p/go-libp2p-tls#100)
- sync: update CI config files (#96) (libp2p/go-libp2p-tls#96)
- add the peer ID to SecureInbound (libp2p/go-libp2p-tls#94)
- sync: update CI config files (libp2p/go-libp2p-tls#91)
- β¬οΈ github.com/libp2p/go-libp2p-transport-upgrader (v0.4.6 -> v0.5.0):
- increase timeout in TestConnectionsClosedIfNotAccepted on CI (libp2p/go-libp2p-transport-upgrader#85)
- add the peer ID to SecureInbound (libp2p/go-libp2p-transport-upgrader#83)
- github.com/libp2p/go-msgio (v0.0.6 -> v0.1.0):
- sync: update CI config files (#27) (libp2p/go-msgio#27)
- remove .gxignore file (libp2p/go-msgio#24)
- remove Codecov config (libp2p/go-msgio#26)
- remove "Chan" type (libp2p/go-msgio#23)
- github.com/libp2p/go-nat (v0.0.5 -> v0.1.0):
- pass a context to DiscoverGateway (libp2p/go-nat#23)
- github.com/libp2p/go-reuseport (v0.0.2 -> v0.1.0):
- stop using github.com/pkg/errors (libp2p/go-reuseport#85)
- sync: update CI config files (#84) (libp2p/go-reuseport#84)
- github.com/libp2p/go-reuseport-transport (v0.0.5 -> v0.1.0):
- remove Codecov config file (libp2p/go-reuseport-transport#36)
- chore: update go-log to v2 (libp2p/go-reuseport-transport#35)
- sync: update CI config files (libp2p/go-reuseport-transport#31)
- github.com/libp2p/go-tcp-transport (v0.2.8 -> v0.4.0):
- release v0.4.0 (libp2p/go-tcp-transport#108)
- sync: update CI config files (#107) (libp2p/go-tcp-transport#107)
- remove the deprecated IPFS_REUSEPORT command line flag (libp2p/go-tcp-transport#104)
- add options to the constructor (libp2p/go-tcp-transport#99)
- remove the context from the libp2p constructor in README (libp2p/go-tcp-transport#101)
- don't use libp2p.ChainOption in README (libp2p/go-tcp-transport#102)
- remove incorrect statement about dns addresses in README (libp2p/go-tcp-transport#100)
- use the assigned role when upgrading a sim open connection (libp2p/go-tcp-transport#95)
- chore: update go-log to v2 (libp2p/go-tcp-transport#97)
- simplify dial timeout context (libp2p/go-tcp-transport#94)
- github.com/libp2p/go-yamux/v2 (v2.2.0 -> v2.3.0):
- limit the number of concurrent incoming streams (libp2p/go-yamux#66)
- drastically reduce allocations in ring buffer implementation (#64) (libp2p/go-yamux#64)
- sync: update CI config files (#63) (libp2p/go-yamux#63)
- remove call to asyncNotify in Stream.Read
- github.com/libp2p/zeroconf/v2 (v2.0.0 -> v2.1.1):
- fix flaky TTL test (libp2p/zeroconf#18)
- implement a clean shutdown of the probe method (libp2p/zeroconf#16)
- remove dependency on the backoff library (libp2p/zeroconf#17)
- Don't stop browsing after ~15min (libp2p/zeroconf#13)
- fix delays when sending initial probe packets (libp2p/zeroconf#14)
- improve starting of mDNS service in tests, stop using pkg/errors (libp2p/zeroconf#15)
- update import path to include v2 in README (libp2p/zeroconf#11)
- github.com/lucas-clemente/quic-go (v0.23.0 -> v0.24.0):
- don't unlock the receive stream mutex for copying from STREAM frames (lucas-clemente/quic-go#3290)
- List projects using quic-go (lucas-clemente/quic-go#3266)
- disable Path MTU Discovery on Windows (lucas-clemente/quic-go#3276)
- enter the regular run loop if no undecryptable packet was processed (lucas-clemente/quic-go#3268)
- Allow use of custom port value in Alt-Svc header. (lucas-clemente/quic-go#3272)
- disable the goconst linter (lucas-clemente/quic-go#3286)
- use x/net/ipv{4,6} to construct oob info when writing packets (#3278) (lucas-clemente/quic-go#3278)
- run gofmt to add the new go:build tags (lucas-clemente/quic-go#3277)
- fix log string in client example (lucas-clemente/quic-go#3264)
- github.com/multiformats/go-multiaddr (v0.4.0 -> v0.4.1):
- add the plaintextv2 protocol (multiformats/go-multiaddr#165)
- github.com/multiformats/go-multihash (v0.0.15 -> v0.1.0):
- bump version to v0.1.0 (multiformats/go-multihash#151)
- add version.json per tooling convention.
- murmur3 support (#150) (multiformats/go-multihash#150)
- Add variations of sha2 (multiformats/go-multihash#149)
- don't use pointers for Multihash.String
- Add blake3 hash and sharness tests (multiformats/go-multihash#147)
- remove Makefile (multiformats/go-multihash#142)
- fix staticcheck (multiformats/go-multihash#141)
- New SumStream function reads from io.Reader (multiformats/go-multihash#138)
- β
github.com/warpfork/go-testmark (v0.3.0 -> v0.9.0):
- testexec: will now always set up tmpdirs.
- testexec: fix typo in error message.
- testexec: subtest ("then-*") feature (warpfork/go-testmark#7)
- testexec: quote error from child; attribution better via more t.Helper.
- Improve documentation of format.
- Rename Hunk.BlockTag -> InfoString.
- testexec: will now create tmpdirs and files for you if you have an 'fs' entry tree.
- testexec: getting exit codes correctly. (warpfork/go-testmark#6)
- fix parsing CRLF files, part 3 (warpfork/go-testmark#5)
- fix parsing CRLF files, part 2 (warpfork/go-testmark#4)
- testexec: support both simple sequence and script mode.
- Proper tests for read function.
- avoid creeping extra linebreaks at the end of a patched document.
- refrain from making double linebreaks when patching with content that ends in a linebreak.
- Merge branch 'testexec'
- add support for parsing CRLF line endings (warpfork/go-testmark#3)
- link to patch example code
- More readme; and, parsing recommendations document.
- Further improve readme.
β€οΈ Contributors
Contributor Commits Lines Β± Files Changed Will 13 +73226/-130481 43 Masih H. Derkani 99 +10549/-5799 489 hannahhoward 43 +5515/-3293 233 Daniel MartΓ 60 +5312/-2883 208 π Marten Seemann 175 +4839/-3254 Eric Myhre 73 +3924/-3328 175 Jessica Schilling 52 +2709/-2386 75 Rod Vagg 30 +2719/-1703 79 vyzo 10 +3516/-177 87 Gus Eggert 64 +1677/-1416 147 Adin Schmahmann 23 +1708/-381 95 Lucas Molas 14 +1557/-365 48 Will Scott 7 +1846/-15 34 Steven Allen 32 +537/-897 56 Cory Schwartz 3 +614/-109 12 rht 3 +576/-4 7 Simon Zhu 9 +352/-51 16 Petar Maymounkov 7 +173/-167 23 RubenKelevra 1 +107/-188 1 jwh 2 +212/-80 7 longfeiW 1 +4/-249 10 guseggert 5 +230/-21 11 Kevin Neaton 8 +137/-80 13 Takashi Matsuda 1 +199/-0 5 Andrey Kostakov 1 +107/-49 2 Jesse Bouwman 1 +151/-0 7 web3-bot 39 +136/-3 52 Marcin Rataj 16 +62/-57 25 Marco Munizaga 1 +118/-0 2 Aaron Riekenberg 4 +64/-52 6 Ian Davis 4 +81/-32 7 Jorropo 2 +79/-19 6 Mohsin Zaidi 1 +89/-1 20 Andey Robins 1 +70/-3 3 gammazero 3 +40/-25 4 Steve Loeppky 2 +26/-27 3 Dimitris Apostolou 1 +25/-25 15 Sudarshan Reddy 1 +9/-40 1 Richard Littauer 2 +42/-1 3 pymq 1 +32/-8 2 Dirk McCormick 2 +23/-1 2 Nicholas Bollweg 1 +21/-0 1 anorth 1 +14/-6 2 Jack Loughran 1 +16/-0 2 whyrusleeping 2 +11/-2 2 bt90 1 +13/-0 1 Yi Cao 1 +10/-0 1 Max 1 +7/-3 1 Juan Batiz-Benet 2 +8/-2 2 Keenan Nemetz 1 +8/-0 1 muXxer 1 +3/-3 1 galargh 2 +3/-3 3 Didrik NordstrΓΆm 1 +2/-4 1 Ben Lubar 1 +3/-3 1 arjunraghurama 1 +5/-0 1 Whyrusleeping 1 +3/-2 1 TUSF 1 +3/-2 3 mathew-cf 1 +3/-1 2 Stephen Whitmore 1 +2/-2 1 Song Zhu 1 +2/-2 1 Michael MurΓ© 1 +4/-0 1 Alex Good 1 +4/-0 2 aarshkshah1992 1 +2/-1 1 susarlanikhilesh 1 +1/-1 1 falstack 1 +1/-1 1 Michael Vorburger βοΈ 1 +1/-1 1 Ismail Khoffi 1 +1/-1 1 George Xie 1 +1/-1 1 Bryan Stenson 1 +1/-1 1 Lars Gierth 1 +1/-0 1 - 0οΈβ£ UnixFS sharding is now automatic and enabled by default
-
v0.10.0 Changes
September 30, 2021π We're happy to announce go-ipfs 0.10.0. This release brings some big changes to the IPLD internals of go-ipfs that make working with non-UnixFS DAGs easier than ever. There are also a variety of new commands and configuration options available.
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
π TLDR: BREAKING CHANGES
ipfs dag get
- default output changed to
dag-json
- dag-pb (e.g. unixfs) field names changed - impacts userland code that works with
dag-pb
objects returned bydag get
- no longer emits an additional new-line character at the end of the data output
- default output changed to
ipfs dag put
- defaults changed to reduce ambiguity and surprises: input is now assumed to be
dag-json
, and data is serialized todag-cbor
at rest. --format
and--input-enc
were removed and replaced with--store-codec
and--input-codec
- codec names now match the ones defined in the multicodec table
- dag-pb (e.g. unixfs) field names changed - impacts userland code that works with
dag-pb
objects stored viadag put
- defaults changed to reduce ambiguity and surprises: input is now assumed to be
Keep reading to learn more details.
π¦ Highlights
π² IPLD Levels Up
The handling of data serialization as well as many aspects of DAG traversal and pathing have been migrated from older libraries, including go-merkledag and go-ipld-format to the new go-ipld-prime library and its components. This allows us to use many of the newer tools afforded by go-ipld-prime, stricter and more uniform codec implementations, support for additional (pluggable) codecs, and some minor performance improvements.
π₯ This is significant refactor of a core component that touches many parts of IPFS, and does come with some breaking changes:
- π IPLD plugins:
- The
PluginIPLD
interface has been changed to utilize go-ipld-prime. There is a demonstration of the change in the [bundled git plugin](./plugin/plugins/git/).
- The
- The semantics of
dag put
anddag get
change:dag get
now takes theoutput-codec
option which accepts a multicodec name used to encode the output. By default this isdag-json
, which is a strict and deterministic subset of JSON created by the IPLD team. Users may notice differences from the previously plain Go JSON output, particularly where bytes are concerned which are now encoded using a form similar to CIDs:{"/":{"bytes":"unpadded-base64-bytes"}}
rather than the previously Go-specific plain padded base64 string. See the dag-json specification for an explanation of these forms.dag get
no longer prints an additional new-line character at the end of the encoded block output. This means that the output as presented bydag get
are the exact bytes of the requested node. A round-trip of such bytes back in throughdag put
using the same codec should result in the same CID.dag put
uses theinput-codec
option to specify the multicodec name of the format data is being provided in, and thestore-codec
option to specify the multicodec name of the format the data should be stored in at rest. These formerly defaulted tojson
andcbor
respectively. They now default todag-json
anddag-cbor
respectively but may be changed to any supported codec (bundled or loaded via plugin) by its multicodec name.- The
json
andcbor
multicodec names (as used byinput-enc
andformat
options) are now no longer aliases fordag-json
anddag-cbor
respectively. Instead, they now refer to their proper multicodec types.cbor
refers to a plain CBOR format, which will not encode CIDs and does not have strict deterministic encoding rules.json
is a plain JSON format, which also won't encode CIDs and will encode bytes in the Go-specific padded base64 string format rather than the dag-json method of byte encoding. See https://ipld.io/specs/codecs/ for more information on IPLD codecs. protobuf
is no longer used as the codec name fordag-pb
- The codec name
raw
is used to mean Bytes in the IPLD Data Model
- π¨ UnixFS refactor. The dag-pb codec, which is used to encode UnixFS data for IPFS, is now represented through the
dag
API in a form that mirrors the protobuf schema used to define the binary format. This unifies the implementations and specification of dag-pb across the IPLD and IPFS stacks. Previously, additional layers of code for file and directory handling within IPFS between protobuf serialization and UnixFS obscured the protobuf representation. Much of this code has now been replaced and there are fewer layers of transformation. This means that interacting with dag-pb data via thedag
API will use different forms:- Previously, using
dag get
on a dag-pb block would present the block serialized as JSON as{"data":"padded-base64-bytes","links":[{"Name":"foo","Size":100,"Cid":{"/":"Qm..."}},...]}
. - Now, the dag-pb data with dag-json codec for output will be serialized using the data model from the dag-pb specification:
{"Data":{"/":{"bytes":"unpadded-base64-bytes"}},"Links":[{"Name":"foo","Tsize":100,"Hash":{"/":"Qm..."}},...]}
. Aside from the change in byte formatting, most field names have changed:data
βData
,links
βLinks
,Size
βTsize
,Cid
βHash
. Note that this output can be changed now using theoutput-codec
option to specify an alternative codec. - Similarly, using
dag put
and astore-codec
option ofdag-pb
now requires that the input conform to this dag-pb specified form. Previously, input using{"data":"...","links":[...]}
was accepted, now it must be{"Data":"...","Links":[...]}
. - Previously it was not possible to use paths to navigate to any of these properties of a dag-pb node, the only possible paths were named links, e.g.
dag get QmFoo/NamedLink
whereNamedLink
was one of the links whose name wasNamedLink
. This functionality remains the same, but by prefixing the path with/ipld/
we enter data model pathing semantics and candag get /ipld/QmFoo/Links/0/Hash
to navigate to links or/ipld/QmFoo/Data
to simply retrieve the data section of the node, for example. - βΉ See the dag-pb specification for details on the codec and its data model representation.
- βΉ See this detailed write-up for further background on these changes.
- Previously, using
β Multibase Command
π go-ipfs now provides utility commands for working with multibase:
$ echo -n hello | ipfs multibase encode -b base16 > file-mbase16 $ cat file-mbase16 f68656c6c6f $ ipfs multibase decode file-mbase16 hello $ cat file-mbase16 | ipfs multibase decode hello $ ipfs multibase transcode -b base2 file-mbase16 00110100001100101011011000110110001101111
π See
ipfs multibase --help
for more examples.π§ π¨ Bitswap now supports greater configurability
π This release adds an
Internal
section to the configuration file that is designed to help advanced users optimize their setups without needing a custom binary. TheInternal
section is not guaranteed to be the same from release to release and may not be covered by migrations. If you use theInternal
section you should be making sure to check the config documentation between releases for any changes.π Programmatic shell completions command
ipfs commands completion bash
will generate a bash completion script for go-ipfs commandsπ Profile collection command
π Performance profiles can now be collected using
ipfs diag profile
. If you need to do some debugging or have an issue to submit the collected profiles are very useful to have around.π Mac OS notarized binaries
The go-ipfs and related migration binaries (for both Intel and Apple Sillicon) are now signed and notarized to make Mac OS installation easier.
π¨βπ©βπ¦ Improved MDNS
π There is a completed implementation of the revised libp2p MDNS spec. This should result in better MDNS discovery and better local/offline operation as a result.
π CAR import statistics
π
dag import
command now supports--stats
option which will include the number of imported blocks and their total size in the output.πΈ Peering command
π This release adds
swarm peering
command for easy management of the peering subsystem. Peer in the peering subsystem is maintained to be connected at all times, and gets reconnected on disconnect with a back-off.π See
ipfs swarm peering --help
for more details.π Changelog
- github.com/ipfs/go-ipfs:
- fuse: load unixfs adls as their dagpb substrates
- enable the legacy mDNS implementation
- test: add dag get --ouput-codec test
- change ipfs dag get flag name from format to output-codec
- test: check behavior of loading UnixFS sharded directories with missing shards
- remove dag put option shortcuts
- change names of ipfs dag put flags to make changes clearer
- feat: dag import --stats (#8237) (ipfs/go-ipfs#8237)
- feat: ipfs-webui v2.13.0 (#8430) (ipfs/go-ipfs#8430)
- feat(cli): add daemon option --agent-version-suffix (#8419) (ipfs/go-ipfs#8419)
- feat: multibase transcode command (#8403) (ipfs/go-ipfs#8403)
- fix: take the lock while listing peers
- feature: 'ipfs swarm peering' command (#8147) (ipfs/go-ipfs#8147)
- fix(sharness): add extra check in flush=false in files write
- chore: update IPFS Desktop testing steps (#8393) (ipfs/go-ipfs#8393)
- add more buttons; remove some sections covered in the docs; general cleanup
- Cosmetic fixups in examples (#8325) (ipfs/go-ipfs#8325)
- perf: use performance-enhancing FUSE mount options
- ci: publish Docker images for bifrost-* branches
- chore: add comments to peerlog plugin about being unsupported
- test: add unit tests for peerlog config parsing
- ci: preload peerlog plugin, disable by default
- fix(mkreleaselog): specify the parent commit when diffing
- update go-libp2p to v0.15.0-rc.1 (ipfs/go-ipfs#8354)
- feat: add 'ipfs multibase' commands (#8180) (ipfs/go-ipfs#8180)
- support bitswap configurability (#8268) (ipfs/go-ipfs#8268)
- IPLD Prime In IPFS: Target Merge Branch (#7976) (ipfs/go-ipfs#7976)
- ci: upgrade to Go 1.16.7 on CI (ipfs/go-ipfs#8324)
- Add flag to create parent directories in files cp command (ipfs/go-ipfs#8340)
- fix: avoid out of bounds error when rendering short hashes (ipfs/go-ipfs#8318)
- fix: remove some deprecated calls (ipfs/go-ipfs#8296)
- perf: set an appropriate capacity (ipfs/go-ipfs#8244)
- Fix: Use a pointer type on IpfsNode.Peering (ipfs/go-ipfs#8331)
- fix: macos notarized fs-repo-migrations (#8333) (ipfs/go-ipfs#8333)
- README.md: Add MacPorts to install section (ipfs/go-ipfs#8220)
- feat: register first block metric by default (ipfs/go-ipfs#8332)
- Build a go-ipfs:extras docker image (ipfs/go-ipfs#8142)
- fix/go-ipfs-as-a-library (ipfs/go-ipfs#8266)
- Expose additional migration APIs (#8153) (ipfs/go-ipfs#8153)
- point ipfs to pinner that syncs on every pin (#8231) (ipfs/go-ipfs#8231)
- docs: chocolatey package name
- Disambiguate online/offline naming in sharness tests (ipfs/go-ipfs#8254)
- Rename DOCKER_HOST to TEST_DOCKER_HOST to avoid conflicts (ipfs/go-ipfs#8283)
- feat: add an "ipfs diag profile" command (ipfs/go-ipfs#8291)
- Merge branch 'release'
- feat: improve mkreleaslog (ipfs/go-ipfs#8290)
- Add test with expected failure for #3503 (ipfs/go-ipfs#8280)
- Create PATCH_RELEASE_TEMPLATE.md
- fix document error (ipfs/go-ipfs#8271)
- feat: webui v2.12.4
- programmatic shell completions (ipfs/go-ipfs#8043)
- test: gateway response for bafkqaaa
- doc(README): update chat links (and misc fixes) (ipfs/go-ipfs#8222)
- link to the actual doc (#8126) (ipfs/go-ipfs#8126)
- Improve peer hints for pin remote add (#8143) (ipfs/go-ipfs#8143)
- fix(mkreleaselog): support multiple commit authors (ipfs/go-ipfs#8214)
- fix(mkreleaselog): handle commit 0 (ipfs/go-ipfs#8121)
- bump snap to build with Go 1.16
- chore: update CHANGELOG
- chore: switch tar-utils dep to ipfs org
- feat: print error on bootstrap failure (ipfs/go-ipfs#8166)
- fix: typo in migration error
- refactor: improved humanNumber and humanSI
- feat: humanized durations in stat provide
- feat: humanized numbers in stat provide
- feat: add a text output encoding for the stats provide command
- fix: webui-2.12.3
- refactor(pinmfs): log error if pre-existing pin failed (#8056) (ipfs/go-ipfs#8056)
- config.md: fix typos/improve wording (ipfs/go-ipfs#8031)
- fix(peering_test) : Fix the peering_test to check the connection explicitly added (ipfs/go-ipfs#8140)
- build: ignore generated files in changelog (ipfs/go-ipfs#7712)
- update version to 0.10.0-dev (ipfs/go-ipfs#8136)
- github.com/ipfs/go-bitswap (v0.3.4 -> v0.4.0):
- More stats, knobs and tunings (#514) (ipfs/go-bitswap#514)
- fix: fix a map access race condition in the want index (ipfs/go-bitswap#523)
- fix: make blockstore cancel test less timing dependent (ipfs/go-bitswap#507)
- fix(decision): fix a datarace on disconnect (ipfs/go-bitswap#508)
- optimize the lookup which peers are waiting for a given block (ipfs/go-bitswap#486)
- fix: hold the task worker lock when starting task workers (ipfs/go-bitswap#504)
- fix: Nil dereference while using SetSendDontHaves (ipfs/go-bitswap#488)
- Fix flaky tests in message queue (ipfs/go-bitswap#497)
- Fix flaky DontHaveTimeoutManger tests (ipfs/go-bitswap#495)
- sync: update CI config files (ipfs/go-bitswap#485)
- github.com/ipfs/go-blockservice (v0.1.4 -> v0.1.7):
- update go-bitswap to v0.3.4 (ipfs/go-blockservice#78)
- fix staticcheck (ipfs/go-blockservice#75)
- fix: handle missing session exchange in Session (ipfs/go-blockservice#73)
- github.com/ipfs/go-datastore (v0.4.5 -> v0.4.6):
- sync: update CI config files (ipfs/go-datastore#175)
- speedup tests (ipfs/go-datastore#177)
- test: reduce element count when the race detector is enabled (ipfs/go-datastore#176)
- fix staticcheck (ipfs/go-datastore#173)
- remove Makefile (ipfs/go-datastore#172)
- github.com/ipfs/go-ds-badger (v0.2.6 -> v0.2.7):
- Log start and end of GC rounds (ipfs/go-ds-badger#115)
- π github.com/ipfs/go-fs-lock (v0.0.6 -> v0.0.7):
- chore: update log (ipfs/go-fs-lock#24)
- sync: update CI config files (ipfs/go-fs-lock#21)
- fix TestLockedByOthers on Windows (ipfs/go-fs-lock#19)
- github.com/ipfs/go-ipfs-config (v0.14.0 -> v0.16.0):
- feat: add Internal and Internal.Bitswap config options
- feat: add an OptionalInteger type
- fix: make sure the Priority type properly implements the JSON marshal/unmarshal interfaces
- fix: remove deprecated calls (ipfs/go-ipfs-config#138)
- sync: update CI config files (ipfs/go-ipfs-config#132)
- remove period, fix staticcheck (ipfs/go-ipfs-config#131)
- github.com/ipfs/go-ipfs-pinner (v0.1.1 -> v0.1.2):
- Fix/minimize rebuild (#15) (ipfs/go-ipfs-pinner#15)
- Define ErrNotPinned alongside the Pinner interface
- fix staticcheck (ipfs/go-ipfs-pinner#11)
- fix: remove the rest of the pb backed pinner (ipfs/go-ipfs-pinner#9)
- Remove old ipldpinner that has been replaced by dspinner (ipfs/go-ipfs-pinner#7)
- optimize CheckIfPinned (ipfs/go-ipfs-pinner#6)
- github.com/ipfs/go-ipfs-provider (v0.5.1 -> v0.6.1):
- Update to IPLD Prime (#32) (ipfs/go-ipfs-provider#32)
- github.com/ipfs/go-ipld-git (v0.0.4 -> v0.1.1):
- return ErrUnexpectedEOF when Decode input is too short
- Update go-ipld-git to a go-ipld-prime codec (#46) (ipfs/go-ipld-git#46)
- fix staticcheck (ipfs/go-ipld-git#49)
- change WriteTo to the standard signature (ipfs/go-ipld-git#47)
- don't copy mutexes (ipfs/go-ipld-git#48)
- github.com/ipfs/go-ipns (v0.1.0 -> v0.1.2):
- fix: remove deprecated calls (ipfs/go-ipns#30)
- remove Makefile (ipfs/go-ipns#27)
- π² github.com/ipfs/go-log/v2 (v2.1.3 -> v2.3.0):
- Stop defaulting to color output on non-TTY (ipfs/go-log#116)
- feat: add ability to use custom zap core (ipfs/go-log#114)
- fix staticcheck (ipfs/go-log#112)
- test: fix flaky label test (ipfs/go-log#111)
- per-subsystem log-levels (ipfs/go-log#109)
- fix: don't panic on invalid log labels (ipfs/go-log#110)
- github.com/ipfs/go-merkledag (v0.3.2 -> v0.4.0):
- Use IPLD-prime: target merge branch (ipfs/go-merkledag#67)
- sync: update CI config files (ipfs/go-merkledag#70)
- staticcheck (ipfs/go-merkledag#69)
- Fix bug in dagutils MergeDiffs. (#59) (ipfs/go-merkledag#59)
- chore: add tests to verify allowable data layouts (ipfs/go-merkledag#58)
- github.com/ipfs/go-namesys (v0.3.0 -> v0.3.1):
- fix: remove deprecated call to pk.Bytes (ipfs/go-namesys#19)
- github.com/ipfs/go-path (v0.0.9 -> v0.1.2):
- fix: give one minute timeouts to function calls instead of block retrievals (ipfs/go-path#44)
- IPLD Prime In IPFS: Target Merge Branch (#36) (ipfs/go-path#36)
- remove Makefile (ipfs/go-path#40)
- sync: update CI config files (ipfs/go-path#39)
- github.com/ipfs/go-peertaskqueue (v0.2.0 -> v0.4.0):
- add stats
- Have a configurable maximum active work per peer (ipfs/go-peertaskqueue#10)
- sync: update CI config files (ipfs/go-peertaskqueue#13)
- fix staticcheck (ipfs/go-peertaskqueue#12)
- fix go vet (ipfs/go-peertaskqueue#11)
- github.com/ipfs/go-unixfsnode (null -> v1.1.3):
- make UnixFSHAMTShard implement the ADL interface (#11) (ipfs/go-unixfsnode#11)
- github.com/ipfs/interface-go-ipfs-core (v0.4.0 -> v0.5.1):
- IPLD In IPFS: Target Merge Branch (#67) (ipfs/interface-go-ipfs-core#67)
- fix staticcheck (ipfs/interface-go-ipfs-core#72)
- remove Makefile (ipfs/interface-go-ipfs-core#70)
- github.com/ipld/go-codec-dagpb (v1.2.0 -> v1.3.0):
- fix staticcheck warnings (ipld/go-codec-dagpb#29)
- update go-ipld-prime, use go:generate
- allow decoding PBNode fields in any order
- expose APIs without Reader/Writer overhead
- preallocate 1KiB on the stack for marshals
- encode directly with a []byte
- decode directly with a []byte
- remove unnecessary xerrors dep
- github.com/ipld/go-ipld-prime (v0.9.1-0.20210324083106-dc342a9917db -> v0.12.2):
- Printer feature (ipld/go-ipld-prime#238)
- schema: keep TypeSystem names ordered
- schema/dmt: redesign with bindnode and add Compile
- codec: make cbor and json codecs use ErrUnexpectedEOF
- bindnode: fix for stringjoin struct emission when first field is the empty string (ipld/go-ipld-prime#239)
- schema: typekind names are not capitalized.
- Bindnode fixes continued (ipld/go-ipld-prime#233)
- helper methods for encoding and decoding (ipld/go-ipld-prime#232)
- mark v0.12.0
- Major refactor: extract datamodel package. (ipld/go-ipld-prime#228)
- Fix ExploreRecursive stopAt condition, add tests, add error return to Explore (#229) (ipld/go-ipld-prime#229)
- selector: add tests which are driven by language-agnostic spec fixtures. (ipld/go-ipld-prime#231)
- selector: Improve docs for implementors. (#227) (ipld/go-ipld-prime#227)
- Bindnode fixes of opportunity (ipld/go-ipld-prime#226)
- node/bindnode: redesign the shape of unions in Go (ipld/go-ipld-prime#223)
- summary of the v0.11.0 changelog should holler even more about how cool bindnode is.
- mark v0.11.0
- node/bindnode: mark as experimental in its godoc.
- codecs: more docs, a terminology guide, consistency in options. (ipld/go-ipld-prime#221)
- Changelog backfill.
- selectors: docs enhancements, new construction helpers. (ipld/go-ipld-prime#199)
- Changelog backfill.
- Allow parsing of single Null tokens from refmt
- Add link conditions for 'stop-at' expression in ExploreRecursive selector (ipld/go-ipld-prime#214)
- Remove base64 padding for dag-json bytes as per spec
- node/bindnode: temporarily skip Links schema test
- test: add test for traversal of typed node links
- fix: typed links LinkTargetNodePrototype should return ReferencedType
- Make
go vet
happy - Add MapSortMode to MarshalOptions
- Add {Unm,M}arshalOptions for explicit mode switching for cbor vs dagcbor
- Sort map entries marshalling dag-cbor
- node/bindnode: first pass at inferring IPLD schemas
- Add {Unm,M}arshalOptions for explicit mode switching for json vs dagjson
- Make tests pass with sorted dag-json output
- Sort map entries marshalling dag-json
- Simplify refmt usage
- Fix failing test using dagjson encoding
- Fix some failing tests using dagjson
- Remove pretty-printing
- Update readme linking to specs and meta repo.
- Fix example names so they render on go.pkg.dev.
- fluent/quip: remove in favor of qp
- node/basic: add Chooser
- schema: add TypedPrototype
- node/bindnode: rethink and better document APIs
- node/tests: cover yet more interface methods
- node/tests: cover more error cases for scalar kinds
- node/tests: add more extensive scalar kind tests
- node/bindnode: start running all schema tests
- mark v0.10.0
- More changelog grooming.
- Changelog grooming.
- node/tests: put most of the schema test cases here
- Add more explicit discussion of indicies to ListIterator.
- node/bindnode: start of a reflect-based Node implementation
- add DeepEqual and start using it in tests
- Add enumerate methods to the multicodec registries. (ipld/go-ipld-prime#176)
- Make a multicodec.Registry type available. (ipld/go-ipld-prime#172)
- fluent/qp: don't panic on string panics
- Allow emitting & parsing of bytes per dagjson codec spec (ipld/go-ipld-prime#166)
- Package docs for dag-cbor.
- Update package docs.
- schema/gen/go: apply gofmt automatically (ipld/go-ipld-prime#163)
- schema/gen/go: fix remaining vet warnings on generated code
- schema/gen/go: batch file writes via a bytes.Buffer (ipld/go-ipld-prime#161)
- schema/gen/go: avoid Maybe pointers for small types
- fix readme formatting typo
- feat(linksystem): add reification to LinkSystem (ipld/go-ipld-prime#158)
- github.com/libp2p/go-addr-util (v0.0.2 -> v0.1.0):
- stop using the deprecated go-multiaddr-net package (libp2p/go-addr-util#34)
- Remove
IsFDCostlyTransport
(libp2p/go-addr-util#31)
- github.com/libp2p/go-libp2p (v0.14.3 -> v0.15.0):
- chore: update go-tcp-transport to v0.2.8
- implement the new mDNS spec, move the old mDNS implementation (#1161) (libp2p/go-libp2p#1161)
- remove deprecated basichost.New constructor (libp2p/go-libp2p#1156)
- Make BasicHost.evtLocalAddrsUpdated event emitter stateful. (libp2p/go-libp2p#1147)
- fix: deflake multipro echo test (libp2p/go-libp2p#1149)
- fix(basic_host): stream not closed when context done (libp2p/go-libp2p#1148)
- chore: update deps (libp2p/go-libp2p#1141)
- remove secio from examples (libp2p/go-libp2p#1143)
- remove deprecated Filter option (libp2p/go-libp2p#1132)
- fix: remove deprecated call (libp2p/go-libp2p#1136)
- test: fix flaky example test (libp2p/go-libp2p#1135)
- remove deprecated identify.ClientVersion (libp2p/go-libp2p#1133)
- remove Go version requirement and note about Go modules from README (libp2p/go-libp2p#1126)
- Error assignment fix (libp2p/go-libp2p#1124)
- perf/basic_host: Don't handle address change if we hasn't anyone (libp2p/go-libp2p#1115)
- github.com/libp2p/go-libp2p-core (v0.8.5 -> v0.9.0):
- feat: remove unused metrics (#208) (libp2p/go-libp2p-core#208)
- feat: keep addresses for longer (#207) (libp2p/go-libp2p-core#207)
- remove deprecated key stretching struct / function (#203) (libp2p/go-libp2p-core#203)
- remove deprecated Bytes method from the Key interface (#204) (libp2p/go-libp2p-core#204)
- remove deprecated functions in the peer package (#205) (libp2p/go-libp2p-core#205)
- remove deprecated constructor for the insecure transport (#206) (libp2p/go-libp2p-core#206)
- feat: add helper functions for working with addr infos (#202) (libp2p/go-libp2p-core#202)
- fix: make timestamps strictly increasing (#201) (libp2p/go-libp2p-core#201)
- ci: use github-actions for compatibility testing (#200) (libp2p/go-libp2p-core#200)
- sync: update CI config files (#189) (libp2p/go-libp2p-core#189)
- remove minimum Go version from README (#199) (libp2p/go-libp2p-core#199)
- remove flaky tests (#194) (libp2p/go-libp2p-core#194)
- reduce default timeouts to 15s (#192) (libp2p/go-libp2p-core#192)
- fix benchmark of key verifications (#190) (libp2p/go-libp2p-core#190)
- fix staticcheck errors (#191) (libp2p/go-libp2p-core#191)
- doc: document Close on Transport (#188) (libp2p/go-libp2p-core#188)
- add a helper function to go directly from a string to an AddrInfo (#184) (libp2p/go-libp2p-core#184)
- github.com/libp2p/go-libp2p-http (v0.2.0 -> v0.2.1):
- remove Makefile (libp2p/go-libp2p-http#70)
- fix staticcheck (libp2p/go-libp2p-http#67)
- Revert "increase buffer size"
- Increase read buffer size to reduce poll system calls (libp2p/go-libp2p-http#66)
- github.com/libp2p/go-libp2p-kad-dht (v0.12.2 -> v0.13.1):
- Extract validation from ProtocolMessenger (libp2p/go-libp2p-kad-dht#741)
- remove codecov.yml (libp2p/go-libp2p-kad-dht#742)
- integrate some basic opentelemetry tracing (libp2p/go-libp2p-kad-dht#734)
- feat: delete GetValues (libp2p/go-libp2p-kad-dht#728)
- chore: skip flaky test when race detector is enabled (libp2p/go-libp2p-kad-dht#731)
- Dont count connection times in usefulness (libp2p/go-libp2p-kad-dht#660)
- Routing table refresh should NOT block (libp2p/go-libp2p-kad-dht#705)
- update bootstrapPeers to be func() []peer.AddrInfo (#716) (libp2p/go-libp2p-kad-dht#716)
- github.com/libp2p/go-libp2p-noise (v0.2.0 -> v0.2.2):
- remove note about go modules in README (libp2p/go-libp2p-noise#100)
- fix: remove deprecated call to pk.Bytes (libp2p/go-libp2p-noise#99)
- github.com/libp2p/go-libp2p-peerstore (v0.2.7 -> v0.2.8):
- Fix perfomance issue in updating addr book (libp2p/go-libp2p-peerstore#141)
- Fix test flakes (libp2p/go-libp2p-peerstore#164)
- Only remove records during GC (libp2p/go-libp2p-peerstore#135)
- sync: update CI config files (libp2p/go-libp2p-peerstore#160)
- fix: fix some race conditions in the ds address book (libp2p/go-libp2p-peerstore#161)
- address lints and test failures (libp2p/go-libp2p-peerstore#159)
- stop using the deprecated go-multiaddr-net package (libp2p/go-libp2p-peerstore#158)
- github.com/libp2p/go-libp2p-pubsub (v0.4.2 -> v0.5.4):
- make slowness a warning, with a user configurable threshold
- reduce log spam from empty heartbeat messages
- fix: code review
- add support for custom protocol matching function
- fix: remove deprecated Bytes call (#436) (libp2p/go-libp2p-pubsub#436)
- cleanup: fix vet and staticcheck failures (#435) (libp2p/go-libp2p-pubsub#435)
- Revert noisy newline changes
- fix: avoid panic when peer is blacklisted after connection
- release priority locks early when handling batches
- don't respawn writer if we fail to open a stream; declare it a peer error
- batch process dead peer notifications
- use a priority lock instead of a semaphore
- do the notification in a goroutine
- emit new peer notification without holding the semaphore
- use a semaphore for new peer notifications so that we don't block the event loop
- don't accumulate pending goroutines from new connections
- rename RawTracer's DroppedInSubscribe into UndeliverableMessage
- add a new RawTracer event to track messages dropped in Subscribe
- add an option to configure the Subscription output queue length
- fix some comments
- expose more events for RawTracer
- Make close concurrent safe
- Fix close of closed channel
- Update README to point to correct example directory (#424) (libp2p/go-libp2p-pubsub#424)
- fix: remove deprecated and never used topic descriptors (#423) (libp2p/go-libp2p-pubsub#423)
- Refactor Gossipsub Parameters To Make Them More Configurable (#421) (libp2p/go-libp2p-pubsub#421)
- add tests for gs features and custom protocols
- add support for custom gossipsub protocols and feature tests
- RIP travis, Long Live CircleCI (#414) (libp2p/go-libp2p-pubsub#414)
- Ignore transient connections (#412) (libp2p/go-libp2p-pubsub#412)
- demote log spam to debug
- fix bug
- add last amount of validation
- add threshold validation
- strengthen validation
- rename checkSignature to checkSigningPolicy
- rename validation.Publish to PushLocal
- fix TestValidate, add TestValidate2
- skip flaky test until we can fix it
- implement synchronous validation for locally published messages
- expose internalTracer as RawTracer
- export rejection named string constants
- more intelligent handling of ip whitelist check
- remove obsolete explicit IP whitelisting in favor of subnets
- add subnet whitelisting for IPColocation
- github.com/libp2p/go-libp2p-quic-transport (v0.11.2 -> v0.12.0):
- sync: update CI config files (#228) (libp2p/go-libp2p-quic-transport#228)
- fix closing of streams in example (libp2p/go-libp2p-quic-transport#221)
- close all UDP connections when the reuse is closed (libp2p/go-libp2p-quic-transport#216)
- fix staticcheck (libp2p/go-libp2p-quic-transport#217)
- sync: update CI config files (#214) (libp2p/go-libp2p-quic-transport#214)
- implement a Transport.Close that waits for the reuse's GC to finish (libp2p/go-libp2p-quic-transport#211)
- don't compare peer IDs when hole punching (libp2p/go-libp2p-quic-transport#210)
- add hole punching support (#194) (libp2p/go-libp2p-quic-transport#194)
- github.com/libp2p/go-libp2p-swarm (v0.5.0 -> v0.5.3):
- sync: update CI config files (libp2p/go-libp2p-swarm#263)
- remove incorrect call to InterceptAddrDial (libp2p/go-libp2p-swarm#260)
- speed up the TestFDLimitUnderflow test (libp2p/go-libp2p-swarm#262)
- sync: update CI config files (#248) (libp2p/go-libp2p-swarm#248)
- β
github.com/libp2p/go-libp2p-testing (v0.4.0 -> v0.4.2):
- fix deadlock in the transport's serve function (libp2p/go-libp2p-testing#35)
- fix: cleanup transport suite (libp2p/go-libp2p-testing#34)
- Address
go vet
andsaticcheck
issues (libp2p/go-libp2p-testing#33) - Defer closing stream for reading (libp2p/go-libp2p-testing#32)
- github.com/libp2p/go-libp2p-tls (v0.1.3 -> v0.2.0):
- fix: don't fail the handshake when the libp2p extension is critical (libp2p/go-libp2p-tls#88)
- fix deprecated call to key.Bytes (libp2p/go-libp2p-tls#86)
- fix usage of deprecated peer.IDB58Decode (libp2p/go-libp2p-tls#77)
- remove setting of the TLS 1.3 GODEBUG flag (libp2p/go-libp2p-tls#68)
- improve the error message returned when peer verification fails (libp2p/go-libp2p-tls#57)
- update to Go 1.14 (libp2p/go-libp2p-tls#54)
- Update deps and fix tests (libp2p/go-libp2p-tls#43)
- β¬οΈ github.com/libp2p/go-libp2p-transport-upgrader (v0.4.2 -> v0.4.6):
- chore: update deps (libp2p/go-libp2p-transport-upgrader#78)
- fix typo in error message (libp2p/go-libp2p-transport-upgrader#77)
- fix staticcheck (libp2p/go-libp2p-transport-upgrader#74)
- don't listen on all interfaces in tests (libp2p/go-libp2p-transport-upgrader#73)
- stop using the deprecated go-multiaddr-net (libp2p/go-libp2p-transport-upgrader#72)
- github.com/libp2p/go-libp2p-xor (v0.0.0-20200501025846-71e284145d58 -> v0.0.0-20210714161855-5c005aca55db):
- Add immutable remove operation (libp2p/go-libp2p-xor#14)
- fix go vet and staticcheck (libp2p/go-libp2p-xor#11)
- github.com/libp2p/go-reuseport-transport (v0.0.4 -> v0.0.5):
- remove note about Go modules in README (libp2p/go-reuseport-transport#32)
- stop using the deprecated go-multiaddr-net package (libp2p/go-reuseport-transport#30)
- github.com/libp2p/go-socket-activation (v0.0.2 -> v0.1.0):
- chore: stop using the deprecated go-multiaddr-net package (libp2p/go-socket-activation#16)
- fix staticcheck (libp2p/go-socket-activation#13)
- github.com/libp2p/go-tcp-transport (v0.2.4 -> v0.2.8):
- disable metrics collection on Windows (libp2p/go-tcp-transport#93)
- sync: update CI config files (#90) (libp2p/go-tcp-transport#90)
- chore: update go-libp2p-transport-upgrader and go-reuseport-transport (libp2p/go-tcp-transport#84)
- github.com/libp2p/go-ws-transport (v0.4.0 -> v0.5.0):
- chore: update go-libp2p-transport-upgrader and go-libp2p-core (libp2p/go-ws-transport#103)
- remove deprecated type (libp2p/go-ws-transport#102)
- sync: update CI config files (libp2p/go-ws-transport#101)
- chore: various cleanups required to get vet/staticcheck/test to pass (libp2p/go-ws-transport#100)
- github.com/lucas-clemente/quic-go (v0.21.2 -> v0.23.0):
- update to Go 1.17.x (lucas-clemente/quic-go#3258)
- quicvarint: export Min and Max (#3253) (lucas-clemente/quic-go#3253)
- drop support for Go 1.15 (lucas-clemente/quic-go#3247)
- quicvarint: add Reader and Writer interfaces (#3233) (lucas-clemente/quic-go#3233)
- fix race when stream.Read and CancelRead are called concurrently (lucas-clemente/quic-go#3241)
- also count coalesced 0-RTT packets in the integration tests (lucas-clemente/quic-go#3251)
- remove draft versions 32 and 34 from README (#3244) (lucas-clemente/quic-go#3244)
- update Changelog (lucas-clemente/quic-go#3245)
- optimize hasOutstandingCryptoPackets in sentPacketHandler (lucas-clemente/quic-go#3230)
- permit underlying conn to implement batch interface directly (lucas-clemente/quic-go#3237)
- cancel the PTO timer when all Handshake packets are acknowledged (lucas-clemente/quic-go#3231)
- fix flaky INVALID_TOKEN server test (lucas-clemente/quic-go#3223)
- drop support for QUIC draft version 32 and 34 (lucas-clemente/quic-go#3217)
- fix flaky 0-RTT integration test (lucas-clemente/quic-go#3224)
- use batched reads (lucas-clemente/quic-go#3142)
- add a config option to disable sending of Version Negotiation packets (lucas-clemente/quic-go#3216)
- remove the RetireBugBackwardsCompatibilityMode (lucas-clemente/quic-go#3213)
- remove outdated ackhandler test case (lucas-clemente/quic-go#3212)
- remove unused StripGreasedVersions function (lucas-clemente/quic-go#3214)
- fix incorrect usage of errors.Is (lucas-clemente/quic-go#3215)
- return error on SendMessage when session is closed (lucas-clemente/quic-go#3218)
- remove a redundant error check (lucas-clemente/quic-go#3210)
- update golangci-lint to v1.41.1 (lucas-clemente/quic-go#3205)
- Update doc for dialer in http3.RoundTripper (lucas-clemente/quic-go#3208)
- github.com/multiformats/go-multiaddr (v0.3.3 -> v0.4.0):
- remove forced dependency on deprecated go-maddr-filter (multiformats/go-multiaddr#162)
- remove deprecated SwapToP2pMultiaddrs (multiformats/go-multiaddr#161)
- remove Makefile (multiformats/go-multiaddr#163)
- remove deprecated filter functions (multiformats/go-multiaddr#157)
- remove deprecated NetCodec (multiformats/go-multiaddr#159)
- add Noise (multiformats/go-multiaddr#156)
- Add TLS protocol (multiformats/go-multiaddr#153)
- github.com/multiformats/go-multicodec (v0.2.0 -> v0.3.0):
- Export reserved range constants (#53) (multiformats/go-multicodec#53)
- make Code.Set accept valid code numbers
- replace Of with Code.Set, implementing flag.Value
- add multiformats/multicodec as a git submodule
- update the generator with the "status" CSV column
- Run
go generate
to generate the latest codecs - Add lookup for multicodec code by string name (multiformats/go-multicodec#40)
Contributors
Contributor Commits Lines Β± Files Changed Daniel MartΓ 42 +8549/-6587 170 Eric Myhre 55 +5883/-6715 395 π Marten Seemann 100 +1814/-2028 Steven Allen 80 +1573/-1998 127 hannahhoward 18 +1721/-671 53 Will 2 +1114/-1217 18 Andrew Gillis 2 +1220/-720 14 gammazero 3 +43/-1856 10 Masih H. Derkani 3 +960/-896 8 Adin Schmahmann 25 +1458/-313 44 vyzo 27 +986/-353 60 Will Scott 6 +852/-424 16 Rod Vagg 19 +983/-255 66 Petar Maymounkov 6 +463/-179 22 web3-bot 10 +211/-195 24 adlrocha 1 +330/-75 15 RubenKelevra 2 +128/-210 2 Ian Davis 3 +200/-109 17 Cory Schwartz 3 +231/-33 7 Keenan Nemetz 1 +184/-71 2 Randy Reddig 2 +187/-53 8 Takashi Matsuda 3 +201/-2 7 guseggert 4 +161/-20 9 Lucas Molas 5 +114/-47 27 nisdas 4 +115/-45 7 Michael MurΓ© 6 +107/-33 24 Richard Ramos 2 +113/-9 3 Marcin Rataj 12 +88/-24 13 Ondrej Prazak 2 +104/-6 4 Michal Dobaczewski 2 +77/-28 3 Jorropo 3 +9/-75 4 Andey Robins 1 +70/-3 3 Gus Eggert 10 +34/-31 12 noot 1 +54/-9 5 Maxim Merzhanov 1 +29/-24 1 Adrian Lanzafame 1 +30/-13 2 Bogdan Stirbat 1 +22/-16 2 Shad Sterling 1 +28/-3 1 Jesse Bouwman 5 +30/-0 5 Pavel Karpy 1 +19/-7 2 lasiar 5 +14/-10 5 Dennis Trautwein 1 +20/-4 2 Louis Thibault 1 +22/-1 2 whyrusleeping 2 +21/-1 2 aarshkshah1992 3 +12/-8 3 Peter Rabbitson 2 +20/-0 2 bt90 2 +17/-2 2 Dominic Della Valle 1 +13/-1 2 Audrius Butkevicius 1 +12/-1 1 Brian Strauch 1 +9/-3 1 Aarsh Shah 2 +1/-11 2 Whyrusleeping 1 +11/-0 1 Max 1 +7/-3 1 vallder 1 +3/-5 1 Michael Burns 3 +2/-6 3 Lasse Johnsen 1 +4/-4 2 snyh 1 +5/-2 1 Hector Sanjuan 2 +3/-2 2 εΈε·ζδ½ (ebi) 1 +1/-3 1 godcong 2 +2/-1 2 Mathis Engelbart 1 +1/-2 1 folbrich 1 +1/-1 1 Med Mouine 1 +1/-1 1 -
v0.9.1 Changes
July 20, 2021π This is a small bug fix release resolving the following issues:
- A regression where the empty CID bafkqaaa could not resolve on gateways #8230
- A panic on OpenBSD #8211
- High CPU usage with QUIC #8256
- High memory usage with TCP #8219
- Some pubsub issues (libp2p/go-libp2p-pubsub#427, libp2p/go-libp2p-pubsub#430) π 6. Updated WebUI to v2.12.4 π 7. Fixed the snap deployment #8212
π Changelog
- github.com/ipfs/go-ipfs:
- chore: update deps
- feat: webui v2.12.4
- test: gateway response for bafkqaaa
- fix: downgrade mimetype dependency
- update go-libp2p to v0.14.3
- bump snap to build with Go 1.16
- github.com/libp2p/go-libp2p (v0.14.2 -> v0.14.3):
- update go-tcp-transport to v0.2.3 and go-multiaddr to v0.3.3 (libp2p/go-libp2p#1121)
- github.com/libp2p/go-libp2p-pubsub (v0.4.1 -> v0.4.2):
- release priority locks early when handling batches
- don't respawn writer if we fail to open a stream; declare it a peer error
- batch process dead peer notifications
- use a priority lock instead of a semaphore
- do the notification in a goroutine
- emit new peer notification without holding the semaphore
- use a semaphore for new peer notifications so that we don't block the event loop
- don't accumulate pending goroutines from new connections
- Make close concurrent safe
- Fix close of closed channel
- github.com/libp2p/go-libp2p-quic-transport (v0.11.1 -> v0.11.2):
- update quic-go to v0.21.2
- github.com/libp2p/go-tcp-transport (v0.2.2 -> v0.2.4):
- collect metrics in a separate go routine (libp2p/go-tcp-transport#82)
- fix: avoid logging "invalid argument" errors when setting keepalive (libp2p/go-tcp-transport#83)
- Skip SetKeepAlivePeriod call on OpenBSD (libp2p/go-tcp-transport#80)
- sync: update CI config files (#79) (libp2p/go-tcp-transport#79)
- github.com/lucas-clemente/quic-go (v0.21.1 -> v0.21.2):
- update qtls to include the crypto/tls fix of Go 1.16.6 / 1.15.14
- cancel the PTO timer when all Handshake packets are acknowledged
- update to Go 1.17rc1
- update Ginkgo to v1.16.4 and Gomega to v1.13.0 (lucas-clemente/quic-go#3139)
- github.com/multiformats/go-multiaddr (v0.3.2 -> v0.3.3):
- guard against nil {Local,Remote}Addr() return values (multiformats/go-multiaddr#155)
- sync: update CI config files (#154) (multiformats/go-multiaddr#154)
Contributors
Contributor Commits Lines Β± Files Changed vyzo 8 +205/-141 12 π Marten Seemann 7 +127/-74 gammazero 2 +43/-5 3 Steven Allen 1 +13/-2 1 Adin Schmahmann 3 +13/-2 3 Marcin Rataj 2 +9/-1 2 Aaron Bieber 1 +6/-2 1 -
v0.9.0 Changes
June 22, 2021π We're happy to announce go-ipfs 0.9.0. This release makes go-ipfs even more configurable with some fun experiments to boot. We're also deprecating or removing some uncommonly used features to make it easier for users to discover the easy ways to use go-ipfs safely and efficiently.
As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.
π¦ Highlights
π¦ Exporting of DAGs via Gateways
π Gateways now support downloading arbitrary IPLD graphs via the
/api/v0/dag/export
endpoint. This endpoint works in the same way as theipfs dag export
command.One major thing this enables is ability to verify data downloaded from public gateways. If you go to
https://somegateway.example.net/ipfs/bafyexample
you are using the old school HTTP transport, and trusting that the gateway is being well behaved. However, if you download the graph as a DAG archive then it is possible to verify that the data you downloaded does in fact matchbafyexample
.β Additionally, it was previously quite painful to download things other than UnixFS (files + directories) using gateways. It is now possible to download arbitrary IPLD graphs from gateways, making them useful as a general-purpose alternative to p2p transports.
π» This opens exciting opportunities in areas like thin clients, mobile browsers and IoT devices, which now can delegate IPFS resolution to any public gateway, and have ability to verify that the data received matches the requested hash.
β Custom DNS Resolvers
Resolution of DNS records for DNSLink and DNSAddrs means that names are sent in cleartext between the operating system and the DNS server provided by an ISP. In the past, the only way to customize DNS resolution in IPFS stack was to set up own DNS proxy server.
There is now the ability to customize DNS resolution and override the default resolver from the OS with DNS over HTTPS (DoH) one. We made it really flexible: override can be applied globally, or per specific TLD/FQDN. Examples can be found in the documentation.
π πͺ Support for non-ICANN DNSLink names
π Building off of the support for custom DNS resolvers it is now possible to create DNSLink names not handled by ICANN and choose how that domain name will be resolved. An example of this is how ENS is supported, despite
.eth
not being an ICANN TLD you can point.eth
to any ENS resolver you want (including a local one).0οΈβ£ While go-ipfs may have some DoH defaults for a few popular non-ICANN DNSLink names (e.g. ENS), you are free to use any protocol for a naming system and as long as it exposes a DNSLink record via a DNS endpoint you can make it work.
β‘οΈ π₯οΈ Updated to the latest WebUI
Our web interface now includes experimental support for pinning services, and various updates to Files and Peers screens.
Remote pinning services added via the
ipfs pin remote service add
command are already detected, one can also add one from Settings screen, and it will appear in Set pinning interface on the Files screen.Data presented on the Peers screen can now be copied by simply clicking on a specific cell, and a list of open streams gives better insight into how a local node interacts with a specific peer.
π See release notes for ipfs-webui v2.12 for screenshots and more details.
π IPNS keys can now be exported via the CLI without stopping the daemon
ipfs key export
no longer requires interruptingipfs daemon
β¨πΈ Experimental DHT Client and Provider System
An area of go-ipfs that has been historically tricky is how go-ipfs finds who has the data they are looking for. While the IPFS Public DHT is only one of the ways go-ipfs can find data it tends to be an important one. While since go-ipfs v0.5.0 the time to find content in the network has dropped significantly the time to put/get IPNS records or for a node to advertise the content it has still has much room for improvement.
We have been doing some experimenting and have an alternative DHT client that essentially trades off some resources and in return is much more performant. We have also included with the experimental DHT client a bulk provider system that takes advantage of the new client to more efficiently do many advertisements at a time
This work is quite new and still under development, however, the results so far have been promising especially for users with lots of data who have otherwise been having difficulty advertising their data into the IPFS Public DHT
π As described in the experimental features documentation the experimental client can be enabled using the command below (or modifying the config file).
ipfs config --json Experimental.AcceleratedDHTClient true
A few things to take note of when
AcceleratedDHTClient
is enabled:- go-ipfs will likely use more resources then previously
- DHT queries will not be usable (i.e. finding which peers have some data, finding where a particular peer is, etc.) for the first 5-10 minutes of operation depending on your network conditions
- π There is an
ipfs stats provide
command that will help you track your provide/reprovide usage, if you are providing lots of data you may want to consider how to reduce the amount you are providing (e.g. Reprovider Strategies and/or Strategic Providing)
π See the documentation for more details.
πΆββοΈ Migrations
π¦ Migrations are now individually packaged
β¬οΈ While previously the go-ipfs repo migration binary was monolithic and contained all migrations from previous go-ipfs versions the binaries are now packaged individually. However, the fs-repo-migrations binary is still there to help those who manually upgrade their repos to download all the individual migrations.
β¬οΈ This means faster download times for upgrades, a much easier time building migrations for those who make use of custom plugins, and an easier time developing new migrations going forward.
π§ Configurable migration downloads enable downloading over IPFS
β‘οΈ Previously the migration downloader built into go-ipfs downloaded the migrations from dist.ipfs.io. While users could use tools like ipfs-update to download the migrations over IPFS or manually download the migrations (over IPFS or otherwise) themselves, this is now automated and configurable. Users can choose to download the migrations over IPFS or from any specified IPFS Gateway.
π The configurable migration options are described in the config file documentation, although most users should not need to change the default settings.
π The main benefit here is that users behind restrictive firewalls, or in offline/private deployments, won't have to run migrations manually, which is especially important for desktop use cases where go-ipfs is running inside of IPFS Desktop and Brave.
π π Published builds for Apple M1 hardware
π Go now supports building for Darwin ARM64, and we are now publishing those builds
π π Deprecations and Feature Removals
π The
ipfs object
commands are now deprecatedIn the last couple years most of the Object API's commands have become fulfillable using alternative APIs.
π The utility of Object API's is limited to data in UnixFS-v1 (
dag-pb
) format. If you are still using it, it is highly recommended that you switch to the DAGipfs dag
(supports modern data types likedag-cbor
) or Filesipfs files
(more intuitive for working withdag-pb
) APIs.β‘οΈ While the Object API and commands are still usable they are now marked as deprecated and hidden from users on the command line to discourage further use. We also updated their
--help
text to point at the modern replacements.π
X-Ipfs-Gateway-Prefix
is now deprecatedπ IPFS community moved towards dedicated Origins (DNSLink and subdomain gateways) which are much easier to isolate and reason about.
π Setting up
Gateway.PathPrefixes
andX-Ipfs-Gateway-Prefix
is no longer necessary and support will be removed in near future.π Proquints support removed
π A little known feature that was not well used or documented and was more well known for the error message
Error: not a valid proquint string
users received when trying to download invalid IPNS or DNSLink names (e.g.https://dweb.link/ipns/badname
). We have removed support for proquints as they were out of place and largely unused, however proquints are valid multibases so if there is renewed interest in them there is a way forward.π SECIO support removed
π SECIO was deprecated and turned off by default given the prevalence of TLS and Noise support, SECIO support is now removed entirely.
π Changelog
- github.com/ipfs/go-ipfs:
- chore: switch tar-utils dep to ipfs org
- chore: update CHANGELOG
- refactor: warning when bootstrap disabled by user
- feat: print error on bootstrap failure
- fix: typo in migration error
- Release v0.9.0-rc2
- refactor: improved humanNumber and humanSI
- feat: humanized durations in stat provide
- feat: humanized numbers in stat provide
- feat: add a text output encoding for the stats provide command
- fix: webui-2.12.3
- refactor(pinmfs): log error if pre-existing pin failed (#8056) (ipfs/go-ipfs#8056)
- Release v0.9.0-rc1
- Added support for an experimental DHT client and provider system via the Experiments.AcceleratedDHTClient config option (ipfs/go-ipfs#8061)
- feat: support DNSLink on non-ICANN DNS names (ipfs/go-ipfs#8071)
- update go-tcp-transport to v0.2.2 (ipfs/go-ipfs#8129)
- update quic-go to v0.21.0-rc.1 (ipfs/go-ipfs#8125)
- chore: bump minimum go version to 1.15 (ipfs/go-ipfs#7944)
- chore: update deps (ipfs/go-ipfs#8128)
- feat: allow key export in online mode (ipfs/go-ipfs#8113)
- Feat/migration ipfs download (#8064) (ipfs/go-ipfs#8064)
- feat: support custom DoH resolvers (ipfs/go-ipfs#8068)
- update go-libp2p to v0.14.0 (ipfs/go-ipfs#8122)
- feat(gw): expose /api/v0/dag/export on gateway port (ipfs/go-ipfs#8111)
- chore: update webui to 2.12.2 (ipfs/go-ipfs#8097)
- docs: deprecate object commands (ipfs/go-ipfs#8098)
- fix: omit empty pins slice when reporting pin progress (ipfs/go-ipfs#8023)
- Fix typo in comment (ipfs/go-ipfs#8087)
- fix: set systemd startup timeout to infinity (ipfs/go-ipfs#8040)
- fix(mkreleaselog): partially handle v2 modules (ipfs/go-ipfs#8073)
- Update migration sharness tests for new migrations (#8053) (ipfs/go-ipfs#8053)
- fix: make migrations log output to stdout (ipfs/go-ipfs#8054)
- fix(gw): remove hardcoded hostnames (ipfs/go-ipfs#8069)
- Fix transposed words in docs/config.md (ipfs/go-ipfs#8051)
- fix: update root help (ipfs/go-ipfs#8052)
- chore: dont docker tag rc as latest (ipfs/go-ipfs#8055)
- Add info to "pin rm" help about how to tell if pin is indirect (ipfs/go-ipfs#8044)
- build(deps): bump contrib.go.opencensus.io/exporter/prometheus from 0.2.0 to 0.3.0 (ipfs/go-ipfs#8020)
- fix(gw): remove use of Clear-Site-Data in subdomain router (ipfs/go-ipfs#7890)
- (ipfs/go-ipfs#7857)
- docs: clarification of the Strategic Providing functionality (ipfs/go-ipfs#8035)
- docs: cosmetic fixes of help text (ipfs/go-ipfs#8010)
- chore: deprecate Gateway.PathPrefixes (ipfs/go-ipfs#7994)
- Fix text contrast for dark mode (ipfs/go-ipfs#8027)
- Do not fetch recursive pins from pinner unnecessarily (ipfs/go-ipfs#7883)
- test(sharness): verify the list of exported metrics (ipfs/go-ipfs#7987)
- fix: return an error if repo verify is canceled (ipfs/go-ipfs#7973)
- doc: document security fix policy (ipfs/go-ipfs#7991)
- feat(gw): /ipfs/ipfs/{cid} β /ipfs/{cid} (ipfs/go-ipfs#7930)
- Fix: innacuracies in MFS command documentation. (ipfs/go-ipfs#8001)
- Feat: Re-import InitializeKeyspace code from go-namesys (ipfs/go-ipfs#7984)
- revert registration of metrics against unexposed prom registry (ipfs/go-ipfs#7986)
- Extract the namesys and the keystore submodules (ipfs/go-ipfs#7925)
- split core/commands/dag into individual files for different subcommands (ipfs/go-ipfs#7970)
- test(sharness): pass correct timeout format to go-timeout (ipfs/go-ipfs#7971)
- fix race condition when logging requests (ipfs/go-ipfs#7953)
- fix some sharness-in-CI issues (ipfs/go-ipfs#7946)
- chore: update deps (ipfs/go-ipfs#7941)
- fix: correctly return pin ls errors (ipfs/go-ipfs#7942)
- feat: remove secio support (ipfs/go-ipfs#7943)
- Set supported platforms by go-version (ipfs/go-ipfs#7927)
- docs: tips on debugging Policies.MFS (#7929) (ipfs/go-ipfs#7929)
- docs: fix DNSLink gw recipe (ipfs/go-ipfs#7932)
- Merge branch 'release'
- docs: RepinInterval
- style: docs/config.md
- style: improved MFS PinName example
- docs: Pinning.RemoteServices.Policies
- peering: add logs before many-second waits (ipfs/go-ipfs#7904)
- all: gofmt -s (ipfs/go-ipfs#7900)
- github.com/ipfs/go-bitswap (v0.3.3 -> v0.3.4):
- remove Makefile (ipfs/go-bitswap#483)
- test: deflake engine test (ipfs/go-bitswap#480)
- test: deflake large-message test (ipfs/go-bitswap#479)
- fix: fix alignment of stats struct in virtual network (ipfs/go-bitswap#478)
- fix(network): impl: add timeout in newStreamToPeer call (ipfs/go-bitswap#477)
- fix staticcheck (ipfs/go-bitswap#474)
- ignore transient connections (ipfs/go-bitswap#470)
- fix a startup race by creating the blockstoremanager process on init (ipfs/go-bitswap#465)
- github.com/ipfs/go-block-format (v0.0.2 -> v0.0.3):
- doc: add a lead maintainer (ipfs/go-block-format#16)
- github.com/ipfs/go-graphsync (v0.6.0 -> v0.8.0):
- docs(CHANGELOG): update for v0.8.0
- Update for LinkSystem (#161) (ipfs/go-graphsync#161)
- Round out diagnostic parameters (#157) (ipfs/go-graphsync#157)
- map response codes to names (#148) (ipfs/go-graphsync#148)
- Discard http output (#156) (ipfs/go-graphsync#156)
- Add debug logging (#121) (ipfs/go-graphsync#121)
- Add optional HTTP comparison (#153) (ipfs/go-graphsync#153)
- docs(architecture): update architecture docs (#154) (ipfs/go-graphsync#154)
- release v0.7.0 (ipfs/go-graphsync#152)
- chore: update deps (#151) (ipfs/go-graphsync#151)
- Automatically record heap profiles in testplans (#147) (ipfs/go-graphsync#147)
- feat(deps): update go-ipld-prime v0.7.0 (#145) (ipfs/go-graphsync#145)
- Release/v0.6.0 (ipfs/go-graphsync#144)
- github.com/ipfs/go-ipfs-blockstore (v0.1.4 -> v0.1.6):
- use bloom filter in GetSize
- github.com/ipfs/go-ipfs-config (v0.12.0 -> v0.14.0):
- Added Experiments.AcceleratedDHTClient option (ipfs/go-ipfs-config#125)
- Add config for downloading repo migrations (ipfs/go-ipfs-config#128)
- remove duplicate entries in defaultServerFilters (ipfs/go-ipfs-config#121)
- add custom DNS Resolver configuration (ipfs/go-ipfs-config#126)
- github.com/ipfs/go-ipfs-provider (v0.4.3 -> v0.5.1):
- Fix batched providing of empty keys (ipfs/go-ipfs-provider#37)
- Bulk Provide/Reproviding System (#34) (ipfs/go-ipfs-provider#34)
- chore: update the Usage part of readme (ipfs/go-ipfs-provider#33)
- Retract and revert 1.0.0 (ipfs/go-ipfs-provider#31)
- replace go-merkledag with go-fetcher (ipfs/go-ipfs-provider#30)
- github.com/ipfs/go-ipld-git (v0.0.3 -> v0.0.4):
- add license file so it can be found by go-licenses (ipfs/go-ipld-git#42)
- github.com/ipfs/go-ipns (v0.0.2 -> v0.1.0):
- Add support for extensible records (and v2 signature)
- π² github.com/ipfs/go-log (v1.0.4 -> v1.0.5):
- chore: update v1 deps (ipfs/go-log#108)
- π² github.com/ipfs/go-log/v2 (v2.1.1 -> v2.1.3):
- doc(README): use circle-ci badge (ipfs/go-log#106)
- feat: add ability to specify labels for all loggers (ipfs/go-log#105)
- Add an option to pass URL to zap (ipfs/go-log#101)
- enable configuring several log outputs (ipfs/go-log#98)
- Fix caller not being added (ipfs/go-log#96)
- github.com/ipfs/go-unixfs (v0.2.4 -> v0.2.5):
- correct file size for raw node (ipfs/go-unixfs#88)
- github.com/ipld/go-car (v0.1.1-0.20201015032735-ff6ccdc46acc -> v0.3.1):
- chore: make sure we get an error where we expect one
- chore: refactor header tests to iterate over a struct
- chore: add header error tests
- fix: lint errors
- fix: go mod tidy
- chore: update go.mod to 1.15
- fix: ReadHeader return value mismatch
- Updates for ipld linksystem branch (ipld/go-car#56)
- replace go-ipld-prime-proto with go-codec-dagpb
- fix staticcheck errors (ipld/go-car#67)
- chore: switch to a single license file (ipld/go-car#59)
- chore: remove LICENSE (ipld/go-car#58)
- chore: relicense (ipld/go-car#57)
- ci: remove travis support (ipld/go-car#55)
- run gofmt -s
- Allow user defined block hooks when using two step write for selective cars (ipld/go-car#37)
- feat: handle mid-varint EOF case as UnexpectedEOF
- fix: main NewReader call
- github.com/ipld/go-ipld-prime (v0.5.1-0.20201021195245-109253e8a018 -> v0.9.1-0.20210324083106-dc342a9917db):
- Add option to tell link system storage is trusted and we can skip hash on read (ipld/go-ipld-prime#149)
- implement non-dag cbor codec (ipld/go-ipld-prime#153)
- add non-dag json codec (ipld/go-ipld-prime#152)
- typo fixes
- mark v0.9.0
- Changelog: more backfill :)
- hackme: about merge strategies.
- Dropping .gopath and other unmaintained scripts.
- introduce LinkSystem (ipld/go-ipld-prime#143)
- Readme updates.
- codec/raw: implement the raw codec
- add an ADL interface type
- schema/gen/go: cache genned code in os.TempDir
- fluent/qp: finish writing all data model helpers
- fluent: add qp, a different spin on quip
- schema/gen/go: prevent some unkeyed literal vet errors
- schema/gen/go: remove two common subtest levels
- use %q in error strings
- schema/gen/go: please vet a bit more
- Introduce 'quip' data building helpers. (ipld/go-ipld-prime#134)
- gengo: support for unions with stringprefix representation. (ipld/go-ipld-prime#133)
- target of opporunity DRY improvement: use more shared templates for structs with stringjoin representations.
- fix small consistency typo in gen function names.
- drop old generation mechanisms that were already deprecated.
- error type cleanup, and helpers.
- v0.7.0 and changelog update
- Revert "rename AssignNode to ConvertFrom"
- Implement traversal.FocusedTransform. (ipld/go-ipld-prime#130)
- Update a few more lingering ReprKind references.
- all: rename schema.Kind to TypeKind, ipld.ReprKind to Kind (ipld/go-ipld-prime#127)
- all: rename AssignNode to ConvertFrom
- all: rewrite interfaces and APIs to support int64
- mark v0.6.0
- clean up node/gendemo regeneration (ipld/go-ipld-prime#123)
- cleanup: drop orphaned gitignore file.
- Schema types rebased to use codegen types for the data (ipld/go-ipld-prime#107)
- codegen: assembler for struct with map representation validates all non-optional fields are present (ipld/go-ipld-prime#121)
- changelog: backfill.
- fluent: finish out matrix of helper methods, and fix error handling of the non-Must methods.
- all: fix a lot of "unkeyed literal" vet warnings
- node/mixins: use simpler filenames
- node/gendemo: use the new code generator
- Merge pull request #96 , originally known as ipld/cidlink-only-usable-as-ptr
- Codec revamp (ipld/go-ipld-prime#112)
- Allow overriden types (#116) (ipld/go-ipld-prime#116)
- add import to ipld in ipldsch_types.go (ipld/go-ipld-prime#115)
- Codegen output rearrange (ipld/go-ipld-prime#105)
- Validate struct builder sufficiency (ipld/go-ipld-prime#111)
- Fresh take on codec APIs, and some tokenization utilities. (ipld/go-ipld-prime#101)
- Add a demo ADL (rot13adl) (ipld/go-ipld-prime#98)
- Introduce traversal function that selects links out of a tree. (ipld/go-ipld-prime#110)
- Codegen various improvements (ipld/go-ipld-prime#106)
- π github.com/libp2p/go-conn-security-multistream (v0.2.0 -> v0.2.1):
- Implement support for simultaneous open (#14) (libp2p/go-conn-security-multistream#14)
- github.com/libp2p/go-libp2p (v0.13.0 -> v0.14.2):
- Fix race in adding connections to connsByPeer (libp2p/go-libp2p#1116)
- speed up the mock tests (libp2p/go-libp2p#1103)
- remove slow ObservedAddrManager test that doesn't test anything (libp2p/go-libp2p#1104)
- remove Codecov config (libp2p/go-libp2p#1100)
- doc: document standard connection manager (libp2p/go-libp2p#1099)
- run go mod tidy in the examples (libp2p/go-libp2p#1098)
- Cleanup some remaining examples nits (libp2p/go-libp2p#1097)
- chore: bring examples back into repository and add tests (libp2p/go-libp2p#1092)
- fix(mkreleasenotes): handle first commit (libp2p/go-libp2p#1095)
- doc: add a basic release process (libp2p/go-libp2p#1080)
- chore: update yamux (libp2p/go-libp2p#1089)
- fix: re-expose AutoNAT service on BasicHost (libp2p/go-libp2p#1088)
- remove NEWS.md (libp2p/go-libp2p#1086)
- test: deflake TestProtoDowngrade (libp2p/go-libp2p#1084)
- sync: update CI config files (and fix tests) (libp2p/go-libp2p#1083)
- static check fixes (libp2p/go-libp2p#1076)
- fix go vet (libp2p/go-libp2p#1075)
- option for custom dns resolver (libp2p/go-libp2p#1073)
- chore: update deps (libp2p/go-libp2p#1066)
- fix autonat race (libp2p/go-libp2p#1062)
- use transient connections in identify streams (libp2p/go-libp2p#1061)
- Emit event for User's NAT Type i.e. Hard NAT or Easy NAT (#1042) (libp2p/go-libp2p#1042)
- Finish and Test the simultaneous connect problem in libp2p peers (#1041) (libp2p/go-libp2p#1041)
- Close peerstore and document Host Close (#1037) (libp2p/go-libp2p#1037)
- Timeout all Identify stream reads (#1032) (libp2p/go-libp2p#1032)
- github.com/libp2p/go-libp2p-autonat (v0.4.0 -> v0.4.2):
- Fix: Stream read timeout (libp2p/go-libp2p-autonat#99)
- fix: simplify address replacement (libp2p/go-libp2p-autonat#102)
- replace the port number for double NAT mapping (libp2p/go-libp2p-autonat#101)
- github.com/libp2p/go-libp2p-core (v0.8.0 -> v0.8.5):
- mind the dot.
- context option for simultaneous connect
- Event for user's NAT Device Type: Tell user if the node is behind an Easy or Hard NAT (#173) (libp2p/go-libp2p-core#173)
- address aarshian nitpicks
- make UseTransient context option take a reason argument, for consistency with other options
- abstract Conn Stat interface for threading
- Update network/context.go
- add ErrTransientConn error
- add support for transient connections
- more docs for stream fncs (#183) (libp2p/go-libp2p-core#183)
- refactor: use a helper type to decode AddrInfo from JSON (#178) (libp2p/go-libp2p-core#178)
- fix stream docs (#182) (libp2p/go-libp2p-core#182)
- context to force direct dial (#181) (libp2p/go-libp2p-core#181)
- Secure Muxer Interface (#180) (libp2p/go-libp2p-core#180)
- github.com/libp2p/go-libp2p-discovery (v0.5.0 -> v0.5.1):
- Fix hang in BackoffDiscovery.FindPeers when requesting limit lower than number of peers available (libp2p/go-libp2p-discovery#69)
- fix staticcheck (libp2p/go-libp2p-discovery#70)
- github.com/libp2p/go-libp2p-kad-dht (v0.11.1 -> v0.12.2):
- fullrt rework batching (#720) (libp2p/go-libp2p-kad-dht#720)
- sync: update CI config files (libp2p/go-libp2p-kad-dht#712)
- fix staticcheck (libp2p/go-libp2p-kad-dht#721)
- fix: fullrt dht bug fixes (libp2p/go-libp2p-kad-dht#719)
- Crawler based DHT client (#709) (libp2p/go-libp2p-kad-dht#709)
- test: fix unique addr check (libp2p/go-libp2p-kad-dht#714)
- chore: update deps (libp2p/go-libp2p-kad-dht#713)
- Add basic crawler (#663) (libp2p/go-libp2p-kad-dht#663)
- various staticcheck fixes (libp2p/go-libp2p-kad-dht#710)
- findpeer should work even on peers that are not part of DHT queries (libp2p/go-libp2p-kad-dht#711)
- Extract DHT message sender from the DHT (libp2p/go-libp2p-kad-dht#659)
- github.com/libp2p/go-libp2p-noise (v0.1.2 -> v0.2.0):
- Update github.com/flynn/noise to address nonce handling security issues (libp2p/go-libp2p-noise#95)
- fix staticcheck (libp2p/go-libp2p-noise#96)
- chore: update deps (libp2p/go-libp2p-noise#94)
- chore: relicense MIT/Apache-2.0 (libp2p/go-libp2p-noise#93)
- github.com/libp2p/go-libp2p-peerstore (v0.2.6 -> v0.2.7):
- fix: delete addrs when "updating" them to zero (libp2p/go-libp2p-peerstore#157)
- github.com/libp2p/go-libp2p-quic-transport (v0.10.0 -> v0.11.1):
- update quic-go, enable QUIC v1 (RFC 9000) (libp2p/go-libp2p-quic-transport#207)
- update quic-go to v0.21.0-rc2 (libp2p/go-libp2p-quic-transport#206)
- increase test timeout to reduce flakiness of test on Windows (libp2p/go-libp2p-quic-transport#204)
- correctly export version negotiation failures to Prometheus (libp2p/go-libp2p-quic-transport#205)
- update quic-go to v0.20.1 (libp2p/go-libp2p-quic-transport#201)
- expose some Prometheus metrics (libp2p/go-libp2p-quic-transport#200)
- update quic-go to v0.20.0 (libp2p/go-libp2p-quic-transport#198)
- reduce the zstd window size from 8 MB to 32 KB (libp2p/go-libp2p-quic-transport#195)
- compress qlogs when the QUIC connection is closed (libp2p/go-libp2p-quic-transport#193)
- switch from gzip to zstd for qlog compression (libp2p/go-libp2p-quic-transport#190)
- github.com/libp2p/go-libp2p-swarm (v0.4.0 -> v0.5.0):
- run connection gating tests on both TCP and QUIC (libp2p/go-libp2p-swarm#258)
- fix: avoid returning typed nils (libp2p/go-libp2p-swarm#257)
- fix staticcheck (libp2p/go-libp2p-swarm#255)
- fix go vet (libp2p/go-libp2p-swarm#253)
- New Dialer (libp2p/go-libp2p-swarm#243)
- fix: use 64bit stream/conn IDs (libp2p/go-libp2p-swarm#247)
- feat: close transports that implement io.Closer (libp2p/go-libp2p-swarm#227)
- fix swarm transient conn (#241) (libp2p/go-libp2p-swarm#241)
- Support for Hole punching (#233) (libp2p/go-libp2p-swarm#233)
- Treat transient connections as opt-in when opening new streams (libp2p/go-libp2p-swarm#236)
- avoid assigning a function to a variable (libp2p/go-libp2p-swarm#239)
- only listen on localhost in tests (libp2p/go-libp2p-swarm#238)
- prevent dialing addresses that we're listening on (libp2p/go-libp2p-swarm#237)
- Enable QUIC in Test Swarm (#235) (libp2p/go-libp2p-swarm#235)
- β¬οΈ github.com/libp2p/go-libp2p-transport-upgrader (v0.4.0 -> v0.4.2):
- Expose underlying transport connection stat where available (libp2p/go-libp2p-transport-upgrader#71)
- Implement support for simultaneous open (#25) (libp2p/go-libp2p-transport-upgrader#25)
- github.com/libp2p/go-libp2p-yamux (v0.5.1 -> v0.5.4):
- remove Makefile (libp2p/go-libp2p-yamux#35)
- github.com/libp2p/go-netroute (v0.1.3 -> v0.1.6):
- add js stub impl
- github.com/libp2p/go-sockaddr (v0.0.2 -> v0.1.1):
- fix: allocate "any" socket type then cast (libp2p/go-sockaddr#20)
- fix: remove CGO functions (libp2p/go-sockaddr#18)
- github.com/libp2p/go-tcp-transport (v0.2.1 -> v0.2.2):
- use log.Warn instead of log.Warning (libp2p/go-tcp-transport#77)
- add bandwidth-related metrics (for Linux and OSX) (libp2p/go-tcp-transport#76)
- expose some Prometheus metrics (libp2p/go-tcp-transport#75)
- enable TCP keepalives (libp2p/go-tcp-transport#73)
- stop using the deprecated go-multiaddr-net package (libp2p/go-tcp-transport#72)
- github.com/libp2p/go-yamux/v2 (v2.0.0 -> v2.2.0):
- make the initial stream receive window configurable (libp2p/go-yamux#59)
- set initial window size to spec value (256 kB), remove config option (libp2p/go-yamux#57)
- fix: don't change the receive window if we're forcing an update (libp2p/go-yamux#56)
- sync: update CI config files (libp2p/go-yamux#55)
- increase the receive window size if we're sending updates to frequently (libp2p/go-yamux#54)
- remove unused Stream.Shrink() method (libp2p/go-yamux#52)
- remove misleading comment about the MaxMessageSize (libp2p/go-yamux#50)
- clean up the receive window check (libp2p/go-yamux#49)
- don't reslice byte slices taking from the buffer (libp2p/go-yamux#48)
- don't reimplement io.ReadFull (libp2p/go-yamux#38)
- remove the recvLock in the stream (libp2p/go-yamux#42)
- remove the sendLock in the stream (libp2p/go-yamux#41)
- remove misleading statement about NAT traversal (libp2p/go-yamux#45)
- remove .gx directory, add last gx version to README (libp2p/go-yamux#43)
- reduce usage of goto (libp2p/go-yamux#40)
- remove unused error return value in Stream.processFlags (libp2p/go-yamux#39)
- github.com/lucas-clemente/quic-go (v0.19.3 -> v0.21.1):
- add support for Go 1.17 Beta 1 (lucas-clemente/quic-go#3203)
- add a CI test that go mod vendor works (lucas-clemente/quic-go#3202)
- prevent go mod vendor from stumbling over the Go 1.18 file (lucas-clemente/quic-go#3195)
- remove CipherSuiteName and HkdfExtract for Go 1.17 (lucas-clemente/quic-go#3192)
- fix relocation target for cipherSuiteTLS13ByID in Go 1.17
- use HkdfExtract from x/crypto (lucas-clemente/quic-go#3173)
- add support for QUIC v1, RFC 9000 (lucas-clemente/quic-go#3190)
- use tls.CipherSuiteName, instead of wrapping it in the qtls package (lucas-clemente/quic-go#3174)
- use a pre-generated test vectors to test hkdfExpandLabel (lucas-clemente/quic-go#3175)
- reduce flakiness of packet number generation test (lucas-clemente/quic-go#3181)
- simplify the qtls tests (lucas-clemente/quic-go#3185)
- add support for Go 1.17 (tip) (lucas-clemente/quic-go#3182)
- prevent quic-go from building on Go 1.17 (lucas-clemente/quic-go#3180)
- fix DONT_FRAGMENT error when using a IPv6 connection on Windows (lucas-clemente/quic-go#3178)
- use net.ErrClosed (for Go 1.16) (lucas-clemente/quic-go#3163)
- use the new error types to log the reason why a connection is closed (lucas-clemente/quic-go#3166)
- fix race condition in deadline integration test (lucas-clemente/quic-go#3165)
- add support for QUIC v1 (lucas-clemente/quic-go#3160)
- rework error return values (lucas-clemente/quic-go#3159)
- declare Path MTU probe packets lost with the early retransmit timer (lucas-clemente/quic-go#3152)
- declare the handshake confirmed when receiving an ACK for a 1-RTT packet (lucas-clemente/quic-go#3148)
- trace and qlog version selection / negotiation (lucas-clemente/quic-go#3153)
- set the don't fragment (DF) bit on Windows (#3155) (lucas-clemente/quic-go#3155)
- fix doc comment for Tracer.TracerForConnection (lucas-clemente/quic-go#3154)
- make it possible to associate a ConnectionTracer with a Session (lucas-clemente/quic-go#3146)
- remove the .editorconfig (lucas-clemente/quic-go#3147)
- don't use a lower RTT than 5ms after receiving a Retry packet (lucas-clemente/quic-go#3129)
- don't pass the QUIC version to the StartedConnection event (lucas-clemente/quic-go#3109)
- update the packet numbers in decoding test to the ones from the draft (lucas-clemente/quic-go#3137)
- various amplification limit fixes (lucas-clemente/quic-go#3132)
- fix calculation of the handshake idle timeout (lucas-clemente/quic-go#3120)
- only start PMTUD after handshake confirmation (lucas-clemente/quic-go#3138)
- don't regard PMTU probe packets as outstanding (lucas-clemente/quic-go#3126)
- expose the draft-34 version (lucas-clemente/quic-go#3100)
- clean up the testutils (lucas-clemente/quic-go#3104)
- initialize the congestion controller with the actual max datagram size (lucas-clemente/quic-go#3107)
- make it possible to trace acknowledged packets (lucas-clemente/quic-go#3134)
- avoid type confusion between protocol.PacketType and logging.PacketType (lucas-clemente/quic-go#3108)
- fix duplicate logging of errors when the first error was a timeout error (lucas-clemente/quic-go#3112)
- use a tracer to make the packetization test more useful (lucas-clemente/quic-go#3136)
- improve string representation of timeout errors (lucas-clemente/quic-go#3118)
- fix flaky timeout test (lucas-clemente/quic-go#3105)
- fix calculation of the time for the next keep alive
- add a 0-RTT test with different connecton ID lengths (lucas-clemente/quic-go#3098)
- only run Ginkgo focus detection in staged files in pre-commit hook (lucas-clemente/quic-go#3099)
- allow 0-RTT when flow control windows are increased (lucas-clemente/quic-go#3096)
- improve the 0-RTT rejection integration test (lucas-clemente/quic-go#3097)
- rename config values for flow control limits (lucas-clemente/quic-go#3089)
- allow 0-RTT resumption if the server's stream limit was increased (lucas-clemente/quic-go#3086)
- cache the serialized OOB in the conn, not in the packet info (lucas-clemente/quic-go#3093)
- use code points from x/sys/unix for PKTINFO syscalls (lucas-clemente/quic-go#3094)
- make it possible to detect version negotiation failures in logging, fix qlogging of those (lucas-clemente/quic-go#3092)
- make the initial stream / connection flow control windows configurable (lucas-clemente/quic-go#3083)
- only apply server's transport parameters after handshake completion (lucas-clemente/quic-go#3085)
- fix documentation for baseFlowController.UpdateSendWindow (lucas-clemente/quic-go#3087)
- set the Content-Length for HTTP/3 responses (lucas-clemente/quic-go#3091)
- update the flow control windows of streams opened in 0-RTT (lucas-clemente/quic-go#3088)
- Use the correct source IP when binding multiple IPs (lucas-clemente/quic-go#3067)
- fix race condition when receiving 0-RTT packets (lucas-clemente/quic-go#3074)
- require the application to handle 0-RTT rejection (lucas-clemente/quic-go#3066)
- add an internal queue to signal that a datagram frame has been dequeued (lucas-clemente/quic-go#3081)
- increase the maximum size of DATAGRAM frames (lucas-clemente/quic-go#2966)
- remove non-functioning 0-RTT test with different conn ID lengths (lucas-clemente/quic-go#3079)
- remove stray struct equality check (lucas-clemente/quic-go#3078)
- fix issuing of connection IDs when dialing a 0-RTT connections (lucas-clemente/quic-go#3058)
- only accept 0-RTT it the active_connection_id_limit didn't change (lucas-clemente/quic-go#3060)
- remove unused error return value from HandleMaxStreamsFrame (lucas-clemente/quic-go#3072)
- fix flaky accept queue integration test (lucas-clemente/quic-go#3068)
- don't reset the QPACK encoder / decoder streams (lucas-clemente/quic-go#3063)
- remove incorrect logging for client side retry packet (lucas-clemente/quic-go#3071)
- allow sending 1xx responses (#3047) (lucas-clemente/quic-go#3047)
- fix retry key and nonce for draft-34 (lucas-clemente/quic-go#3062)
- implement DPLPMTUD (lucas-clemente/quic-go#3028)
- only read multiple packets at a time after handshake completion (lucas-clemente/quic-go#3041)
- make the certificate verificiation integration tests more explicit (lucas-clemente/quic-go#3040)
- update gomock to v1.5.0, use mockgen source mode (lucas-clemente/quic-go#3049)
- trace dropping of 0-RTT keys (lucas-clemente/quic-go#3054)
- improve timeout measurement in the timeout test (lucas-clemente/quic-go#3042)
- add a randomized test for the received_packet_history (lucas-clemente/quic-go#3052)
- fix documentation of default values for MaxReceive{Stream, Connection}FlowControlWindow (lucas-clemente/quic-go#3055)
- refactor merge packet number ranges (lucas-clemente/quic-go#3051)
- add draft-34 to support versions in README
- update README to reflect dropped Go 1.14 support
- remove redundant nil-check in the packet packer (lucas-clemente/quic-go#3048)
- avoid using rand.Source (lucas-clemente/quic-go#3046)
- update Go to 1.16, drop support for 1.14 (lucas-clemente/quic-go#3045)
- fix error message when the UDP receive buffer size can't be increased (lucas-clemente/quic-go#3039)
- add the time_format field to qlog common_fields (lucas-clemente/quic-go#3038)
- log connection IDs without the 0x prefix (lucas-clemente/quic-go#3036)
- add support for QUIC draft-34 (lucas-clemente/quic-go#3031)
- fix qtls imports in mockgen generated mocks (lucas-clemente/quic-go#3037)
- improve error message when the read buffer size can't be set (lucas-clemente/quic-go#3030)
- qlog the quic-go version (lucas-clemente/quic-go#3033)
- remove the metrics package (lucas-clemente/quic-go#3032)
- expose the constructor for the qlog connection tracer (lucas-clemente/quic-go#3034)
- expose the constructor for the multipexed connection tracer (lucas-clemente/quic-go#3035)
- make sure the server is stopped before closing all server sessions (lucas-clemente/quic-go#3020)
- increase the size of the send queue (lucas-clemente/quic-go#3016)
- prioritize receiving packets over sending out more packets (lucas-clemente/quic-go#3015)
- reenable key updates for HTTP/3 (lucas-clemente/quic-go#3017)
- check for errors after handling each previously undecryptable packet (lucas-clemente/quic-go#3011)
- fix flaky streams map test on Windows (lucas-clemente/quic-go#3013)
- fix flaky stream cancelation integration test (lucas-clemente/quic-go#3014)
- preallocate a slice of one frame when packing a packet (lucas-clemente/quic-go#3018)
- allow sending of ACKs when pacing limited (lucas-clemente/quic-go#3010)
- fix qlogging of the packet payload length (lucas-clemente/quic-go#3004)
- corrupt more ACKs in the MITM test (lucas-clemente/quic-go#3007)
- fix flaky key update integration test (lucas-clemente/quic-go#3005)
- immediately complete streams that were canceled, drop retransmissions (lucas-clemente/quic-go#3003)
- stop generating new packets when the send queue is full (lucas-clemente/quic-go#2971)
- allow access to the underlying quic.Stream from a http.ResponseWriter (lucas-clemente/quic-go#2993)
- remove stay print statement from session test
- allow receiving of multiple packets before sending a packet (lucas-clemente/quic-go#2984)
- use cryptographic random for determining skipped packet numbers (lucas-clemente/quic-go#2940)
- fix interpretation of time.Time{} as a pacing deadline (lucas-clemente/quic-go#2980)
- qlog restored transport parameters (lucas-clemente/quic-go#2991)
- use a pkg.go.dev instead of a GoDoc badge (lucas-clemente/quic-go#2982)
- introduce a separate queue for undecryptable packets (lucas-clemente/quic-go#2988)
- improve 0-RTT queue (lucas-clemente/quic-go#2990)
- simplify switch statement in the transport parameter parser (lucas-clemente/quic-go#2995)
- remove unneeded overflow check when parsing the max_ack_delay (lucas-clemente/quic-go#2996)
- remove unneeded check in receivedPacketHandler.IsPotentiallyDuplicate (lucas-clemente/quic-go#2998)
- qlog the max_datagram_frame_size transport parameter (lucas-clemente/quic-go#2997)
- qlog draft-02 fixes (lucas-clemente/quic-go#2987)
- fix flaky qlog test (lucas-clemente/quic-go#2981)
- only run gofumpt on .go files in pre-commit hook (lucas-clemente/quic-go#2983)
- fix outdated comment for the http3.Server
- make the OpenStreamSync cancelation test less flaky (lucas-clemente/quic-go#2978)
- add some useful pre-commit hooks (lucas-clemente/quic-go#2979)
- publicize QUIC varint reading and writing (lucas-clemente/quic-go#2973)
- add a http3.RoundTripOpt to skip the request scheme check (lucas-clemente/quic-go#2962)
- use the standard quic.Config in the deadline tests (lucas-clemente/quic-go#2970)
- update golangci-lint to v1.34.1 (lucas-clemente/quic-go#2964)
- update text about QUIC versions in the README (lucas-clemente/quic-go#2975)
- remove stray TODO in the http3.Server
- add support for Go 1.16 (lucas-clemente/quic-go#2953)
- cancel reading on unidirectional streams when the stream type is unknown (lucas-clemente/quic-go#2952)
- remove duplicate check of the URL scheme in the HTTP/3 client (lucas-clemente/quic-go#2956)
- increase queueing duration in 0-RTT queue test to reduce flakiness (lucas-clemente/quic-go#2954)
- implement the HTTP/3 Datagram negotiation (lucas-clemente/quic-go#2951)
- implement HTTP/3 control stream handling (lucas-clemente/quic-go#2949)
- fix flaky sentPacketHandler test (lucas-clemente/quic-go#2950)
- don't retransmit PING frames added to ACK-only packets (lucas-clemente/quic-go#2942)
- move the transport parameter stream limit check to the parser (lucas-clemente/quic-go#2944)
- remove unused initialVersion variable in session (lucas-clemente/quic-go#2946)
- remove unneeded check for the peer's transport parameters (lucas-clemente/quic-go#2945)
- add the H3_MESSAGE_ERROR (lucas-clemente/quic-go#2947)
- simplify Read and Write mock calls in http3 tests (lucas-clemente/quic-go#2948)
- implement the datagram draft (lucas-clemente/quic-go#2162)
- fix logging of bytes_in_flight when receiving an ACK (lucas-clemente/quic-go#2937)
- trace when a packet is dropped because the receivedPackets chan is full (lucas-clemente/quic-go#2939)
- various improvements to the packet number generator (lucas-clemente/quic-go#2905)
- introduce a quic.Config.HandshakeIdleTimeout, remove HandshakeTimeout (lucas-clemente/quic-go#2930)
- allow up to 20 byte for the initial connection IDs (lucas-clemente/quic-go#2936)
- reduce memory footprint of undecryptable packet handling (lucas-clemente/quic-go#2932)
- use a buffer from the pool for composing Retry packets (lucas-clemente/quic-go#2934)
- release the packet buffer after sending a CONNECTION_CLOSE in the server (lucas-clemente/quic-go#2935)
- move integration tests to GitHub Actions, disable Travis (lucas-clemente/quic-go#2891)
- use golang.org/x/sys/unix instead of syscall (lucas-clemente/quic-go#2927)
- add support for the connection_closed qlog event (lucas-clemente/quic-go#2921)
- qlog tokens in NEW_TOKEN frames, Retry packets and Initial packets (lucas-clemente/quic-go#2863)
- qlog the packet_type as part of the packet header, not the event itself (lucas-clemente/quic-go#2758)
- use the new, streaming-friendly NDJSON-based qlog encoding (lucas-clemente/quic-go#2736)
- add a generic Debug() function to the connection tracer (lucas-clemente/quic-go#2909)
- remove unnecessary call to time.Now() when sending a packet (lucas-clemente/quic-go#2911)
- remove support for quic-trace (lucas-clemente/quic-go#2913)
- reduce the maximum number of ACK ranges (lucas-clemente/quic-go#2887)
- don't allocate for acked packets (lucas-clemente/quic-go#2899)
- avoid allocating when detecting lost packets (lucas-clemente/quic-go#2898)
- use the string optimization for map keys in the packet handler map (lucas-clemente/quic-go#2892)
- use a single map in the incoming streams map (lucas-clemente/quic-go#2890)
- π github.com/marten-seemann/qtls-go1-15 (v0.1.1 -> v0.1.4):
- use a prefix for client session cache keys
- add callbacks to store and restore app data along a session state
- don't use TLS 1.3 compatibility mode when using alternative record layer
- delete the session ticket after attempting 0-RTT
- reject 0-RTT when a different ALPN is chosen
- encode the ALPN into the session ticket
- add a field to the ConnectionState to tell if 0-RTT was used
- add a callback to tell the client about rejection of 0-RTT
- don't offer 0-RTT after a HelloRetryRequest
- add Accept0RTT to Config callback to decide if 0-RTT should be accepted
- π github.com/marten-seemann/qtls-go1-16 (null -> v0.1.3):
- use a prefix for client session cache keys
- add callbacks to store and restore app data along a session state
- don't use TLS 1.3 compatibility mode when using alternative record layer
- delete the session ticket after attempting 0-RTT
- reject 0-RTT when a different ALPN is chosen
- github.com/multiformats/go-multiaddr (v0.3.1 -> v0.3.2):
- fix(net): export new net.Addr conversion registration functions (multiformats/go-multiaddr#152)
- sync: run go mod tidy (and set Go 1.15) and gofmt -s in copy workflow (#146) (multiformats/go-multiaddr#146)
- more linter fixes (multiformats/go-multiaddr#145)
- fix go vet and staticcheck failures (multiformats/go-multiaddr#143)
- don't listen on all interfaces in tests, unless on CI (multiformats/go-multiaddr#136)
- Fix Local Address on TCP connections (multiformats/go-multiaddr#135)
- github.com/multiformats/go-multiaddr-dns (v0.2.0 -> v0.3.1):
- Normalize domains to fqdn for resolver selection (multiformats/go-multiaddr-dns#27)
- refactor Resolver to support custom per-TLD resolvers (multiformats/go-multiaddr-dns#26)
- feat: exposes backend (multiformats/go-multiaddr-dns#25)
- github.com/multiformats/go-multihash (v0.0.14 -> v0.0.15):
- Refactor registry system: no direct dependencies; expose standard hash.Hash; be a data carrier. (multiformats/go-multihash#136)
- github.com/multiformats/go-multistream (v0.2.0 -> v0.2.2):
- change the simultaneous open protocol to /libp2p/simultaneous-connect (multiformats/go-multistream#66)
- fix the lazy stress read test on Windows (multiformats/go-multistream#61)
- fix go vet and staticcheck errors (multiformats/go-multistream#60)
- Implement simultaneous open extension (multiformats/go-multistream#42)
- reduce the number of streams in the stress tests, fix error handling (multiformats/go-multistream#54)
- github.com/whyrusleeping/cbor-gen (v0.0.0-20200710004633-5379fc63235d -> v0.0.0-20210219115102-f37d292932f2):
- feat: allow unmarshaling of struct with more fields than marshaled struct (whyrusleeping/cbor-gen#50)
- chore: add a license file (whyrusleeping/cbor-gen#49)
- fix: enforce maxlen in ReadByteArray() (whyrusleeping/cbor-gen#43)
- use unix nanoseconds for encoding Cbortime (whyrusleeping/cbor-gen#41)
- add json marshalers to CborTime
- add a helper for roundtripping time.time objects (whyrusleeping/cbor-gen#40)
- Add a validate function. (whyrusleeping/cbor-gen#39)
- Fix import handling (whyrusleeping/cbor-gen#38)
- Optimize discarding in ScanForLinks (whyrusleeping/cbor-gen#36)
- Always allocate scratch space when marshalling into a map. (whyrusleeping/cbor-gen#37)
- optimize byte reading (whyrusleeping/cbor-gen#35)
- Optimize decoding (whyrusleeping/cbor-gen#34)
- Fix named string issue (whyrusleeping/cbor-gen#30)
- Fix encoding/decoding fixed byte arrays (whyrusleeping/cbor-gen#29)
- fix overread on scanforlinks (whyrusleeping/cbor-gen#28)
β€οΈ Contributors
Contributor Commits Lines Β± Files Changed π Marten Seemann 358 +17444/-12000 Eric Myhre 82 +9672/-2459 328 Ian Davis 7 +8421/-737 116 Daniel MartΓ 18 +2733/-4377 313 Adin Schmahmann 46 +5387/-1289 125 Steven Allen 95 +3278/-1861 200 hannahhoward 14 +1380/-3667 84 gammazero 29 +2520/-1161 88 Hector Sanjuan 12 +511/-3129 52 vyzo 77 +2198/-940 117 Will Scott 12 +912/-593 37 Dirk McCormick 3 +1384/-63 14 Andrew Gillis 3 +1231/-39 19 Marcin Rataj 37 +549/-308 72 Aarsh Shah 13 +668/-86 30 Olivier Poitrey 1 +469/-182 15 Rod Vagg 9 +364/-184 14 whyrusleeping 5 +253/-32 11 Cory Schwartz 10 +162/-115 37 Adrian Lanzafame 8 +212/-60 11 aarshkshah1992 7 +102/-110 9 Jakub Sztandera 7 +126/-75 16 huoju 4 +127/-41 6 acruikshank 6 +32/-24 7 Toby 1 +41/-1 2 Naveen 1 +40/-0 1 Bogdan Stirbat 1 +22/-16 2 KΓ©vin Dunglas 1 +32/-2 2 Nicholas Bollweg 1 +22/-0 1 q191201771 2 +4/-11 2 Mathis Engelbart 1 +12/-2 1 requilence 1 +13/-0 1 divingpetrel 1 +7/-4 2 Oli Evans 2 +9/-2 3 Lucas Molas 3 +7/-3 3 RubenKelevra 3 +2/-6 3 Will 1 +1/-5 1 Jorropo 1 +4/-2 1 Ju Huo 1 +2/-2 1 zhoujiajie 1 +1/-1 1 Luflosi 1 +1/-1 1 Jonathan Rudenberg 1 +1/-1 1 David Pflug 1 +1/-1 1 Ari Mattila 1 +1/-1 1 Yingrong Zhao 1 +0/-1 1 -
v0.8.0 Changes
February 18, 2021π 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 ipfs pin remote add /ipfs/bafymydata --service=myservice --name=myfile ipfs pin remote ls --service=myservice --name=myfile ipfs pin remote ls --service=myservice --cid=bafymydata ipfs pin remote rm --serivce=myservice --name=myfile
A few notes:
π 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. Theipfs 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.org
https://en-wikipedia--on--ipfs-org.ipns.dweb.link
:point_left: a single DNS label, no TLS errorβ‘οΈ QUIC update
π QUIC support has received a number of upgrades, including the ability to take advantage of larger UDP receive buffers for increased performance.
π§ Linux users may notice a logged error on daemon startup if your system needs extra configuration to allow IPFS increase the buffer size. A helpful link for resolving this is in the log message as well as here.
π π No more Darwin 386 builds
β Go 1.15 (the latest version of Go) no longer supports Darwin 386 and so we are dropping support as well.
π Changelog
- github.com/ipfs/go-ipfs:
- Release v0.8.0
- docs: RepinInterval
- style: docs/config.md
- style: improved MFS PinName example
- docs: Pinning.RemoteServices.Policies
- fix: decrease log level of opencensus initialization (ipfs/go-ipfs#7815)
- Register oc metrics (ipfs/go-ipfs#7593)
- add remote pinning to ipfs command (#7661) (ipfs/go-ipfs#7661)
- More p2p proxy checks (ipfs/go-ipfs#7797)
- Use datastore based pinning (ipfs/go-ipfs#7750)
- fix: return an error when an unknown object type is passed (ipfs/go-ipfs#7795)
- clarify why ipfs file ls is being deprecated (ipfs/go-ipfs#7755)
- fix: ipfs dag export uses the CoreAPI and respects the offline flag (ipfs/go-ipfs#7753)
- return an error when trying to download fs-repo-migrations for linux + musl (ipfs/go-ipfs#7735)
- fix: do not create a new (unused) peerID when initializing from config (ipfs/go-ipfs#7730)
- docs: Add a link in config.md (ipfs/go-ipfs#7780)
- update libp2p for stream closure refactor (ipfs/go-ipfs#7747)
- Fix typo in ipfs dag stat command (ipfs/go-ipfs#7761)
- docs(readme): key rotation in docker (#7721) (ipfs/go-ipfs#7721)
- fix(dnslink-gw): breadcrumbs and CID column when dir listing (ipfs/go-ipfs#7699)
- fix(gw): preserve query on website redirect (ipfs/go-ipfs#7727)
- feat: ipfs-webui v2.11.4 (ipfs/go-ipfs#7716)
- docs: how the ipfs snap is built and published (ipfs/go-ipfs#7725)
- fix: webui on ipv6 localhost (ipfs/go-ipfs#7731)
- Add missing plugin support on FreeBSD (ipfs/go-ipfs#7722)
- fix error when computing coverage (ipfs/go-ipfs#7726)
- docs(config): X-Forwarded-Host (ipfs/go-ipfs#7651)
- chore: webui v2.11.2 (ipfs/go-ipfs#7703)
- Add task for updating CLI docs right after updating the HTTP-api docs (ipfs/go-ipfs#7711)
- feat(gateway): Content-Disposition improvements (ipfs/go-ipfs#7677)
- fix build on Plan 9 (ipfs/go-ipfs#7690)
- docs: update changelog for v0.7.0
- chore: bump webui version
- fix: remove the (empty) alias for --peerid-base
- fix: use override GOFLAGS changes from 480defab689610550ee3d346e31441a2bb881fcb but keep trimpath usage as is
- Revert "fix: override GOFLAGS"
- Fix --ipns-base alias (ipfs/go-ipfs#7659)
- docs: update config to indicate SECIO deprecation (ipfs/go-ipfs#7630)
- fix: ipfs dht put/get commands with peerIDs encoded as CIDs (ipfs/go-ipfs#7633)
- update version to 0.8.0-dev (ipfs/go-ipfs#7629)
- github.com/ipfs/go-bitswap (v0.2.20 -> v0.3.3):
- feat: configurable engine blockstore worker count (#449) (ipfs/go-bitswap#449)
- fix: set the score ledger on start (ipfs/go-bitswap#447)
- feat: update for go-libp2p-core 0.7.0 interface changes (ipfs/go-bitswap#445)
- fix: guard access to the mock wiretap with a lock (ipfs/go-bitswap#446)
- Add WireTap interface (#444) (ipfs/go-bitswap#444)
- Fix: Increment stats.MessagesSent in msgToStream() function (#441) (ipfs/go-bitswap#441)
- refactor: remove extraneous ledger field init (#437) (ipfs/go-bitswap#437)
- Added
WithScoreLedger
Bitswap option (#430) (ipfs/go-bitswap#430)
- github.com/ipfs/go-blockservice (v0.1.3 -> v0.1.4):
- Avoid modifying passed in slice of cids (ipfs/go-blockservice#65)
- github.com/ipfs/go-ds-badger (v0.2.4 -> v0.2.6):
- Log error if batch not committed or canceled (ipfs/go-ds-badger#108)
- Add Cancel function; add finalizer to cleanup abandoned batch (ipfs/go-ds-badger#105)
- Do not implement batches using transactions (ipfs/go-ds-badger#104)
- readme: add information on Badger2 datastore (ipfs/go-ds-badger#102)
- update contributing link (ipfs/go-ds-badger#91)
- Use current go-log (#89) (ipfs/go-ds-badger#89)
- github.com/ipfs/go-graphsync (v0.1.1 -> v0.6.0):
- docs(CHANGELOG): revise for 0.6.0
- Merge branch 'master' into release/v0.6.0
- docs(CHANGELOG): update for 0.6.0 release
- move block allocation into message queue (#140) (ipfs/go-graphsync#140)
- Response Assembler Refactor (#138) (ipfs/go-graphsync#138)
- Add error listener on receiver (#136) (ipfs/go-graphsync#136)
- Run testplan on in CI (#137) (ipfs/go-graphsync#137)
- fix(responsemanager): fix network error propogation (#133) (ipfs/go-graphsync#133)
- testground test for graphsync (#132) (ipfs/go-graphsync#132)
- docs(CHANGELOG): update for v0.5.2 (ipfs/go-graphsync#130)
- RegisterNetworkErrorListener should fire when there's an error connecting to the peer (#127) (ipfs/go-graphsync#127)
- Permit multiple data subscriptions per original topic (#128) (ipfs/go-graphsync#128)
- release: v0.5.1 (#123) (ipfs/go-graphsync#123)
- feat(responsemanager): allow configuration of max requests (#122) (ipfs/go-graphsync#122)
- docs(CHANGELOG): update for 0.5.0 (ipfs/go-graphsync#120)
- feat: use go-libp2p-core 0.7.0 stream interfaces (#116) (ipfs/go-graphsync#116)
- Merge branch 'release/v0.4.3'
- chore(benchmarks): remove extra files
- fix(peerresponsemanager): avoid race condition that could result in NPE in link tracker (#118) (ipfs/go-graphsync#118)
- docs(CHANGELOG): update for 0.4.2 (ipfs/go-graphsync#117)
- feat(memory): improve memory usage (#110) (ipfs/go-graphsync#110)
- fix(notifications): fix lock in close (#115) (ipfs/go-graphsync#115)
- docs(CHANGELOG): update for v0.4.1 (ipfs/go-graphsync#114)
- fix(allocator): remove peer from peer status list
- docs(CHANGELOG): update for v0.4.0
- docs(CHANGELOG): update for 0.3.1 (ipfs/go-graphsync#112)
- Add allocator for memory backpressure (#108) (ipfs/go-graphsync#108)
- Shutdown notifications go routines (#109) (ipfs/go-graphsync#109)
- Switch to google protobuf generator (#105) (ipfs/go-graphsync#105)
- feat(CHANGELOG): update for 0.3.0 (ipfs/go-graphsync#104)
- docs(CHANGELOG): update for 0.2.1 (ipfs/go-graphsync#103)
- Track actual network operations in a response (#102) (ipfs/go-graphsync#102)
- feat(responsecache): prune blocks more intelligently (#101) (ipfs/go-graphsync#101)
- Release/0.2.0 (ipfs/go-graphsync#99)
- fix(metadata): fix cbor-gen (#98) (ipfs/go-graphsync#98)
- fix(selectorvalidator): memory optimization (#97) (ipfs/go-graphsync#97)
- Update [email protected] (#92) (ipfs/go-graphsync#92)
- refactor(metadata): use cbor-gen encoding (#96) (ipfs/go-graphsync#96)
- Release/v0.1.2 (ipfs/go-graphsync#95)
- Return Request context cancelled error (#93) (ipfs/go-graphsync#93)
- feat(benchmarks): add p2p stress test (#91) (ipfs/go-graphsync#91)
- Benchmark framework + First memory fixes (#89) (ipfs/go-graphsync#89)
- docs(CHANGELOG): update for v0.1.1 (ipfs/go-graphsync#85)
- github.com/ipfs/go-ipfs-cmds (v0.4.0 -> v0.6.0):
- Added DelimitedStringsOption for enabling delimited strings on the CLI (ipfs/go-ipfs-cmds#204)
- feat: support strings option over HTTP API (ipfs/go-ipfs-cmds#203)
- github.com/ipfs/go-ipfs-config (v0.9.0 -> v0.12.0):
- add support for pinning mfs (#116) (ipfs/go-ipfs-config#116)
- add remote pinning services config (ipfs/go-ipfs-config#113)
- Remove badger2 profile (ipfs/go-ipfs-config#115)
- Add badger2 profile and config spec
- github.com/ipfs/go-ipfs-pinner (v0.0.4 -> v0.1.1):
- Avoid loading all pins into memory during migration (#5) (ipfs/go-ipfs-pinner#5)
- Datastore based pinner (#4) (ipfs/go-ipfs-pinner#4)
- github.com/ipfs/go-ipld-cbor (v0.0.4 -> v0.0.5):
- add the ability to leverage zero-copy on blockstores. (#75) (ipfs/go-ipld-cbor#75)
- ipldstore: Also wrap Put serialization errors (ipfs/go-ipld-cbor#74)
- add helper constructor for inmem cbor store
- docs: add comments describing methods & interfaces (ipfs/go-ipld-cbor#71)
- github.com/ipfs/go-path (v0.0.8 -> v0.0.9):
- fix: improved error message on broken CIDv0 (ipfs/go-path#33)
- π github.com/ipfs/go-pinning-service-http-client (null -> v0.1.0):
- feat: LsBatchSync to fetch single batch of results (ipfs/go-pinning-service-http-client#6)
- Initial Implementation (ipfs/go-pinning-service-http-client#1)
- github.com/ipld/go-car (v0.1.1-0.20200429200904-c222d793c339 -> v0.1.1-0.20201015032735-ff6ccdc46acc):
- Update ipld libs (ipld/go-car#35)
- github.com/ipld/go-ipld-prime (v0.0.2-0.20200428162820-8b59dc292b8e -> v0.5.1-0.20201021195245-109253e8a018):
- Merge branch 'codec-hardening'
- Add fluent.MustReflect convenience method.
- codegen: make error info available when tuples process data that is too long. (ipld/go-ipld-prime#99)
- Merge branch 'codegen-typofixes'
- Implement resource budgets in dagcbor parsing. (ipld/go-ipld-prime#85)
- Codegen for links should emit the methods to conform to the schema.TypedLinkNode interface where applicable. (ipld/go-ipld-prime#91)
- Introduce fluent.Reflect convenience functions. (ipld/go-ipld-prime#81)
- schema/gen/go: make all top-level tests parallel
- all: don't use buffers where readers suffice
- fix typo in documentation
- schema-schema codegen demo now includes unmarshal exercise (ipld/go-ipld-prime#76)
- Update tests for unions; several fixes (ipld/go-ipld-prime#75)
- New testcase system for exercising typed nodes; Revamp struct tests to use it. (ipld/go-ipld-prime#66)
- small docs fixes on an internal component.
- Fix formatting in README.
- fix(cidlink): check for byte buffer (ipld/go-ipld-prime#70)
- linking/cid: check a previously unused error (ipld/go-ipld-prime#68)
- all: make 'go test ./...' pass on Go 1.15 (ipld/go-ipld-prime#67)
- Merge branch 'kinded-union-gen'
- Add traversal.Get function (ipld/go-ipld-prime#65)
- Kinded union gen (ipld/go-ipld-prime#64)
- Struct tuple representation codegen (ipld/go-ipld-prime#63)
- Merge branch 'moar-codegen'
- Self-hosting gen of the schema-schema. (ipld/go-ipld-prime#62)
- Codegen: approaching self-host (ipld/go-ipld-prime#61)
- Codegen of unions, and their keyed representations (ipld/go-ipld-prime#60)
- mark v0.5
- API updates for v0.5: the renamening (ipld/go-ipld-prime#59)
- mark v0.4
- changelog: note the codegen work.
- Codegen update -- Assemblers, and many new representations (ipld/go-ipld-prime#52)
- Merge branch 'json-tables-codec'
- Merge branch 'docs-updates'
- Introduce changelog!
- Add examples of creating and loading links.
- github.com/ipld/go-ipld-prime-proto (v0.0.0-20200428191222-c1ffdadc01e1 -> v0.1.0):
- Update go-ipld-prime (ipld/go-ipld-prime-proto#6)
- feat(coding use -1 instead of 0):
- Update ipld prime, use proper code-gen (ipld/go-ipld-prime-proto#5)
- Updates to dependencies (ipld/go-ipld-prime-proto#4)
- Check for byte buffer on decode (ipld/go-ipld-prime-proto#3)
- github.com/libp2p/go-libp2p (v0.11.0 -> v0.13.0):
- use a context when opening streams (libp2p/go-libp2p#1033)
- fix: obey new stream timeout (libp2p/go-libp2p#1029)
- feat: update to go-libp2p-core 0.7.0 interface changes (libp2p/go-libp2p#1001)
- Basic Connection Gater Implementation (libp2p/go-libp2p#1005)
- Fixed bug for inbound connections gated by the deprecated filter option (#1004) (libp2p/go-libp2p#1004)
- github.com/libp2p/go-libp2p-autonat (v0.3.2 -> v0.4.0):
- feat: update to go-libp2p-core 0.7.0 (libp2p/go-libp2p-autonat#97)
- github.com/libp2p/go-libp2p-circuit (v0.3.1 -> v0.4.0):
- feat: update to go-libp2p-core 0.7.0 (libp2p/go-libp2p-circuit#123)
- github.com/libp2p/go-libp2p-core (v0.6.1 -> v0.8.0):
- add a context to OpenStream and NewStream (#172) (libp2p/go-libp2p-core#172)
- sec/insecure/insecure.go: Fix typo (#167) (libp2p/go-libp2p-core#167)
- add CloseRead/CloseWrite on streams (#166) (libp2p/go-libp2p-core#166)
- Fix typo in docs (#163) (libp2p/go-libp2p-core#163)
- github.com/libp2p/go-libp2p-gostream (v0.2.1 -> v0.3.0):
- feat: use go-libp2p-core 0.7.0 stream interfaces (libp2p/go-libp2p-gostream#60)
- github.com/libp2p/go-libp2p-http (v0.1.5 -> v0.2.0):
- Fix var name in README (libp2p/go-libp2p-http#63)
- Fix var name in doc (libp2p/go-libp2p-http#62)
- github.com/libp2p/go-libp2p-kad-dht (v0.9.0 -> v0.11.1):
- Fix constructor ordering (libp2p/go-libp2p-kad-dht#698)
- feat: update to go-libp2p-core 0.7.0 (libp2p/go-libp2p-kad-dht#693)
- Run fixLowPeers on startup (libp2p/go-libp2p-kad-dht#694)
- feat: add advanced V1ProtocolOverride option to be used by legacy networks
- feat: remove dht v2 as it's not actually in use and could be confusing
- github.com/libp2p/go-libp2p-mplex (v0.2.4 -> v0.4.1):
- update go-mplex, use the context passed to OpenStream (libp2p/go-libp2p-mplex#23)
- change OpenStream to accept a context (libp2p/go-libp2p-mplex#21)
- feat: update stream interfaces (libp2p/go-libp2p-mplex#20)
- github.com/libp2p/go-libp2p-noise (v0.1.1 -> v0.1.2):
- optimize: reduce syscalls using a buffered reader.
- github.com/libp2p/go-libp2p-pubsub (v0.3.5 -> v0.4.1):
- defer stream removal instead of doing it inline.
- add test for inbound stream deduplication
- deduplicate inbound streams
- populate receivedFrom field in delivery trace
- add receivedFrom field in delivery trace
- fix: reduce log spam (#394) (libp2p/go-libp2p-pubsub#394)
- fix: treat peers already connected to the host before pubsub is initialized as valid potential pubsub peers
- test: add test for if nodes are connected before pubsub is started
- feat: update to go-libp2p-core 0.7.0
- Add go-libp2p example in README.md (#392) (libp2p/go-libp2p-pubsub#392)
- subscription filters
- remove multi-topic message support
- satisfy race detector
- clean up
- copy string topic
- add test for score adjustment from topis params reset
- prettify things
- add test for topic score parameter reset method
- add test for topic score parameter reset
- add api for dynamically setting and resetting topic score parameters
- add support for priority topic delivery weights
- tweak duplicate/reject weights
- decay global counters after 2 min
- decouple global coutner decay from source counter decay
- add warning for failure to parse IP out of remote multiaddr
- more docs
- configure the peer gater using a parameter object, docs and stuff
- disable codecov annotations, makes things unreadable
- further tweak gate threshold weights
- fix test races
- use IPs for peer gater stat tracking
- mix total accounting components with different weights
- count all rejections by default
- fix non-determinism in test
- tweak probability threshold
- also account for duplicates in gating decisions
- test throttle code path in gossip tracer
- add test for peer gater
- more efficient promise processing on throttling
- trace throttle peers to avoid breaking promises unfairly
- better log messages around gating
- implement peer gater
- peer gater scaffolding
- rich router acceptance semantics
- reduce log verbosity; debug mostly
- github.com/libp2p/go-libp2p-pubsub-router (v0.3.2 -> v0.4.0):
- feat: use new stream interfaces from go-libp2p-core 0.7.0 (libp2p/go-libp2p-pubsub-router#81)
- github.com/libp2p/go-libp2p-quic-transport (v0.8.0 -> v0.10.0):
- change OpenStream to accept a context (libp2p/go-libp2p-quic-transport#189)
- update quic-go to v0.19.1 (libp2p/go-libp2p-quic-transport#182)
- pass a conn that can be type asserted to a net.UDPConn to quic-go (libp2p/go-libp2p-quic-transport#180)
- add more integration tests (libp2p/go-libp2p-quic-transport#181)
- always close the connection in the cmd client (libp2p/go-libp2p-quic-transport#175)
- use GitHub Actions to test interopability of releases (libp2p/go-libp2p-quic-transport#173)
- Implement CloseRead/CloseWrite (libp2p/go-libp2p-quic-transport#174)
- enable quic-go metrics collection (libp2p/go-libp2p-quic-transport#172)
- github.com/libp2p/go-libp2p-swarm (v0.2.8 -> v0.4.0):
- use a context for OpenStream and NewStream (libp2p/go-libp2p-swarm#232)
- fix: handle case where swarm closes before stream (libp2p/go-libp2p-swarm#229)
- feat: update to latest go-libp2p-core interfaces (libp2p/go-libp2p-swarm#228)
- β
github.com/libp2p/go-libp2p-testing (v0.2.0 -> v0.4.0):
- pass contexts to OpenStream in tests (libp2p/go-libp2p-testing#31)
- chore: Adding LICENSE. (libp2p/go-libp2p-testing#30)
- feat: update to go-libp2p-core 0.7.0 (libp2p/go-libp2p-testing#29)
- β¬οΈ github.com/libp2p/go-libp2p-transport-upgrader (v0.3.0 -> v0.4.0):
- pass contexts to OpenStream in tests (libp2p/go-libp2p-transport-upgrader#70)
- fix int to string conversion in tests, update Go version on CI (libp2p/go-libp2p-transport-upgrader#69)
- github.com/libp2p/go-libp2p-yamux (v0.2.8 -> v0.5.1):
- update go-yamux to v2.0.0, use context passed to OpenStream (libp2p/go-libp2p-yamux#31)
- change OpenStream to accept a context (libp2p/go-libp2p-yamux#29)
- feat: update to new stream interfaces (libp2p/go-libp2p-yamux#27)
- github.com/libp2p/go-mplex (v0.1.2 -> v0.3.0):
- add a context to NewStream, remove the NewStreamTimeout (libp2p/go-mplex#82)
- Implement new CloseWrite/CloseRead interface (libp2p/go-mplex#81)
- Bump lodash from 4.17.15 to 4.17.19 in /interop/js (libp2p/go-mplex#79)
- upgrade deps + interoperable varints. (#80) (libp2p/go-mplex#80)
- write benchmarks (#77) (libp2p/go-mplex#77)
- github.com/libp2p/go-ws-transport (v0.3.1 -> v0.4.0):
- pass a context to OpenStream in tests (libp2p/go-ws-transport#98)
- Dependency: Remove deprecated multiaddr-net (libp2p/go-ws-transport#97)
- Update for go 1.14 Wasm changes (libp2p/go-ws-transport#96)
- github.com/libp2p/go-yamux (v1.3.7 -> v1.4.1):
- feat: improve ping accuracy (libp2p/go-yamux#35)
- implement CloseRead/CloseWrite (libp2p/go-yamux#5)
- fix space accounting in the receive buffer (libp2p/go-yamux#33)
- Limit pings (libp2p/go-yamux#32)
- fix: simplify inflight fix (libp2p/go-yamux#31)
- Clearing inflight along with streams to avoid memory leak (libp2p/go-yamux#30)
- github.com/lucas-clemente/quic-go (v0.18.0 -> v0.19.3):
- create a v0.19.x release
- improve the warning about the UDP receive buffer size (lucas-clemente/quic-go#2923)
- immediately remove reset tokens when retiring a connection ID (lucas-clemente/quic-go#2897)
- add common temporary file patterns to .gitignore (lucas-clemente/quic-go#2917)
- disable key updates when using HTTP/3 to avoid breaking Chrome 87 (lucas-clemente/quic-go#2906)
- fix decoding of packet numbers in different packet number spaces (lucas-clemente/quic-go#2903)
- log sent packet before logging its congestion / loss recovery effects (lucas-clemente/quic-go#2912)
- fix a crash in the http3.Server when GetConfigForClient returns nil (lucas-clemente/quic-go#2925)
- set the UDP receive buffer size on Windows (lucas-clemente/quic-go#2896)
- remove superfluous sleep in packet handler map test (lucas-clemente/quic-go#2894)
- fix setting of http.Handler in the example server (lucas-clemente/quic-go#2900)
- remove stray print statement
- remove unnecessary mutex locking in the stream flow controller (lucas-clemente/quic-go#2869)
- only use syscalls on platforms that we're actually testing (lucas-clemente/quic-go#2886)
- only write headers with a length that fits into 2 bytes in fuzz test (lucas-clemente/quic-go#2884)
- fix packing of 1-RTT probe packets (lucas-clemente/quic-go#2882)
- use PADDING frames to pad packets (lucas-clemente/quic-go#2876)
- fix race condition when accepting streams (lucas-clemente/quic-go#2874)
- only trace dropped 0-RTT packets when a tracer is set (lucas-clemente/quic-go#2871)
- use consistent version numbers in client test (lucas-clemente/quic-go#2870)
- replace the RWMutex with a Mutex in the flow controller (lucas-clemente/quic-go#2865)
- replace the RWMutex with a Mutex in the packet handler map (lucas-clemente/quic-go#2864)
- wait until the handshake is complete before updating the connection ID (lucas-clemente/quic-go#2856)
- only check the SCID for Initial packets (lucas-clemente/quic-go#2857)
- add the NO_VIABLE_PATH error (lucas-clemente/quic-go#2861)
- implement qlogging of the preferred address in the transport parameters (lucas-clemente/quic-go#2853)
- explicitly set the supported versions in the HTTP/3 server test (lucas-clemente/quic-go#2854)
- allow an amplification factor of 3.x (lucas-clemente/quic-go#2862)
- only allow the HTTP/3 client to dial with a single QUIC version (lucas-clemente/quic-go#2848)
- send STREAMS_BLOCKED frame when MAX_STREAMS frame allows too few streams (lucas-clemente/quic-go#2828)
- set the ALPN based on the QUIC version in the HTTP3 server (lucas-clemente/quic-go#2847)
- pad datagrams containing ack-eliciting Initial packets sent by the server (lucas-clemente/quic-go#2841)
- fix OpenStreamSync busy looping (lucas-clemente/quic-go#2827)
- fix deadlock when closing the server and the connection at the same time (lucas-clemente/quic-go#2849)
- run gofumpt, enable the gofumpt linter (lucas-clemente/quic-go#2839)
- prepare for draft-32 (lucas-clemente/quic-go#2831)
- update the invalid packet limit for AES (lucas-clemente/quic-go#2825)
- increase UDP receive buffer size (lucas-clemente/quic-go#2791)
- listen on both IPv4 and IPv6 in the interop runner server (lucas-clemente/quic-go#2822)
- only send Version Negotiation packets for packets larger than 1200 bytes (lucas-clemente/quic-go#2820)
- don't send a version negotiation packet in response to a version negotiation packet (lucas-clemente/quic-go#2818)
- client: Add DialEarlyContext and DialAddrEarlyContext API (lucas-clemente/quic-go#2814)
- qlog the key phase bit (lucas-clemente/quic-go#2817)
- only include quic-trace when the quictrace build flag is set (lucas-clemente/quic-go#2799)
- fix error handling when receiving post handshake messages (lucas-clemente/quic-go#2807)
- add support for the ChaCha20 test on the server side (lucas-clemente/quic-go#2816)
- allow the first key update immediately after handshake confirmation (lucas-clemente/quic-go#2811)
- ignore temporary errors when reading from the packet conn (lucas-clemente/quic-go#2806)
- fix linting error on OSX (lucas-clemente/quic-go#2813)
- add the exhaustive linter, replace panics by return values in logging stringers (lucas-clemente/quic-go#2729)
- include the error code in the string for CRYPTO_ERRORs (lucas-clemente/quic-go#2805)
- fail the handshake if the quic_transport_parameter extension is missing (lucas-clemente/quic-go#2804)
- fix logging of received Retry packets (lucas-clemente/quic-go#2803)
- fix deadlock in crypto setup when it is closed while handling a message (lucas-clemente/quic-go#2802)
- make the key update integration test more rigorous (lucas-clemente/quic-go#2760)
- add support for the new keyupdate interop runner test case (lucas-clemente/quic-go#2782)
- remove unneeded mutex in the client (lucas-clemente/quic-go#2798)
- correctly handle key updates within the 3 PTO period (lucas-clemente/quic-go#2787)
- introduce an ECNCapablePacketConn interface to determine ECN support (lucas-clemente/quic-go#2788)
- use certificates from /certs directory for the server (lucas-clemente/quic-go#2794)
- remove support for the ECN test case (lucas-clemente/quic-go#2793)
- check that the peer updated its keys when acknowledging a key update (lucas-clemente/quic-go#2781)
- fix flaky packet number skipping test (lucas-clemente/quic-go#2786)
- read ECN bits and send ECN counters in ACK frames (lucas-clemente/quic-go#2741)
- implement the limit of unsuccessful decryptions for the AEADs (lucas-clemente/quic-go#2771)
- use the KEY_UPDATE_ERROR (lucas-clemente/quic-go#2770)
- fix dropping of key phase 0 (lucas-clemente/quic-go#2769)
- reduce the handshake timeout to two minutes in the handshake drop tests (lucas-clemente/quic-go#2768)
- fix handling of multiple handshake messages in the case of errors (lucas-clemente/quic-go#2777)
- enable more linters, update golangci-lint to v1.31 (lucas-clemente/quic-go#2775)
- increase the threshold for the receive stream deadline test (lucas-clemente/quic-go#2774)
- add an assertion that bytes_in_flight never becomes negative (lucas-clemente/quic-go#2779)
- fix race condition in handshake fuzz code (lucas-clemente/quic-go#2778)
- use more tls.Config options in the handshake fuzzer (lucas-clemente/quic-go#2746)
- run two handshakes in the handshake fuzzer (lucas-clemente/quic-go#2743)
- send post-handshake message in the handshake fuzzer (lucas-clemente/quic-go#2742)
- skip a packet number when sending a 1-RTT PTO packet (lucas-clemente/quic-go#2754)
- save dummy packets in the packet history when skipping packet numbers (lucas-clemente/quic-go#2753)
- delete unacknowledged packets from the packet history after 3 PTOs (lucas-clemente/quic-go#2750)
- add support for the HTTP CONNECT method (#2761) (lucas-clemente/quic-go#2761)
- don't drop keys for key phase N before receiving a N+1-protected packet (lucas-clemente/quic-go#2762)
- close session on errors unpacking errors other than decryption errors (lucas-clemente/quic-go#2756)
- log when an old 1-RTT key is retired (lucas-clemente/quic-go#2765)
- only return an invalid first key phase error for decryptable packets (lucas-clemente/quic-go#2757)
- fix logging of locally initiated key updates (lucas-clemente/quic-go#2764)
- test that both endpoints time out in the timeout integration test (lucas-clemente/quic-go#2744)
- refactor RTT measurements to simplify the sentPacketHistory (lucas-clemente/quic-go#2747)
- fix dropping of 0-RTT packets (lucas-clemente/quic-go#2752)
- always qlog the generation of 1-RTT key updates (lucas-clemente/quic-go#2763)
- move the PacketHeader struct from logging to qlog package (lucas-clemente/quic-go#2766)
- use a uint8 for the EncryptionLevel (lucas-clemente/quic-go#2751)
- make sure to only pass handshake messages that keys are available for (lucas-clemente/quic-go#2739)
- only close the handshake fuzz runner once (lucas-clemente/quic-go#2740)
- generate a self-signed certificate for the handshake fuzzer (lucas-clemente/quic-go#2738)
- use the os.ErrDeadlineExceeded for stream deadline errors on Go 1.15 (lucas-clemente/quic-go#2734)
- use GitHub Actions to run unit tests (lucas-clemente/quic-go#2732)
- add a basic fuzzer for the handshake (lucas-clemente/quic-go#2733)
- export seed corpus files using the SHA1 of the content as the filename (lucas-clemente/quic-go#2731)
- add a fuzz target for the token generator (lucas-clemente/quic-go#2730)
- fix typo in error message in sent packet handler
- fix missing OnLost callback for frames sent in 0-RTT packets (lucas-clemente/quic-go#2728)
- fix overflow of the max_ack_delay when parsing transport parameters (lucas-clemente/quic-go#2725)
- π github.com/marten-seemann/qpack (v0.2.0 -> v0.2.1):
- run gofumpt, add a few more linters (marten-seemann/qpack#21)
- fix static table entry 80 (marten-seemann/qpack#20)
- π github.com/marten-seemann/qtls-go1-15 (v0.1.0 -> v0.1.1):
- use a prefix for client session cache keys
- add callbacks to store and restore app data along a session state
- don't use TLS 1.3 compatibility mode when using alternative record layer
- delete the session ticket after attempting 0-RTT
- reject 0-RTT when a different ALPN is chosen
- encode the ALPN into the session ticket
- add a field to the ConnectionState to tell if 0-RTT was used
- add a callback to tell the client about rejection of 0-RTT
- don't offer 0-RTT after a HelloRetryRequest
- add Accept0RTT to Config callback to decide if 0-RTT should be accepted
- add the option to encode application data into the session ticket
- export the 0-RTT write key
- abuse the nonce field of ClientSessionState to save max_early_data_size
- export the 0-RTT read key
- close connection if client attempts 0-RTT, but ticket didn't allow it
- encode the max early data size into the session ticket
- implement parsing of the early_data extension in the EncryptedExtensions
- add a tls.Config.MaxEarlyData option to enable 0-RTT
- accept TLS 1.3 cipher suites in Config.CipherSuites
- introduce a function on the connection to generate a session ticket
- add a config option to enforce selection of an application protocol
- export Conn.HandlePostHandshakeMessage
- export Alert
- reject Configs that set MaxVersion < 1.3 when using a record layer
- enforce TLS 1.3 when using an alternative record layer
- github.com/multiformats/go-multistream (v0.1.2 -> v0.2.0):
- improve negotiation flushing (multiformats/go-multistream#52)
- github.com/whyrusleeping/cbor-gen (v0.0.0-20200402171437-3d27c146c105 -> v0.0.0-20200710004633-5379fc63235d):
- correctly map typegen to cbg in all cases (whyrusleeping/cbor-gen#26)
- fix: clear struct state on unmarshal (whyrusleeping/cbor-gen#22)
- deferred: restrict max length (whyrusleeping/cbor-gen#25)
- reduce number of allocations in ScanForLinks (whyrusleeping/cbor-gen#24)
- attempt to allocate less by using shared buffers (whyrusleeping/cbor-gen#18)
- add benchmark
- use new cid methods for less allocs (whyrusleeping/cbor-gen#17)
- properly handle roundtripping Deferred with 'null' value (whyrusleeping/cbor-gen#16)
- Support array types (whyrusleeping/cbor-gen#15)
- github.com/whyrusleeping/tar-utils (v0.0.0-20180509141711-8c6c8ba81d5c -> v0.0.0-20201201191210-20a61371de5b):
- more closely match default tar errors (GNU + BSD binaries)
Contributors
Contributor Commits Lines Β± Files Changed Eric Myhre 180 +26453/-11032 883 π Marten Seemann 212 +14876/-9352 hannahhoward 41 +9195/-3113 186 Alex Cruikshank 5 +3323/-1895 58 Andrew Gillis 3 +3792/-581 21 vyzo 49 +2675/-949 95 Adin Schmahmann 57 +1473/-837 90 Steven Allen 43 +1252/-780 99 Petar Maymounkov 3 +1755/-113 17 Marcin Rataj 35 +979/-210 61 Paul Wolneykien 2 +670/-338 9 Jeromy Johnson 9 +525/-221 21 gammazero 11 +366/-101 26 Hector Sanjuan 7 +312/-0 11 Dirk McCormick 4 +190/-90 15 Will Scott 1 +252/-0 1 Oli Evans 1 +201/-0 1 Tomasz ZdybaΕ 2 +182/-3 6 Daniel MartΓ 6 +104/-66 35 Sam 3 +76/-59 5 Εukasz Magiera 2 +92/-3 5 whyrusleeping 3 +77/-15 3 nisdas 3 +76/-15 4 RaΓΊl Kripalani 3 +59/-31 5 Lucas Molas 1 +66/-3 2 Alex Towle 1 +52/-8 2 Dennis Trautwein 1 +58/-0 2 Adrian Lanzafame 2 +49/-7 4 klzgrad 1 +49/-5 2 Fazlul Shahriar 1 +35/-14 17 Yingrong Zhao 1 +45/-2 2 Jakub Sztandera 2 +22/-13 2 Chaitanya 8 +16/-16 8 Aarsh Shah 1 +27/-1 3 Rod Vagg 1 +23/-4 2 M. Hawn 4 +11/-11 8 Will 1 +12/-2 1 frrist 1 +7/-0 1 Rafael Ramalho 2 +5/-2 2 dependabot[bot] 1 +3/-3 1 Zaurbek Zhakupov 1 +3/-3 1 Tom Worrall 1 +4/-2 1 Jorropo 2 +5/-1 2 Chaitanya Raju 1 +3/-3 2 Egon Elbre 1 +0/-5 1 incognitomode 1 +2/-2 1 achingbrain 1 +2/-2 1 Michael Burns 1 +2/-2 1 David Florness 2 +2/-2 2 RubenKelevra 1 +2/-1 1 Andrew Nesbitt 2 +2/-1 2 Tarun Bansal 1 +1/-1 1 Max Inden 1 +1/-1 1 K 1 +2/-0 1 Jacob Heun 1 +1/-1 1 Henrique Dias 1 +1/-1 1 Bryan White 1 +1/-1 1 Bryan Stenson 1 +1/-1 1