Skip to content

Latest commit

 

History

History
611 lines (566 loc) · 40 KB

v0.19.md

File metadata and controls

611 lines (566 loc) · 40 KB

Kubo changelog v0.19

v0.19.2

Highlights

FullRT DHT HTTP Routers

The default HTTP routers are now used when the FullRT DHT client is used. This fixes the issue where cid.contact is not being queried by default when the accelerated DHT client was enabled. Read more in (ipfs/kubo#9841).

Changelog

Full Changelog
  • github.com/ipfs/kubo:
    • fix: use default HTTP routers when FullRT DHT client is used (#9841) (ipfs/kubo#9841)
    • chore: update version

Contributors

Contributor Commits Lines ± Files Changed
Gus Eggert 1 +65/-53 4
Henrique Dias 1 +1/-1 1

v0.19.1

🔦 Highlights

DHT Timeouts

In v0.16.0, Kubo added the ability to configure custom content routers and DHTs with the custom router type, and as part of this added a default 5 minute timeout to all DHT operations. In some cases with large repos (example), this can cause provide and reprovide operations to fail because the timeout is reached. This release removes these timeouts on DHT operations. If users desire these timeouts, they can be added back using the custom router type.

Changelog

Full Changelog
  • github.com/ipfs/kubo:
    • chore: update version
    • fix: remove timeout on default DHT operations (#9783) (ipfs/kubo#9783)
    • chore: update version
  • github.com/ipfs/go-blockservice (v0.5.0 -> v0.5.1):
    • chore: release v0.5.1
    • fix: remove busyloop in getBlocks by removing batching
  • github.com/libp2p/go-libp2p (v0.26.3 -> v0.26.4):
    • release v0.26.4
    • autorelay: fix busy loop bug and flaky tests in relay finder (#2208) (libp2p/go-libp2p#2208)
  • github.com/libp2p/go-libp2p-routing-helpers (v0.6.1 -> v0.6.2):

Contributors

Contributor Commits Lines ± Files Changed
Marco Munizaga 1 +347/-46 5
Gus Eggert 3 +119/-93 8
Jorropo 2 +20/-32 2
galargh 2 +2/-2 2
Marten Seemann 1 +2/-2 1

v0.19.0

Overview

🔦 Highlights

Improving the libp2p resource management integration

There are further followups up on libp2p resource manager improvements in Kubo 0.18.0 and 0.18.1:

  1. ipfs swarm limits and ipfs swarm stats have been replaced by ipfs swarm resources to provide a single/combined view for limits and their current usage in a more intuitive ordering.
  2. Removal of Swarm.ResourceMgr.Limits config. Instead the power user can specify limits in a .json file that are fed directly to go-libp2p. This allows the power user to take advantage of the new resource manager types introduced in go-libp2p 0.25 including "use default", "unlimited", "block all".
    • Note: we don't expect most users to need these capablities, but they are there if so.
  3. Doc updates.

Gateways

Signed IPNS Record response format

This release implements IPIP-351 and adds Gateway support for returning signed (verifiable) ipns-record (0x0300) when /ipns/{libp2p-key} is requested with either Accept: application/vnd.ipfs.ipns-record HTTP header or ?format=ipns-record URL query parameter.

The Gateway in Kubo already supported trustless, verifiable retrieval of immutable /ipfs/ namespace. With ?format=ipns-record, light HTTP clients are now able to get the same level of verifiability for IPNS websites.

Tooling is limited at the moment, but we are working on go-libipfs examples that illustrate the verifiable HTTP client pattern.

Example: fetch IPNS record over HTTP and inspect it with ipfs name inspect --verify
$ FILE_CID=$(echo "Hello IPFS" | ipfs add --cid-version 1 -q)
$ IPNS_KEY=$(ipfs key gen test)
$ ipfs name publish /ipfs/$FILE_CID --key=test --ttl=30m
Published to k51q..dvf1: /ipfs/bafk..z244
$ curl "http://127.0.0.1:8080/ipns/$IPNS_KEY?format=ipns-record" > signed.ipns-record
$ ipfs name inspect --verify $IPNS_KEY < signed.ipns-record
Value:         "/ipfs/bafk..."
Validity Type: "EOL"
Validity:      2023-03-09T23:13:34.032977468Z
Sequence:      0
TTL:           1800000000000
PublicKey:     ""
Signature V1:  "m..."
Signature V2:  "m..."
Data:          {...}

Validation results:
 Valid:     true
 PublicKey: 12D3...

Addition of "autoclient" router type

A new routing type "autoclient" has been added. This mode is similar to "auto", in that it is a hybrid of content routers (including Kademlia and HTTP routers), but it does not run a DHT server. This is similar to the difference between "dhtclient" and "dht" router types.

See the Routing.Type documentation for more information.

Deprecation of the ipfs pubsub commands and matching HTTP endpoints

We are deprecating ipfs pubsub and all /api/v0/pubsub/ RPC endpoints and will remove them in the next release.

For more information and rational see #9717.

📝 Changelog

Full Changelog
  • github.com/ipfs/kubo:
    • chore: update version
    • docs: 0.19 changelog (ipfs/kubo#9707)
    • fix: canonicalize user defined headers
    • fix: apply API.HTTPHeaders to /webui redirect
    • feat: add heap allocs to 'ipfs diag profile'
    • fix: future proof with > rcmgr.DefaultLimit for new enum rcmgr values
    • test: add test for presarvation of unlimited configs for inbound systems
    • fix: preserve Unlimited StreamsInbound in connmgr reconciliation
    • test: fix flaky rcmgr test
    • chore: deprecate the pubsub api
    • test: port peering test from sharness to Go
    • test: use T.TempDir to create temporary test directory
    • fix: --verify forgets the verified key
    • test: name --verify forgets the verified key
    • feat: add "autoclient" routing type
    • test: parallelize more of rcmgr Go tests
    • test: port legacy DHT tests to Go
    • fix: t0116-gateway-cache.sh (ipfs/kubo#9696)
    • docs: add bifrost to early testers (ipfs/kubo#9699)
    • fix: typo in documentation for install path
    • chore: update version
    • feat: Reduce RM code footprint
    • Doc updates/additions
    • ci: replace junit html generation with gh action
    • test: port rcmgr sharness tests to Go
    • test(gateway): use deterministic CAR fixtures (ipfs/kubo#9657)
    • feat(gateway): error handling improvements (500, 502, 504) (#9660) (ipfs/kubo#9660)
    • docs: be clear about swarm.addrfilters (#9661) (ipfs/kubo#9661)
    • chore: update go-libp2p to v0.26 (#9656) (ipfs/kubo#9656)
    • feat(pinning): connect some missing go context (#9557) (ipfs/kubo#9557)
    • fix(gateway): return HTTP 500 on ErrResolveFailed (#9589) (ipfs/kubo#9589)
    • docs: bulk spelling edits (#9544) (ipfs/kubo#9544)
    • docs: "remote" errors from resource manager (#9653) (ipfs/kubo#9653)
    • test: remove gateway tests migrated to go-libipfs
    • fix: update rcmgr for go-libp2p v0.25
    • chore: update go-libp2p to v0.25.1
    • docs(0.18.1): guide users to clean up limits (#9644) (ipfs/kubo#9644)
    • feat: add NewOptionalInteger function
    • fix: dereference int64 pointer in OptionalInteger.String() (#9640) (ipfs/kubo#9640)
    • fix: restore wire format for /api/v0/routing/get|put (#9639) (ipfs/kubo#9639)
    • refactor(gw): move Host (DNSLink and subdomain) handling to go-libipfs (#9624) (ipfs/kubo#9624)
    • refactor: new go-libipfs/gateway API, deprecate Gateway.Writable (#9616) (ipfs/kubo#9616)
    • Create Changelog: v0.19 (ipfs/kubo#9617)
    • refactor: use gateway from go-libipfs (#9588) (ipfs/kubo#9588)
    • Merge Release: v0.18.1 (ipfs/kubo#9613)
    • Add overview section
    • Adjust inbound connection limits depending on memory.
    • feat: ipfs-webui 2.22.0
    • chore: bump go-libipfs remove go-bitswap
    • docs: DefaultResourceMgrMinInboundConns
    • feat(gateway): IPNS record response format (IPIP-351) (#9399) (ipfs/kubo#9399)
    • fix(ipns): honour --ttl flag in 'ipfs name publish' (#9471) (ipfs/kubo#9471)
    • feat: Pubsub.SeenMessagesStrategy (#9543) (ipfs/kubo#9543)
    • chore: bump go-libipfs to replace go-block-format
    • Merge Kubo: v0.18 (ipfs/kubo#9581)
    • fix: clarity: no user supplied rcmgr limits of 0 (#9563) (ipfs/kubo#9563)
    • fix(gateway): undesired conversions to dag-json and friends (#9566) (ipfs/kubo#9566)
    • fix: ensure connmgr is smaller then autoscalled ressource limits
    • fix: typo in ensureConnMgrMakeSenseVsResourcesMgr
    • docs: clarify browser descriptions for webtransport
    • fix: update saxon download path
    • fix: refuse to start if connmgr is smaller than ressource limits and not using none connmgr
    • fix: User-Agent sent to HTTP routers
    • test: port gateway sharness tests to Go tests
    • fix: do not download saxon in parallel
    • docs: improve docs/README (#9539) (ipfs/kubo#9539)
    • test: port CircleCI to GH Actions and improve sharness reporting (#9355) (ipfs/kubo#9355)
    • chore: migrate from go-ipfs-files to go-libipfs/files (#9535) (ipfs/kubo#9535)
    • fix: stats dht command when Routing.Type=auto (#9538) (ipfs/kubo#9538)
    • fix: hint people to changing from RSA peer ids
    • fix(gateway): JSON when Accept is a list
    • fix(test): retry flaky t0125-twonode.sh
    • docs: fix Router config Godoc (#9528) (ipfs/kubo#9528)
    • fix(ci): flaky sharness test
    • docs(config): ProviderSearchDelay (#9526) (ipfs/kubo#9526)
    • docs: clarify debug environment variables
    • fix: disable provide over HTTP with Routing.Type=auto (#9511) (ipfs/kubo#9511)
    • fix(test): stabilize flaky provider tests
    • feat: port pins CLI test
    • Removing QRI from early tester (ipfs/kubo#9503)
    • Update Version (dev): v0.18 (ipfs/kubo#9500)
  • github.com/ipfs/go-bitfield (v1.0.0 -> v1.1.0):
    • Merge pull request from GHSA-2h6c-j3gf-xp9r
    • sync: update CI config files (#3) (ipfs/go-bitfield#3)
  • github.com/ipfs/go-block-format (v0.0.3 -> v0.1.1):
    • chore: release v0.1.1
    • docs: fix wrong copy paste in docs
    • chore: release v0.1.0
    • refactor: deprecate and add stub types to go-libipfs/blocks
    • sync: update CI config files (#34) (ipfs/go-block-format#34)
    • remove Makefile (ipfs/go-block-format#31)
  • github.com/ipfs/go-ipfs-files (v0.0.8 -> v0.3.0):
  • github.com/ipfs/go-ipfs-pinner (v0.2.1 -> v0.3.0):
  • github.com/ipfs/go-ipfs-pq (v0.0.2 -> v0.0.3):
  • github.com/ipfs/go-libipfs (v0.2.0 -> v0.6.2):
    • chore: release 0.6.2 (#211) (ipfs/go-libipfs#211)
    • fix(gateway): 500 on panic, recover on WithHostname
    • refactor: use assert in remaining gateway tests
    • chore: release 0.6.1
    • feat: support HTTP 429 with Retry-After (#194) (ipfs/go-libipfs#194)
    • docs: fix typo in README.md
    • fix(gateway): return 500 for all /ip[nf]s/id failures
    • chore: make gocritic happier
    • feat(gateway): improved error handling, support for 502 and 504 (ipfs/go-libipfs#182)
    • feat: add content path in request context (#184) (ipfs/go-libipfs#184)
    • sync: update CI config files (ipfs/go-libipfs#159)
    • fix(gateway): return HTTP 500 on namesys.ErrResolveFailed (#150) (ipfs/go-libipfs#150)
    • docs(examples): add UnixFS file download over Bitswap (#143) (ipfs/go-libipfs#143)
    • bitswap/server/internal/decision: fix: remove unused private type
    • chore: release v0.6.0
    • bitswap/server/internal/decision: add more non flaky tests
    • bitswap/server/internal/decision: add filtering on CIDs - Ignore cids that are too big. - Kill connection for peers that are using inline CIDs.
    • bitswap/server/internal/decision: rewrite ledger inversion
    • docs(readme): various updates for clarity (#171) (ipfs/go-libipfs#171)
    • feat: metric for implicit index.html in dirs
    • fix(gateway): ensure ipfs_http_gw_get_duration_seconds gets updated
    • test(gateway): migrate Go tests from Kubo (ipfs/go-libipfs#156)
    • docs: fix link (#165) (ipfs/go-libipfs#165)
    • fix: GetIPNSRecord example gateway implementation (#158) (ipfs/go-libipfs#158)
    • chore: release v0.5.0
    • chore: update go-libp2p to v0.25.1
    • fix(gateway): display correct error with 500 (#160) (ipfs/go-libipfs#160)
    • fix: gateway car example dnslink
    • feat(gateway): add TAR, IPNS Record, DAG-* histograms and spans (#155) (ipfs/go-libipfs#155)
    • feat(gateway): migrate subdomain and dnslink code (#153) (ipfs/go-libipfs#153)
    • docs: add example of gateway that proxies to ?format=raw (#151) (ipfs/go-libipfs#151)
    • docs: add example of gateway backed by CAR file (#147) (ipfs/go-libipfs#147)
    • undefined (ipfs/go-libipfs#145)
    • Extract Gateway Code From Kubo (ipfs/go-libipfs#65)
    • Migrate go-bitswap (ipfs/go-libipfs#63)
    • Use PUT as method to insert provider records
    • Migrate go-block-format (ipfs/go-libipfs#58)
    • chore: add codecov PR comment
    • chore: add a logo and some basics in the README (#37) (ipfs/go-libipfs#37)
  • github.com/ipfs/go-namesys (v0.6.0 -> v0.7.0):
  • github.com/ipfs/go-path (v0.3.0 -> v0.3.1):
  • github.com/ipfs/go-peertaskqueue (v0.8.0 -> v0.8.1):
    • chore: release v0.8.1
    • feat: add PushTasksTruncated which only push a limited amount of tasks
    • feat: add (*PeerTaskQueue).Clear which fully removes a peer
    • sync: update CI config files (#26) (ipfs/go-peertaskqueue#26)
  • github.com/ipfs/go-unixfs (v0.4.2 -> v0.4.4):
    • chore: release v0.4.4
    • fix: correctly handle return errors
    • fix: correctly handle errors in balancedbuilder's Layout
    • test: fix tests after hamt issues fixes
    • Merge pull request from GHSA-q264-w97q-q778
  • github.com/ipfs/go-unixfsnode (v1.5.1 -> v1.5.2):
    • Merge pull request from GHSA-4gj3-6r43-3wfc
  • github.com/ipfs/interface-go-ipfs-core (v0.8.2 -> v0.11.0):
  • github.com/ipld/go-car (v0.4.0 -> v0.5.0):
    • chore: bump version to 0.5.0
    • fix: remove use of ioutil
    • run gofmt -s
    • bump go.mod to Go 1.18 and run go fix
    • bump go.mod to Go 1.18 and run go fix
    • OpenReadWriteFile: add test
    • blockstore: allow to pass a file to write in (#323) (ipld/go-car#323)
    • feat: add car inspect command to cmd pkg (#320) (ipld/go-car#320)
    • Separate index.ReadFrom tests
    • Only read index codec during inspection
    • Upgrade to the latest go-car/v2
    • Empty identity CID should be indexed when options are set
  • github.com/libp2p/go-libp2p (v0.24.2 -> v0.26.3):
  • github.com/libp2p/go-libp2p-kad-dht (v0.20.0 -> v0.21.1):
  • github.com/libp2p/go-libp2p-pubsub (v0.8.3 -> v0.9.0):
  • github.com/libp2p/go-libp2p-routing-helpers (v0.6.0 -> v0.6.1):
    • chore: release v0.6.1
    • fix: cancel parallel routers
  • github.com/libp2p/go-msgio (v0.2.0 -> v0.3.0):
  • github.com/lucas-clemente/quic-go (v0.31.1 -> v0.29.1):
    • http3: fix double close of chan when using DontCloseRequestStream
  • github.com/multiformats/go-multistream (v0.3.3 -> v0.4.1):
  • github.com/warpfork/go-wish (v0.0.0-20200122115046-b9ea61034e4a -> v0.0.0-20220906213052-39a1cc7a02d0):
    • Update readme with deprecation info
  • github.com/whyrusleeping/cbor-gen (v0.0.0-20221220214510-0333c149dec0 -> v0.0.0-20230126041949-52956bd4c9aa):

👨‍👩‍👧‍👦 Contributors

Contributor Commits Lines ± Files Changed
Dirk McCormick 128 +16757/-7211 387
Henrique Dias 69 +7599/-10016 316
hannahhoward 88 +8503/-4397 271
Jeromy Johnson 244 +6544/-4034 774
Marten Seemann 64 +4870/-5628 266
Steven Allen 296 +4769/-3517 972
Brian Tiger Chow 250 +5520/-2579 435
Jorropo 64 +4237/-3548 302
Sukun 18 +4327/-1093 132
Marco Munizaga 35 +2809/-1294 94
Gus Eggert 20 +2523/-1476 99
Adin Schmahmann 15 +683/-2625 69
Marcin Rataj 73 +2348/-882 133
whyrusleeping 12 +1683/-1338 23
Jeromy 99 +1754/-1181 453
Juan Batiz-Benet 69 +1182/-678 149
Lars Gierth 31 +827/-358 92
Paul Wolneykien 2 +670/-338 9
Laurent Senta 16 +806/-134 53
Henry 19 +438/-372 36
Michael Muré 8 +400/-387 19
Łukasz Magiera 56 +413/-354 117
Jakub Sztandera 40 +413/-251 100
Justin Johnson 2 +479/-165 5
Piotr Galar 7 +227/-378 24
Kevin Atkinson 11 +252/-232 49
web3-bot 17 +236/-240 59
Petar Maymounkov 2 +348/-84 11
Hector Sanjuan 38 +206/-223 85
Antonio Navarro Perez 9 +259/-95 17
keks 22 +233/-118 24
Ho-Sheng Hsiao 3 +170/-170 30
Lucas Molas 6 +266/-54 16
Mildred Ki'Lya 4 +280/-35 7
Steve Loeppky 5 +147/-156 9
rht 14 +97/-188 20
Prithvi Shahi 6 +89/-193 11
Ian Davis 6 +198/-75 11
taylor 1 +180/-89 8
ᴍᴀᴛᴛ ʙᴇʟʟ 14 +158/-104 18
Chris Boddy 6 +190/-45 8
Rod Vagg 3 +203/-28 15
Masih H. Derkani 8 +165/-61 16
Kevin Wallace 4 +194/-27 7
Mohsin Zaidi 1 +179/-41 5
ElPaisano 1 +110/-110 22
Simon Zhu 6 +177/-32 8
galargh 9 +80/-120 14
Tomasz Zdybał 1 +180/-1 4
dgrisham 3 +176/-2 4
Michael Avila 3 +116/-59 8
Raúl Kripalani 2 +85/-77 34
Dr Ian Preston 11 +101/-48 11
JP Hastings-Spital 1 +145/-0 2
George Antoniadis 6 +59/-58 43
Kevin Neaton 2 +97/-16 4
Adrian Lanzafame 6 +81/-25 7
Dennis Trautwein 3 +89/-9 5
mathew-cf 2 +82/-9 5
tg 1 +41/-33 1
Eng Zer Jun 1 +15/-54 5
zramsay 4 +15/-53 12
muXxer 1 +28/-33 4
Thomas Eizinger 1 +24/-37 4
Remco Bloemen 2 +28/-18 3
Manuel Alonso 1 +36/-9 1
vyzo 4 +26/-12 13
Djalil Dreamski 3 +27/-9 3
Thomas Gardner 2 +32/-3 4
Jan Winkelmann 2 +23/-12 8
Artem Andreenko 1 +16/-19 1
James Stanley 1 +34/-0 1
Brendan McMillion 1 +10/-17 3
Jack Loughran 1 +22/-0 3
Peter Wu 2 +12/-9 2
Gowtham G 4 +14/-7 4
Tor Arne Vestbø 3 +19/-1 3
Cory Schwartz 1 +8/-12 5
Peter Rabbitson 1 +15/-4 1
David Dias 1 +9/-9 1
Will Scott 1 +13/-4 2
Eric Myhre 1 +15/-2 1
Stephen Whitmore 1 +8/-8 1
Rafael Ramalho 5 +11/-5 5
Christian Couder 1 +14/-2 1
W. Trevor King 2 +9/-6 3
Steven Vandevelde 1 +11/-3 1
Knut Ahlers 3 +9/-5 3
Bob Potter 1 +3/-10 1
Russell Dempsey 4 +8/-4 4
Diogo Silva 4 +8/-4 4
Dave Justice 1 +8/-4 1
Andy Leap 2 +2/-10 2
divingpetrel 1 +7/-4 2
Iaroslav Gridin 1 +9/-2 1
Dominic Della Valle 3 +5/-5 3
Vijayee Kulkaa 1 +3/-6 1
Friedel Ziegelmayer 3 +6/-3 3
Stephen Solka 1 +1/-7 1
Richard Littauer 3 +4/-4 3
Franky W 2 +4/-4 2
Dimitris Apostolou 2 +4/-4 3
Adrian Ulrich 1 +8/-0 1
Masashi Salvador Mitsuzawa 1 +5/-1 1
Gabe 1 +3/-3 1
zuuluuz 1 +4/-1 1
myml 1 +5/-0 1
swedneck 1 +3/-1 1
Wayback Archiver 1 +2/-2 1
Vladimir Ivanov 1 +2/-2 1
Péter Szilágyi 1 +2/-2 1
Karthik Bala 1 +2/-2 1
Etienne Laurin 1 +1/-3 1
Shotaro Yamada 1 +2/-1 1
Robert Carlsen 1 +2/-1 1
Oli Evans 1 +2/-1 1
Dan McQuillan 1 +2/-1 1
susarlanikhilesh 1 +1/-1 1
mateon1 1 +1/-1 1
kpcyrd 1 +1/-1 1
bbenshoof 1 +1/-1 1
ZenGround0 1 +1/-1 1
Will Hawkins 1 +1/-1 1
Tommi Virtanen 1 +1/-1 1
Seungbae Yu 1 +1/-1 1
Riishab Joshi 1 +1/-1 1
Kubo Mage 1 +1/-1 1
Ivan 1 +1/-1 1
Guillaume Renault 1 +1/-1 1
Anjor Kanekar 1 +1/-1 1
Andrew Chin 1 +1/-1 1
Abdul Rauf 1 +1/-1 1
makeworld 1 +1/-0 1