<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
      <title>libp2p - A modular network stack</title>
      <link>https://sumanjeet.duckdns.org</link>
      <description>Run your network applications free from runtime and address services, independently of their location.</description>
      <generator>Zola</generator>
      <language>en</language>
      <atom:link href="https://sumanjeet.duckdns.org/rss.xml" rel="self" type="application/rss+xml"/>
      <lastBuildDate>Mon, 09 Mar 2026 00:00:00 +0000</lastBuildDate>
      <item>
          <title>Announcing the release of litep2p v0.13.3</title>
          <pubDate>Mon, 09 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-09-litep2p-0-13-3/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-09-litep2p-0-13-3/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-09-litep2p-0-13-3/">&lt;p&gt;Release v0.13.3&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v2.0.10</title>
          <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-10/">&lt;h2 id=&quot;2-0-10-2026-03-04&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-0-10-2026-03-04&quot; aria-label=&quot;Anchor link for: 2-0-10-2026-03-04&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;simple-metrics-v2.0.9...simple-metrics-v2.0.10&quot;&gt;2.0.10&lt;&#x2F;a&gt; (2026-03-04)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;metrics:&lt;&#x2F;strong&gt; avoid consuming protocol frames before app readers (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3394&quot;&gt;#3394&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;4db427d307923d2bfde3c7052f3abfb0456b5e61&quot;&gt;4db427d&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v2.0.13</title>
          <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-13/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-13/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-2-0-13/">&lt;h2 id=&quot;2-0-13-2026-03-04&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-0-13-2026-03-04&quot; aria-label=&quot;Anchor link for: 2-0-13-2026-03-04&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;opentelemetry-metrics-v2.0.12...opentelemetry-metrics-v2.0.13&quot;&gt;2.0.13&lt;&#x2F;a&gt; (2026-03-04)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;metrics:&lt;&#x2F;strong&gt; avoid consuming protocol frames before app readers (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3394&quot;&gt;#3394&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;4db427d307923d2bfde3c7052f3abfb0456b5e61&quot;&gt;4db427d&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v5.0.13</title>
          <pubDate>Wed, 04 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-5-0-13/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-5-0-13/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-04-js-libp2p-5-0-13/">&lt;h2 id=&quot;5-0-13-2026-03-04&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-0-13-2026-03-04&quot; aria-label=&quot;Anchor link for: 5-0-13-2026-03-04&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;prometheus-metrics-v5.0.12...prometheus-metrics-v5.0.13&quot;&gt;5.0.13&lt;&#x2F;a&gt; (2026-03-04)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;metrics:&lt;&#x2F;strong&gt; avoid consuming protocol frames before app readers (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3394&quot;&gt;#3394&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;4db427d307923d2bfde3c7052f3abfb0456b5e61&quot;&gt;4db427d&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v1.0.14</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-1-0-14/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-1-0-14/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-1-0-14/">&lt;h2 id=&quot;1-0-14-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-0-14-2026-03-03&quot; aria-label=&quot;Anchor link for: 1-0-14-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;transport-interop-libp2p-main-v1.0.13...transport-interop-libp2p-main-v1.0.14&quot;&gt;1.0.14&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;circuit-relay-v2 bumped from ^4.1.4 to ^4.1.5&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;identify bumped from ^4.0.11 to ^4.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;mplex bumped from ^12.0.12 to ^12.0.13&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.11 to ^3.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tcp bumped from ^11.0.11 to ^11.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tls bumped from ^3.0.11 to ^3.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webrtc bumped from ^6.0.12 to ^6.0.13&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;websockets bumped from ^10.1.4 to ^10.1.5&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webtransport bumped from ^6.0.13 to ^6.0.14&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.4 to ^3.1.5&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v10.1.5</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-10-1-5/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-10-1-5/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-10-1-5/">&lt;h2 id=&quot;10-1-5-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#10-1-5-2026-03-03&quot; aria-label=&quot;Anchor link for: 10-1-5-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;websockets-v10.1.4...websockets-v10.1.5&quot;&gt;10.1.5&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v11.0.12</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-11-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-11-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-11-0-12/">&lt;h2 id=&quot;11-0-12-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#11-0-12-2026-03-03&quot; aria-label=&quot;Anchor link for: 11-0-12-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;tcp-v11.0.11...tcp-v11.0.12&quot;&gt;11.0.12&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v3.0.13</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-3-0-13/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-3-0-13/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-3-0-13/">&lt;h2 id=&quot;3-0-13-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-0-13-2026-03-03&quot; aria-label=&quot;Anchor link for: 3-0-13-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;pnet-v3.0.12...pnet-v3.0.13&quot;&gt;3.0.13&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v4.0.12</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-4-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-4-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-4-0-12/">&lt;h2 id=&quot;4-0-12-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-0-12-2026-03-03&quot; aria-label=&quot;Anchor link for: 4-0-12-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;upnp-nat-v4.0.11...upnp-nat-v4.0.12&quot;&gt;4.0.12&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;interface-internal bumped from ^3.0.11 to ^3.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v5.0.12</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-5-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-5-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-5-0-12/">&lt;h2 id=&quot;5-0-12-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-0-12-2026-03-03&quot; aria-label=&quot;Anchor link for: 5-0-12-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;prometheus-metrics-v5.0.11...prometheus-metrics-v5.0.12&quot;&gt;5.0.12&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v6.0.14</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-6-0-14/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-6-0-14/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-6-0-14/">&lt;h2 id=&quot;6-0-14-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-0-14-2026-03-03&quot; aria-label=&quot;Anchor link for: 6-0-14-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;webtransport-v6.0.13...webtransport-v6.0.14&quot;&gt;6.0.14&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.11 to ^7.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;daemon-client bumped from ^10.0.13 to ^10.0.14&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.11 to ^3.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.4 to ^3.1.5&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v7.0.12</title>
          <pubDate>Tue, 03 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-7-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-7-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-03-js-libp2p-7-0-12/">&lt;h2 id=&quot;7-0-12-2026-03-03&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#7-0-12-2026-03-03&quot; aria-label=&quot;Anchor link for: 7-0-12-2026-03-03&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;utils-v7.0.11...utils-v7.0.12&quot;&gt;7.0.12&lt;&#x2F;a&gt; (2026-03-03)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;clean up adaptive timeout signals in connection monitor (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3392&quot;&gt;#3392&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;f4b950dc937a6cbd1a155b01995656991770a5f9&quot;&gt;f4b950d&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.13.2</title>
          <pubDate>Mon, 02 Mar 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-03-02-litep2p-0-13-2/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-03-02-litep2p-0-13-2/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-03-02-litep2p-0-13-2/">&lt;h2 id=&quot;0-13-2-2026-03-02&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-13-2-2026-03-02&quot; aria-label=&quot;Anchor link for: 0-13-2-2026-03-02&quot;&gt;[0.13.2] - 2026-03-02&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This is a hotfix release fixing ping protocol panic in debug builds. The release also includes WebRTC fixes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;webrtc&#x2F;fix: Ensure delay future is awaited (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;548&quot;&gt;#548&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;ping: Fix panic in debug builds (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;551&quot;&gt;#551&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: Ensure nonstun packets cannot panic transport layer (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;550&quot;&gt;#550&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: Avoid memory leaks by cleaning stale hashmap entries (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;549&quot;&gt;#549&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v1.0.13</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-1-0-13/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-1-0-13/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-1-0-13/">&lt;h2 id=&quot;1-0-13-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-0-13-2026-02-25&quot; aria-label=&quot;Anchor link for: 1-0-13-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;transport-interop-libp2p-main-v1.0.12...transport-interop-libp2p-main-v1.0.13&quot;&gt;1.0.13&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;circuit-relay-v2 bumped from ^4.1.3 to ^4.1.4&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;identify bumped from ^4.0.10 to ^4.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;mplex bumped from ^12.0.11 to ^12.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.10 to ^3.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tcp bumped from ^11.0.10 to ^11.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tls bumped from ^3.0.10 to ^3.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webrtc bumped from ^6.0.11 to ^6.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;websockets bumped from ^10.1.3 to ^10.1.4&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webtransport bumped from ^6.0.12 to ^6.0.13&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.3 to ^3.1.4&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v10.1.4</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-10-1-4/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-10-1-4/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-10-1-4/">&lt;h2 id=&quot;10-1-4-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#10-1-4-2026-02-25&quot; aria-label=&quot;Anchor link for: 10-1-4-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;websockets-v10.1.3...websockets-v10.1.4&quot;&gt;10.1.4&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v11.0.11</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-11-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-11-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-11-0-11/">&lt;h2 id=&quot;11-0-11-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#11-0-11-2026-02-25&quot; aria-label=&quot;Anchor link for: 11-0-11-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;tcp-v11.0.10...tcp-v11.0.11&quot;&gt;11.0.11&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v3.0.11</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-11/">&lt;h2 id=&quot;3-0-11-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-0-11-2026-02-25&quot; aria-label=&quot;Anchor link for: 3-0-11-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;tls-v3.0.10...tls-v3.0.11&quot;&gt;3.0.11&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v3.0.12</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-3-0-12/">&lt;h2 id=&quot;3-0-12-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-0-12-2026-02-25&quot; aria-label=&quot;Anchor link for: 3-0-12-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;pnet-v3.0.11...pnet-v3.0.12&quot;&gt;3.0.12&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v4.0.11</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-4-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-4-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-4-0-11/">&lt;h2 id=&quot;4-0-11-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-0-11-2026-02-25&quot; aria-label=&quot;Anchor link for: 4-0-11-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;upnp-nat-v4.0.10...upnp-nat-v4.0.11&quot;&gt;4.0.11&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;interface-internal bumped from ^3.0.10 to ^3.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v5.0.11</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-5-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-5-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-5-0-11/">&lt;h2 id=&quot;5-0-11-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-0-11-2026-02-25&quot; aria-label=&quot;Anchor link for: 5-0-11-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;prometheus-metrics-v5.0.10...prometheus-metrics-v5.0.11&quot;&gt;5.0.11&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v6.0.13</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-6-0-13/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-6-0-13/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-6-0-13/">&lt;h2 id=&quot;6-0-13-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-0-13-2026-02-25&quot; aria-label=&quot;Anchor link for: 6-0-13-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;webtransport-v6.0.12...webtransport-v6.0.13&quot;&gt;6.0.13&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.10 to ^7.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;daemon-client bumped from ^10.0.12 to ^10.0.13&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.10 to ^3.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.3 to ^3.1.4&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v7.0.11</title>
          <pubDate>Sat, 28 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-7-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-7-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-28-js-libp2p-7-0-11/">&lt;h2 id=&quot;7-0-11-2026-02-25&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#7-0-11-2026-02-25&quot; aria-label=&quot;Anchor link for: 7-0-11-2026-02-25&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;utils-v7.0.10...utils-v7.0.11&quot;&gt;7.0.11&lt;&#x2F;a&gt; (2026-02-25)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;bytestream reads buffered data (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3378&quot;&gt;#3378&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;30b53a9994006c925c8f2e1326a1bff1bc7b50ef&quot;&gt;30b53a9&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.13.1</title>
          <pubDate>Fri, 27 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-27-litep2p-0-13-1/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-27-litep2p-0-13-1/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-27-litep2p-0-13-1/">&lt;h2 id=&quot;0-13-1-2026-02-27&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-13-1-2026-02-27&quot; aria-label=&quot;Anchor link for: 0-13-1-2026-02-27&quot;&gt;[0.13.1] - 2026-02-27&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release includes multiple fixes of transports and protocols, fixing connection stability issues with other libraries (specifically, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;smol-dot&#x2F;smoldot&#x2F;&quot;&gt;smoldot&lt;&#x2F;a&gt;) and increasing success rates of dialing &amp;amp;amp; opening substreams, especially in extreme cases when remote nodes have a lot of private addresses published to the DHT.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;ping: Conform to the spec &amp;amp;amp; exclude from connection keep-alive (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;416&quot;&gt;#416&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport: Make accept async to close the gap on service races (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;525&quot;&gt;#525&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport: Limit dial concurrency and bound total dialing time (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;538&quot;&gt;#538&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: Support &lt;code&gt;FIN&lt;&#x2F;code&gt;&#x2F;&lt;code&gt;FIN_ACK&lt;&#x2F;code&gt; handshake for substream shutdown (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;513&quot;&gt;#513&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport: Expose failed addresses to the transport manager (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;529&quot;&gt;#529&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;manager: Prioritize public addresses for dialing (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;530&quot;&gt;#530&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.6.0</title>
          <pubDate>Mon, 16 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-16-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-16-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-16-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.5</title>
          <pubDate>Sun, 15 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-15-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-15-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-15-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.4</title>
          <pubDate>Mon, 09 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-09-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-09-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-09-swift-libp2p/"></description>
      </item>
      <item>
          <title>libp2p Annual Report 2025</title>
          <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2025-report/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2025-report/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2025-report/">&lt;h4 id=&quot;get-involved-with-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#get-involved-with-libp2p&quot; aria-label=&quot;Anchor link for: get-involved-with-libp2p&quot;&gt;&lt;strong&gt;Get involved with libp2p&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;ul&gt;
&lt;li&gt;Read the full &lt;a href=&quot;&#x2F;reports&#x2F;annual-reports&#x2F;2025&#x2F;&quot;&gt;libp2p 2025 Report&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Join a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;luma.com&#x2F;libp2p?tag=community&quot;&gt;libp2p community call&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Join our &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;discord.gg&#x2F;MRRgEFMAVN&quot;&gt;Discord&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Explore the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&quot;&gt;libp2p Github&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Build a prototype using libp2p technical support and early collaboration - &lt;a href=&quot;mailto:johanna@libp2p.io&quot;&gt;johanna@libp2p.io&lt;&#x2F;a&gt; - &lt;a href=&quot;mailto:manu@libp2p.io&quot;&gt;manu@libp2p.io&lt;&#x2F;a&gt; - &lt;a href=&quot;mailto:dave.grantham@libp2p.io&quot;&gt;dave.grantham@libp2p.io&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Partner with libp2p for funders and ecosystem partners - &lt;a href=&quot;mailto:partner@libp2p.io&quot;&gt;partner@libp2p.io&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;the-forefront-of-decentralized-networking-and-ai&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-forefront-of-decentralized-networking-and-ai&quot; aria-label=&quot;Anchor link for: the-forefront-of-decentralized-networking-and-ai&quot;&gt;The Forefront of Decentralized Networking and AI&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;In 2025, libp2p became the communication layer behind over $100B in decentralized value flow. What began nearly a decade ago as a modular, secure peer-to-peer networking framework is now one of the most widely deployed foundations for decentralized systems, powering more than 30 blockchain networks, emerging compute fabrics, and next-generation Web3 applications.&lt;&#x2F;p&gt;
&lt;p&gt;Today, libp2p’s influence extends far beyond blockchains. With 10+ active implementations, 300+ monthly contributors, and rapidly expanding research into browser-native connectivity, decentralized AI, and post-quantum-secure networking, libp2p is evolving into a core substrate for a new era of distributed systems spanning Web3, AI infrastructure, edge computing, and embedded systems.&lt;&#x2F;p&gt;
&lt;p&gt;The past year delivered measurable gains in performance, interoperability, and adoption. QUIC and WebTransport matured significantly, reducing latency and improving battery efficiency across mobile and light clients. GossipSub upgrades made cross-client gossip more predictable under load, strengthening Ethereum L1, L2 rollups, shared sequencers, and data availability networks. Browser connectivity advanced through AutoTLS and improved relaying, enabling frontends to communicate directly with sequencing networks and peer-to-peer services without relying on centralized RPC infrastructure.&lt;&#x2F;p&gt;
&lt;p&gt;At the same time, libp2p’s role in decentralized AI and agentic systems became increasingly concrete. As autonomous agents, embedded compute, and on-device intelligence continue to expand, so does the need for trust-minimized, low-latency peer-to-peer messaging. This year’s work positions libp2p as a natural communication layer for agent-to-agent coordination, decentralized inference, and privacy-preserving AI workflows, while ongoing post-quantum and multiformat efforts future-proof the stack for decades to come.&lt;&#x2F;p&gt;
&lt;p&gt;This momentum is already visible in practice. In 2025, the Python implementation of libp2p matured enough to support reference implementations for federated learning and decentralized AI systems. These examples demonstrate peer-to-peer model coordination, gradient and parameter exchange, and privacy-aware training workflows without centralized servers. By lowering the barrier for researchers and AI engineers, Python-libp2p is emerging as a practical bridge between modern ML stacks and decentralized networking.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;2026-roadmap&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2026-roadmap&quot; aria-label=&quot;Anchor link for: 2026-roadmap&quot;&gt;&lt;strong&gt;2026 Roadmap&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The year ahead focuses on usability, connectivity, privacy, and maturity, informed by deeper engagement with AI researchers and sustained investment in roadmap-shaping exercises.&lt;&#x2F;p&gt;
&lt;p&gt;Key priorities include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Research Focus: GossipSub&lt;&#x2F;strong&gt; to continue the ongoing research and development to scale decentralized state synchronization&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Research Focus: Browser-native Connectivity&lt;&#x2F;strong&gt; through broader AutoTLS rollout and improved relaying&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Research Focus: Decentralized AI Applications&lt;&#x2F;strong&gt; with destributed MCP and IPFS integration for federated learning&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Research Focus: Mobile-native Advances&lt;&#x2F;strong&gt; with Kotlin and Swift implementations moving toward production readiness&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Advanced Network Simulation and Testing&lt;&#x2F;strong&gt; enabling empirical testing of research implementations at scale&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Easy Mode&lt;&#x2F;strong&gt; enabling minimal-configuration peer-to-peer applications in just a few lines of code&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Unified Developer Center&lt;&#x2F;strong&gt; consolidating documentation, tutorials, and language-specific references&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Universal Connectivity&lt;&#x2F;strong&gt; supported by an updated specification and a continuous cross-language test suite targeting 95% interoperability&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;achievements-2025&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#achievements-2025&quot; aria-label=&quot;Anchor link for: achievements-2025&quot;&gt;&lt;strong&gt;Achievements 2025&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ethereum’s Portal Network&lt;&#x2F;strong&gt; adopted libp2p for ultra-light RPC and decentralized state retrieval, enabling phone-native and home-run Ethereum clients.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Sequencer networks&lt;&#x2F;strong&gt; such as Espresso and Astria expanded their use of GossipSub as a coordination layer, with OP Stack teams beginning to integrate compatible meshes.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;QUIC and WebTransport improvements&lt;&#x2F;strong&gt; significantly boosted mobile performance and reduced connection overhead, paving the way for emerging “wallet-as-a-node” architectures.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Data availability networks&lt;&#x2F;strong&gt; Celestia, Avail, and EigenDA benefited from upgrades that improved sampling throughput and blob propagation reliability.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Browser connectivity&lt;&#x2F;strong&gt; advanced through AutoTLS and web-to-web relaying, allowing browser-based dApps to participate directly in libp2p networks. The AutoTLS specification itself reflects growing cross-project collaboration, with contributions from nim-libp2p and Waku research teams.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;across-language-ecosystems-implementations-matured-in-parallel&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#across-language-ecosystems-implementations-matured-in-parallel&quot; aria-label=&quot;Anchor link for: across-language-ecosystems-implementations-matured-in-parallel&quot;&gt;Across language ecosystems, implementations matured in parallel&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;go-libp2p and js-libp2p&lt;&#x2F;strong&gt; deepened browser and WebTransport support.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;cpp-libp2p&lt;&#x2F;strong&gt; was revived to support Lean Consensus research&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;c-libp2p and eth-p2p-z (zig-libp2p)&lt;&#x2F;strong&gt; expanded into embedded and constrained environments&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;dotnet-libp2p&lt;&#x2F;strong&gt; reached its first production integrations with Shutter and Optimism&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;py-libp2p&lt;&#x2F;strong&gt; progressed rapidly toward a 1.0 release, unlocking strong integrations with AI and ML workflows. The ecosystem introduced &lt;strong&gt;production-quality examples for federated learning and decentralized AI&lt;&#x2F;strong&gt;, showcasing peer-to-peer training coordination, model synchronization, and research-friendly experimentation using libp2p as the underlying transport.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;ecosystem-research-and-education&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#ecosystem-research-and-education&quot; aria-label=&quot;Anchor link for: ecosystem-research-and-education&quot;&gt;&lt;strong&gt;Ecosystem, Research, and Education&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;ProbeLab expanded cross-network monitoring across Ethereum, Gnosis, Base, Celestia, Filecoin, Avail, Polkadot, and IPFS, accelerating interoperability testing and improving visibility into network health. Developer education continued to scale through libp2p Days at EthCC and DevConnect, alongside the Universal Connectivity workshop adapted across Rust, Python, and JavaScript.&lt;&#x2F;p&gt;
&lt;p&gt;Academic adoption also grew in 2025. Universities across South Asia began incorporating libp2p into curricula spanning engineering, management, and design. Institutions such as Netaji Subhas University of Technology (NSUT) integrated libp2p into coursework on distributed systems, decentralized applications, and platform design, exposing students to real-world peer-to-peer primitives and open-source collaboration.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;industry-volunteer-contributions&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#industry-volunteer-contributions&quot; aria-label=&quot;Anchor link for: industry-volunteer-contributions&quot;&gt;&lt;strong&gt;Industry &amp;amp; Volunteer Contributions&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;A defining strength of libp2p in 2025 was the depth of industry participation. Engineers from Huddle01, NVIDIA, DDN (Data Direct Networks), Hypertensor, and Linux Foundation Edge contributed code, specifications, performance testing, and real-world operational feedback.&lt;&#x2F;p&gt;
&lt;p&gt;These contributions improved transport efficiency, observability, browser and media-path networking, AI-adjacent workflows, and large-scale deployment resilience. Participation from engineers working in video infrastructure, high-performance computing, enterprise systems, and edge platforms reinforced libp2p’s role as a neutral, production-grade networking layer serving both Web3-native and traditional infrastructure organizations.&lt;&#x2F;p&gt;
&lt;p&gt;Beyond libp2p itself, critical improvements to quic-go and webtransport-go, used by thousands of projects outside Web3 received critical performance, security, and standards-alignment improvements, benefiting the wider internet as much as decentralized systems.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;div class=&quot;blog-logo-grid&quot;&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;powered-by-libp2p-logo.svg&quot; alt=&quot;libp2p&quot;&gt;
    &lt;&#x2F;div&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;filecoin-logo.svg&quot; alt=&quot;Filecoin&quot;&gt;
    &lt;&#x2F;div&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;ethereum-logo.svg&quot; alt=&quot;Ethereum&quot;&gt;
    &lt;&#x2F;div&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;ipfs-logo.svg&quot; alt=&quot;IPFS&quot;&gt;
    &lt;&#x2F;div&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;celestia-logo.svg&quot; alt=&quot;Celestia&quot;&gt;
    &lt;&#x2F;div&gt;
    &lt;div class=&quot;blog-logo-grid__card&quot;&gt;
        &lt;img src=&quot;..&#x2F;..&#x2F;img&#x2F;logos&#x2F;optimism-logo.svg&quot; alt=&quot;Optimism&quot;&gt;
    &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;h2 id=&quot;funding-partnerships&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#funding-partnerships&quot; aria-label=&quot;Anchor link for: funding-partnerships&quot;&gt;&lt;strong&gt;Funding &amp;amp; Partnerships&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;strong&gt;libp2p Core Fund&lt;&#x2F;strong&gt;, established in 2024, continued investing in the project’s long-term health. Support from the Ethereum Foundation, Protocol Labs, Filecoin Foundation, Celestia, and Optimism enabled sustained maintenance, research, interoperability work, and ecosystem growth.&lt;&#x2F;p&gt;
&lt;p&gt;Notable contributions include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ethereum Foundation&lt;&#x2F;strong&gt;: Advancing Eth2 networking, GossipSub tuning, instrumentation, developer documentation, and collaborative ZK and privacy tooling with PLDG.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Filecoin Foundation&lt;&#x2F;strong&gt;: Stress-testing libp2p at massive scale and feeding research-driven improvements back into every implementation.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Celestia&lt;&#x2F;strong&gt;: Supporting performance tuning, data-availability retrieval testing, and networking standards for modular blockchain architectures.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Protocol Labs&lt;&#x2F;strong&gt;: Funding cross-implementation maintenance, multiformats and IPLD standards, and ProbeLab’s research.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Optimism&lt;&#x2F;strong&gt;: Pioneering cross-rollup networking and sequencing infrastructure.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Together with industry volunteers and academic partners, these organizations reflect a shared vision: &lt;strong&gt;a secure, neutral, high-performance networking layer for the decentralized internet—and for the AI systems increasingly built on top of it&lt;&#x2F;strong&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;&lt;strong&gt;Conclusion&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Libp2p’s growth in 2025 was not only technical but structural. Multiple implementations matured in parallel, browser and mobile support strengthened, and decentralized AI systems increasingly relied on peer to peer networking as a foundational primitive.&lt;&#x2F;p&gt;
&lt;p&gt;With Python based reference implementations for federated learning and decentralized AI, growing industry participation, and expanding academic adoption, libp2p is no longer just infrastructure. It is an enabling layer for the next generation of distributed intelligence.&lt;&#x2F;p&gt;
&lt;p&gt;As libp2p enters 2026, it stands at the center of a global shift toward open, resilient, and autonomous compute. The work delivered this year, from AutoTLS and QUIC improvements to decentralized AI examples and university curricula, lays the groundwork for a decade in which distributed systems do not just scale, but become more connected and resilient.&lt;&#x2F;p&gt;
&lt;p&gt;The future of networking is decentralized.&lt;&#x2F;p&gt;
&lt;p&gt;Libp2p is building it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;feedback&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#feedback&quot; aria-label=&quot;Anchor link for: feedback&quot;&gt;&lt;strong&gt;Feedback&lt;&#x2F;strong&gt;&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We welcome your feedback.&lt;&#x2F;p&gt;
&lt;p&gt;libp2p is shaped by the builders, researchers, and operators who rely on it. If you have insights on this report, areas we should explore further, or perspectives that can help strengthen the project, please share them with us in the discussion thread:
https:&#x2F;&#x2F;discuss.libp2p.io&#x2F;t&#x2F;libp2p-annual-report-2025&#x2F;3693&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.15.2</title>
          <pubDate>Mon, 02 Feb 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-02-02-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-02-02-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-02-02-nim-libp2p/">&lt;p&gt;&lt;code&gt;nim-libp2p v1.15.2&lt;&#x2F;code&gt; has just shipped.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;hotfix&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#hotfix&quot; aria-label=&quot;Anchor link for: hotfix&quot;&gt;Hotfix&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(gossipsub): race condition issue causing nil pointer exception when sendConn is not set by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2049&quot;&gt;#2049&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#contributors&quot; aria-label=&quot;Anchor link for: contributors&quot;&gt;Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog:&lt;&#x2F;strong&gt; &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.15.1...v1.15.2&quot;&gt;v1.15.1...v1.15.2&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Refactoring the libp2p Test Framework: A Fresh Start</title>
          <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/new-unified-testing/</link>
          <guid>https://sumanjeet.duckdns.org/blog/new-unified-testing/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/new-unified-testing/">&lt;p&gt;The libp2p ecosystem spans multiple programming languages, transports, and protocols. Testing interoperability across this diverse landscape has always been challenging. Today, we&#x27;re announcing a complete rewrite of the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;unified-testing&quot;&gt;unified-testing repository&lt;&#x2F;a&gt; that fundamentally improves how we test libp2p implementations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-a-complete-rewrite&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-a-complete-rewrite&quot; aria-label=&quot;Anchor link for: why-a-complete-rewrite&quot;&gt;Why a Complete Rewrite?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The original test framework was built with TypeScript, Docker Compose, and various npm dependencies. While functional, it presented several challenges:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Complex dependency chains&lt;&#x2F;strong&gt;: Node.js, npm, and Python dependencies created friction for contributors and a perpetual dependency maintenance headache&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Platform inconsistencies&lt;&#x2F;strong&gt;: Tests behaved differently across Linux, macOS, and Windows&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Limited reproducibility&lt;&#x2F;strong&gt;: Recreating test failures was difficult without considerable effort&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Rigid test selection&lt;&#x2F;strong&gt;: Running specific subsets of tests required manual configuration&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Slow iteration cycles&lt;&#x2F;strong&gt;: The build and test pipeline was optimized for CI, not local development&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;More importantly, 2026 marks a pivotal year for libp2p research efforts focused on scaling and optimization. As we push the boundaries of what&#x27;s possible with peer-to-peer networking, we need a test framework that can keep pace. Researchers investigating new transport protocols, scaling strategies, and exploring AI-driven dynamic protocols require fast feedback loops, reproducible experiments, and the ability to quickly iterate on implementations across multiple languages. The old framework simply couldn&#x27;t support the velocity and rigor that this research demands.&lt;&#x2F;p&gt;
&lt;p&gt;We set out to address these issues with a clear set of goals.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-10-primary-goals&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-10-primary-goals&quot; aria-label=&quot;Anchor link for: the-10-primary-goals&quot;&gt;The 10 Primary Goals&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;1-cross-platform-support&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-cross-platform-support&quot; aria-label=&quot;Anchor link for: 1-cross-platform-support&quot;&gt;1. Cross-Platform Support&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The new framework runs natively on Linux, macOS, and Windows (via WSL). We&#x27;ve eliminated platform-specific code paths and ensured consistent behavior across all environments. A developer on macOS can reproduce the exact test that failed in CI on Linux.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;2-minimal-dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#2-minimal-dependencies&quot; aria-label=&quot;Anchor link for: 2-minimal-dependencies&quot;&gt;2. Minimal Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We reduced dependencies to the essentials:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Bash 4.0+&lt;&#x2F;strong&gt; (for associative arrays and modern shell features)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Docker 20.10+&lt;&#x2F;strong&gt; with Docker Compose v2&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;yq 4.0+&lt;&#x2F;strong&gt; (for YAML processing)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Git 2.0+&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;No Node.js. No npm. No Python. No pip. Just standard tools available on any development machine.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;3-reproducible-testing-in-ci-cd-and-local-environments&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-reproducible-testing-in-ci-cd-and-local-environments&quot; aria-label=&quot;Anchor link for: 3-reproducible-testing-in-ci-cd-and-local-environments&quot;&gt;3. Reproducible Testing in CI&#x2F;CD and Local Environments&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The framework is optimized for both CI pipelines and local development. You can run the same commands locally that CI runs, with identical results. Quick feedback loops enable faster iteration. The snapshot capability supports capturing the entire test setup—including inputs, docker images, and environment variables—into a downloadable artifact that can be unpacked locally and re-run with a single command, fully reproducing the exact same test pass that was executed on the CI&#x2F;CD infrastructure. This local reproducibility greatly increases the velocity of developers debugging tests and fixing compatibility issues. It also helps with optimization work by recreating the same conditions locally that led to the measured results in the CI&#x2F;CD environment.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;4-follow-ci-cd-and-programming-conventions&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-follow-ci-cd-and-programming-conventions&quot; aria-label=&quot;Anchor link for: 4-follow-ci-cd-and-programming-conventions&quot;&gt;4. Follow CI&#x2F;CD and Programming Conventions&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We adhere to standard patterns: clear exit codes, structured logging to stderr, machine-readable output to stdout, and conventional command-line arguments. The barrier to entry is low for anyone familiar with shell scripting.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;5-code-reusability-via-shared-library&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-code-reusability-via-shared-library&quot; aria-label=&quot;Anchor link for: 5-code-reusability-via-shared-library&quot;&gt;5. Code Reusability via Shared Library&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The &lt;code&gt;lib&#x2F;&lt;&#x2F;code&gt; directory contains 19 reusable shell scripts (~4,000+ lines) that provide common functionality:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Filter engine&lt;&#x2F;strong&gt; with alias expansion and negation&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Image building&lt;&#x2F;strong&gt; for GitHub, local, and browser sources&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Caching&lt;&#x2F;strong&gt; with content-addressed keys&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Test execution&lt;&#x2F;strong&gt; coordination with Redis&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Output formatting&lt;&#x2F;strong&gt; for consistent terminal UI&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Each test suite (perf, transport, hole-punch) imports these libraries, ensuring consistency and reducing duplication.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;6-aggressive-caching&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-aggressive-caching&quot; aria-label=&quot;Anchor link for: 6-aggressive-caching&quot;&gt;6. Aggressive Caching&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Three levels of caching dramatically improve performance:&lt;&#x2F;p&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Cache Type&lt;&#x2F;th&gt;&lt;th&gt;Miss&lt;&#x2F;th&gt;&lt;th&gt;Hit&lt;&#x2F;th&gt;&lt;th&gt;Speedup&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Test matrix&lt;&#x2F;td&gt;&lt;td&gt;2-5s&lt;&#x2F;td&gt;&lt;td&gt;50-200ms&lt;&#x2F;td&gt;&lt;td&gt;10-100x&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;GitHub snapshots&lt;&#x2F;td&gt;&lt;td&gt;5-30s&lt;&#x2F;td&gt;&lt;td&gt;1-2s&lt;&#x2F;td&gt;&lt;td&gt;5-15x&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;Docker images&lt;&#x2F;td&gt;&lt;td&gt;30-300s&lt;&#x2F;td&gt;&lt;td&gt;0.1s&lt;&#x2F;td&gt;&lt;td&gt;300-3000x&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;p&gt;The test matrix cache uses a content-addressed key computed from &lt;code&gt;images.yaml&lt;&#x2F;code&gt; and all filter parameters. Change a filter, get a new key. Same filters, same cached matrix.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;7-fine-grained-filtering&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#7-fine-grained-filtering&quot; aria-label=&quot;Anchor link for: 7-fine-grained-filtering&quot;&gt;7. Fine-Grained Filtering&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The two-stage filtering model provides precise control:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Stage 1 (SELECT)&lt;&#x2F;strong&gt;: Narrow from the complete list&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust|~go&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;  # Only rust and go implementations&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;strong&gt;Stage 2 (IGNORE)&lt;&#x2F;strong&gt;: Remove from selected set&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-ignore&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;experimental&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;  # Exclude experimental versions&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Filter dimensions include:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--impl-select&#x2F;ignore&lt;&#x2F;code&gt;: Filter implementations&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;--transport-select&#x2F;ignore&lt;&#x2F;code&gt;: Filter transports (tcp, quic-v1, ws, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;--secure-select&#x2F;ignore&lt;&#x2F;code&gt;: Filter secure channels (noise, tls)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;--muxer-select&#x2F;ignore&lt;&#x2F;code&gt;: Filter muxers (yamux, mplex)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;--test-select&#x2F;ignore&lt;&#x2F;code&gt;: Filter by test name pattern&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Aliases make common patterns easy:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;  # Expands to rust-v0.56|rust-v0.55|rust-v0.54|...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-ignore&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;!~rust&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;  # Everything NOT matching rust (negation)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;8-yaml-configuration-with-comments&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#8-yaml-configuration-with-comments&quot; aria-label=&quot;Anchor link for: 8-yaml-configuration-with-comments&quot;&gt;8. YAML Configuration with Comments&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;All configuration uses YAML files with extensive comments:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;images.yaml&lt;&#x2F;strong&gt;: Implementation definitions with versions, transports, and sources&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;inputs.yaml&lt;&#x2F;strong&gt;: Auto-generated capture of all test parameters&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;test-matrix.yaml&lt;&#x2F;strong&gt;: Generated test combinations with metadata&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Human-readable configuration lowers the barrier to understanding and modification.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;9-local-and-remote-test-applications-with-patching&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#9-local-and-remote-test-applications-with-patching&quot; aria-label=&quot;Anchor link for: 9-local-and-remote-test-applications-with-patching&quot;&gt;9. Local and Remote Test Applications with Patching&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Testing local changes doesn&#x27;t require forking repositories. The patching strategy lets you:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Clone an implementation locally&lt;&#x2F;li&gt;
&lt;li&gt;Make your changes&lt;&#x2F;li&gt;
&lt;li&gt;Generate a patch file&lt;&#x2F;li&gt;
&lt;li&gt;Reference it in &lt;code&gt;images.yaml&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The framework downloads the upstream snapshot, applies your patch, and builds the image. See our &lt;a href=&quot;&#x2F;docs&#x2F;local-testing-strategies&#x2F;&quot;&gt;Local Testing Strategies&lt;&#x2F;a&gt; guide for details.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;10-docker-for-arbitrary-network-layouts&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#10-docker-for-arbitrary-network-layouts&quot; aria-label=&quot;Anchor link for: 10-docker-for-arbitrary-network-layouts&quot;&gt;10. Docker for Arbitrary Network Layouts&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Each test suite uses Docker to create isolated, reproducible network environments:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Transport tests&lt;&#x2F;strong&gt;: Simple dialer&#x2F;listener on a shared network&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Performance tests&lt;&#x2F;strong&gt;: Controlled environment for accurate measurements&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Hole-punch tests&lt;&#x2F;strong&gt;: Complex topology with NAT routers, relay servers, and isolated LANs&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The hole-punch tests create five containers per test with three networks, simulating realistic NAT traversal scenarios.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-changed-by-the-numbers&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-changed-by-the-numbers&quot; aria-label=&quot;Anchor link for: what-changed-by-the-numbers&quot;&gt;What Changed: By the Numbers&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Between commits &lt;code&gt;f58b7472&lt;&#x2F;code&gt; and &lt;code&gt;d6e5bea1&lt;&#x2F;code&gt;:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;196 commits&lt;&#x2F;strong&gt; of focused development&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;284 files&lt;&#x2F;strong&gt; changed&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;+73,488 insertions&lt;&#x2F;strong&gt;, &lt;strong&gt;-49,912 deletions&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;11 new documentation files&lt;&#x2F;strong&gt; (~6,000+ lines)&lt;&#x2F;li&gt;
&lt;li&gt;Migration from TypeScript to &lt;strong&gt;~4,000+ lines&lt;&#x2F;strong&gt; of shared bash libraries&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;The result is a simpler, more maintainable codebase that&#x27;s easier to understand and extend.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;test-suites&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#test-suites&quot; aria-label=&quot;Anchor link for: test-suites&quot;&gt;Test Suites&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;performance-benchmarking-perf&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#performance-benchmarking-perf&quot; aria-label=&quot;Anchor link for: performance-benchmarking-perf&quot;&gt;Performance Benchmarking (&lt;code&gt;perf&#x2F;&lt;&#x2F;code&gt;)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Measures the overhead that libp2p introduces:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Upload throughput&lt;&#x2F;strong&gt; (bytes&#x2F;second)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Download throughput&lt;&#x2F;strong&gt; (bytes&#x2F;second)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Latency&lt;&#x2F;strong&gt; with statistical distribution (min, q1, median, q3, max, outliers)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Baseline tests against iperf, raw QUIC, and HTTPS establish reference points for measuring libp2p overhead.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;transport-interoperability-transport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#transport-interoperability-transport&quot; aria-label=&quot;Anchor link for: transport-interoperability-transport&quot;&gt;Transport Interoperability (&lt;code&gt;transport&#x2F;&lt;&#x2F;code&gt;)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Verifies cross-implementation compatibility:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Dial success&#x2F;failure&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Handshake latency&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Ping latency&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Tests run in parallel (default: CPU core count) for fast feedback on large test matrices.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;hole-punch-nat-traversal-hole-punch&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#hole-punch-nat-traversal-hole-punch&quot; aria-label=&quot;Anchor link for: hole-punch-nat-traversal-hole-punch&quot;&gt;Hole-Punch NAT Traversal (&lt;code&gt;hole-punch&#x2F;&lt;&#x2F;code&gt;)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Tests the DCUtR protocol for establishing direct connections through NAT:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Realistic network topology with NAT routers&lt;&#x2F;li&gt;
&lt;li&gt;Relay server coordination&lt;&#x2F;li&gt;
&lt;li&gt;Direct connection verification&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Each test gets unique subnets calculated from the test key, enabling parallel execution without network conflicts.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;implementation-coverage&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#implementation-coverage&quot; aria-label=&quot;Anchor link for: implementation-coverage&quot;&gt;Implementation Coverage&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The test suite covers implementations in:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Rust&lt;&#x2F;strong&gt; (rust-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Go&lt;&#x2F;strong&gt; (go-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;JavaScript&lt;&#x2F;strong&gt; (js-libp2p v1.x, v2.x, v3.x)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;&#x2F;strong&gt; (py-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Nim&lt;&#x2F;strong&gt; (nim-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;JVM&lt;&#x2F;strong&gt; (jvm-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;C&lt;&#x2F;strong&gt; (c-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;.NET&lt;&#x2F;strong&gt; (dotnet-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Zig&lt;&#x2F;strong&gt; (zig-libp2p)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Browsers&lt;&#x2F;strong&gt; (via WebRTC and WebTransport)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;With 40+ implementation variations across different versions and configurations.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;getting-started&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#getting-started&quot; aria-label=&quot;Anchor link for: getting-started&quot;&gt;Getting Started&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;check-dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#check-dependencies&quot; aria-label=&quot;Anchor link for: check-dependencies&quot;&gt;Check Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; perf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --check-deps&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;list-available-implementations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#list-available-implementations&quot; aria-label=&quot;Anchor link for: list-available-implementations&quot;&gt;List Available Implementations&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --list-images&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;preview-test-selection&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#preview-test-selection&quot; aria-label=&quot;Anchor link for: preview-test-selection&quot;&gt;Preview Test Selection&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --list-tests&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;run-tests&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#run-tests&quot; aria-label=&quot;Anchor link for: run-tests&quot;&gt;Run Tests&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;# Performance tests with rust implementations&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; perf&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --iterations 5&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;# Transport interoperability&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; transport&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust|~go&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;# Hole-punch tests&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;&quot;&gt;cd&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; hole-punch&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust&amp;quot;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;create-reproducible-snapshots&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#create-reproducible-snapshots&quot; aria-label=&quot;Anchor link for: create-reproducible-snapshots&quot;&gt;Create Reproducible Snapshots&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --impl-select&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;quot;~rust&amp;quot;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; --snapshot&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The snapshot captures everything needed to reproduce the test run.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;reproducibility-with-inputs-yaml&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#reproducibility-with-inputs-yaml&quot; aria-label=&quot;Anchor link for: reproducibility-with-inputs-yaml&quot;&gt;Reproducibility with inputs.yaml&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Every test run generates an &lt;code&gt;inputs.yaml&lt;&#x2F;code&gt; file capturing:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;All command-line arguments&lt;&#x2F;li&gt;
&lt;li&gt;Environment variables&lt;&#x2F;li&gt;
&lt;li&gt;Filter settings&lt;&#x2F;li&gt;
&lt;li&gt;Test-specific parameters&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;To reproduce a previous run:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;shellscript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;cp&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &#x2F;srv&#x2F;cache&#x2F;test-run&#x2F;perf-abc12345&#x2F;inputs.yaml .&#x2F;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;.&#x2F;run.sh&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;The framework reads &lt;code&gt;inputs.yaml&lt;&#x2F;code&gt; at startup and applies the same configuration.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;future-work&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#future-work&quot; aria-label=&quot;Anchor link for: future-work&quot;&gt;Future Work&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Remote host testing&lt;&#x2F;strong&gt; via Docker Swarm for real network conditions&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Additional test suites&lt;&#x2F;strong&gt; for other protocols&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Improved reporting&lt;&#x2F;strong&gt; with historical comparisons&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Community contributions&lt;&#x2F;strong&gt; welcome for new implementations&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;resources&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#resources&quot; aria-label=&quot;Anchor link for: resources&quot;&gt;Resources&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;unified-testing&quot;&gt;unified-testing repository&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;local-testing-strategies&#x2F;&quot;&gt;Local Testing Strategies&lt;&#x2F;a&gt; - Installation, filtering, and patching&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;write-a-perf-test-app&#x2F;&quot;&gt;Write a Performance Test Application&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;write-a-transport-test-app&#x2F;&quot;&gt;Write a Transport Test Application&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;write-a-hole-punch-test-app&#x2F;&quot;&gt;Write a Hole-Punch Test Application&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We believe this rewrite significantly improves the developer experience for testing libp2p implementations. The combination of cross-platform support, powerful filtering, reproducibility, and comprehensive documentation makes it easier than ever to ensure your libp2p implementation works correctly with the rest of the ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;Try it out, and let us know what you think!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.47</title>
          <pubDate>Sun, 25 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-25-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-25-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-25-go-libp2p/">&lt;p&gt;&lt;code&gt;go-libp2p v0.47&lt;&#x2F;code&gt; has just shipped.&lt;&#x2F;p&gt;
&lt;p&gt;A relatively small release. The main changes are dependency updates and a
couple of bug fixes. &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3435&quot;&gt;#3435&lt;&#x2F;a&gt;
changes autonatv2 reachability logic, which should be a net win for most users.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(autonatv2): secondary addrs inherit reachability from primary by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3435&quot;&gt;#3435&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Update simnet by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3449&quot;&gt;#3449&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;mod tidy test-plans package by @MarcoPolo in #3450&lt;&#x2F;li&gt;
&lt;li&gt;fix(basic_host): stream.Close() blocks indefinitely on unresponsive peers by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3448&quot;&gt;#3448&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: handle error from mh.Sum in IDFromPublicKey by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MozirDmitriy&quot;&gt;@MozirDmitriy&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3437&quot;&gt;#3437&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;update webtransport-go to v0.10.0 and quic-go to v0.59.0 by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;marten-seemann&quot;&gt;@marten-seemann&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3452&quot;&gt;#3452&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;rcmgr: expose resource limits to Prometheus by &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sneaxhuh&quot;&gt;@sneaxhuh&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3433&quot;&gt;#3433&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MozirDmitriy&quot;&gt;@MozirDmitriy&lt;&#x2F;a&gt; made their first contribution in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3437&quot;&gt;#3437&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sneaxhuh&quot;&gt;@sneaxhuh&lt;&#x2F;a&gt; made their first contribution in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3433&quot;&gt;#3433&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog:&lt;&#x2F;strong&gt; &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.46.0...v0.47.0&quot;&gt;v0.46.0...v0.47.0&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.15.1</title>
          <pubDate>Fri, 23 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-23-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-23-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-23-nim-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;test: improving flakines for floodPublish with bandwidthEstimatebps  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3823211120&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2035&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2035&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2035&quot;&gt;#2035&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): get value 1 - refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3821900727&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2031&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2031&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2031&quot;&gt;#2031&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(kad): get value should reject mismatched key by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3829349277&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2036&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2036&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2036&quot;&gt;#2036&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): provider 1 - refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3834279464&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2039&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2039&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2039&quot;&gt;#2039&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): add provider by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3838724436&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2042&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2042&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2042&quot;&gt;#2042&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: bump lsquic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3844513473&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2045&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2045&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2045&quot;&gt;#2045&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.15.0...v1.15.1&quot;&gt;&lt;tt&gt;v1.15.0...v1.15.1&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.13.0</title>
          <pubDate>Wed, 21 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-21-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-21-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-21-litep2p/">&lt;h2 id=&quot;0-13-0-2026-01-21&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-13-0-2026-01-21&quot; aria-label=&quot;Anchor link for: 0-13-0-2026-01-21&quot;&gt;[0.13.0] - 2026-01-21&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release brings multiple fixes to both the transport and application-level protocols.&lt;&#x2F;p&gt;
&lt;p&gt;Specifically, it enhances WebSocket stability by resolving AsyncWrite errors and ensuring that partial writes during the negotiation phase no longer trigger connection failures.&lt;&#x2F;p&gt;
&lt;p&gt;At the same time, Bitswap client functionality is introduced, which makes this release semver breaking.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;added&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#added&quot; aria-label=&quot;Anchor link for: added&quot;&gt;Added&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Add Bitswap client (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;501&quot;&gt;#501&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;notif&#x2F;fix: Avoid CPU busy loops on litep2p full shutdown (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;521&quot;&gt;#521&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;protocol: Ensure transport manager knows about closed connections (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;515&quot;&gt;#515&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;substream: Decrement the bytes counter to avoid excessive flushing (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;511&quot;&gt;#511&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;crypto&#x2F;noise: Improve stability of websockets by fixing AsyncWrite implementation (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;518&quot;&gt;#518&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;bitswap: Split block responses into batches under 2 MiB (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;516&quot;&gt;#516&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;crypto&#x2F;noise: Fix connection negotiation logic on partial writes (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;519&quot;&gt;#519&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;substream&#x2F;fix: Fix partial reads for ProtocolCodec::Identity (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;512&quot;&gt;#512&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: Avoid panics returning error instead (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;509&quot;&gt;#509&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;bitswap: e2e test &amp;amp;amp; max payload fix (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;508&quot;&gt;#508&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;tcp: Exit connections when events fail to propagate to protocols (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;506&quot;&gt;#506&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: Avoid future being dropped when channel is full (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;483&quot;&gt;#483&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v1.0.12</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-1-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-1-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-1-0-12/">&lt;h2 id=&quot;1-0-12-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#1-0-12-2026-01-16&quot; aria-label=&quot;Anchor link for: 1-0-12-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;transport-interop-libp2p-main-v1.0.11...transport-interop-libp2p-main-v1.0.12&quot;&gt;1.0.12&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;circuit-relay-v2 bumped from ^4.1.2 to ^4.1.3&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;identify bumped from ^4.0.9 to ^4.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;mplex bumped from ^12.0.10 to ^12.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.9 to ^3.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tcp bumped from ^11.0.9 to ^11.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;tls bumped from ^3.0.9 to ^3.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webrtc bumped from ^6.0.10 to ^6.0.11&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;websockets bumped from ^10.1.2 to ^10.1.3&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;webtransport bumped from ^6.0.11 to ^6.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.2 to ^3.1.3&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v10.1.3</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-10-1-3/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-10-1-3/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-10-1-3/">&lt;h2 id=&quot;10-1-3-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#10-1-3-2026-01-16&quot; aria-label=&quot;Anchor link for: 10-1-3-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;websockets-v10.1.2...websockets-v10.1.3&quot;&gt;10.1.3&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v11.0.10</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-11-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-11-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-11-0-10/">&lt;h2 id=&quot;11-0-10-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#11-0-10-2026-01-16&quot; aria-label=&quot;Anchor link for: 11-0-10-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;tcp-v11.0.9...tcp-v11.0.10&quot;&gt;11.0.10&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v3.0.10</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-3-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-3-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-3-0-10/">&lt;h2 id=&quot;3-0-10-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#3-0-10-2026-01-16&quot; aria-label=&quot;Anchor link for: 3-0-10-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;tls-v3.0.9...tls-v3.0.10&quot;&gt;3.0.10&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v4.0.10</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-10/">&lt;h2 id=&quot;4-0-10-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-0-10-2026-01-16&quot; aria-label=&quot;Anchor link for: 4-0-10-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;upnp-nat-v4.0.9...upnp-nat-v4.0.10&quot;&gt;4.0.10&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;interface-internal bumped from ^3.0.9 to ^3.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v4.0.9</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-9/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-9/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-4-0-9/">&lt;h2 id=&quot;4-0-9-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#4-0-9-2026-01-16&quot; aria-label=&quot;Anchor link for: 4-0-9-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;record-v4.0.8...record-v4.0.9&quot;&gt;4.0.9&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v5.0.10</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-5-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-5-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-5-0-10/">&lt;h2 id=&quot;5-0-10-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#5-0-10-2026-01-16&quot; aria-label=&quot;Anchor link for: 5-0-10-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;prometheus-metrics-v5.0.9...prometheus-metrics-v5.0.10&quot;&gt;5.0.10&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v6.0.11</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-11/">&lt;h2 id=&quot;6-0-11-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-0-11-2026-01-16&quot; aria-label=&quot;Anchor link for: 6-0-11-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;webrtc-v6.0.10...webrtc-v6.0.11&quot;&gt;6.0.11&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;split webrtc-direct transport into browser and node versions (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3370&quot;&gt;#3370&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;7fff925bfe4ab3818380ad850310a64ac55d6b88&quot;&gt;7fff925&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;interface-internal bumped from ^3.0.9 to ^3.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;keychain bumped from ^6.0.9 to ^6.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v6.0.12</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-6-0-12/">&lt;h2 id=&quot;6-0-12-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#6-0-12-2026-01-16&quot; aria-label=&quot;Anchor link for: 6-0-12-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;webtransport-v6.0.11...webtransport-v6.0.12&quot;&gt;6.0.12&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependencies&quot; aria-label=&quot;Anchor link for: dependencies&quot;&gt;Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;The following workspace dependencies were updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;dependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;utils bumped from ^7.0.9 to ^7.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;devDependencies&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;daemon-client bumped from ^10.0.11 to ^10.0.12&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;@libp2p&#x2F;ping bumped from ^3.0.9 to ^3.0.10&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;libp2p bumped from ^3.1.2 to ^3.1.3&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v7.0.10</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-7-0-10/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-7-0-10/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-js-libp2p-7-0-10/">&lt;h2 id=&quot;7-0-10-2026-01-16&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#7-0-10-2026-01-16&quot; aria-label=&quot;Anchor link for: 7-0-10-2026-01-16&quot;&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;compare&#x2F;utils-v7.0.9...utils-v7.0.10&quot;&gt;7.0.10&lt;&#x2F;a&gt; (2026-01-16)&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;bug-fixes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bug-fixes&quot; aria-label=&quot;Anchor link for: bug-fixes&quot;&gt;Bug Fixes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;use unknown promise type (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;3369&quot;&gt;#3369&lt;&#x2F;a&gt;) (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;commit&#x2F;d3291de10073c32073a80724b28fafe08751a31a&quot;&gt;d3291de&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.15.0</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-nim-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Kademlia DHT support for decentralized peer routing and content lookup.&lt;&#x2F;li&gt;
&lt;li&gt;Full ipv6 support for transport, addressing, and peer connectivity.&lt;&#x2F;li&gt;
&lt;li&gt;C Bindings are available offering node lifecycle control, peer connections, stream i&#x2F;o, gossipsub messaging, and kademlia operations.&lt;&#x2F;li&gt;
&lt;li&gt;Changed our quic backend from ngtcp2 to lsquic&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;test: organise transports tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3535990075&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1776&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1776&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1776&quot;&gt;#1776&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove &lt;code&gt;libp2p_quic_support&lt;&#x2F;code&gt; compile flag, and openssl dependency by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3537607302&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1782&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1782&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1782&quot;&gt;#1782&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(quic): Add Multiaddress Handling tests  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3540373721&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1784&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1784&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1784&quot;&gt;#1784&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: echo in rendezvous by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3540967355&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1785&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1785&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1785&quot;&gt;#1785&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): addProvider by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3533410331&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1773&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1773&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1773&quot;&gt;#1773&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): reuse streams by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3510573005&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1753&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1753&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1753&quot;&gt;#1753&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: Refactor common transports tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3544129949&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1786&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1786&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1786&quot;&gt;#1786&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(deps): bump quic to v0.5.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3549689541&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1792&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1792&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1792&quot;&gt;#1792&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(performance): increase msg size by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3549279284&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1791&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1791&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1791&quot;&gt;#1791&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(ci): add verbose output for test binaries by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3546290763&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1790&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1790&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1790&quot;&gt;#1790&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): remove quic test variant by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3561757508&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1809&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1809&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1809&quot;&gt;#1809&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: fix the CI versions for nim by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3561790352&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1810&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1810&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1810&quot;&gt;#1810&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): temporally split test all task by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3561741690&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1808&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1808&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1808&quot;&gt;#1808&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: length prefix handling in exit layer for lenght-prefixed protocols by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3560459069&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1804&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1804&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1804&quot;&gt;#1804&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove redundant &lt;code&gt;gcsafe&lt;&#x2F;code&gt; from &lt;code&gt;switch.disconnect&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;arnetheduck&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;arnetheduck&quot;&gt;@arnetheduck&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3553376920&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1796&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1796&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1796&quot;&gt;#1796&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): reduce global vars (rng) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3561377238&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1807&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1807&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1807&quot;&gt;#1807&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(pubsub): utilize quic transport by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3406146236&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1685&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1685&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1685&quot;&gt;#1685&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(deps): chronos bump by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3565176812&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1812&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1812&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1812&quot;&gt;#1812&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: move MultiAddress handling tests into &lt;code&gt;basicTransportTests&lt;&#x2F;code&gt; and use them in QUIC by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3550170831&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1793&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1793&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1793&quot;&gt;#1793&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: change from check false to raiseAssert in tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3565816775&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1815&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1815&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1815&quot;&gt;#1815&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: too many global vars workaround by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3565885975&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1816&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1816&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1816&quot;&gt;#1816&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(tools): add tools package by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3567253387&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1819&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1819&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1819&quot;&gt;#1819&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(nimble): remove workaround in &lt;code&gt;runTest&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3569649740&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1823&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1823&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1823&quot;&gt;#1823&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(tools): add trackers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3569806562&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1824&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1824&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1824&quot;&gt;#1824&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: include dangling &lt;code&gt;testipaddr&lt;&#x2F;code&gt; file by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3569906340&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1825&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1825&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1825&quot;&gt;#1825&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: imports cleanup by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3571033009&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1828&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1828&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1828&quot;&gt;#1828&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: when an invalid multiaddr is encountered skip that node in mix path selection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3568698232&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1821&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1821&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1821&quot;&gt;#1821&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(tools): move unittest tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3574504375&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1831&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1831&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1831&quot;&gt;#1831&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: license check by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3581609297&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1832&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1832&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1832&quot;&gt;#1832&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): improve logic in some tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3565894039&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1817&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1817&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1817&quot;&gt;#1817&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: linters names fix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3582074433&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1835&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1835&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1835&quot;&gt;#1835&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): add ProviderManager by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3546082979&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1789&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1789&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1789&quot;&gt;#1789&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(transports): stream tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3571734191&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1829&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1829&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1829&quot;&gt;#1829&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): eof handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3587449499&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1839&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1839&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1839&quot;&gt;#1839&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(wildcardresolver): quic addresses by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3587688097&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1844&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1844&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1844&quot;&gt;#1844&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(pubusb): improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3590564418&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1845&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1845&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1845&quot;&gt;#1845&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(pubsub): use negotiated protocol in getConn if available by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3590686071&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1846&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1846&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1846&quot;&gt;#1846&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): providerManager limits by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3587641381&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1843&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1843&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1843&quot;&gt;#1843&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): provider manager limits touchups by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3592487974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1848&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1848&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1848&quot;&gt;#1848&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add &lt;code&gt;test_all&lt;&#x2F;code&gt; test bundle for every dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3587608853&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1842&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1842&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1842&quot;&gt;#1842&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add crypto dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3594949748&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1849&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1849&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1849&quot;&gt;#1849&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(tls): move test to suite that fits it better by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3587551340&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1841&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1841&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1841&quot;&gt;#1841&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autotls): integration test nil pointer dereference by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3592248930&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1847&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1847&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1847&quot;&gt;#1847&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): add &lt;code&gt;toMultiAddress&lt;&#x2F;code&gt; utility by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3600245354&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1853&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1853&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1853&quot;&gt;#1853&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(c-bindings): libp2p thread and request handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3567469886&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1820&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1820&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1820&quot;&gt;#1820&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: use test_all in coverage workflow by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3600443206&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1855&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1855&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1855&quot;&gt;#1855&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(transports): add parallel stream tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3586866084&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1838&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1838&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1838&quot;&gt;#1838&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(transport): add ipv6 tcp tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3595824716&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1850&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1850&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1850&quot;&gt;#1850&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add stream dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3603302658&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1857&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1857&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1857&quot;&gt;#1857&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add utils dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3603322818&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1858&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1858&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1858&quot;&gt;#1858&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(nph): run on whole repo by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3611888920&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1862&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1862&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1862&quot;&gt;#1862&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: remove testnative bundle by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3612377996&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1864&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1864&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1864&quot;&gt;#1864&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add protocols dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3612572014&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1865&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1865&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1865&quot;&gt;#1865&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add more parallel streams test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3611624445&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1861&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1861&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1861&quot;&gt;#1861&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: run final trackers check by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3615994640&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1869&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1869&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1869&quot;&gt;#1869&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add muxers dir by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3615885961&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1868&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1868&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1868&quot;&gt;#1868&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(mix): skip test if flag is not defined by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3612722762&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1866&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1866&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1866&quot;&gt;#1866&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: pin transport interop test to version by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3616281388&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1870&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1870&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1870&quot;&gt;#1870&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add wait group by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3616829913&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1872&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1872&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1872&quot;&gt;#1872&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(nimble): install should not install non-libp2p dependencies by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3616380316&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1871&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1871&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1871&quot;&gt;#1871&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): get providers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3597072761&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1852&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1852&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1852&quot;&gt;#1852&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(waitgroup): fix tight timeouts by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3617823723&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1874&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1874&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1874&quot;&gt;#1874&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: use ipv6 addresses in identify by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3612174557&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1863&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1863&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1863&quot;&gt;#1863&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autotls): interop nil pointer (2) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3608994644&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1860&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1860&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1860&quot;&gt;#1860&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(quic): QuicMuxer is created without upgrader by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3621357111&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1877&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1877&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1877&quot;&gt;#1877&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: document local testing of hole punching interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3442554195&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1713&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1713&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1713&quot;&gt;#1713&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(quic): Misc tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3621925341&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1879&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1879&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1879&quot;&gt;#1879&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): use p95 instead of max by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3625472338&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1883&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1883&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1883&quot;&gt;#1883&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(transports): fix muxer handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3633347098&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1884&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1884&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1884&quot;&gt;#1884&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autonat-v2): interop tests failing by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3634861420&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1893&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1893&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1893&quot;&gt;#1893&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): muxer handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3633708730&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1885&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1885&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1885&quot;&gt;#1885&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(transports): Generate cert for WSS by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3638284321&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1894&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1894&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1894&quot;&gt;#1894&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(discovery): remove unused discovery interface by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3634820401&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1890&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1890&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1890&quot;&gt;#1890&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(mix): improve flaky test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3642500643&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1896&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1896&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1896&quot;&gt;#1896&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(autotls): Organise test files by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3652023348&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1905&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1905&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1905&quot;&gt;#1905&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: Organise test file - Multiformat and Services by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3658485102&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1909&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1909&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1909&quot;&gt;#1909&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: reorganise libp2p tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3659291170&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1911&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1911&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1911&quot;&gt;#1911&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: replace doAssert with raiseAssert by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ashiskumarnaik&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ashiskumarnaik&quot;&gt;@ashiskumarnaik&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3553435269&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1797&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1797&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1797&quot;&gt;#1797&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: Organise test files - final rename by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3663540431&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1914&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1914&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1914&quot;&gt;#1914&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: report by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3659564475&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1912&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1912&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1912&quot;&gt;#1912&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(tools): rng singleton by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3641690709&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1895&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1895&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1895&quot;&gt;#1895&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: fix logs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3671189577&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1920&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1920&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1920&quot;&gt;#1920&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(coverage): ignore tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3675260941&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1922&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1922&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1922&quot;&gt;#1922&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(switch): improve flaky test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3689647690&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1928&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1928&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1928&quot;&gt;#1928&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(pubsub): improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3685329988&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1924&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1924&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1924&quot;&gt;#1924&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): make test more robust by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3691248718&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1930&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1930&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1930&quot;&gt;#1930&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt2 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3694795884&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1933&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1933&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1933&quot;&gt;#1933&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt3 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3695866948&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1936&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1936&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1936&quot;&gt;#1936&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: only failed test in report by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3694012827&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1932&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1932&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1932&quot;&gt;#1932&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt4 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3698994937&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1938&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1938&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1938&quot;&gt;#1938&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: dynamic imports by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3668190333&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1918&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1918&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1918&quot;&gt;#1918&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: ensure tests run without flags by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3689981347&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1929&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1929&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1929&quot;&gt;#1929&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): various improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3701571157&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1942&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1942&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1942&quot;&gt;#1942&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: organise nimble files by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3699238118&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1939&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1939&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1939&quot;&gt;#1939&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt5 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3710764303&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1947&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1947&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1947&quot;&gt;#1947&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: fix multiformat_exts tests are not executed on win by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3711278937&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1949&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1949&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1949&quot;&gt;#1949&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt6 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3711461766&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1950&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1950&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1950&quot;&gt;#1950&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: utilize AsyncSemaphore from chronos by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3714772112&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1957&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1957&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1957&quot;&gt;#1957&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): utilities that wait for nodes to subscribe by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3714872806&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1958&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1958&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1958&quot;&gt;#1958&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): start&#x2F;stop&#x2F;connect&#x2F;disconnect by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3687273151&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1927&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1927&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1927&quot;&gt;#1927&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): peerInfo by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3691910971&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1931&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1931&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1931&quot;&gt;#1931&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(pubsub): Refactor Floodsub tests &amp;amp;amp; waitSubscribe util by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3715932366&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1961&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1961&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1961&quot;&gt;#1961&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): pubsub pt1 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3695152051&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1935&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1935&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1935&quot;&gt;#1935&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): Remove hardcoded repeated topic &quot;foobar&quot; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3718798282&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1962&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1962&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1962&quot;&gt;#1962&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pt7 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3719334808&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1963&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1963&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1963&quot;&gt;#1963&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): connected peers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3712321454&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1955&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1955&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1955&quot;&gt;#1955&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pr8 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3720202625&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1965&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1965&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1965&quot;&gt;#1965&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(cbind): do not use raw void* but an opaque type instead by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3720000457&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1964&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1964&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1964&quot;&gt;#1964&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: add import semaphore by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3722999165&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1967&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1967&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1967&quot;&gt;#1967&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(cbind): add userdata to topic handler by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3712401457&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1956&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1956&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1956&quot;&gt;#1956&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pr9 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3723425197&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1968&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1968&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1968&quot;&gt;#1968&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): making tests more robust pr10 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3724968803&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1969&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1969&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1969&quot;&gt;#1969&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(transports): lsquic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3619115227&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1876&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1876&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1876&quot;&gt;#1876&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3651730156&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1902&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1902&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1902&quot;&gt;#1902&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: reduce size of docker image by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3730692598&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1972&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1972&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1972&quot;&gt;#1972&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): iterative get providers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3731838074&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1975&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1975&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1975&quot;&gt;#1975&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): GetProviders retries only failed peers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3739823272&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1980&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1980&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1980&quot;&gt;#1980&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: allFuturesThrowing renamed to allFuturesRaising by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3695004881&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1934&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1934&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1934&quot;&gt;#1934&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): kademlia by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3715095850&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1960&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1960&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1960&quot;&gt;#1960&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: improve flaky test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3758060644&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1983&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1983&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1983&quot;&gt;#1983&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(interop): use ipv6 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3760654233&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1985&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1985&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1985&quot;&gt;#1985&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): dialing, opening and closing streams by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3731190252&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1974&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1974&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1974&quot;&gt;#1974&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): start&#x2F;stop providing by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3735248851&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1977&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1977&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1977&quot;&gt;#1977&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove license duplicate by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3767447219&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1992&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1992&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1992&quot;&gt;#1992&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;docs: add common hurdles by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3767253109&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1991&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1991&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1991&quot;&gt;#1991&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(interop): cosmetics by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3761939812&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1986&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1986&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1986&quot;&gt;#1986&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(interop): Autonatv2 test template by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3769870171&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1993&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1993&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1993&quot;&gt;#1993&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): Key conversion by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3781328592&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1996&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1996&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1996&quot;&gt;#1996&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): refactor find and lookupstate by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3748211820&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1982&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1982&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1982&quot;&gt;#1982&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(utility): take taking an extra element by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3786229675&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2001&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2001&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2001&quot;&gt;#2001&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(kad): GetProviders test hanging forever by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3788552720&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2005&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2005&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2005&quot;&gt;#2005&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(ConnManager): avoid exposing impl details by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3789745005&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2007&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2007&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2007&quot;&gt;#2007&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): stream read &#x2F; write by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3734949317&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1976&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1976&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1976&quot;&gt;#1976&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): Routing table and refresh bucket by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3785806539&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1998&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1998&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1998&quot;&gt;#1998&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): bootstrap send findNode to all non-empty buckets by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3790034149&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2008&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2008&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2008&quot;&gt;#2008&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(cbind): config parameters by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3793970355&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2009&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2009&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2009&quot;&gt;#2009&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(kad): chunks ignored in getValue by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3796841972&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2015&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2015&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2015&quot;&gt;#2015&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): find &amp;amp;amp; lookup by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3796526099&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2014&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2014&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2014&quot;&gt;#2014&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(kad): iterative search and cid handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3798353002&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2017&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2017&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2017&quot;&gt;#2017&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): find &amp;amp;amp; lookup 2 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3804194603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2018&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2018&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2018&quot;&gt;#2018&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(kad): Bootstrap by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3808434886&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2022&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2022&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2022&quot;&gt;#2022&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): add quorum ignored test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3809679464&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2024&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2024&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2024&quot;&gt;#2024&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(kad-dht): stop condition on find_node and track whether node responded succesfully or not by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3805789280&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2020&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2020&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2020&quot;&gt;#2020&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(interop): Kad test template by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3813586307&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2025&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2025&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2025&quot;&gt;#2025&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(peerstore): add LastSeenOutboundBook for outbound-only address  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3816093739&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2027&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2027&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2027&quot;&gt;#2027&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): bootstrap and refactor find tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3809353550&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2023&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2023&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2023&quot;&gt;#2023&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(transport): add ipv6 support for quic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3743837163&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1981&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1981&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1981&quot;&gt;#1981&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): put value 1 - refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3818352904&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2029&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2029&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2029&quot;&gt;#2029&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(kad): put value 2 - new tests + small fix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3818356935&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;2030&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2030&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;2030&quot;&gt;#2030&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ashiskumarnaik&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ashiskumarnaik&quot;&gt;@ashiskumarnaik&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3553435269&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1797&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1797&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1797&quot;&gt;#1797&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.14.2...v1.15.0&quot;&gt;&lt;tt&gt;v1.14.2...v1.15.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.3</title>
          <pubDate>Fri, 16 Jan 2026 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2026-01-16-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2026-01-16-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2026-01-16-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the tag of py-libp2p v0.5.0</title>
          <pubDate>Sun, 21 Dec 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-12-21-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-12-21-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-12-21-py-libp2p/">&lt;p&gt;&lt;code&gt;py-libp2p v0.5.0&lt;&#x2F;code&gt; has just shipped.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog:&lt;&#x2F;strong&gt; &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;py-libp2p&#x2F;compare&#x2F;v0.4.0...v0.5.0&quot;&gt;v0.4.0...v0.5.0&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.12.3</title>
          <pubDate>Tue, 16 Dec 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-12-16-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-12-16-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-12-16-litep2p/">&lt;p&gt;Release v0.12.3&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.46.0</title>
          <pubDate>Sat, 13 Dec 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-12-13-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-12-13-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-12-13-go-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(webrtc): use debug level for pion errors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3613760326&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3426&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3426&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3426&quot;&gt;#3426&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: update quic-go to v0.56.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3603699494&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3425&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3425&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3425&quot;&gt;#3425&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(mdns): filter addresses to reduce packet size by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3682565264&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3434&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3434&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3434&quot;&gt;#3434&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: update quic-go to v0.57.1 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3718838578&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3439&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3439&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3439&quot;&gt;#3439&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.45.0...v0.46.0&quot;&gt;&lt;tt&gt;v0.45.0...v0.46.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.2</title>
          <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-12-10-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-12-10-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-12-10-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.12.2</title>
          <pubDate>Fri, 28 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-28-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-28-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-28-litep2p/">&lt;h2 id=&quot;0-12-2-2025-11-28&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-12-2-2025-11-28&quot; aria-label=&quot;Anchor link for: 0-12-2-2025-11-28&quot;&gt;[0.12.2] - 2025-11-28&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release allows all Bitswap CIDs (v1) to pass regardless of the used hash. It also enhances local address checks in the transport manager.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;transport-service: Enhance logging with protocol names  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;485&quot;&gt;#485&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;bitswap: Reexports for CID  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;486&quot;&gt;#486&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Allow all the Bitswap CIDs (v1) to pass regardless of used hash  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;482&quot;&gt;#482&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport&#x2F;manager: Enhance local address checks  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;480&quot;&gt;#480&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.12.1</title>
          <pubDate>Fri, 21 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-21-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-21-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-21-litep2p/">&lt;h2 id=&quot;0-12-1-2025-11-21&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-12-1-2025-11-21&quot; aria-label=&quot;Anchor link for: 0-12-1-2025-11-21&quot;&gt;[0.12.1] - 2025-11-21&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release adds support for connecting to multiple Kademlia DHT networks. The change is backward-compatible, no client code modifications should be needed compared to v0.12.0.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;kad: Allow connecting to more than one DHT network (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;473&quot;&gt;#473&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;service: Log services that have closed (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;474&quot;&gt;#474&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;update simple-dns (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;470&quot;&gt;#470&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.1</title>
          <pubDate>Tue, 18 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-18-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-18-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-18-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.3.0</title>
          <pubDate>Fri, 14 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-14-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-14-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-14-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.12.0</title>
          <pubDate>Tue, 11 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-11-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-11-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-11-litep2p/">&lt;h2 id=&quot;0-12-0-2025-11-11&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-12-0-2025-11-11&quot; aria-label=&quot;Anchor link for: 0-12-0-2025-11-11&quot;&gt;[0.12.0] - 2025-11-11&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release adds &lt;code&gt;KademliaEvent::PutRecordSuccess&lt;&#x2F;code&gt; &amp;amp;amp; &lt;code&gt;KademliaEvent::AddProviderSuccess&lt;&#x2F;code&gt; events to Kademlia, allowing to track whether publishing a record or a provider was successfull. While &lt;code&gt;PutRecordSuccess&lt;&#x2F;code&gt; was present in the previous versions of litep2p, it was actually never emitted. Note that &lt;code&gt;AddProviderSuccess&lt;&#x2F;code&gt; and &lt;code&gt;QueryFailed&lt;&#x2F;code&gt; are also generated during automatic provider refresh, so those may be emitted for &lt;code&gt;QueryId&lt;&#x2F;code&gt;s not known to the client code.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;added&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#added&quot; aria-label=&quot;Anchor link for: added&quot;&gt;Added&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;kademlia: Track success of &lt;code&gt;ADD_PROVIDER&lt;&#x2F;code&gt; queries (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;432&quot;&gt;#432&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;kademlia: Workaround for dealing with not implemented &lt;code&gt;PUT_VALUE&lt;&#x2F;code&gt; ACKs (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;430&quot;&gt;#430&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;kademlia: Track success of &lt;code&gt;PUT_VALUE&lt;&#x2F;code&gt; queries (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;427&quot;&gt;#427&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Identify: gracefully close substream after sending payload (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;466&quot;&gt;#466&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;fix: transport context polling order (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;456&quot;&gt;#456&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;refactor: implement builder pattern for TransportManager (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;453&quot;&gt;#453&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.45.0</title>
          <pubDate>Thu, 06 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-06-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-06-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-06-go-libp2p/">&lt;p&gt;A small release that adjust some noisy logging levels and adds a method for dynamically change the slog Handler for better integration with applications that use go-log.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(websocket): use debug level for operational noise errors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3553122418&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3413&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3413&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3413&quot;&gt;#3413&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: Update Drips ownedBy address in FUNDING.json by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;p-shahi&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;p-shahi&quot;&gt;@p-shahi&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3584056209&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3422&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3422&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3422&quot;&gt;#3422&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gologshim): Add SetDefaultHandler by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3559114238&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3418&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3418&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3418&quot;&gt;#3418&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.44.0...v0.45.0&quot;&gt;&lt;tt&gt;v0.44.0...v0.45.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.4.0</title>
          <pubDate>Wed, 05 Nov 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-11-05-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-11-05-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-11-05-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.11.1</title>
          <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-28-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-28-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-28-litep2p/">&lt;h2 id=&quot;0-11-1-2025-10-28&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-11-1-2025-10-28&quot; aria-label=&quot;Anchor link for: 0-11-1-2025-10-28&quot;&gt;[0.11.1] - 2025-10-28&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release ensures that polling the yamux controller after an error does not lead to unexpected behavior.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;yamux&#x2F;control: Ensure poll next inbound is not called after errors  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;445&quot;&gt;#445&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.14.3</title>
          <pubDate>Tue, 28 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-28-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-28-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-28-nim-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;feat(mix): reuse streams by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3510573005&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1753&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1753&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1753&quot;&gt;#1753&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: length prefix handling in exit layer for lenght-prefixed protocols by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3560459069&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1804&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1804&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1804&quot;&gt;#1804&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.14.2...v1.14.3&quot;&gt;&lt;tt&gt;v1.14.2...v1.14.3&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.14.2</title>
          <pubDate>Tue, 21 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-21-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-21-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-21-nim-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;test(quic): Add tests 1 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3532607524&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1772&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1772&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1772&quot;&gt;#1772&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add more identify logs when pushing to other peer by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3536112712&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1777&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1777&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1777&quot;&gt;#1777&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: init method for MixPubInfo by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3535389995&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1775&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1775&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1775&quot;&gt;#1775&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.14.1...v1.14.2&quot;&gt;&lt;tt&gt;v1.14.1...v1.14.2&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.11.0</title>
          <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-20-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-20-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-20-litep2p/">&lt;h2 id=&quot;0-11-0-2025-10-20&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-11-0-2025-10-20&quot; aria-label=&quot;Anchor link for: 0-11-0-2025-10-20&quot;&gt;[0.11.0] - 2025-10-20&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release adds support for RSA remote network identity keys gated behind &lt;code&gt;rsa&lt;&#x2F;code&gt; feature. It also fixes mDNS initialization in the environment with no multicast addresses available and Bitswap compatibility with kubo IPFS client &amp;amp;gt;= v0.37.0.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;added&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#added&quot; aria-label=&quot;Anchor link for: added&quot;&gt;Added&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Support RSA remote network identity keys (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;423&quot;&gt;#423&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;bitswap: Reuse inbound substream for subsequent requests (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;447&quot;&gt;#447&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;mDNS: Do not fail initialization if the socket could not be created (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;434&quot;&gt;#434&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Make RemotePublicKey public to enable signature verification (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;435&quot;&gt;#435&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;improve error handling in webRTC-related noise function (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;377&quot;&gt;#377&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Upgrade rcgen 0.10.0 -&amp;amp;gt; 0.14.5 (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;450&quot;&gt;#450&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;chore: update str0m dependency, update code based on breaking changes (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;422&quot;&gt;#422&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.14.1</title>
          <pubDate>Mon, 20 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-20-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-20-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-20-nim-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;chore(kad): getVal loop improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3518949711&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1765&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1765&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1765&quot;&gt;#1765&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): utilize checkUntilTimeout by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3521393603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1769&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1769&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1769&quot;&gt;#1769&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: rm nimcrypto upper limit by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;arnetheduck&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;arnetheduck&quot;&gt;@arnetheduck&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3529131096&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1771&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1771&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1771&quot;&gt;#1771&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove upper chronicles bound by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;arnetheduck&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;arnetheduck&quot;&gt;@arnetheduck&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3529115846&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1770&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1770&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1770&quot;&gt;#1770&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.14.0...v1.14.1&quot;&gt;&lt;tt&gt;v1.14.0...v1.14.1&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.14.0</title>
          <pubDate>Thu, 16 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-16-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-16-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-16-nim-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;rfc-index&#x2F;blob&#x2F;main&#x2F;vac&#x2F;raw&#x2F;mix.md&quot;&gt;Mix protocol&lt;&#x2F;a&gt; available to interact with protocols anonymously by sending requests thru a network of mix nodes&lt;&#x2F;li&gt;
&lt;li&gt;Application level extensions of multiformats&lt;&#x2F;li&gt;
&lt;li&gt;Replaces OpenSSL + PicoTLS for BoringSSL as the TLS backend for Quic&lt;&#x2F;li&gt;
&lt;li&gt;Configurable options for AutoTLS&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix: autonatV2 request addresses by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3426390802&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1698&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1698&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1698&quot;&gt;#1698&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: nimble config tidy by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3423245412&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1696&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1696&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1696&quot;&gt;#1696&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): sphinx by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3413586433&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1691&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1691&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1691&quot;&gt;#1691&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autonat-v2): add interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3422646015&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1695&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1695&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1695&quot;&gt;#1695&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove go daemon by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3435291917&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1705&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1705&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1705&quot;&gt;#1705&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): SURBs and fragmentation by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3431051963&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1700&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1700&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1700&quot;&gt;#1700&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: add missing import for linux&#x2F;amd64 daily job by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3437188076&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1706&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1706&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1706&quot;&gt;#1706&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): mixnode by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3431743450&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1702&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1702&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1702&quot;&gt;#1702&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(readme): Update chat code example link by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3440472320&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1709&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1709&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1709&quot;&gt;#1709&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): mix_protocol and entry connection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3431988289&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1703&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1703&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1703&quot;&gt;#1703&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: add missing import by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3438381419&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1707&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1707&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1707&quot;&gt;#1707&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): error cases by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3403235630&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1683&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1683&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1683&quot;&gt;#1683&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): refactor and extend discovery manager tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3445202711&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1715&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1715&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1715&quot;&gt;#1715&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): Misc by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3445622255&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1716&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1716&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1716&quot;&gt;#1716&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): reply connection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3432187167&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1704&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1704&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1704&quot;&gt;#1704&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: enable hole punching interop (ignore rust-libp2p) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3441051847&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1712&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1712&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1712&quot;&gt;#1712&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: performance tests when data is empty by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3454547995&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1720&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1720&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1720&quot;&gt;#1720&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): benchmark logs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3451168824&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1717&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1717&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1717&quot;&gt;#1717&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): experimental - exit is destination by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3454994378&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1722&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1722&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1722&quot;&gt;#1722&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: invalid parameter passed in builder being used as channel count size by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3458103684&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1724&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1724&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1724&quot;&gt;#1724&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): Add QUIC scenario by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3331128922&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1631&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1631&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1631&quot;&gt;#1631&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(mix): return errors if sending message fails by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3455093696&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1723&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1723&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1723&quot;&gt;#1723&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(test): code indentation for test case by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3454878844&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1721&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1721&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1721&quot;&gt;#1721&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: disable hole punching interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3465326011&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1727&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1727&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1727&quot;&gt;#1727&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove commented experimental hole punching tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3473451426&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1730&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1730&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1730&quot;&gt;#1730&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: add onRunning asyncEvent to Transport base type by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3473704811&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1731&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1731&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1731&quot;&gt;#1731&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: testhelper incorrectly setting program result by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3470471773&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1728&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1728&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1728&quot;&gt;#1728&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(switch builder): options instead of nils by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3474076429&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1732&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1732&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1732&quot;&gt;#1732&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autonatv2): close dialback connection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3477769955&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1736&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1736&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1736&quot;&gt;#1736&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(kad-dht): find node and put val by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3474822721&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1733&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1733&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1733&quot;&gt;#1733&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove some catchable errors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3478735155&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1739&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1739&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1739&quot;&gt;#1739&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: update nim-stew version by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3481222884&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1740&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1740&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1740&quot;&gt;#1740&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autotls): add configurable options to AutotlsConfig by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3482036684&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1741&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1741&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1741&quot;&gt;#1741&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): chart generation refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3453622033&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1718&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1718&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1718&quot;&gt;#1718&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): Refactor runner by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3477548465&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1735&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1735&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1735&quot;&gt;#1735&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(multiformats): allow application-level extension of multiformats by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;emizzle&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;emizzle&quot;&gt;@emizzle&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3476436895&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1734&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1734&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1734&quot;&gt;#1734&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): add ping by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3492607111&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1744&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1744&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1744&quot;&gt;#1744&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(interop): update autonatv2 go-peer deps by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3496314881&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1745&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1745&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1745&quot;&gt;#1745&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): better error handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3498988483&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1747&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1747&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1747&quot;&gt;#1747&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): routing table eviction policy by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3496705167&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1746&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1746&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1746&quot;&gt;#1746&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): tidy up putVal by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3499345163&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1749&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1749&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1749&quot;&gt;#1749&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): reliability workflow by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3473200824&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1729&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1729&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1729&quot;&gt;#1729&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: complementary coding style guidelines by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3509984511&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1752&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1752&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1752&quot;&gt;#1752&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): add getValue by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3504223930&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1750&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1750&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1750&quot;&gt;#1750&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): configuration options by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3515108321&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1760&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1760&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1760&quot;&gt;#1760&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: modify rendezvous so that it can be extended  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3454417597&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1719&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1719&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1719&quot;&gt;#1719&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(kad): add alpha handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3518468818&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1764&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1764&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1764&quot;&gt;#1764&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: use BoringSSL for certificate ops by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3515730238&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1761&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1761&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1761&quot;&gt;#1761&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): GossipSub outbound peers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3521174469&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1768&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1768&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1768&quot;&gt;#1768&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(multiformats): Expose digest size from MHash by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;emizzle&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;emizzle&quot;&gt;@emizzle&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3512437295&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1754&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1754&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1754&quot;&gt;#1754&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(multiformats): add Cid extensions by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;emizzle&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;emizzle&quot;&gt;@emizzle&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3512877298&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1755&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1755&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1755&quot;&gt;#1755&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: v1.14.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3509780835&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1751&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1751&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1751&quot;&gt;#1751&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;chaitanyaprem&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;chaitanyaprem&quot;&gt;@chaitanyaprem&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3454417597&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1719&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1719&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1719&quot;&gt;#1719&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.13.0...v1.14.0&quot;&gt;&lt;tt&gt;v1.13.0...v1.14.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.44.0</title>
          <pubDate>Tue, 07 Oct 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-10-07-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-10-07-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-10-07-go-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;address-pipeline&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#address-pipeline&quot; aria-label=&quot;Anchor link for: address-pipeline&quot;&gt;Address Pipeline:&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Observed Address Manager has been moved out of identify to its own package, &lt;code&gt;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;p2p&#x2F;host&#x2F;obsaddrs&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;g-emoji class=&quot;g-emoji&quot; alias=&quot;warning&quot;&gt;⚠️&lt;&#x2F;g-emoji&gt;  Identify Service doesn&#x27;t support the &lt;code&gt;DisableObservedAddrManager&lt;&#x2F;code&gt; Option. The top level libp2p option &lt;code&gt;DisableIdentifyAddressDiscovery&lt;&#x2F;code&gt; works as it used to.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix: clean up associations for closed listeners. by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Prabhat1308&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Prabhat1308&quot;&gt;@Prabhat1308&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3130921633&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3306&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3306&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3306&quot;&gt;#3306&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;swarm: move AddCertHashes to swarm by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3209979124&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3330&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3330&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3330&quot;&gt;#3330&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(quicreuse): use errors.Join in Close method by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;crStiv&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;crStiv&quot;&gt;@crStiv&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3305041998&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3363&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3363&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3363&quot;&gt;#3363&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;network: rename NAT Types by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3216365594&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3331&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3331&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3331&quot;&gt;#3331&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(metrics): add Reset and TrimIdle methods to reporter interface by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;cpeliciari&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cpeliciari&quot;&gt;@cpeliciari&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3265990281&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3343&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3343&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3343&quot;&gt;#3343&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(simlibp2p): Simulated libp2p Networks by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2967849925&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3262&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3262&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3262&quot;&gt;#3262&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Support Go 1.24 &amp;amp;amp; 1.25 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3319247930&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3366&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3366&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3366&quot;&gt;#3366&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;basichost: move observed address manager to basichost by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3217286839&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3332&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3332&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3332&quot;&gt;#3332&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: uci&#x2F;update-go by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;web3-bot&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;web3-bot&quot;&gt;@web3-bot&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3338825688&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3371&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3371&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3371&quot;&gt;#3371&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: Migrate to log&#x2F;slog by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3305472122&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3364&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3364&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3364&quot;&gt;#3364&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;AI tooling must be disclosed for contributions by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3343195824&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3372&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3372&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3372&quot;&gt;#3372&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;docs: remove broken link by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3353258351&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3375&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3375&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3375&quot;&gt;#3375&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;enhancement: include non public relay addresses to be advertised too &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3298440779&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3361&quot; data-hovercard-type=&quot;issue&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3361&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3361&quot;&gt;#3361&lt;&#x2F;a&gt; &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3305478111&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3365&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3365&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3365&quot;&gt;#3365&lt;&#x2F;a&gt;  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;shoriwe&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;shoriwe&quot;&gt;@shoriwe&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3373864972&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3379&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3379&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3379&quot;&gt;#3379&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: self-healing NAT mappings with request deduplication by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3326792466&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3367&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3367&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3367&quot;&gt;#3367&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(network): Add ConnAs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3240579709&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3338&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3338&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3338&quot;&gt;#3338&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor: replace context.WithCancel with t.Context by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;cargoedit&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cargoedit&quot;&gt;@cargoedit&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3424830926&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3383&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3383&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3383&quot;&gt;#3383&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add help comment by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3435678032&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3385&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3385&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3385&quot;&gt;#3385&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;README: remove Drand from notable users section by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;marten-seemann&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;marten-seemann&quot;&gt;@marten-seemann&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3437778284&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3388&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3388&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3388&quot;&gt;#3388&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;docs: Update contribute section by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3435910169&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3387&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3387&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3387&quot;&gt;#3387&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: assignment to entry in nil map by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;dennis-tra&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dennis-tra&quot;&gt;@dennis-tra&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3456919718&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3395&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3395&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3395&quot;&gt;#3395&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor pre core module by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3458303178&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3396&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3396&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3396&quot;&gt;#3396&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;basichost: move EvtLocalAddrsChanged to addrs_manager by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3289524655&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3355&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3355&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3355&quot;&gt;#3355&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: move to github actions runner by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MarcoPolo&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MarcoPolo&quot;&gt;@MarcoPolo&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3470625682&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3398&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3398&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3398&quot;&gt;#3398&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;basichost: fix lint error by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3477759687&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3400&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3400&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3400&quot;&gt;#3400&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;crStiv&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;crStiv&quot;&gt;@crStiv&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3305041998&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3363&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3363&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3363&quot;&gt;#3363&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;shoriwe&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;shoriwe&quot;&gt;@shoriwe&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3373864972&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3379&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3379&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3379&quot;&gt;#3379&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;cargoedit&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;cargoedit&quot;&gt;@cargoedit&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3424830926&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3383&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3383&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3383&quot;&gt;#3383&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.43.0...v0.44.0&quot;&gt;&lt;tt&gt;v0.43.0...v0.44.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v3.0.0</title>
          <pubDate>Tue, 30 Sep 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-09-30-js-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-09-30-js-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-09-30-js-libp2p/">&lt;p&gt;&lt;code&gt;libp2p@3.x.x&lt;&#x2F;code&gt; has just shipped, representing our once-yearly roll-up of breaking changes.&lt;&#x2F;p&gt;
&lt;p&gt;Let&#x27;s find out what&#x27;s changed and why, and how you can upgrade your project to the latest and greatest.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-new&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-new&quot; aria-label=&quot;Anchor link for: what-s-new&quot;&gt;What&#x27;s new?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;streams-as-eventtargets&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#streams-as-eventtargets&quot; aria-label=&quot;Anchor link for: streams-as-eventtargets&quot;&gt;Streams as EventTargets&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Prior to v3, streams were streaming iterables. This convention has not been adopted outside the libp2p project, which raises the bar for new developers, and leans heavily on promises which can introduce surprising latency to simple operations.&lt;&#x2F;p&gt;
&lt;p&gt;As of v3, streams have become EventTargets. These follow a familiar pattern where you attach event listeners for incoming message events and write data synchronously.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;typescript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;import&lt;&#x2F;span&gt;&lt;span&gt; { createLibp2p }&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; from&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;#39;libp2p&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;import&lt;&#x2F;span&gt;&lt;span&gt; { peerIdFromString }&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; from&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;#39;@libp2p&#x2F;peer-id&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; node&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; = await&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; createLibp2p&lt;&#x2F;span&gt;&lt;span&gt;()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; peer&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; =&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; peerIdFromString&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;#39;123Foo...&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; stream&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; = await&lt;&#x2F;span&gt;&lt;span&gt; node.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;dialProtocol&lt;&#x2F;span&gt;&lt;span&gt;(peer,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;#39;&#x2F;my-protocol&#x2F;1.0.0&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  signal: AbortSignal.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;timeout&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt;5_000&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;&#x2F;&#x2F; register a listener for incoming data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;stream.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;addEventListener&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;#39;message&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #FD971F;font-style: italic;&quot;&gt;evt&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span&gt; {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  console.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;info&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;new&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; TextDecoder&lt;&#x2F;span&gt;&lt;span&gt;().&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;decode&lt;&#x2F;span&gt;&lt;span&gt;(evt.data.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;subarray&lt;&#x2F;span&gt;&lt;span&gt;()))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;})&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;&#x2F;&#x2F; send some data&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;stream.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;send&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;new&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; TextEncoder&lt;&#x2F;span&gt;&lt;span&gt;().&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;encode&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;#39;hello world&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;))&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Synchronous streams have shown a small increase in throughput and more predictable behavior.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;write-back-pressure&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#write-back-pressure&quot; aria-label=&quot;Anchor link for: write-back-pressure&quot;&gt;Write back pressure&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Streams can apply back pressure by their &lt;code&gt;.send()&lt;&#x2F;code&gt; method returning false. Once this returns false, the sender should wait for a &lt;code&gt;&#x27;drain&#x27;&lt;&#x2F;code&gt; event before continuing:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;typescript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;for&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; buf&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; of&lt;&#x2F;span&gt;&lt;span&gt; bufs) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;  if&lt;&#x2F;span&gt;&lt;span&gt; (&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;!&lt;&#x2F;span&gt;&lt;span&gt;stream.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;send&lt;&#x2F;span&gt;&lt;span&gt;(buf)) {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;    await&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; pEvent&lt;&#x2F;span&gt;&lt;span&gt;(stream,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;#39;drain&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;, {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;      rejectionEvents: [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;#39;close&amp;#39;&lt;&#x2F;span&gt;&lt;span&gt;]&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    })&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  }&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h3 id=&quot;other-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#other-improvements&quot; aria-label=&quot;Anchor link for: other-improvements&quot;&gt;Other improvements&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Better TypeScript types&lt;&#x2F;li&gt;
&lt;li&gt;Improved error handling&lt;&#x2F;li&gt;
&lt;li&gt;Performance optimizations&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Check out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;blob&#x2F;main&#x2F;UPGRADING.md&quot;&gt;migration guide&lt;&#x2F;a&gt; for detailed upgrade instructions.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.3.0</title>
          <pubDate>Thu, 25 Sep 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-09-25-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-09-25-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-09-25-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.43.0</title>
          <pubDate>Fri, 19 Sep 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-09-19-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-09-19-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-09-19-go-libp2p/">&lt;p&gt;v0.43.0-rc2 An experiment with publishing a separate core module&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.13.0</title>
          <pubDate>Wed, 17 Sep 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-09-17-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-09-17-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-09-17-nim-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Autonat v2. Enable its client feature with &lt;code&gt;withAutonatV2&lt;&#x2F;code&gt; to determine your node&#x27;s advertised addresses reachability, and the server side with &lt;code&gt;withAutonatV2Server&lt;&#x2F;code&gt; to provide this service to other peers.&lt;&#x2F;li&gt;
&lt;li&gt;New publishing options added for gossipsub: &lt;code&gt;skipIDontWant&lt;&#x2F;code&gt; and &lt;code&gt;skipPreamble&lt;&#x2F;code&gt; so these control messages are optionally not sent on publish&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;fix(quic): test improvement by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3289982359&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1595&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1595&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1595&quot;&gt;#1595&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): exception msg fix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3300087198&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1607&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1607&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1607&quot;&gt;#1607&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): readOnce better exception handling by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3300589734&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1610&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1610&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1610&quot;&gt;#1610&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): setting shortAgent by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3300471103&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1609&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1609&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1609&quot;&gt;#1609&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(pubsub): simplify prune backoff test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3293152423&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1596&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1596&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1596&quot;&gt;#1596&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): Performance tests - collect docker stats by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3284182414&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1593&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1593&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1593&quot;&gt;#1593&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): Performance tests - plot docker stats by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3293695988&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1597&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1597&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1597&quot;&gt;#1597&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): Performance tests - plot latency history by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3300118091&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1608&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1608&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1608&quot;&gt;#1608&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): race errors when stopping transport by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3309277197&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1614&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1614&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1614&quot;&gt;#1614&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): fix flaky test when eof is expected by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3303652465&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1611&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1611&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1611&quot;&gt;#1611&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad): Initial unstable putval api by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ben-PH&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ben-PH&quot;&gt;@Ben-PH&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3261093712&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1582&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1582&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1582&quot;&gt;#1582&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: don&#x27;t check for errors as &lt;code&gt;close()&lt;&#x2F;code&gt; will only contain futures that raise &lt;code&gt;[]&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3310168415&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1615&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1615&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1615&quot;&gt;#1615&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: compilation warning on yamux due to using &lt;code&gt;CatchableErr&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3311252191&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1616&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1616&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1616&quot;&gt;#1616&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): fetch before push and improve latency history by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3314551017&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1617&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1617&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1617&quot;&gt;#1617&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(perf): implement proper half-close semantics by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3298023377&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1600&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1600&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1600&quot;&gt;#1600&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor: Removal of &quot;Hashed&quot; key variant by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ben-PH&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ben-PH&quot;&gt;@Ben-PH&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3319070884&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1623&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1623&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1623&quot;&gt;#1623&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: pubsub signature verification by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3315373891&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1618&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1618&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1618&quot;&gt;#1618&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor: &lt;code&gt;rm dhttypes.nim&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ben-PH&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ben-PH&quot;&gt;@Ben-PH&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3304386577&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1612&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1612&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1612&quot;&gt;#1612&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): add length prefixed test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3295608547&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1599&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1599&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1599&quot;&gt;#1599&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(tests): prevent race condition in testgossipsubcontrolmessages by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3322041709&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1626&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1626&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1626&quot;&gt;#1626&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(yamux): Add header unit tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3321737595&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1625&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1625&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1625&quot;&gt;#1625&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad-dht): findPeer by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3320108764&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1624&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1624&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1624&quot;&gt;#1624&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(test): Race condition on Windows-specific daemon close by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3325145597&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1628&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1628&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1628&quot;&gt;#1628&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): do not run publish steps on forks and fix cleanup by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3329878993&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1630&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1630&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1630&quot;&gt;#1630&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(yamux): Add unit tests - frame handling and stream initiation by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3338529409&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1634&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1634&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1634&quot;&gt;#1634&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor: Refine, and reduce, exception scope by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ben-PH&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ben-PH&quot;&gt;@Ben-PH&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3323270979&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1627&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1627&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1627&quot;&gt;#1627&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autonat-v2): add message types by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3346137835&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1637&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1637&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1637&quot;&gt;#1637&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(perf): follow up for PR#1600 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3318651073&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1620&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1620&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1620&quot;&gt;#1620&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): Refactor Rendezvous tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3358840233&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1644&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1644&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1644&quot;&gt;#1644&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: temporarily disable performance plots from being published by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3363101985&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1647&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1647&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1647&quot;&gt;#1647&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: dont send GoAway for unknown streams and mark streams as closed on conn close by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3360812930&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1645&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1645&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1645&quot;&gt;#1645&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(rendezvous): pagination offset by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3362914644&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1646&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1646&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1646&quot;&gt;#1646&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(performance): upload plots as artifacts by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3363399705&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1648&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1648&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1648&quot;&gt;#1648&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add localAddr to Connection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3373078561&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1651&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1651&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1651&quot;&gt;#1651&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: pass localAddr in noise, mplex and yamux by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3373633984&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1654&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1654&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1654&quot;&gt;#1654&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): Registration TTL tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3375385234&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1655&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1655&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1655&quot;&gt;#1655&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(ci): remove macos-13 from the matrix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3371464309&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1650&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1650&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1650&quot;&gt;#1650&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(rendezvous): peer registration limit by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3376355398&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1656&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1656&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1656&quot;&gt;#1656&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autonat-v2): add utils by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3377257039&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1657&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1657&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1657&quot;&gt;#1657&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autonat-v2): add server by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3377286497&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1658&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1658&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1658&quot;&gt;#1658&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: &lt;code&gt;splitRPCMsg&lt;&#x2F;code&gt; improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3387249050&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1665&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1665&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1665&quot;&gt;#1665&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autonat-v2): add server config by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3394477730&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1669&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1669&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1669&quot;&gt;#1669&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): add tests from common interop by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3382856903&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1662&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1662&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1662&quot;&gt;#1662&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(tests): utilize quic transport in pubsub tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3393578171&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1667&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1667&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1667&quot;&gt;#1667&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(rendezvous): Split Rendezvous Protobuf and add tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3394683639&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1671&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1671&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1671&quot;&gt;#1671&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(builders): transport param not assigned in newStandardSwitch by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3398032701&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1676&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1676&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1676&quot;&gt;#1676&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(rendezvous): Simplify test setup by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3398817172&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1677&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1677&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1677&quot;&gt;#1677&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autonat-v2): add client and tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3377310874&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1659&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1659&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1659&quot;&gt;#1659&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(pubsub): use custom conn when message is sent as lower-priority by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3401655607&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1679&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1679&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1679&quot;&gt;#1679&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: rename withAutonatV2 to withAutonatV2Server by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3402502290&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1680&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1680&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1680&quot;&gt;#1680&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: add &lt;code&gt;skipIDontWant&lt;&#x2F;code&gt; and &lt;code&gt;skipPreamble&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3402763981&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1681&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1681&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1681&quot;&gt;#1681&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: add autonat v2 service by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3403774023&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1684&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1684&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1684&quot;&gt;#1684&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add autonatv2 service to builder by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3410570691&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1686&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1686&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1686&quot;&gt;#1686&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add missing import by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3418061438&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1692&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1692&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1692&quot;&gt;#1692&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): crypto by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3411622202&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1687&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1687&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1687&quot;&gt;#1687&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): sequence number generator and tag manager by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3411669599&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1688&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1688&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1688&quot;&gt;#1688&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): better error handling in stream.write() by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3418496741&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1693&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1693&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1693&quot;&gt;#1693&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autonat-v2): service setting up correctly by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3419265227&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1694&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1694&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1694&quot;&gt;#1694&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): serialization by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3411720306&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1689&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1689&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1689&quot;&gt;#1689&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(mix): message by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3411739243&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1690&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1690&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1690&quot;&gt;#1690&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.12.0...v1.13.0&quot;&gt;&lt;tt&gt;v1.12.0...v1.13.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.10</title>
          <pubDate>Tue, 12 Aug 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-08-12-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-08-12-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-08-12-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.12.0</title>
          <pubDate>Tue, 05 Aug 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-08-05-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-08-05-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-08-05-nim-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Gossipsub 1.4 (use &lt;code&gt;-d:libp2p_gossipsub_1_4&lt;&#x2F;code&gt; compile flag)&lt;&#x2F;li&gt;
&lt;li&gt;AutoTLS can be used to automatically obtain a Let&#x27;s Encrypt certificate for WSS transport&lt;&#x2F;li&gt;
&lt;li&gt;Improvements in memory&#x2F;cpu usage&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;chore: update more dependencies by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3065589170&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1374&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1374&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1374&quot;&gt;#1374&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: bump quic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3075111953&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1387&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1387&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1387&quot;&gt;#1387&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): move and refactor control messages tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3069468626&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1380&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1380&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1380&quot;&gt;#1380&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: move -d:libp2p_quic_support flag to .nimble by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3084172177&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1392&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1392&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1392&quot;&gt;#1392&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): reset and mm for interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3087651550&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1397&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1397&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1397&quot;&gt;#1397&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: unused imports are now errors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3090440208&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1399&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1399&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1399&quot;&gt;#1399&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): heartbeat tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3079855045&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1391&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1391&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1391&quot;&gt;#1391&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: limit chronicles version to &amp;amp;lt; 0.11.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3098465655&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1423&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1423&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1423&quot;&gt;#1423&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(dependencies): fix access to tokens by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097824879&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1421&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1421&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1421&quot;&gt;#1421&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): include missing test files and handle flaky tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3094448545&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1416&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1416&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1416&quot;&gt;#1416&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(gossipsub): save iDontWants messages in the first element of history by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3084305983&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1393&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1393&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1393&quot;&gt;#1393&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: bump quic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3100460130&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1428&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1428&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1428&quot;&gt;#1428&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(interop): move interop code to separate folder by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3094163440&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1413&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1413&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1413&quot;&gt;#1413&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(ci-daily): delete cache action will continue on error by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3109874042&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1435&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1435&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1435&quot;&gt;#1435&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: checkUntilTimeout refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3110510988&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1437&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1437&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1437&quot;&gt;#1437&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): message cache by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3100898795&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1431&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1431&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1431&quot;&gt;#1431&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autotls): add acme client by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3110038907&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1436&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1436&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1436&quot;&gt;#1436&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(GossipSub): save sent iHave in first element by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3091544763&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1405&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1405&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1405&quot;&gt;#1405&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): parameters by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3117768952&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1442&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1442&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1442&quot;&gt;#1442&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(gossipsub): add consts by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3124495154&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1447&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1447&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1447&quot;&gt;#1447&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): add &lt;code&gt;libp2p_network_bytes&lt;&#x2F;code&gt; metric by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3114073754&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1439&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1439&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1439&quot;&gt;#1439&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): flaky tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3130404142&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1451&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1451&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1451&quot;&gt;#1451&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gossipsub): Add support for custom connection handling (Mix protocol integration) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;AkshayaMani&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AkshayaMani&quot;&gt;@AkshayaMani&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097647603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1420&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&quot;&gt;#1420&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(peeridauth): add peeridauth by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3122411472&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1445&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1445&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1445&quot;&gt;#1445&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: &lt;code&gt;withWsTransport&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3089285389&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1398&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1398&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1398&quot;&gt;#1398&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad-dht): protobuffers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3131096352&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1453&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1453&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1453&quot;&gt;#1453&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: increase timeout by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3136429470&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1460&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1460&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1460&quot;&gt;#1460&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(acme): add MockACMEApi for testing by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3134761443&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1457&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1457&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1457&quot;&gt;#1457&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): refactor and unify scoring tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3137017275&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1461&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1461&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1461&quot;&gt;#1461&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(daily): fix typo in testintegration by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3139930691&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1463&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1463&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1463&quot;&gt;#1463&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: Add some more context when an exception is caught by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3103653799&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1432&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1432&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1432&quot;&gt;#1432&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(peeridauth): add mocked client by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3134843901&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1458&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1458&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1458&quot;&gt;#1458&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(perf): add stats by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3130642705&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1452&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1452&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1452&quot;&gt;#1452&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): GossipThreshold and PublishThreshold tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3140632521&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1464&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1464&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1464&quot;&gt;#1464&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): split unit and integration tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3144467983&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1465&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1465&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1465&quot;&gt;#1465&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(version): update libp2p.nimble to 1.11.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3104067489&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1433&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1433&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1433&quot;&gt;#1433&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: force close of streams instead of reset when closing connection by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3151250717&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1466&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1466&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1466&quot;&gt;#1466&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: make quic test optional by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3163992734&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1475&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1475&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1475&quot;&gt;#1475&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad-dht): routing table by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3131124035&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1454&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1454&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1454&quot;&gt;#1454&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad-dht): handler by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3131142358&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1455&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1455&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1455&quot;&gt;#1455&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(peeridauth): fix peeridauth_integration import by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3168462782&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1478&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1478&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1478&quot;&gt;#1478&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(acme): add ACMEClient to hold information about an ACME account by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3158119626&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1470&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1470&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1470&quot;&gt;#1470&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: mark channel as reset to not read after closed by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3169038522&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1479&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1479&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1479&quot;&gt;#1479&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): rpcHandler - rateLimit and punishInvalidMessage tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3153913469&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1467&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1467&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1467&quot;&gt;#1467&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): organise Behavior tests  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3157026734&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1468&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1468&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1468&quot;&gt;#1468&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub):  behaviourPenalty tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3157049504&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1469&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1469&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1469&quot;&gt;#1469&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): updateScores tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3159868582&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1471&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1471&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1471&quot;&gt;#1471&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autotls): add AutoTLSManager by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3161191173&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1472&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1472&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1472&quot;&gt;#1472&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(perf): add quic test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3175463693&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1483&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1483&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1483&quot;&gt;#1483&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autotls): private checkedGetPrimaryIPAddr by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3182452681&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1489&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1489&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1489&quot;&gt;#1489&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(yamux): improve performance with zero allocation queue by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3179843749&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1488&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1488&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1488&quot;&gt;#1488&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gossipsub): Add support for skipping message insertion into the message cache (Mix protocol integration) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;AkshayaMani&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AkshayaMani&quot;&gt;@AkshayaMani&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3177478111&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1485&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1485&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1485&quot;&gt;#1485&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: remove unused import by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3187864544&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1490&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1490&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1490&quot;&gt;#1490&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(ci): disable hole punching tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3188582451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1493&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1493&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1493&quot;&gt;#1493&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(secure): utilize ZeroQueue by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3188221007&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1492&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1492&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1492&quot;&gt;#1492&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(bufferstream): utilize ZeroQueue by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3187891484&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1491&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1491&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1491&quot;&gt;#1491&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): refactor compatibility related tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3191827268&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1495&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1495&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1495&quot;&gt;#1495&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): scoring integration tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3179373229&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1487&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1487&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1487&quot;&gt;#1487&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autotls): make autotls manager into service by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3178872849&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1486&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1486&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1486&quot;&gt;#1486&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): Signature flags tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3192823711&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1496&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1496&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1496&quot;&gt;#1496&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(ci): move testintegration to new step by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3195933974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1499&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1499&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1499&quot;&gt;#1499&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(deps): remove bio by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3203399360&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1506&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1506&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1506&quot;&gt;#1506&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;refactor(noise): reduce memory usage by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3193370701&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1497&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1497&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1497&quot;&gt;#1497&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add info to error by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3203080867&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1505&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1505&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1505&quot;&gt;#1505&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): behavior unit tests 1 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3199240041&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1501&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1501&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1501&quot;&gt;#1501&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): behavior unit tests 2 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3202263224&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1503&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1503&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1503&quot;&gt;#1503&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): gossipsub unit tests 1 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3208562570&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1508&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1508&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1508&quot;&gt;#1508&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(test): reduce sleepAsync by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3173268058&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1481&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1481&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1481&quot;&gt;#1481&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): gossipsub unit tests 2 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3213182187&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1511&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1511&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1511&quot;&gt;#1511&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: utilizing newSeqUninitialized by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3212972018&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1510&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1510&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1510&quot;&gt;#1510&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autotls): prevent nil access on stop by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3219368482&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1514&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1514&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1514&quot;&gt;#1514&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: fix broken README links by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3220061830&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1517&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1517&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1517&quot;&gt;#1517&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: removing unused type StreamSeq by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3206702635&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1507&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1507&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1507&quot;&gt;#1507&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add template newSeqUninit by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3221993243&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1518&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1518&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1518&quot;&gt;#1518&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(peerinfo): enable calling update multiple times by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3223117046&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1525&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1525&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1525&quot;&gt;#1525&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gossipsub1_4): preamble store by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3219175082&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1513&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1513&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1513&quot;&gt;#1513&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gossipsub1.4): adding new attributes and protobuffers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3219884551&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1515&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1515&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1515&quot;&gt;#1515&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: hide autotls under compile flag by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3228625456&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1533&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1533&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1533&quot;&gt;#1533&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: also hide autotls&#x2F;utils methods by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3229923751&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1538&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1538&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1538&quot;&gt;#1538&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(perf): add QUIC transport compatibility by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3222875510&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1524&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1524&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1524&quot;&gt;#1524&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(readme): add link to community channel by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3231986339&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1542&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1542&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1542&quot;&gt;#1542&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(dialer): expand dns4 and dns6 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3232410858&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1543&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1543&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1543&quot;&gt;#1543&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): add getWrapped method for QuicStream by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3233338082&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1546&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1546&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1546&quot;&gt;#1546&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: autotls related imports by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3236504747&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1550&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1550&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1550&quot;&gt;#1550&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: build failures caused by missing import by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3231838744&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1541&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1541&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1541&quot;&gt;#1541&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: properly handle CancelledError in switch accept loop by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3229841626&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1537&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1537&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1537&quot;&gt;#1537&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(wstransport): add autotls support by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3228999873&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1535&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1535&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1535&quot;&gt;#1535&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: GossipSub v1.4 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ufarooqstatus&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ufarooqstatus&quot;&gt;@ufarooqstatus&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3124527263&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1448&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1448&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1448&quot;&gt;#1448&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: typo on startAt by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3248713471&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1562&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1562&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1562&quot;&gt;#1562&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(ci): initial flake.nix file with dev shell by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ben-PH&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ben-PH&quot;&gt;@Ben-PH&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3243077735&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1559&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1559&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1559&quot;&gt;#1559&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(autotls): integration tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3243749147&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1560&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1560&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1560&quot;&gt;#1560&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: add TransportConfig by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3243826939&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1561&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1561&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1561&quot;&gt;#1561&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(autotls): only import dnsclient when autotls is required by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3249952754&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1565&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1565&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1565&quot;&gt;#1565&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(deps): bump quic to v0.2.9 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3252511364&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1568&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1568&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1568&quot;&gt;#1568&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(perf): remove timeout when reading from quic stream by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3252562939&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1569&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1569&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1569&quot;&gt;#1569&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(PeerTable): add stringification operator by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3252328115&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1567&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1567&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1567&quot;&gt;#1567&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: memory consumption in yamux and pubsubpeer by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3252783056&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1570&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1570&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1570&quot;&gt;#1570&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): close all streams when closing session by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3259899891&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1576&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1576&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1576&quot;&gt;#1576&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: revert excp type in yamux write by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3260038061&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1578&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1578&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1578&quot;&gt;#1578&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(switch): remove unnecesery debug log entry by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3259768156&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1575&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1575&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1575&quot;&gt;#1575&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: more secure send loop in yamux and exception-handling-code cleanup in pubsubpeer by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3260361753&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1579&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1579&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1579&quot;&gt;#1579&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;AkshayaMani&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AkshayaMani&quot;&gt;@AkshayaMani&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097647603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1420&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&quot;&gt;#1420&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;MorganaFuture&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;MorganaFuture&quot;&gt;@MorganaFuture&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3222875510&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1524&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1524&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1524&quot;&gt;#1524&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ufarooqstatus&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ufarooqstatus&quot;&gt;@ufarooqstatus&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3124527263&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1448&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1448&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1448&quot;&gt;#1448&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;mendelskiv93&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;mendelskiv93&quot;&gt;@mendelskiv93&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3249771707&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1564&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1564&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1564&quot;&gt;#1564&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.10.1...v1.12.0&quot;&gt;&lt;tt&gt;v1.10.1...v1.12.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.42.1</title>
          <pubDate>Wed, 30 Jul 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-07-30-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-07-30-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-07-30-go-libp2p/">&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;addrsmanager: extract out addressing logic from basichost by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2709204059&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3075&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3075&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3075&quot;&gt;#3075&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: fix incorrect nil return value by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;huochexizhan&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;huochexizhan&quot;&gt;@huochexizhan&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887711622&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3219&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&quot;&gt;#3219&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(libp2phttp): bound NewStream timeout by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;algorandskiy&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;algorandskiy&quot;&gt;@algorandskiy&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2903627344&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3225&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&quot;&gt;#3225&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: fix memory leak with udpmux.muxedConnection context by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932604838&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3243&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3243&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3243&quot;&gt;#3243&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;connmgr: fix transport association bug by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2894860764&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3221&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3221&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3221&quot;&gt;#3221&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;connmgr: remove WithEmergencyTrim by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887278062&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3217&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3217&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3217&quot;&gt;#3217&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Add wrapped error type in &lt;code&gt;stream.go&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Prabhat1308&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Prabhat1308&quot;&gt;@Prabhat1308&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2924493451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3237&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&quot;&gt;#3237&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: fix server dial data request policy by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2939238277&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3247&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3247&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3247&quot;&gt;#3247&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: explicitly handle dns addrs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2944068156&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3249&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3249&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3249&quot;&gt;#3249&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;transport: add GatedMaListener type by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2848652331&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3186&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3186&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3186&quot;&gt;#3186&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(examples): p2p-forge&#x2F;client v0.4.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2879252479&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3211&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3211&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3211&quot;&gt;#3211&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;optimize: using t.TempDir() replace os.MkdirTemp in testfile by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;argentpapa&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;argentpapa&quot;&gt;@argentpapa&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2897677974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3222&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&quot;&gt;#3222&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;peerstore: remove unused badger tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2947552204&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3252&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3252&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3252&quot;&gt;#3252&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: p2p-forge v0.5.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2954285451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3257&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3257&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3257&quot;&gt;#3257&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: uci&#x2F;copy-templates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;web3-bot&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;web3-bot&quot;&gt;@web3-bot&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2950228399&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3254&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3254&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3254&quot;&gt;#3254&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(relay): fix data-race in relayFinder by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;b00f&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;b00f&quot;&gt;@b00f&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2958726294&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3258&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&quot;&gt;#3258&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;identify: reduce timeout to 5 seconds by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961078389&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3259&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3259&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3259&quot;&gt;#3259&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;peerstore: remove leveldb tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961123963&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3260&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3260&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3260&quot;&gt;#3260&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: support receiving 256kB messages by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2950738179&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3255&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3255&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3255&quot;&gt;#3255&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;rcmgr: use netip.Prefix as map key instead of string by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2969297852&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3264&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3264&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3264&quot;&gt;#3264&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(certificate): update test vectors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932131971&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3242&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&quot;&gt;#3242&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;build(test_analysis): use &lt;code&gt;modernc.org&#x2F;sqlite&lt;&#x2F;code&gt; directly by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;levisyin&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;levisyin&quot;&gt;@levisyin&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2904446922&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3227&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&quot;&gt;#3227&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: add golangci-lint for linting by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2976445989&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3269&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3269&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3269&quot;&gt;#3269&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Improve NAT port mapping failure logging by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;VolodymyrBg&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;VolodymyrBg&quot;&gt;@VolodymyrBg&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961382251&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3261&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&quot;&gt;#3261&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add missing log for failed GC record unmarshalling in &lt;code&gt;purgeStore()&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vipocenka&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vipocenka&quot;&gt;@vipocenka&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2993849239&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3273&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&quot;&gt;#3273&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;identify: rate limit id push protocol by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2969522659&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3266&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3266&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3266&quot;&gt;#3266&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;quicreuse: add some documentation for the package by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3036440998&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3279&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3279&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3279&quot;&gt;#3279&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;eventbus: change slow consumer event from error to warn by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3045070466&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3286&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3286&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3286&quot;&gt;#3286&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: use tcort&#x2F;github-action-markdown-link-check by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3068450968&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3291&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3291&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3291&quot;&gt;#3291&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;swarm_test: support more transports for GenSwarm by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2763404340&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3130&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3130&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3130&quot;&gt;#3130&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;go-clock migration by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3079355665&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3293&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3293&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3293&quot;&gt;#3293&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Ensure tcpGatedMaListener wrapping on both metrics and non-metri… by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;GarmashAlex&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;GarmashAlex&quot;&gt;@GarmashAlex&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3020117327&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3275&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&quot;&gt;#3275&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: uci&#x2F;copy-templates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;web3-bot&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;web3-bot&quot;&gt;@web3-bot&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3038469548&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3282&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3282&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3282&quot;&gt;#3282&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Revert &quot;go-clock migration&quot; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3102440272&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3303&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3303&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3303&quot;&gt;#3303&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;basichost: use autonatv2 to verify reachability by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2905600138&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3231&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3231&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3231&quot;&gt;#3231&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;quic: gate connections before handshake by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3039680012&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3283&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3283&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3283&quot;&gt;#3283&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: add Unknown addrs to event by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3129943070&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3305&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3305&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3305&quot;&gt;#3305&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: fix errors reported by golangci-lint by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;galargh&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;galargh&quot;&gt;@galargh&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3087260684&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3295&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3295&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3295&quot;&gt;#3295&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: add metrics by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3139893712&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3308&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3308&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3308&quot;&gt;#3308&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;mocknet: notify listeners on listen by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3141252589&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3310&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3310&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3310&quot;&gt;#3310&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: go-check now support golangci-lint by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;galargh&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;galargh&quot;&gt;@galargh&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3140010044&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3309&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3309&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3309&quot;&gt;#3309&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: update deps by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3149316134&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3312&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3312&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3312&quot;&gt;#3312&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Release v0.42.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3154455248&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3318&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3318&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3318&quot;&gt;#3318&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;huochexizhan&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;huochexizhan&quot;&gt;@huochexizhan&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887711622&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3219&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&quot;&gt;#3219&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;algorandskiy&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;algorandskiy&quot;&gt;@algorandskiy&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2903627344&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3225&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&quot;&gt;#3225&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Prabhat1308&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Prabhat1308&quot;&gt;@Prabhat1308&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2924493451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3237&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&quot;&gt;#3237&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;argentpapa&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;argentpapa&quot;&gt;@argentpapa&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2897677974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3222&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&quot;&gt;#3222&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;b00f&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;b00f&quot;&gt;@b00f&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2958726294&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3258&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&quot;&gt;#3258&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932131971&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3242&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&quot;&gt;#3242&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;levisyin&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;levisyin&quot;&gt;@levisyin&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2904446922&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3227&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&quot;&gt;#3227&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;VolodymyrBg&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;VolodymyrBg&quot;&gt;@VolodymyrBg&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961382251&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3261&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&quot;&gt;#3261&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vipocenka&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vipocenka&quot;&gt;@vipocenka&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2993849239&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3273&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&quot;&gt;#3273&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;GarmashAlex&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;GarmashAlex&quot;&gt;@GarmashAlex&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3020117327&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3275&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&quot;&gt;#3275&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.41.0...v0.42.1&quot;&gt;&lt;tt&gt;v0.41.0...v0.42.1&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.10.0</title>
          <pubDate>Tue, 22 Jul 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-07-22-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-07-22-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-07-22-litep2p/">&lt;h2 id=&quot;0-10-0-2025-07-22&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-10-0-2025-07-22&quot; aria-label=&quot;Anchor link for: 0-10-0-2025-07-22&quot;&gt;[0.10.0] - 2025-07-22&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release adds the ability to use system DNS resolver and change Kademlia DNS memory store capacity. It also fixes the Bitswap protocol implementation and correctly handles the dropped notification substreams by unregistering them from the protocol list.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;added&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#added&quot; aria-label=&quot;Anchor link for: added&quot;&gt;Added&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;kad: Expose memory store configuration (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;407&quot;&gt;#407&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport: Allow changing DNS resolver config (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;384&quot;&gt;#384&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;notification: Unregister dropped protocols (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;391&quot;&gt;#391&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;bitswap: Fix protocol implementation (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;402&quot;&gt;#402&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;transport-manager: stricter supported multiaddress check (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;403&quot;&gt;#403&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.9</title>
          <pubDate>Wed, 09 Jul 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-07-09-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-07-09-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-07-09-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of rust-libp2p v0.56</title>
          <pubDate>Sat, 28 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-28-rust-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-28-rust-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-28-rust-libp2p/">&lt;p&gt;&lt;code&gt;rust-libp2p v0.56&lt;&#x2F;code&gt; has just shipped.&lt;&#x2F;p&gt;
&lt;p&gt;See individual &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;blob&#x2F;libp2p-v0.56.0&#x2F;CHANGELOG.md&quot;&gt;changelogs&lt;&#x2F;a&gt; for details.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-new&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-new&quot; aria-label=&quot;Anchor link for: what-s-new&quot;&gt;What&#x27;s new?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Notably, we&#x27;ve removed support for &lt;code&gt;async-std&lt;&#x2F;code&gt; in all crates, as &lt;code&gt;async-std&lt;&#x2F;code&gt;
&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;async-rs&#x2F;async-std&#x2F;pull&#x2F;1099&quot;&gt;has been discontinued&lt;&#x2F;a&gt;. Users
should switch to using tokio instead. For now, we&#x27;ve kept the abstractions for
supporting alternative runtimes, although not all parts may be public. Please
open an issue if you are planning to support a custom runtime and run into any
issues with that..&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to everyone who contributed to the release!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of go-libp2p v0.42.0</title>
          <pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-23-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-23-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-23-go-libp2p/">&lt;h2 id=&quot;warning-breaking-changes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#warning-breaking-changes&quot; aria-label=&quot;Anchor link for: warning-breaking-changes&quot;&gt;⚠ Breaking Changes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Added a new method, &lt;code&gt;VerifySourceAddress(net.Addr) bool&lt;&#x2F;code&gt;, to the Resource Manager interface.&lt;&#x2F;p&gt;
&lt;p&gt;For more details see the Source Address Verification section.&lt;&#x2F;p&gt;
&lt;p&gt;For custom implementation which want to opt out of Source Address Verification and keep the existing behavior, return &lt;code&gt;false&lt;&#x2F;code&gt; from the method.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;flashlight-highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#flashlight-highlights&quot; aria-label=&quot;Anchor link for: flashlight-highlights&quot;&gt;🔦 Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h2 id=&quot;per-address-reachability-via-autonat-v2&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#per-address-reachability-via-autonat-v2&quot; aria-label=&quot;Anchor link for: per-address-reachability-via-autonat-v2&quot;&gt;Per Address Reachability via AutoNAT v2&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;libp2p hosts can now determine reachability for individual addresses using AutoNATV2. To opt in to reachability checking use the &lt;code&gt;EnableAutoNATV2&lt;&#x2F;code&gt; libp2p option. Using this nodes can now determine their IPv4, IPv6, and browser address reachability separately. In a future release, AutoRelay will use this information and make appropriate relay reservations accordingly.  &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p#EnableAutoNATv2&quot;&gt;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p#EnableAutoNATv2&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;To query addresses by their reachability, &lt;code&gt;ConfirmedAddrs() (reachable, unreachable, unknown []ma.Multiaddr)&lt;&#x2F;code&gt; that provides Reachability information per host address.  &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;p2p&#x2F;host&#x2F;basic#BasicHost.ConfirmedAddrs&quot;&gt;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;p2p&#x2F;host&#x2F;basic#BasicHost.ConfirmedAddrs&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;For notifications, Subscribe to the event &lt;code&gt;event.EvtHostReachableAddrsChanged&lt;&#x2F;code&gt; &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;core&#x2F;event#EvtHostReachableAddrsChanged&quot;&gt;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;core&#x2F;event#EvtHostReachableAddrsChanged&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;rate-limiting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#rate-limiting&quot; aria-label=&quot;Anchor link for: rate-limiting&quot;&gt;Rate Limiting&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We&#x27;ve introduced the package &lt;code&gt;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;x&#x2F;rate&lt;&#x2F;code&gt; for rate limiting. The struct &lt;code&gt;rate.Limiter&lt;&#x2F;code&gt; provides Global, Network Specific, and Subnet Specific rate limiting. The Subnet specific rate limits allows for better DoS Protection by rate limiting malicious IPs.  &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;x&#x2F;rate&quot;&gt;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;x&#x2F;rate&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Use &lt;code&gt;Limit(f func(s network.Stream)) func(s network.Stream)&lt;&#x2F;code&gt; on &lt;code&gt;Limiter&lt;&#x2F;code&gt; to limit specific stream handlers. For example, within libp2p, the Identify Service uses this as&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;ids.Host.SetStreamHandler(IDPush, ids.rateLimiter.Limit(ids.handlePush))&lt;&#x2F;code&gt; to rate limit the number of times peers can perform identify push.&lt;&#x2F;p&gt;
&lt;p&gt;For non Stream use cases use the &lt;code&gt;Allow(ip)&lt;&#x2F;code&gt; method on the limiter.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;connection-rate-limiting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#connection-rate-limiting&quot; aria-label=&quot;Anchor link for: connection-rate-limiting&quot;&gt;Connection Rate Limiting&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;New connection requests are now rate limited per IP. By default we allow 1 connection every 5 seconds from an IP address with a burst of 16 connections per IP. The burst is high enough that this should only block malicious peers.&lt;&#x2F;p&gt;
&lt;p&gt;To configure the connection rate limits, use the &lt;code&gt;WithConnRateLimiters&lt;&#x2F;code&gt; option on the Resource Manager.  &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;p2p&#x2F;host&#x2F;resource-manager#WithConnRateLimiters&quot;&gt;https:&#x2F;&#x2F;pkg.go.dev&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;p2p&#x2F;host&#x2F;resource-manager#WithConnRateLimiters&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;source-address-verification-for-quic&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#source-address-verification-for-quic&quot; aria-label=&quot;Anchor link for: source-address-verification-for-quic&quot;&gt;Source Address Verification for QUIC&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release introduces Source Address Verification for QUIC, preventing DoS attacks by spoofing IP addresses. See: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc9000.html#section-8&quot;&gt;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc9000.html#section-8&lt;&#x2F;a&gt; for details.&lt;&#x2F;p&gt;
&lt;p&gt;We are now gating incoming QUIC connections before the handshake is started. This further improves DoS protection by not wasting CPU on handshaking QUIC connections which would have been dropped by the Resource Manager.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;other-changes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#other-changes&quot; aria-label=&quot;Anchor link for: other-changes&quot;&gt;Other changes&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;WebRTC Direct peers can now send messages of up to 256 kB (see spec: &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2500523250&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;issues&#x2F;628&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;specs&#x2F;pull&#x2F;628&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;pull&#x2F;628&quot;&gt;libp2p&#x2F;specs#628&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Refactored the addressing code within BasicHost and moved it into Address Manager. In a future release, this will be exposed to users with an improved Address API for the libp2p Host.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;addrsmanager: extract out addressing logic from basichost by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2709204059&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3075&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3075&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3075&quot;&gt;#3075&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: fix incorrect nil return value by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;huochexizhan&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;huochexizhan&quot;&gt;@huochexizhan&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887711622&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3219&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&quot;&gt;#3219&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(libp2phttp): bound NewStream timeout by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;algorandskiy&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;algorandskiy&quot;&gt;@algorandskiy&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2903627344&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3225&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&quot;&gt;#3225&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: fix memory leak with udpmux.muxedConnection context by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932604838&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3243&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3243&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3243&quot;&gt;#3243&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;connmgr: fix transport association bug by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2894860764&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3221&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3221&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3221&quot;&gt;#3221&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;connmgr: remove WithEmergencyTrim by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887278062&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3217&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3217&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3217&quot;&gt;#3217&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Add wrapped error type in &lt;code&gt;stream.go&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Prabhat1308&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Prabhat1308&quot;&gt;@Prabhat1308&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2924493451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3237&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&quot;&gt;#3237&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: fix server dial data request policy by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2939238277&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3247&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3247&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3247&quot;&gt;#3247&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: explicitly handle dns addrs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2944068156&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3249&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3249&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3249&quot;&gt;#3249&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;transport: add GatedMaListener type by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2848652331&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3186&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3186&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3186&quot;&gt;#3186&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(examples): p2p-forge&#x2F;client v0.4.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2879252479&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3211&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3211&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3211&quot;&gt;#3211&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;optimize: using t.TempDir() replace os.MkdirTemp in testfile by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;argentpapa&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;argentpapa&quot;&gt;@argentpapa&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2897677974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3222&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&quot;&gt;#3222&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;peerstore: remove unused badger tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2947552204&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3252&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3252&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3252&quot;&gt;#3252&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: p2p-forge v0.5.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lidel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lidel&quot;&gt;@lidel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2954285451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3257&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3257&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3257&quot;&gt;#3257&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: uci&#x2F;copy-templates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;web3-bot&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;web3-bot&quot;&gt;@web3-bot&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2950228399&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3254&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3254&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3254&quot;&gt;#3254&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(relay): fix data-race in relayFinder by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;b00f&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;b00f&quot;&gt;@b00f&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2958726294&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3258&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&quot;&gt;#3258&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;identify: reduce timeout to 5 seconds by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961078389&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3259&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3259&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3259&quot;&gt;#3259&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;peerstore: remove leveldb tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961123963&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3260&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3260&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3260&quot;&gt;#3260&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;webrtc: support receiving 256kB messages by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2950738179&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3255&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3255&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3255&quot;&gt;#3255&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;rcmgr: use netip.Prefix as map key instead of string by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2969297852&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3264&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3264&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3264&quot;&gt;#3264&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(certificate): update test vectors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932131971&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3242&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&quot;&gt;#3242&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;build(test_analysis): use &lt;code&gt;modernc.org&#x2F;sqlite&lt;&#x2F;code&gt; directly by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;levisyin&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;levisyin&quot;&gt;@levisyin&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2904446922&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3227&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&quot;&gt;#3227&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: add golangci-lint for linting by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2976445989&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3269&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3269&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3269&quot;&gt;#3269&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Improve NAT port mapping failure logging by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;VolodymyrBg&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;VolodymyrBg&quot;&gt;@VolodymyrBg&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961382251&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3261&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&quot;&gt;#3261&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add missing log for failed GC record unmarshalling in &lt;code&gt;purgeStore()&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vipocenka&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vipocenka&quot;&gt;@vipocenka&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2993849239&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3273&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&quot;&gt;#3273&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;identify: rate limit id push protocol by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2969522659&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3266&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3266&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3266&quot;&gt;#3266&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;quicreuse: add some documentation for the package by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3036440998&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3279&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3279&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3279&quot;&gt;#3279&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;eventbus: change slow consumer event from error to warn by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3045070466&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3286&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3286&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3286&quot;&gt;#3286&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: use tcort&#x2F;github-action-markdown-link-check by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3068450968&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3291&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3291&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3291&quot;&gt;#3291&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;swarm_test: support more transports for GenSwarm by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2763404340&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3130&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3130&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3130&quot;&gt;#3130&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;go-clock migration by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3079355665&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3293&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3293&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3293&quot;&gt;#3293&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: Ensure tcpGatedMaListener wrapping on both metrics and non-metri… by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;GarmashAlex&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;GarmashAlex&quot;&gt;@GarmashAlex&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3020117327&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3275&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&quot;&gt;#3275&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: uci&#x2F;copy-templates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;web3-bot&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;web3-bot&quot;&gt;@web3-bot&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3038469548&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3282&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3282&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3282&quot;&gt;#3282&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Revert &quot;go-clock migration&quot; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;guillaumemichel&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;guillaumemichel&quot;&gt;@guillaumemichel&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3102440272&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3303&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3303&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3303&quot;&gt;#3303&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;basichost: use autonatv2 to verify reachability by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2905600138&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3231&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3231&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3231&quot;&gt;#3231&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;quic: gate connections before handshake by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3039680012&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3283&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3283&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3283&quot;&gt;#3283&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: add Unknown addrs to event by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3129943070&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3305&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3305&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3305&quot;&gt;#3305&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: fix errors reported by golangci-lint by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;galargh&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;galargh&quot;&gt;@galargh&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3087260684&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3295&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3295&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3295&quot;&gt;#3295&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;autonatv2: add metrics by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3139893712&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3308&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3308&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3308&quot;&gt;#3308&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;mocknet: notify listeners on listen by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3141252589&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3310&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3310&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3310&quot;&gt;#3310&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci: go-check now support golangci-lint by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;galargh&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;galargh&quot;&gt;@galargh&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3140010044&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3309&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3309&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3309&quot;&gt;#3309&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: update deps by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;sukunrt&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;sukunrt&quot;&gt;@sukunrt&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3149316134&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3312&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3312&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3312&quot;&gt;#3312&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;huochexizhan&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;huochexizhan&quot;&gt;@huochexizhan&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2887711622&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3219&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3219&quot;&gt;#3219&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;algorandskiy&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;algorandskiy&quot;&gt;@algorandskiy&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2903627344&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3225&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3225&quot;&gt;#3225&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Prabhat1308&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Prabhat1308&quot;&gt;@Prabhat1308&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2924493451&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3237&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3237&quot;&gt;#3237&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;argentpapa&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;argentpapa&quot;&gt;@argentpapa&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2897677974&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3222&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3222&quot;&gt;#3222&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;b00f&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;b00f&quot;&gt;@b00f&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2958726294&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3258&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3258&quot;&gt;#3258&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2932131971&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3242&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3242&quot;&gt;#3242&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;levisyin&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;levisyin&quot;&gt;@levisyin&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2904446922&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3227&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3227&quot;&gt;#3227&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;VolodymyrBg&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;VolodymyrBg&quot;&gt;@VolodymyrBg&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2961382251&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3261&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3261&quot;&gt;#3261&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vipocenka&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vipocenka&quot;&gt;@vipocenka&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2993849239&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3273&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3273&quot;&gt;#3273&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;GarmashAlex&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;GarmashAlex&quot;&gt;@GarmashAlex&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3020117327&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues&#x2F;3275&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;pull&#x2F;3275&quot;&gt;#3275&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;compare&#x2F;v0.41.0...v0.42.0&quot;&gt;&lt;tt&gt;v0.41.0...v0.42.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of nim-libp2p v1.11.0</title>
          <pubDate>Mon, 23 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-23-nim-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-23-nim-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-23-nim-libp2p/">&lt;h2 id=&quot;highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlights&quot; aria-label=&quot;Anchor link for: highlights&quot;&gt;Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Added &lt;code&gt;withWsTransport&lt;&#x2F;code&gt; option to the builder to easily add websocket transport support&lt;&#x2F;li&gt;
&lt;li&gt;Fix: save IDONTWANT and IHAVE messages in the first element of history. Previously they were being saved as last element of the history so they were kept only for one heartbeat.&lt;&#x2F;li&gt;
&lt;li&gt;Update the library dependencies versions&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;chore: update more dependencies by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3065589170&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1374&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1374&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1374&quot;&gt;#1374&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: bump quic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3075111953&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1387&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1387&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1387&quot;&gt;#1387&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): move and refactor control messages tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3069468626&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1380&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1380&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1380&quot;&gt;#1380&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: move -d:libp2p_quic_support flag to .nimble by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3084172177&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1392&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1392&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1392&quot;&gt;#1392&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(ci-daily): remove unused flag by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3090690580&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1400&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1400&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1400&quot;&gt;#1400&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(quic): reset and mm for interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3087651550&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1397&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1397&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1397&quot;&gt;#1397&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: unused imports are now errors by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;narimiran&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;narimiran&quot;&gt;@narimiran&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3090440208&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1399&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1399&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1399&quot;&gt;#1399&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): heartbeat tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3079855045&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1391&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1391&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1391&quot;&gt;#1391&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(daily): improvements by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3091497807&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1404&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1404&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1404&quot;&gt;#1404&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix: limit chronicles version to &amp;amp;lt; 0.11.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3098465655&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1423&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1423&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1423&quot;&gt;#1423&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(dependencies): fix access to tokens by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097824879&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1421&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1421&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1421&quot;&gt;#1421&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): include missing test files and handle flaky tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3094448545&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1416&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1416&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1416&quot;&gt;#1416&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(gossipsub): save iDontWants messages in the first element of history by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3084305983&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1393&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1393&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1393&quot;&gt;#1393&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: bump quic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3100460130&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1428&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1428&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1428&quot;&gt;#1428&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;ci(daily): add pinned dependencies variant by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097072626&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1418&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1418&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1418&quot;&gt;#1418&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(interop): move interop code to separate folder by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3094163440&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1413&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1413&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1413&quot;&gt;#1413&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(readme): improve README&#x27;s development section by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3100245592&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1427&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1427&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1427&quot;&gt;#1427&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(ci-daily): delete cache action will continue on error by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3109874042&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1435&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1435&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1435&quot;&gt;#1435&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: checkUntilTimeout refactor by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3110510988&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1437&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1437&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1437&quot;&gt;#1437&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): message cache by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3100898795&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1431&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1431&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1431&quot;&gt;#1431&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(autotls): add acme client by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3110038907&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1436&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1436&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1436&quot;&gt;#1436&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(GossipSub): save sent iHave in first element by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3091544763&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1405&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1405&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1405&quot;&gt;#1405&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): parameters by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3117768952&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1442&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1442&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1442&quot;&gt;#1442&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(gossipsub): add consts by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3124495154&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1447&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1447&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1447&quot;&gt;#1447&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(quic): add &lt;code&gt;libp2p_network_bytes&lt;&#x2F;code&gt; metric by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3114073754&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1439&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1439&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1439&quot;&gt;#1439&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): flaky tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3130404142&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1451&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1451&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1451&quot;&gt;#1451&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(gossipsub): Add support for custom connection handling (Mix protocol integration) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;AkshayaMani&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AkshayaMani&quot;&gt;@AkshayaMani&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097647603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1420&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&quot;&gt;#1420&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(peeridauth): add peeridauth by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3122411472&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1445&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1445&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1445&quot;&gt;#1445&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat: &lt;code&gt;withWsTransport&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3089285389&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1398&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1398&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1398&quot;&gt;#1398&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(kad-dht): protobuffers by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;richard-ramos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;richard-ramos&quot;&gt;@richard-ramos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3131096352&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1453&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1453&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1453&quot;&gt;#1453&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test: increase timeout by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3136429470&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1460&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1460&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1460&quot;&gt;#1460&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(acme): add MockACMEApi for testing by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3134761443&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1457&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1457&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1457&quot;&gt;#1457&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): refactor and unify scoring tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3137017275&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1461&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1461&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1461&quot;&gt;#1461&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;fix(daily): fix typo in testintegration by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3139930691&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1463&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1463&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1463&quot;&gt;#1463&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: Add some more context when an exception is caught by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Ivansete-status&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Ivansete-status&quot;&gt;@Ivansete-status&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3103653799&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1432&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1432&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1432&quot;&gt;#1432&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore(peeridauth): add mocked client by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;gmelodie&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;gmelodie&quot;&gt;@gmelodie&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3134843901&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1458&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1458&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1458&quot;&gt;#1458&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;feat(perf): add stats by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;vladopajic&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vladopajic&quot;&gt;@vladopajic&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3130642705&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1452&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1452&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1452&quot;&gt;#1452&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): GossipThreshold and PublishThreshold tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3140632521&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1464&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1464&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1464&quot;&gt;#1464&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;test(gossipsub): split unit and integration tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;rlve&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rlve&quot;&gt;@rlve&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3144467983&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1465&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1465&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1465&quot;&gt;#1465&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;AkshayaMani&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;AkshayaMani&quot;&gt;@AkshayaMani&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;3097647603&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;issues&#x2F;1420&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;pull&#x2F;1420&quot;&gt;#1420&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;vacp2p&#x2F;nim-libp2p&#x2F;compare&#x2F;v1.10.1...v1.10.2&quot;&gt;&lt;tt&gt;v1.10.1...v1.10.2&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.37</title>
          <pubDate>Wed, 11 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-11-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-11-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-11-cpp-libp2p/">&lt;p&gt;feat: add scheduler support for timeout management in Multiselect (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;312&quot;&gt;#312&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;feat: add scheduler support for timeout management in Multiselect&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;fix: pass scheduler to Multiselect for improved timeout management&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.9.5</title>
          <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-10-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-10-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-10-litep2p/">&lt;h2 id=&quot;0-9-5-2025-05-26&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-9-5-2025-05-26&quot; aria-label=&quot;Anchor link for: 0-9-5-2025-05-26&quot;&gt;[0.9.5] - 2025-05-26&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release primarily focuses on strengthening the stability of the websocket transport. We&#x27;ve resolved an issue where higher-level buffering was causing the Noise protocol to fail when decoding messages.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve also significantly improved connectivity between litep2p and Smoldot (the Substrate-based light client). Empty frames are now handled correctly, preventing handshake timeouts and ensuring smoother communication.&lt;&#x2F;p&gt;
&lt;p&gt;Finally, we&#x27;ve carried out several dependency updates to keep the library current with the latest versions of its underlying components.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;substream&#x2F;fix: Allow empty payloads with 0-length frame  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;395&quot;&gt;#395&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;websocket: Fix connection stability on decrypt messages  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;393&quot;&gt;#393&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;crypto&#x2F;noise: Show peerIDs that fail to decode  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;392&quot;&gt;#392&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;cargo: Bump yamux to 0.13.5 and tokio to 1.45.0  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;396&quot;&gt;#396&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;ci: Enforce and apply clippy rules  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;388&quot;&gt;#388&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump ring from 0.16.20 to 0.17.14  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;389&quot;&gt;#389&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;Update hickory-resolver 0.24.2 -&amp;amp;gt; 0.25.2  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;386&quot;&gt;#386&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.8</title>
          <pubDate>Tue, 10 Jun 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-06-10-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-06-10-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-06-10-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.7</title>
          <pubDate>Thu, 22 May 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-05-22-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-05-22-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-05-22-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of litep2p v0.9.4</title>
          <pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-05-15-litep2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-05-15-litep2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-05-15-litep2p/">&lt;h2 id=&quot;0-9-4-2025-04-29&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-9-4-2025-04-29&quot; aria-label=&quot;Anchor link for: 0-9-4-2025-04-29&quot;&gt;[0.9.4] - 2025-04-29&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release brings several improvements and fixes to litep2p, advancing its stability and readiness for production use.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;performance-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#performance-improvements&quot; aria-label=&quot;Anchor link for: performance-improvements&quot;&gt;Performance Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This release addresses an issue where notification protocols failed to exit on handle drop, lowering CPU usage in scenarios like minimal-relay-chains from 7% to 0.1%.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;robustness-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#robustness-improvements&quot; aria-label=&quot;Anchor link for: robustness-improvements&quot;&gt;Robustness Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Kademlia:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Optimized address store by sorting addresses based on dialing score, bounding memory consumption and improving efficiency.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Limited &lt;code&gt;FIND_NODE&lt;&#x2F;code&gt; responses to the replication factor, reducing data stored in the routing table.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Address store improvements enhance robustness against routing table alterations.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Identify Codec:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Enhanced message decoding to manage malformed or unexpected messages gracefully.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Bitswap:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Introduced a write timeout for sending frames, preventing protocol hangs or delays.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;testing-and-reliability&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#testing-and-reliability&quot; aria-label=&quot;Anchor link for: testing-and-reliability&quot;&gt;Testing and Reliability&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Fuzzing Harness: Added a fuzzing harness by SRLabs to uncover and resolve potential issues, improving code robustness. Thanks to &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;R9295&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;R9295&quot;&gt;@R9295&lt;&#x2F;a&gt; for the contribution!&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Testing Enhancements: Improved notification state machine testing. Thanks to Dominique (&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Imod7&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Imod7&quot;&gt;@Imod7&lt;&#x2F;a&gt;) for the contribution!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;dependency-management&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dependency-management&quot; aria-label=&quot;Anchor link for: dependency-management&quot;&gt;Dependency Management&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Updated all dependencies for stable feature flags (default and &quot;websocket&quot;) to their latest versions.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Reorganized dependencies under specific feature flags, shrinking the default feature set and avoiding exposure of outdated dependencies from experimental features.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;fixed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#fixed&quot; aria-label=&quot;Anchor link for: fixed&quot;&gt;Fixed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;notifications: Exit protocols on handle drop to save up CPU of &lt;code&gt;minimal-relay-chains&lt;&#x2F;code&gt;  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;376&quot;&gt;#376&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;identify: Improve identify message decoding  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;379&quot;&gt;#379&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;crypto&#x2F;noise: Set timeout limits for the noise handshake  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;373&quot;&gt;#373&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;kad: Improve robustness of addresses from the routing table  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;369&quot;&gt;#369&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;kad: Bound kademlia messages to the replication factor  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;371&quot;&gt;#371&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;codec: Decode smaller payloads for identity to None  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;362&quot;&gt;#362&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;added&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#added&quot; aria-label=&quot;Anchor link for: added&quot;&gt;Added&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;bitswap: Add write timeout for sending frames  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;361&quot;&gt;#361&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;notif&#x2F;tests: check test state  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;360&quot;&gt;#360&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;SRLabs: Introduce simple fuzzing harness  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;367&quot;&gt;#367&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;SRLabs: Introduce Fuzzing Harness  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;365&quot;&gt;#365&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#changed&quot; aria-label=&quot;Anchor link for: changed&quot;&gt;Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;features: Move quic related dependencies under feature flag  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;359&quot;&gt;#359&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;tests&#x2F;substrate: Remove outdated substrate specific conformace testing  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;370&quot;&gt;#370&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;ci: Update stable dependencies  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;375&quot;&gt;#375&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump hex-literal from 0.4.1 to 1.0.0  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;381&quot;&gt;#381&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump tokio from 1.44.1 to 1.44.2 in &#x2F;fuzz&#x2F;structure-aware  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;378&quot;&gt;#378&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump Swatinem&#x2F;rust-cache from 2.7.7 to 2.7.8  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;363&quot;&gt;#363&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump tokio from 1.43.0 to 1.43.1  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;368&quot;&gt;#368&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;build(deps): bump openssl from 0.10.70 to 0.10.72  (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;paritytech&#x2F;litep2p&#x2F;pull&#x2F;366&quot;&gt;#366&lt;&#x2F;a&gt;)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.6</title>
          <pubDate>Mon, 12 May 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-05-12-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-05-12-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-05-12-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.36</title>
          <pubDate>Thu, 24 Apr 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-04-24-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-04-24-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-04-24-cpp-libp2p/">&lt;p&gt;Hunter deps cleanup (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;307&quot;&gt;#307&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Use fork of ZLIB when compile on MAC&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Remove unnecessary CMAKE_ARGS for ZLIB configuration&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Try build with hunter where default zlib is updated&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Update qtils version to 0.1.1 and update HunterGate URL and SHA1&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Update HunterGate URL&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Update HunterGate URL&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Update HunterGate URL&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.5</title>
          <pubDate>Mon, 14 Apr 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-04-14-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-04-14-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-04-14-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.35</title>
          <pubDate>Thu, 10 Apr 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-04-10-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-04-10-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-04-10-cpp-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.34</title>
          <pubDate>Thu, 03 Apr 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-04-03-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-04-03-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-04-03-cpp-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of py-libp2p v0.2.4</title>
          <pubDate>Thu, 27 Mar 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-03-27-py-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-03-27-py-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-03-27-py-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.33</title>
          <pubDate>Mon, 24 Mar 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-03-24-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-03-24-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-03-24-cpp-libp2p/">&lt;p&gt;Fix close YamuxedConnection (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;301&quot;&gt;#301&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Keep alive YamuxedConnection during close&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;weak_from_this in adjustExpireTimer&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.2.0</title>
          <pubDate>Thu, 06 Mar 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-03-06-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-03-06-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-03-06-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.32</title>
          <pubDate>Wed, 05 Mar 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-03-05-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-03-05-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-03-05-cpp-libp2p/">&lt;p&gt;Fix dependencies (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;299&quot;&gt;#299&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;Signed-off-by: Dmitriy Khaustov aka xDimon &amp;amp;lt;khaustov.dm@gmail.com&amp;amp;gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.1.14</title>
          <pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-03-01-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-03-01-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-03-01-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing AutoTLS: Bridging the Gap Between libp2p and the Web</title>
          <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/autotls/</link>
          <guid>https://sumanjeet.duckdns.org/blog/autotls/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/autotls/">&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blog.ipfs.tech&#x2F;shipyard-hello-world&#x2F;&quot;&gt;Interplanetary Shipyard&lt;&#x2F;a&gt; is excited to announce &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;registration.libp2p.direct&#x2F;&quot;&gt;AutoTLS&lt;&#x2F;a&gt;, a new service that automates the issuance of Let&#x27;s Encrypt wildcard TLS certificates for libp2p nodes.&lt;&#x2F;p&gt;
&lt;p&gt;This is a major leap for the libp2p ecosystem, as it allows connectivity between browsers and libp2p nodes using Secure WebSockets, opening up a new class of use cases for libp2p that were previously cumbersome.&lt;&#x2F;p&gt;
&lt;p&gt;This blog post explores the use-cases for AutoTLS, challenges of browser-node connectivity, how AutoTLS works, and how it fits into the libp2p project and the browser ecosystem.&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;re interested in trying it out, we have an example with go-libp2p and js-libp2p:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;tree&#x2F;master&#x2F;examples&#x2F;autotls&quot;&gt;AutoTLS example for go-libp2p&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p-example-auto-tls&quot;&gt;AutoTLS example for js-libp2p&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you prefer a turn-key implementation:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.ipfs.tech&#x2F;install&#x2F;command-line&#x2F;&quot;&gt;IPFS Kubo&lt;&#x2F;a&gt; &amp;gt;= 0.33: Opt-in via &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipfs&#x2F;kubo&#x2F;blob&#x2F;master&#x2F;docs&#x2F;config.md#autotlsenabled&quot;&gt;&lt;code&gt;AutoTLS.Enabled&lt;&#x2F;code&gt; configuration flag&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;docs.ipfs.tech&#x2F;install&#x2F;ipfs-desktop&#x2F;&quot;&gt;IPFS Desktop&lt;&#x2F;a&gt; &amp;gt;= 0.41: enabled by default&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;npmjs.com&#x2F;package&#x2F;helia&quot;&gt;Helia&lt;&#x2F;a&gt; &amp;gt;= 5.2.0: enabled by default&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;use-cases-for-autotls&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#use-cases-for-autotls&quot; aria-label=&quot;Anchor link for: use-cases-for-autotls&quot;&gt;Use-cases for AutoTLS&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Browser-node connectivity is foundational to any libp2p based network or application looking to expand its user base, through web-based clients. Since the libp2p ecosystem exhibits a wide range of network topologies, we&#x27;ve identified a few use-cases that benefit from AutoTLS.&lt;&#x2F;p&gt;
&lt;p&gt;The core idea is that AutoTLS enables reliable browser-based clients to connect to libp2p nodes, regardless of the network topology; which improves resilience and opens up a window to more capable browser clients.&lt;&#x2F;p&gt;
&lt;p&gt;Blockchains using libp2p, such as Ethereum, Celestia, and Filecoin, could integrate AutoTLS and improve access to chain state for browser-based &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;ethereum.org&#x2F;en&#x2F;developers&#x2F;docs&#x2F;nodes-and-clients&#x2F;light-clients&#x2F;#why-are-light-clients-important&quot;&gt;light clients&lt;&#x2F;a&gt; and wallets. This would promote client-side transaction and state verification.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;autotls&#x2F;networks-using-libp2p.jpg&quot; alt=&quot;Chains using libp2p&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Though it remains to be seen how practical browser-based light clients will be, we&#x27;re already seeing interest in AutoTLS from the community. For example, AutoTLS has already proven to be instrumental for the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;eigerco&#x2F;lumina&quot;&gt;Celestia Lumina client implementation&lt;&#x2F;a&gt;, a Rust implementation of Celestia&#x27;s data availability node, which compiles to WASM. When &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lumina.rs&#x2F;&quot;&gt;running in a browser&lt;&#x2F;a&gt;, it can reliably connect to more capable bridge and full Celestia nodes with TLS certificates issued by AutoTLS. What&#x27;s more, the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;probelab.io&#x2F;&quot;&gt;ProbeLab team&lt;&#x2F;a&gt; has integrated AutoTLS into &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;probe-lab&#x2F;ants-watch&quot;&gt;Ants Watch&lt;&#x2F;a&gt;, which monitors the Celestia DHT, and already have &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;probelab.io&#x2F;celestia&#x2F;dht&#x2F;2025-02&#x2F;#lightnode-population&quot;&gt;insight into the distribution&lt;&#x2F;a&gt; of browser-based Lumina clients in the network.&lt;&#x2F;p&gt;
&lt;p&gt;Another example, which also served as the initial catalyst for AutoTLS, is to enable direct browser retrieval from IPFS nodes, without needing intermediary gateways. The &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;inbrowser.link&quot;&gt;Service Worker Gateway&lt;&#x2F;a&gt; supports discovery and retrieval from AutoTLS-enabled IPFS nodes.&lt;&#x2F;p&gt;
&lt;p&gt;With that in mind, let&#x27;s explore the challenges of browser-node connectivity.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-is-browser-node-connectivity-hard&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-is-browser-node-connectivity-hard&quot; aria-label=&quot;Anchor link for: why-is-browser-node-connectivity-hard&quot;&gt;Why is browser-node connectivity hard?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Historically, the Web relied solely on unencrypted HTTP as the default transport, undermining user privacy and exposing users to MITM attacks. With the advent of TLS, HTTPS, and automated Certificate Authorities like Let&#x27;s Encrypt, encryption is now the norm. So much so that &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blog.google&#x2F;products&#x2F;chrome&#x2F;milestone-chrome-security-marking-http-not-secure&#x2F;&quot;&gt;Chrome warns users &quot;Not secure&quot;&lt;&#x2F;a&gt; when they&#x27;re visiting a site over an unencrypted HTTP connection, or produce &quot;mixed-content&quot; errors when a page tries to fetch unencrypted subresources.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;autotls&#x2F;computer-says-no.png&quot; alt=&quot;Chrome warning&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;In libp2p, &lt;a href=&quot;&#x2F;docs&#x2F;secure-channels-overview&#x2F;&quot;&gt;all connections are encrypted&lt;&#x2F;a&gt; by default, using either Noise or TLS.&lt;&#x2F;p&gt;
&lt;p&gt;For as long as libp2p has existed, browser-node connectivity has been a challenge. Browsers do not consider libp2p&#x27;s encryption layer for WebSocket connections as part of &quot;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;Security&#x2F;Secure_Contexts&quot;&gt;Secure Context&lt;&#x2F;a&gt;&quot;, leaving us with browser-negotiated TLS encryption as the only viable option.&lt;&#x2F;p&gt;
&lt;p&gt;Up until recently, configuring a libp2p node to be connectable from browsers required additional effort, as node operators had to own and manually configure a domain name and obtain a TLS certificate signed by a certificate authority (CA).&lt;&#x2F;p&gt;
&lt;p&gt;Recent investments in &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt; and &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#webrtc&quot;&gt;WebRTC&lt;&#x2F;a&gt; helped circumvent this problem, by removing the need for CA-signed TLS certificate, but they have their own drawbacks outlined below.&lt;&#x2F;p&gt;
&lt;p&gt;Experience has shown that WebSockets are still the most common and reliable way to establish a bidirectional streaming connection from a browser. That&#x27;s not to say that WebSockets are perfect. Most notably, in libp2p, &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#websocket&quot;&gt;Secure WebSockets require 5 round trips to establish a connection&lt;&#x2F;a&gt;, no support for backpressure on streams (except for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.chrome.com&#x2F;docs&#x2F;capabilities&#x2F;web-apis&#x2F;websocketstream&quot;&gt;&lt;code&gt;WebSocketStream&lt;&#x2F;code&gt; in Chrome&lt;&#x2F;a&gt;), and Secure WebSockets in libp2p require &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;pull&#x2F;625&quot;&gt;double encryption&lt;&#x2F;a&gt;, which is inefficient.&lt;&#x2F;p&gt;
&lt;p&gt;By comparison, &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#webtransport&quot;&gt;WebTransport requires 3 round trips&lt;&#x2F;a&gt;, which is why we believe WebTransport is well positioned to be the recommended transport for browser-node connectivity, alas, only once WebTransport is stable and widely supported by browsers.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-autotls-works&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-autotls-works&quot; aria-label=&quot;Anchor link for: how-autotls-works&quot;&gt;How AutoTLS works&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;With AutoTLS, the end result is:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Your libp2p node, identified by a &lt;a href=&quot;&#x2F;docs&#x2F;peers&#x2F;#peer-id&quot;&gt;PeerID&lt;&#x2F;a&gt;, has a wild card certificate for &lt;code&gt;*.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;The authoritative DNS server of &lt;code&gt;libp2p.direct&lt;&#x2F;code&gt; (part of the AutoTLS service) maps DNS names to your libp2p node&#x27;s IP addresses statelessly.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;&#x2F;strong&gt; &lt;code&gt;&amp;lt;PeerID&amp;gt;&lt;&#x2F;code&gt; is &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;cid.ipfs.tech&#x2F;#k51qzi5uqu5dh72mdzh50ohq411bo2tzdcdirjw0597vujl9w4hmkn4r8550r0&quot;&gt;base36 encoded&lt;&#x2F;a&gt; to keep the DNS label length under 63 characters (&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;tools.ietf.org&#x2F;html&#x2F;rfc1034#page-7&quot;&gt;RFC 1034&lt;&#x2F;a&gt;).&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;With that in mind, let&#x27;s track back how AutoTLS works starting with Let&#x27;s Encrypt and ACME.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;let-s-encrypt-and-acme&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#let-s-encrypt-and-acme&quot; aria-label=&quot;Anchor link for: let-s-encrypt-and-acme&quot;&gt;Let&#x27;s Encrypt and ACME&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Let&#x27;s Encrypt is a free, automated, and open certificate authority (CA) service. To obtain a certificate, you need to prove that you control the domain name using a protocol called &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;letsencrypt.org&#x2F;how-it-works&#x2F;&quot;&gt;ACME&lt;&#x2F;a&gt;, which defines a set of challenges that you need to pass to prove that you control the domain name.&lt;&#x2F;p&gt;
&lt;p&gt;For example, to obtain a wildcard certificate for &lt;code&gt;*.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt;, you need to prove that you control the domain name by setting a TXT record at &lt;code&gt;_acme-challenge.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt; with a value that matches the ACME challenge.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;autotls-components&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#autotls-components&quot; aria-label=&quot;Anchor link for: autotls-components&quot;&gt;AutoTLS components&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;AutoTLS has two main components:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;registration.libp2p.direct&lt;&#x2F;code&gt;: An ACME DNS-01 challenge broker that authenticates PeerIDs, verifies your node is reachable on the address you provided, and sets the &lt;code&gt;_acme-challenge.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt; TXT record for the ACME challenge.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;libp2p.direct&lt;&#x2F;code&gt;: Authoritative DNS server that maps DNS names to the libp2p node&#x27;s IP addresses &lt;strong&gt;statelessly&lt;&#x2F;strong&gt; (without needing to persist any state about the node&#x27;s IP addresses).&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;autotls-dns-01-challenge-broker&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#autotls-dns-01-challenge-broker&quot; aria-label=&quot;Anchor link for: autotls-dns-01-challenge-broker&quot;&gt;AutoTLS DNS-01 challenge broker&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;To kick-start the AutoTLS process, your libp2p node requests a TLS certificate for &lt;code&gt;*.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt; from Let&#x27;s Encrypt. To which Let&#x27;s Encrypt responds with a challenge to prove it controls that domain.&lt;&#x2F;li&gt;
&lt;li&gt;Your libp2p node then calls the AutoTLS DNS-01 challenge broker (&lt;code&gt;registration.libp2p.direct&lt;&#x2F;code&gt;) with the ACME challenge token and your libp2p node&#x27;s multiaddrs.&lt;&#x2F;li&gt;
&lt;li&gt;The DNS-01 challenge broker authenticates your PeerID, verifies your network reachability and sets the TXT DNS record for the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;letsencrypt.org&#x2F;docs&#x2F;challenge-types&#x2F;#dns-01-challenge&quot;&gt;ACME challenge&lt;&#x2F;a&gt; at &lt;code&gt;_acme-challenge.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Once that TXT DNS record is set, your node notifies Let&#x27;s Encrypt that the challenge is complete, validates the challenge, and issues a TLS certificate for &lt;code&gt;*.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;The following diagram illustrates the AutoTLS DNS-01 challenge broker in action:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;autotls&#x2F;auto-tls-1.svg&quot; alt=&quot;AutoTLS&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;autotls-dns-server&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#autotls-dns-server&quot; aria-label=&quot;Anchor link for: autotls-dns-server&quot;&gt;AutoTLS DNS server&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The second part of the AutoTLS service is the authoritative DNS server for &lt;code&gt;libp2p.direct&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Its main role is to map DNS names to the libp2p node&#x27;s IP addresses statelessly. For example, &lt;code&gt;203-0-113-1.&amp;lt;peerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt; resolves to the A record with the IP &lt;code&gt;203.0.113.1&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The trick here is that the &lt;strong&gt;IP address is encoded in the DNS name&lt;&#x2F;strong&gt;. Dots are substituted with dashes to ensure the TLS certificate remains valid. The benefit of this approach is that whenever a libp2p node&#x27;s IP address changes, it&#x27;s resolvable without coordination. This keeps the DNS server stateless and simple to operate.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;autotls&#x2F;auto-tls-2.svg&quot; alt=&quot;AutoTLS part 2&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;bringing-it-all-together&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#bringing-it-all-together&quot; aria-label=&quot;Anchor link for: bringing-it-all-together&quot;&gt;Bringing it all together&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Once a libp2p node has a TLS certificate for &lt;code&gt;*.&amp;lt;PeerID&amp;gt;.libp2p.direct&lt;&#x2F;code&gt;, it will typically announce a matching Secure WebSocket address via the identify protocol.&lt;&#x2F;p&gt;
&lt;p&gt;The multiaddr for a libp2p node with &lt;code&gt;libp2p.direct&lt;&#x2F;code&gt; TLS certificate looks like this (&lt;code&gt;&#x2F;p2p&#x2F;PeerID&lt;&#x2F;code&gt; suffix omitted for brevity):&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&#x2F;ip4&#x2F;145.40.89.101&#x2F;tcp&#x2F;4002&#x2F;tls&#x2F;sni&#x2F;145-40-89-101.k51qzi5uqu5dj0wvrbb8keygfyxe2v0fi1qbqz4pl3zzozle7oaqhf97mqazo4.libp2p.direct&#x2F;ws&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;&#x2F;strong&gt; Another valid shorter representation of the multiaddr is &lt;code&gt;&#x2F;dns4&#x2F;145-40-89-101.k51qzi5uqu5dj0wvrbb8keygfyxe2v0fi1qbqz4pl3zzozle7oaqhf97mqazo4.libp2p.direct&#x2F;tcp&#x2F;4002&#x2F;tls&#x2F;ws&lt;&#x2F;code&gt;, but it requires a DNS lookup to resolve the IP address. In theory, avoiding the DNS lookup is a performance win, but in practice, browsers don&#x27;t let you manually set the SNI hostname for a WebSocket connection, so the browser WebSocket API requires the DNS name for the Secure WebSocket connection.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;This multiaddr can be dialed from any browser with &lt;code&gt;js-libp2p&lt;&#x2F;code&gt;. You can see this in action with the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;helia-identify.on.fleek.co&#x2F;?peer-or-maddr=%2Fdns4%2F145-40-89-101.k51qzi5uqu5dj0wvrbb8keygfyxe2v0fi1qbqz4pl3zzozle7oaqhf97mqazo4.libp2p.direct%2Ftcp%2F4001%2Ftls%2Fws%2Fp2p%2F12D3KooWHVXoJnv2ifmr9K6LWwJPXxkfvzZRHzjiTZMvybeTnwPy&quot;&gt;Helia Identify Tool&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-about-other-browser-transports&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-about-other-browser-transports&quot; aria-label=&quot;Anchor link for: what-about-other-browser-transports&quot;&gt;What about other browser transports?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Solving the problem of browser-node connectivity has been a goal for the libp2p project. In recent years, libp2p introduced support for both &lt;a href=&quot;&#x2F;blog&#x2F;webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt; and &lt;a href=&quot;&#x2F;blog&#x2F;libp2p-webrtc-browser-to-server&quot;&gt;WebRTC&lt;&#x2F;a&gt; to solve this problem with varying degrees of success.&lt;&#x2F;p&gt;
&lt;p&gt;While these transports have their own strengths and weaknesses, they all share the same goal: enabling browser-node connectivity.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webtransport&quot; aria-label=&quot;Anchor link for: webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;&#x2F;blog&#x2F;webtransport&quot;&gt;Two years ago, the libp2p project bet on the promise of WebTransport&lt;&#x2F;a&gt; and it&#x27;s been a bumpy road.&lt;&#x2F;p&gt;
&lt;p&gt;WebTransport has a lot of promise. It&#x27;s a modern browser protocol based on QUIC (which we already heavily rely on in libp2p), which allows bidirectional streaming communication with many modern improvements over WebSockets. Most notably:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;3 round trips to establish a connection.&lt;&#x2F;li&gt;
&lt;li&gt;Support of authentication using certificate hashes eliminates the need for CA-signed certificates and a domain.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;However, the WebTransport specification is still in draft, and browsers have a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;2572&quot;&gt;number of open bugs and issues&lt;&#x2F;a&gt;, that we&#x27;ve been working with the browser vendors to address. As such, browser compatibility breaks as soon as the interoperability target changes.&lt;&#x2F;p&gt;
&lt;p&gt;While we still believe in the longer term promise of WebTransport, we&#x27;ve reoriented our immediate priorities to WebRTC-Direct (which is now available) and Secure WebSockets with AutoTLS. Nonetheless, we continue to work with browser vendors and standard bodies to get WebTransport in libp2p to a stable and interoperable state.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;webrtc&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webrtc&quot; aria-label=&quot;Anchor link for: webrtc&quot;&gt;WebRTC&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;blob&#x2F;master&#x2F;webrtc&#x2F;webrtc-direct.md&quot;&gt;WebRTC-Direct&lt;&#x2F;a&gt; is a libp2p approach using WebRTC to allow browser-to-node communication. It&#x27;s unique in that it doesn&#x27;t require &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Session_Description_Protocol&quot;&gt;SDP&lt;&#x2F;a&gt; signaling, and saves round trips by constructing the SDP from the information in the webrtc-direct multiaddr (a technique called &quot;SDP munging&quot;). Moreover, WebRTC doesn&#x27;t require a domain name and CA-signed TLS certificate.&lt;&#x2F;p&gt;
&lt;p&gt;However, there are a number of drawbacks to WebRTC:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;WebRTC is not supported in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;Service_Worker_API&quot;&gt;Service Workers&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;issues.chromium.org&#x2F;issues&#x2F;41378764&quot;&gt;Chrome limits the number of WebRTC connections per window to 500&lt;&#x2F;a&gt; after which it will prevent establishing new connections.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;origins-vs-peerids&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#origins-vs-peerids&quot; aria-label=&quot;Anchor link for: origins-vs-peerids&quot;&gt;Origins vs. PeerIDs&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The Web security model is anchored to domain names (origins). Moreover, browsers require TLS certificates to be signed by a certificate authority (CA) to ensure that the entity requesting a certificate owns the domain name. The role of certificate authorities is to verify that the entity requesting a certificate owns the domain name.&lt;&#x2F;p&gt;
&lt;p&gt;On the other hand, libp2p&#x27;s security model is anchored to PeerIDs: unique identifiers derived from public keys generated by the libp2p node. Unlike CA-signed TLS certificates, PeerIDs can permissionlessly be generated.&lt;&#x2F;p&gt;
&lt;p&gt;The AutoTLS broker instance at &lt;code&gt;libp2p.direct&lt;&#x2F;code&gt; bridges both worlds while complying with their respective security requirements. The domain was added to https:&#x2F;&#x2F;publicsuffix.org&#x2F; and functions as an &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Glossary&#x2F;eTLD&quot;&gt;eTLD&lt;&#x2F;a&gt;, granting each peer its own Origin at &lt;code&gt;{PeerID}.libp2p.direct&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The AutoTLS registration API ensures that only the owner of the private key for a PeerID can request a TLS certificate. Beyond that, the API is used quarterly upon certificate renewal. Secrets never leave the end user&#x27;s machine. And each end user is responsible for the security of their certificates, and revocation is limited to peer-specific subdomains.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;working-towards-a-better-web-platform&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#working-towards-a-better-web-platform&quot; aria-label=&quot;Anchor link for: working-towards-a-better-web-platform&quot;&gt;Working towards a better Web platform&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;A key theme running through this initiative is the challenge of advancing the Web platform to be both more secure and more open. This includes working with browser vendors and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.igalia.com&#x2F;&quot;&gt;Igalia&lt;&#x2F;a&gt; towards the resolution of various issues with WebTransport, WebRTC, etc.&lt;&#x2F;p&gt;
&lt;p&gt;If you&#x27;d like to support our work, please reach out to us at &lt;code&gt;contact [AT] ipshipyard.com&lt;&#x2F;code&gt;, and check out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipfs&#x2F;in-web-browsers&quot;&gt;in-web-browsers&lt;&#x2F;a&gt; repository where we&#x27;re tracking these efforts.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;when-not-to-use-autotls&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#when-not-to-use-autotls&quot; aria-label=&quot;Anchor link for: when-not-to-use-autotls&quot;&gt;When &lt;em&gt;Not&lt;&#x2F;em&gt; to use AutoTLS&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;AutoTLS is designed for production use with Web browsers and should not be used in:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Testing&#x2F;Development&lt;&#x2F;strong&gt;: Unnecessary for local or non-production setups.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;CI Systems&lt;&#x2F;strong&gt;: Temporary instances waste certificates and may hit rate limits.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Non-Public Nodes&lt;&#x2F;strong&gt;: If your node is not publicly dialable (e.g., behind a firewall without port forwarding or UPnP) it won&#x27;t benefit from &lt;code&gt;&#x2F;tls&#x2F;ws&lt;&#x2F;code&gt; transport.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Private Networks (PNETs)&lt;&#x2F;strong&gt;: AutoTLS is not compatible with libp2p PNET.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Our long-standing goal at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blog.ipfs.tech&#x2F;shipyard-hello-world&#x2F;&quot;&gt;Interplanetary Shipyard&lt;&#x2F;a&gt; is building a more resilient and participatory internet through decentralization, and we believe that the Web platform plays an important role in this. We built AutoTLS and run &lt;code&gt;registration.libp2p.direct&lt;&#x2F;code&gt; as a public good service for the libp2p ecosystem. Admittedly, it may seem paradoxical that a centralized public good service like AutoTLS could help the Web become more decentralized. But the reality is that AutoTLS is a necessary step to this end, as well as being lean, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipshipyard&#x2F;p2p-forge&quot;&gt;open source&lt;&#x2F;a&gt;, and built on open standards.&lt;&#x2F;p&gt;
&lt;p&gt;In the long term, WebTransport with self-signed certificates is positioned to become the recommended transport for browser-node connectivity. However, until &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;issues&#x2F;2572&quot;&gt;WebTransport is production ready&lt;&#x2F;a&gt;, AutoTLS and Secure WebSockets are the best way to enable browser-node connectivity.&lt;&#x2F;p&gt;
&lt;p&gt;AutoTLS is an opt-in feature and can be enabled in:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipfs&#x2F;kubo&#x2F;releases&#x2F;tag&#x2F;v0.33.0&quot;&gt;Kubo&lt;&#x2F;a&gt; &amp;gt;= 0.33.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipfs&#x2F;ipfs-desktop&#x2F;releases&#x2F;tag&#x2F;v0.41.0&quot;&gt;IPFS Desktop&lt;&#x2F;a&gt; &amp;gt;= 0.41.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipfs&#x2F;helia&#x2F;releases&#x2F;tag&#x2F;helia-v5.2.0&quot;&gt;Helia&lt;&#x2F;a&gt; &amp;gt;= 5.2.0.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.npmjs.com&#x2F;package&#x2F;@ipshipyard&#x2F;libp2p-auto-tls&quot;&gt;js-libp2p&lt;&#x2F;a&gt; for Node.js.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ipshipyard&#x2F;p2p-forge&#x2F;tree&#x2F;main&#x2F;client&quot;&gt;go-libp2p&lt;&#x2F;a&gt;.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;To see code examples of how to use AutoTLS with js-libp2p and go-libp2p, check out the following repositories:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;GO: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;tree&#x2F;master&#x2F;examples&#x2F;autotls&quot;&gt;go-libp2p&#x2F;examples&#x2F;autotls&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;JS: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p-example-auto-tls&quot;&gt;js-libp2p-example-auto-tls&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Try it out and let us know what you think!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.31</title>
          <pubDate>Thu, 13 Feb 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-02-13-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-02-13-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-02-13-cpp-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.30</title>
          <pubDate>Wed, 12 Feb 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-02-12-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-02-12-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-02-12-cpp-libp2p/">&lt;p&gt;Fix closeOnError: call cb() before close() (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;293&quot;&gt;#293&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;closeOnError: call cb() before close()&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Signed-off-by: Igor Egorov &amp;amp;lt;igor@qdrvm.io&amp;amp;gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Countable yamux and yamux read buffer&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Count yamux metrics forcefully&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Revert &quot;Count yamux metrics forcefully&quot;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This reverts commit &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;commit&#x2F;88cdeeda9554be05ff4aef6546fc3e716fc36001&quot;&gt;&lt;tt&gt;88cdeed&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Revert &quot;Countable yamux and yamux read buffer&quot;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This reverts commit &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;commit&#x2F;e171915acf19121bff668cf7904b14bf5c8eb55b&quot;&gt;&lt;tt&gt;e171915&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;Signed-off-by: Igor Egorov &amp;amp;lt;igor@qdrvm.io&amp;amp;gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.29</title>
          <pubDate>Thu, 23 Jan 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-01-23-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-01-23-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-01-23-cpp-libp2p/">&lt;p&gt;boost 1.87.0 (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;290&quot;&gt;#290&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;Signed-off-by: turuslan &amp;amp;lt;turuslan.devbox@gmail.com&amp;amp;gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of rust-libp2p v0.55</title>
          <pubDate>Wed, 15 Jan 2025 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2025-01-15-rust-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2025-01-15-rust-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2025-01-15-rust-libp2p/">&lt;p&gt;&lt;code&gt;rust-libp2p v0.55&lt;&#x2F;code&gt; has just shipped.&lt;&#x2F;p&gt;
&lt;p&gt;See individual &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;blob&#x2F;libp2p-v0.55.0&#x2F;CHANGELOG.md&quot;&gt;changelogs&lt;&#x2F;a&gt; for details.&lt;&#x2F;p&gt;
&lt;p&gt;Thanks to everyone who contributed to it! ❤️&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.2.2</title>
          <pubDate>Mon, 09 Dec 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-12-09-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-12-09-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-12-09-jvm-libp2p/">&lt;p&gt;This is a release fixing the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;nvd.nist.gov&#x2F;vuln&#x2F;detail&#x2F;CVE-2024-47535&quot;&gt;CVE-2024-47535&lt;&#x2F;a&gt; vulnerability as well as a fix related to direct peers handling.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Gossip: direct peers handling fix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;tbenr&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbenr&quot;&gt;@tbenr&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2632777102&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;398&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;398&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;398&quot;&gt;#398&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;dependency sweep by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;tbenr&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbenr&quot;&gt;@tbenr&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2634067991&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;399&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;399&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;399&quot;&gt;#399&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of cpp-libp2p v0.1.28</title>
          <pubDate>Fri, 29 Nov 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-11-29-cpp-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-11-29-cpp-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-11-29-cpp-libp2p/">&lt;p&gt;fix double read, simplify session (&lt;a class=&quot;issue-link js-issue-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;cpp-libp2p&#x2F;pull&#x2F;282&quot;&gt;#282&lt;&#x2F;a&gt;)&lt;&#x2F;p&gt;
&lt;p&gt;Signed-off-by: turuslan &amp;amp;lt;turuslan.devbox@gmail.com&amp;amp;gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.2.1</title>
          <pubDate>Thu, 24 Oct 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-10-24-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-10-24-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-10-24-jvm-libp2p/">&lt;p&gt;This release improves reliability of message publishing over gossip, improves &lt;code&gt;DONTWANT&lt;&#x2F;code&gt; control message usage.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;WARNING:&lt;&#x2F;strong&gt; This release introduces a breaking change in &lt;code&gt;GossipParams&lt;&#x2F;code&gt; by replacing &lt;code&gt;floodPublish&lt;&#x2F;code&gt; param with &lt;code&gt;floodPublishMaxMessageSizeThreshold&lt;&#x2F;code&gt;, which allow to configure flood publish behaviour based on the message size.&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;floodPublish = false&lt;&#x2F;code&gt; can be configured as &lt;code&gt;refloodPublishMaxMessageSizeThreshold = NEVER_FLOOD_PUBLISH&lt;&#x2F;code&gt; (0)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;floodPublish = true&lt;&#x2F;code&gt; can be configured as &lt;code&gt;refloodPublishMaxMessageSizeThreshold = ALWAYS_FLOOD_PUBLISH&lt;&#x2F;code&gt; (Int.MAX_VALUE)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Don&#x27;t throw &lt;code&gt;NoPeersForOutboundMessageException&lt;&#x2F;code&gt; if peers &lt;code&gt;DONTWANT&lt;&#x2F;code&gt; message by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2590375142&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;385&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;385&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;385&quot;&gt;#385&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Send &lt;code&gt;IDONTWANT&lt;&#x2F;code&gt; prior to publish by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2596223520&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;386&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;386&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;386&quot;&gt;#386&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;[BREAKING]&lt;&#x2F;strong&gt; Replace &lt;code&gt;floodPublish&lt;&#x2F;code&gt; param with &lt;code&gt;floodPublishMaxMessageSizeThreshold&lt;&#x2F;code&gt;  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;tbenr&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbenr&quot;&gt;@tbenr&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2602123345&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;391&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;391&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;391&quot;&gt;#391&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Logging and other small warnings removal by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;tbenr&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbenr&quot;&gt;@tbenr&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2602938826&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;392&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;392&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;392&quot;&gt;#392&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Gossip: more reliable publishing   by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2597802668&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;387&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;387&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;387&quot;&gt;#387&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;tbenr&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;tbenr&quot;&gt;@tbenr&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2602123345&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;391&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;391&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;391&quot;&gt;#391&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;compare&#x2F;1.2.0...1.2.1&quot;&gt;&lt;tt&gt;1.2.0...1.2.1&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.2.0</title>
          <pubDate>Thu, 26 Sep 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-09-26-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-09-26-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-09-26-jvm-libp2p/">&lt;p&gt;This release adds support for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;blob&#x2F;master&#x2F;pubsub&#x2F;gossipsub&#x2F;gossipsub-v1.2.md&quot;&gt;gossipsub v1.2&lt;&#x2F;a&gt; (more specifically support for IDONTWANT). It also contains a fix for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;avd.aquasec.com&#x2F;nvd&#x2F;2024&#x2F;cve-2024-7254&#x2F;&quot;&gt;CVE-2024-7254&lt;&#x2F;a&gt; as well as other fixes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;More mdns fixes by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2310534479&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;368&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;368&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;368&quot;&gt;#368&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;chore: Update funding.json by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;p-shahi&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;p-shahi&quot;&gt;@p-shahi&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2506433037&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;372&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;372&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;372&quot;&gt;#372&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Updating com.google.protobuf to 3.25.5 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lucassaldanha&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lucassaldanha&quot;&gt;@lucassaldanha&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2537399598&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;373&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;373&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;373&quot;&gt;#373&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix Gossip simulator issue  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2547937727&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;375&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;375&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;375&quot;&gt;#375&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[GossipSub 1.2] Add IDONTWANT support by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2543018702&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;374&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;374&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;374&quot;&gt;#374&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Dependencies sweep by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2549946129&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;376&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;376&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;376&quot;&gt;#376&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;p-shahi&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;p-shahi&quot;&gt;@p-shahi&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2506433037&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;372&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;372&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;372&quot;&gt;#372&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;lucassaldanha&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;lucassaldanha&quot;&gt;@lucassaldanha&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2537399598&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;373&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;373&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;373&quot;&gt;#373&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Full Changelog&lt;&#x2F;strong&gt;: &lt;a class=&quot;commit-link&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;compare&#x2F;1.1.1...1.2.0&quot;&gt;&lt;tt&gt;1.1.1...1.2.0&lt;&#x2F;tt&gt;&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.1.1</title>
          <pubDate>Wed, 22 May 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-05-22-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-05-22-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-05-22-jvm-libp2p/">&lt;p&gt;This release contains a change to set &lt;code&gt;topicID&lt;&#x2F;code&gt; on outbound &lt;code&gt;IHAVE&lt;&#x2F;code&gt; messages as well as ignore unknown topics on inbound &lt;code&gt;IHAVE&lt;&#x2F;code&gt; messages for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;pubsub&#x2F;gossipsub&quot;&gt;GossipSub&lt;&#x2F;a&gt;. It also adds a beta support for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;autonat&quot;&gt;Autonat&lt;&#x2F;a&gt; as well as other fixes.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;chore(cfg): update new issue templates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;dhuseby&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dhuseby&quot;&gt;@dhuseby&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2094765243&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;347&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;347&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;347&quot;&gt;#347&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Implement autonat protocol by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2096216338&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;349&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;349&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;349&quot;&gt;#349&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Update netty by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2211918737&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;355&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;355&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;355&quot;&gt;#355&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;update dokka by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2212887458&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;357&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;357&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;357&quot;&gt;#357&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;AbstractRouter.getPeerTopics() may throw ConcurrentModificationException by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2280520800&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;362&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;362&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;362&quot;&gt;#362&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix remotePubKey in Noise secure Session by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2297526587&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;364&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;364&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;364&quot;&gt;#364&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix mdns when listening with ipv6 wildcard (which includes ipv4) by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2306755919&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;366&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;366&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;366&quot;&gt;#366&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Set topicID on outbound IHAVE and ignore inbound IHAVE for unknown topic by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2298042779&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;365&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;365&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;365&quot;&gt;#365&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;dhuseby&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;dhuseby&quot;&gt;@dhuseby&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2094765243&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;347&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;347&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;347&quot;&gt;#347&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Introduction to libp2p Community Meetings</title>
          <pubDate>Mon, 29 Apr 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2024-04-29-libp2p-meetings/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2024-04-29-libp2p-meetings/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2024-04-29-libp2p-meetings/">&lt;p&gt;The libp2p Community is growing a little bit every day since the creation of the libp2p Foundation and the independence of the libp2p Project back in January of 2024.&lt;&#x2F;p&gt;
&lt;p&gt;One such improvement was the centralization of the libp2p Community Calendar to one location: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lu.ma&#x2F;libp2p&quot;&gt;lu.ma&#x2F;libp2p&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;This blog post covers all of the current community meetings you will find on the calendar as well as outline how you can organize your own and get it promoted alongside the other libp2p meetings.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-current-calendar&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-current-calendar&quot; aria-label=&quot;Anchor link for: the-current-calendar&quot;&gt;The Current Calendar&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Check out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lu.ma&#x2F;libp2p&quot;&gt;libp2p community calendar&lt;&#x2F;a&gt; and add it to your calendar to stay up to date with all the meetings.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;starting-a-new-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#starting-a-new-meeting&quot; aria-label=&quot;Anchor link for: starting-a-new-meeting&quot;&gt;Starting a New Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The libp2p Community operates on a &quot;2 + you&quot; rule for meetings. If you and two other people would like to start a meeting, let me know and I will help you organize it, list it on the libp2p calendar, announce it on our social media feeds and all of our chat channels.&lt;&#x2F;p&gt;
&lt;p&gt;Find me (@dhuseby) on any of our &lt;a href=&quot;&#x2F;get-involved&#x2F;&quot;&gt;chat rooms&lt;&#x2F;a&gt; and let me know so I can help get it organized.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;current-meetings&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#current-meetings&quot; aria-label=&quot;Anchor link for: current-meetings&quot;&gt;Current Meetings&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;libp2p-community-call&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#libp2p-community-call&quot; aria-label=&quot;Anchor link for: libp2p-community-call&quot;&gt;libp2p Community Call&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This is our main community-wide meeting where we discuss project updates, upcoming events, and community news.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;go-libp2p-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#go-libp2p-meeting&quot; aria-label=&quot;Anchor link for: go-libp2p-meeting&quot;&gt;go-libp2p Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Regular meetings for the Go implementation of libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;rust-libp2p-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#rust-libp2p-meeting&quot; aria-label=&quot;Anchor link for: rust-libp2p-meeting&quot;&gt;rust-libp2p Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Regular meetings for the Rust implementation of libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;nim-libp2p-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#nim-libp2p-meeting&quot; aria-label=&quot;Anchor link for: nim-libp2p-meeting&quot;&gt;nim-libp2p Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Regular meetings for the Nim implementation of libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;js-libp2p-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#js-libp2p-meeting&quot; aria-label=&quot;Anchor link for: js-libp2p-meeting&quot;&gt;js-libp2p Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Regular meetings for the JavaScript implementation of libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;libp2p-specifications-meeting&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#libp2p-specifications-meeting&quot; aria-label=&quot;Anchor link for: libp2p-specifications-meeting&quot;&gt;libp2p Specifications Meeting&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Meetings to discuss and develop libp2p specifications.&lt;&#x2F;p&gt;
&lt;p&gt;Check the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lu.ma&#x2F;libp2p&quot;&gt;calendar&lt;&#x2F;a&gt; for specific times and dates!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing libp2p-rPGF-1, the first libp2p project RetroPGF Round!</title>
          <pubDate>Mon, 08 Apr 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2024-04-08-libp2p-rpgf/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2024-04-08-libp2p-rpgf/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2024-04-08-libp2p-rpgf/">&lt;p&gt;Today, the libp2p project is excited to announce the &lt;strong&gt;first ever&lt;&#x2F;strong&gt; libp2p retroactive public goods funding round, libp2p-rPGF-1!&lt;&#x2F;p&gt;
&lt;p&gt;The libp2p project is partnering with Gitcoin to retroactively award $125,000 USD worth of OP, recognize impact, and further empower contributors to libp2p.&lt;&#x2F;p&gt;
&lt;p&gt;libp2p will be using a portion of its Optimism rPGF round 3 rewards to contribute back to the broader ecosystem!&lt;&#x2F;p&gt;
&lt;p&gt;libp2p is a public good which powers much of the decentralized web, including projects like Ethereum, Filecoin, Optimism, Polkadot, and more! Moreover, libp2p&#x27;s success as a project is the result of a vast panoply of communities, collaborators, and organizations building together.&lt;&#x2F;p&gt;
&lt;p&gt;However, these efforts are often unrecognized and unrewarded since markets can fail to adequately fund public goods. By embracing RetroPGF, libp2p seeks to bridge that funding gap.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-process&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-process&quot; aria-label=&quot;Anchor link for: the-process&quot;&gt;The Process&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The rounds follow the Optimism template:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Badgeholders selection&lt;&#x2F;li&gt;
&lt;li&gt;Nominations&#x2F;Application submissions&lt;&#x2F;li&gt;
&lt;li&gt;Voting by badgeholders&lt;&#x2F;li&gt;
&lt;li&gt;Publish voting results&lt;&#x2F;li&gt;
&lt;li&gt;Distribute rewards&#x2F;funding&lt;&#x2F;li&gt;
&lt;li&gt;Retrospective to improve future rounds&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;categories&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#categories&quot; aria-label=&quot;Anchor link for: categories&quot;&gt;Categories&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Anyone can nominate a project that has achieved impact in the past 12 months in one of the following categories:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Software &amp;amp; Dependencies&lt;&#x2F;li&gt;
&lt;li&gt;Infrastructure, Tooling, &amp;amp; Utilities&lt;&#x2F;li&gt;
&lt;li&gt;Education, Outreach, and Applications&lt;&#x2F;li&gt;
&lt;li&gt;Research &amp;amp; Development&lt;&#x2F;li&gt;
&lt;li&gt;Other&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This round aims to disburse $125,000 USD worth of OP, with plans to grow in the future.&lt;&#x2F;p&gt;
&lt;p&gt;We would like to thank the participants &amp;amp; sponsors for pushing the ecosystem forward and helping bootstrap public goods funding into the libp2p project!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>libp2p Day at ETHDenver 2024 Recap</title>
          <pubDate>Thu, 14 Mar 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2024-libp2p-day-ethdenver-recap/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2024-libp2p-day-ethdenver-recap/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2024-libp2p-day-ethdenver-recap/">&lt;p&gt;Last month on February 29th, 2024, the libp2p community came together in Denver, Colorado to hold the first libp2p Day in 2024 alongside the ETHDenver conference.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;swot-analysis&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#swot-analysis&quot; aria-label=&quot;Anchor link for: swot-analysis&quot;&gt;SWOT Analysis&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;At the end of the day we had our first &quot;Strengths, Weaknesses, Opportunities and Threats&quot; (SWOT) session of 2024. The highlights:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;Strengths&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Our community has expanded to include at least 5 implementations used in production&lt;&#x2F;li&gt;
&lt;li&gt;Several independent communities based around the different implementations&lt;&#x2F;li&gt;
&lt;li&gt;There is some funding to sustain the project going forward&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Weaknesses&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Learning libp2p is still somewhat difficult&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Opportunities&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Focus funding on creation of new learning materials&lt;&#x2F;li&gt;
&lt;li&gt;Make libp2p into the go-to library for distributed systems researchers&lt;&#x2F;li&gt;
&lt;li&gt;Focus on mobile optimization&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;Threats&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Continued funding is always going to be a threat to the health of the community&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;talks&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#talks&quot; aria-label=&quot;Anchor link for: talks&quot;&gt;Talks&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We had a great event with 12 different sessions focusing on topics such as public goods funding, probing p2p networks, synchronization protocols in blockchains, designing peer-to-peer social networks and others.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;highlighted-talks&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#highlighted-talks&quot; aria-label=&quot;Anchor link for: highlighted-talks&quot;&gt;Highlighted Talks&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;funding-and-project-update-by-juan-benet&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#funding-and-project-update-by-juan-benet&quot; aria-label=&quot;Anchor link for: funding-and-project-update-by-juan-benet&quot;&gt;Funding and Project update by Juan Benet&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;6-X1wcygmsI&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;revolutionizing-data-governance-with-libp2p-by-techieteee&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#revolutionizing-data-governance-with-libp2p-by-techieteee&quot; aria-label=&quot;Anchor link for: revolutionizing-data-governance-with-libp2p-by-techieteee&quot;&gt;Revolutionizing Data Governance with libp2p by TechieTeee&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;BBLRX6AkMOs&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;probing-libp2p-networks-with-filecoin-station-by-miroslav-bajtos&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#probing-libp2p-networks-with-filecoin-station-by-miroslav-bajtos&quot; aria-label=&quot;Anchor link for: probing-libp2p-networks-with-filecoin-station-by-miroslav-bajtos&quot;&gt;Probing libp2p Networks with Filecoin Station by Miroslav Bajtoš&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;iMWeMq1UwqE&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;programming-peer-to-peer-scenarios-with-aqua&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#programming-peer-to-peer-scenarios-with-aqua&quot; aria-label=&quot;Anchor link for: programming-peer-to-peer-scenarios-with-aqua&quot;&gt;Programming Peer-to-Peer Scenarios with Aqua&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;jsqEM6MuUKI&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h4 id=&quot;gitcoin-and-open-source-funding-mechanism-by-sov-from-gitcoin&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#gitcoin-and-open-source-funding-mechanism-by-sov-from-gitcoin&quot; aria-label=&quot;Anchor link for: gitcoin-and-open-source-funding-mechanism-by-sov-from-gitcoin&quot;&gt;Gitcoin and Open Source Funding Mechanism by Sov from Gitcoin&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;3XIoD6X-n-s&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h3 id=&quot;full-playlist&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#full-playlist&quot; aria-label=&quot;Anchor link for: full-playlist&quot;&gt;Full Playlist&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Watch the full playlist of talks from libp2p Day at ETHDenver 2024 on &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLX9e-uG608s8gXfpFi9fbx51RmYtmARSt&quot;&gt;YouTube&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>rust-libp2p in the Browser with WebRTC!</title>
          <pubDate>Wed, 21 Feb 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/rust-libp2p-browser-webrtc/</link>
          <guid>https://sumanjeet.duckdns.org/blog/rust-libp2p-browser-webrtc/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/rust-libp2p-browser-webrtc/">&lt;p&gt;We are excited to announce that rust-libp2p running in the browser can now establish WebRTC connections. Before now, WebRTC was only available on the server in rust-libp2p, but after months of coding and reviews, it is available on both the server and in the browser.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-webrtc-for-rust-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-webrtc-for-rust-libp2p&quot; aria-label=&quot;Anchor link for: why-webrtc-for-rust-libp2p&quot;&gt;Why WebRTC for rust-libp2p?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;easier-node-operation&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#easier-node-operation&quot; aria-label=&quot;Anchor link for: easier-node-operation&quot;&gt;Easier node operation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Modern browsers require served connections to use TLS. In the case of WebSockets, certificates need to be signed by a Certificate Authority, meaning you need to set up DNS and Let&#x27;s Encrypt. These steps create a barrier to entry.&lt;&#x2F;p&gt;
&lt;p&gt;With WebRTC, we can use self-signed certificates, removing the need for domain names and trusted Certificate Authorities!&lt;&#x2F;p&gt;
&lt;p&gt;Imagine being able to write a web app in Rust that connects to a Rust node running on your desktop at home, without having to set up DNS, Let&#x27;s Encrypt, or any external server infrastructure!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;improved-connectivity&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#improved-connectivity&quot; aria-label=&quot;Anchor link for: improved-connectivity&quot;&gt;Improved connectivity&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;WebRTC also allows connecting two browsers directly. With the ease of setting up a libp2p WebRTC server, anyone can set up their own signalling server or use one embedded into a Rust application!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;benefits-of-full-stack-rust-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#benefits-of-full-stack-rust-libp2p&quot; aria-label=&quot;Anchor link for: benefits-of-full-stack-rust-libp2p&quot;&gt;Benefits of Full Stack rust-libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Now that we have rust-libp2p over WebRTC on both server and browser, we can share code between the two layers! Writing isomorphic code speeds up development and makes reviews and debugging easier.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-does-libp2p-use-webrtc&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-does-libp2p-use-webrtc&quot; aria-label=&quot;Anchor link for: how-does-libp2p-use-webrtc&quot;&gt;How does libp2p use WebRTC?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;data-channels&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#data-channels&quot; aria-label=&quot;Anchor link for: data-channels&quot;&gt;Data Channels&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;WebRTC&#x27;s flagship purpose is connecting media (audio and video). However, there is also a powerful data channel API which allows exchanging data streams. This is what libp2p uses at the transport layer.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;breaking-down-the-stack&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#breaking-down-the-stack&quot; aria-label=&quot;Anchor link for: breaking-down-the-stack&quot;&gt;Breaking down the stack&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;The browser provides WebRTC through the Web API&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;wasm-bindgen&lt;&#x2F;code&gt; provides bindings through &lt;code&gt;web-sys&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;li&gt;rust-libp2p wraps these bindings to implement a WebRTC Transport&lt;&#x2F;li&gt;
&lt;li&gt;This Transport is available for applications (Kademlia, Gossipsub, etc.)&lt;&#x2F;li&gt;
&lt;li&gt;Finally, Rust code is compiled to WebAssembly and runs in the browser&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;demo&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#demo&quot; aria-label=&quot;Anchor link for: demo&quot;&gt;Demo&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There is a full stack example &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;tree&#x2F;master&#x2F;examples&#x2F;browser-webrtc&quot;&gt;in the repo&lt;&#x2F;a&gt; that runs a local server, compiles browser code to WebAssembly, and demonstrates pinging back and forth.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-next&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link for: what-s-next&quot;&gt;What&#x27;s next?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Now that we have browser to server connections, the next step is browser to browser connections using the WebRTC circuit relay pattern. Stay tuned for updates!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.1.0</title>
          <pubDate>Wed, 17 Jan 2024 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2024-01-17-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2024-01-17-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2024-01-17-jvm-libp2p/">&lt;p&gt;This release adds support for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;blob&#x2F;master&#x2F;relay&#x2F;circuit-v2.md&quot;&gt;Circuit Relay v2&lt;&#x2F;a&gt;, fix for limiting the number of peers sent and accepted in &lt;code&gt;PRUNE&lt;&#x2F;code&gt; messages and Yamux improvements.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;[Yamux] Don&#x27;t send frame if send buffer is not empty by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1913533834&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;332&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;332&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;332&quot;&gt;#332&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix unit test consistency by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1916618458&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;333&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;333&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;333&quot;&gt;#333&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix .gitattributes by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1926718170&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;335&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;335&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;335&quot;&gt;#335&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor YamuxHandler by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1897782978&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;326&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;326&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;326&quot;&gt;#326&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Change maxPrunePeers and maxPeersPerPruneMessage usage by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;diegomrsantos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;diegomrsantos&quot;&gt;@diegomrsantos&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1928829270&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;336&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;336&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;336&quot;&gt;#336&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor YamuxHandler.SendBuffer by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1898523832&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;328&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;328&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;328&quot;&gt;#328&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add large blob test by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1933310569&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;337&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;337&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;337&quot;&gt;#337&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix the case when a stream is closed while still having buffered data for write by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1899427478&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;330&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;330&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;330&quot;&gt;#330&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor Yamux flags by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1935289085&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;338&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;338&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;338&quot;&gt;#338&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Allow max ACK backlog of 256 streams by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1959347310&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;340&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;340&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;340&quot;&gt;#340&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Don&#x27;t try and dial DNSADDR addresses by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1990434623&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;343&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;343&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;343&quot;&gt;#343&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Implement circuit relay v2 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;2060891385&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;345&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;345&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;345&quot;&gt;#345&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;diegomrsantos&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;diegomrsantos&quot;&gt;@diegomrsantos&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1928829270&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;336&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;336&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;336&quot;&gt;#336&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of js-libp2p v1.0.0</title>
          <pubDate>Tue, 12 Dec 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-12-12-js-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-12-12-js-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-12-12-js-libp2p/">&lt;p&gt;js-libp2p has been used in production for many years in IPFS and Ethereum, as well as a wide variety of other ecosystems. Today, we&#x27;re excited to announce the release of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;releases&#x2F;tag&#x2F;libp2p-v1.0.0&quot;&gt;js-libp2p v1.0.0&lt;&#x2F;a&gt;!&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-new&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-new&quot; aria-label=&quot;Anchor link for: what-s-new&quot;&gt;What&#x27;s new?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;smart-dialing&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#smart-dialing&quot; aria-label=&quot;Anchor link for: smart-dialing&quot;&gt;Smart Dialing&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;One of the major inefficiencies we recognized was how we dialed peers, particularly in the browser. Smart dialing is a dialing strategy that is more aware of the network topology and the reachability of the multiaddrs it is dialing. This has led to a significant reduction in the number of dials made and failed dials.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;circuit-relay-v2&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#circuit-relay-v2&quot; aria-label=&quot;Anchor link for: circuit-relay-v2&quot;&gt;Circuit Relay v2&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Circuit relay was introduced as a means to establish connectivity between libp2p nodes that wouldn&#x27;t otherwise be able to establish a direct connection. Circuit Relay v2 has significant improvements over v1, including support for resource reservation and limitations on durations and data caps.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;nat-hole-punching-with-dcutr&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#nat-hole-punching-with-dcutr&quot; aria-label=&quot;Anchor link for: nat-hole-punching-with-dcutr&quot;&gt;NAT Hole punching with DCUtR&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The libp2p DCUtR (Direct Connection Upgrade through Relay) is a protocol for establishing direct connections between nodes through hole punching, without a signaling server. Implementing this in js-libp2p has benefitted browser nodes significantly.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;webrtc-private-to-private-connectivity&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webrtc-private-to-private-connectivity&quot; aria-label=&quot;Anchor link for: webrtc-private-to-private-connectivity&quot;&gt;WebRTC Private-to-Private Connectivity&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Currently js-libp2p is the only implementation that supports private-to-private browser connectivity using WebRTC. This allows direct peer-to-peer connectivity within the browser regardless of whether nodes are located behind NATs&#x2F;Firewalls.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webtransport&quot; aria-label=&quot;Anchor link for: webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;WebTransport is a new web standard built on top of QUIC that allows establishing WebTransport connections to servers that only have self-signed certificates.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;performance-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#performance-improvements&quot; aria-label=&quot;Anchor link for: performance-improvements&quot;&gt;Performance Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;reducing-latency&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#reducing-latency&quot; aria-label=&quot;Anchor link for: reducing-latency&quot;&gt;Reducing latency&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;ve made an 80%+ improvement in the time it takes to establish a connection between two js-libp2p nodes.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;js-libp2p-v1-latency-improvements.png&quot; alt=&quot;Latency Improvements&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;increasing-throughput&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#increasing-throughput&quot; aria-label=&quot;Anchor link for: increasing-throughput&quot;&gt;Increasing throughput&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Currently js-libp2p has the highest throughput of any of the libp2p implementations, averaging 2.06GB&#x2F;s on both uploads and downloads!&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;js-libp2p-v1-throughput-improvements.png&quot; alt=&quot;Throughput Improvements&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;reducing-dependencies&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#reducing-dependencies&quot; aria-label=&quot;Anchor link for: reducing-dependencies&quot;&gt;Reducing Dependencies&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We reduced the bundle size by over 40% by removing modules that are tangential for many use cases.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;developer-experience-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#developer-experience-improvements&quot; aria-label=&quot;Anchor link for: developer-experience-improvements&quot;&gt;Developer Experience Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;monorepo-setup&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#monorepo-setup&quot; aria-label=&quot;Anchor link for: monorepo-setup&quot;&gt;Monorepo Setup&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The js-libp2p ecosystem once consisted of over 81 repositories! We consolidated all of the repositories into a single monorepo.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;modernization-of-tooling&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#modernization-of-tooling&quot; aria-label=&quot;Anchor link for: modernization-of-tooling&quot;&gt;Modernization of Tooling&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;ve completely re-written our codebase in TypeScript and standardized our modules through ESM.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;documentation-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#documentation-improvements&quot; aria-label=&quot;Anchor link for: documentation-improvements&quot;&gt;Documentation Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We&#x27;ve introduced tools to automate and validate our docs, including a JS-docs based documentation generator and architectural diagrams.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-next&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link for: what-s-next&quot;&gt;What&#x27;s next?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;React Native Support&lt;&#x2F;li&gt;
&lt;li&gt;QUIC support&lt;&#x2F;li&gt;
&lt;li&gt;Improved documentation&lt;&#x2F;li&gt;
&lt;li&gt;Improved observability and metrics&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;resources-and-how-you-can-contribute&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#resources-and-how-you-can-contribute&quot; aria-label=&quot;Anchor link for: resources-and-how-you-can-contribute&quot;&gt;Resources and how you can contribute&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p&#x2F;discussions&quot;&gt;js-libp2p Discussions&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;filecoinproject.slack.com&#x2F;archives&#x2F;C03K82MU486&quot;&gt;Slack - the libp2p-implementers channel&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;&quot;&gt;libp2p Specifications&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Thank you for reading!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>HTTP-P2P, HTTP with more Ps</title>
          <pubDate>Wed, 20 Sep 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2023-09-20-http-p2p/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2023-09-20-http-p2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2023-09-20-http-p2p/">&lt;p&gt;We&#x27;re introducing a new experimental API in go-libp2p, enabling developers to utilize libp2p with the well-known semantics of HTTP. This isn&#x27;t a special flavor of HTTP; it&#x27;s standard HTTP, but enhanced with libp2p.&lt;&#x2F;p&gt;
&lt;p&gt;Developers can now benefit from HTTP intermediaries such as CDN caching and layer 7 load balancing. This allows developers to create HTTP applications that operate over NATs and tap into libp2p&#x27;s diverse transport options.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;use-cases&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#use-cases&quot; aria-label=&quot;Anchor link for: use-cases&quot;&gt;Use Cases&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Fetch content from peers over the IPFS Path Gateway protocol, regardless of whether they&#x27;re a CDN, R2 bucket, random server, laptop, or browser&lt;&#x2F;li&gt;
&lt;li&gt;HTTP Edge compute nodes can behave as peers in the libp2p network&lt;&#x2F;li&gt;
&lt;li&gt;Simple HTTP clients like curl can participate in the libp2p network&lt;&#x2F;li&gt;
&lt;li&gt;Browsers can make secure HTTP requests using WebTransport or WebRTC&lt;&#x2F;li&gt;
&lt;li&gt;Operators can use layer 7 load balancing with projects like Envoy&lt;&#x2F;li&gt;
&lt;li&gt;Port existing HTTP applications like Mastodon or Gitea to a p2p environment&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;technical-details&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#technical-details&quot; aria-label=&quot;Anchor link for: technical-details&quot;&gt;Technical details&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;This new API implements the libp2p+HTTP spec with three main features:&lt;&#x2F;p&gt;
&lt;h3 id=&quot;a-new-http-transport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#a-new-http-transport&quot; aria-label=&quot;Anchor link for: a-new-http-transport&quot;&gt;A new HTTP Transport&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;A libp2p node can now listen on an HTTP transport and advertise its address as a multiaddr ending in &lt;code&gt;&#x2F;tls&#x2F;http&lt;&#x2F;code&gt; (or &lt;code&gt;&#x2F;https&lt;&#x2F;code&gt;). The HTTP transport lives alongside other transports (tcp+tls+yamux, QUIC, WebRTC, etc.).&lt;&#x2F;p&gt;
&lt;h3 id=&quot;http-semantics&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#http-semantics&quot; aria-label=&quot;Anchor link for: http-semantics&quot;&gt;HTTP Semantics&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;HTTP semantics are the abstract form of HTTP, defined by RFC 9110. We can use WebTransport, WebRTC, or a hole-punched QUIC connection to make an HTTP request, allowing developers to create applications using familiar HTTP tools in a p2p setting.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;well-known-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#well-known-libp2p&quot; aria-label=&quot;Anchor link for: well-known-libp2p&quot;&gt;.well-known&#x2F;libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;This solves protocol discovery in a p2p setting. A node provides information about supported protocols at the &lt;code&gt;&#x2F;.well-known&#x2F;libp2p&lt;&#x2F;code&gt; resource. For example:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;json&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;{&lt;&#x2F;span&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;&amp;quot;&#x2F;hello&#x2F;1&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;:{&lt;&#x2F;span&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;&amp;quot;path&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;:&lt;&#x2F;span&gt;&lt;span style=&quot;color: #CFCFC2;&quot;&gt;&amp;quot;&#x2F;hello-path&#x2F;&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;}}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;We&#x27;re hoping to get early feedback as the API solidifies. Please try it out and let us know what you think in the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;discussions&quot;&gt;go-libp2p Discussions forum&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.0.1</title>
          <pubDate>Sat, 16 Sep 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-09-16-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-09-16-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-09-16-jvm-libp2p/">&lt;p&gt;This release contains optimizations around the yamux implementation as well as dependencies updates.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Use spotless instead of kotlinter by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1813635218&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;297&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;297&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;297&quot;&gt;#297&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Fix sending of buffered messages after a window update by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1884367222&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;312&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;312&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;312&quot;&gt;#312&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Publish to Cloudsmith on push to develop branch by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1887159065&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;313&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;313&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;313&quot;&gt;#313&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Increase write buffer size and make it configurable by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1892194763&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;317&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;317&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;317&quot;&gt;#317&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Revert merging send and receive windows maps by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1893097537&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;318&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;318&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;318&quot;&gt;#318&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Send whole data if window size is &amp;amp;gt; 0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1894225858&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;319&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;319&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;319&quot;&gt;#319&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Clear caches when connection is closed by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1894704783&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;321&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;321&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;321&quot;&gt;#321&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Send RST when write buffer has overflowed by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1894638865&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;320&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;320&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;320&quot;&gt;#320&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor MuxId by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1896127028&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;322&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;322&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;322&quot;&gt;#322&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;[Yamux] Refactor window sizes retrieval by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1896638309&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;323&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;323&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;323&quot;&gt;#323&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Dependencies updates by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1897985599&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;327&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;327&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;327&quot;&gt;#327&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Adding a QUIC API for Go&#x27;s standard library TLS package</title>
          <pubDate>Wed, 13 Sep 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2023-09-13-quic-crypto-tls/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2023-09-13-quic-crypto-tls/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2023-09-13-quic-crypto-tls/">&lt;p&gt;QUIC is becoming the most important transport in libp2p. For example, QUIC accounts for 80-90% of the connections made to PL-run bootstrappers participating in the public IPFS DHT.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;quic-go&#x2F;quic-go&quot;&gt;quic-go&lt;&#x2F;a&gt; is a QUIC implementation written in pure Go that is used in go-libp2p, Caddy, Adguard, syncthing, and many other projects.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;quic-and-tls-1-3&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#quic-and-tls-1-3&quot; aria-label=&quot;Anchor link for: quic-and-tls-1-3&quot;&gt;QUIC and TLS 1.3&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;All QUIC connections use TLS 1.3 to encrypt messages. However, due to running on top of UDP, QUIC&#x27;s interactions with the TLS stack differs from how TLS over TCP functions.&lt;&#x2F;p&gt;
&lt;p&gt;When QUIC was standardized, it became necessary for TLS stacks to expose new APIs. For the longest time, Go&#x27;s crypto&#x2F;tls lacked an API for this purpose. The quic-go project had to fork crypto&#x2F;tls to add the required APIs.&lt;&#x2F;p&gt;
&lt;p&gt;This meant:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Extra effort every time a new Go version was released&lt;&#x2F;li&gt;
&lt;li&gt;Security fixes in crypto&#x2F;tls required updating quic-go&lt;&#x2F;li&gt;
&lt;li&gt;Lack of forwards-compatibility with future Go versions&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;solving-the-problem&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#solving-the-problem&quot; aria-label=&quot;Anchor link for: solving-the-problem&quot;&gt;Solving the Problem&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;To tackle this situation, we joined forces with Filippo Valsorda, who maintains crypto&#x2F;tls. Filippo is sponsored by Protocol Labs for his remarkable open-source work.&lt;&#x2F;p&gt;
&lt;p&gt;Our first joint endeavor established an API for crypto&#x2F;tls that enables QUIC implementations to use it. After long discussions, we arrived at a much cleaner proposal than our homegrown qtls API.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;0-rtt-support&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#0-rtt-support&quot; aria-label=&quot;Anchor link for: 0-rtt-support&quot;&gt;0-RTT Support&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;0-RTT allows clients to resume connections and send encrypted data in the first packet. Adding support for 0-RTT was a large endeavor requiring coordination between the TLS and QUIC stacks.&lt;&#x2F;p&gt;
&lt;p&gt;The server typically encrypts transport parameters and stores them in the session ticket. When the client restores the session, it sends the session ticket allowing the server to restore parameters without persisting them.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;current-status&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#current-status&quot; aria-label=&quot;Anchor link for: current-status&quot;&gt;Current Status&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;After an intense period of collaboration, we are thrilled to have all these changes included in Go 1.21. The implementation was performed by Damien Neil and Filippo Valsorda.&lt;&#x2F;p&gt;
&lt;p&gt;The changes have been released in quic-go v0.37 and go-libp2p v0.30. We anticipate that these changes will work seamlessly once users update their dependencies and compiler version.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Testing all the libp2ps</title>
          <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/multidim-interop/</link>
          <guid>https://sumanjeet.duckdns.org/blog/multidim-interop/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/multidim-interop/">&lt;p&gt;There are many &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;libp2p#implementations&quot;&gt;implementations&lt;&#x2F;a&gt; of libp2p with varying degrees of feature completeness. Each implementation has transports, secure channels, and muxers that they support. How do we make sure that each implementation can communicate with every other implementation? And how do we check that they can communicate over each supported combination?&lt;&#x2F;p&gt;
&lt;p&gt;In this post I&#x27;ll cover how we test every implementation on every strategy, on many versions, and highlight some open problems that you can contribute to.&lt;&#x2F;p&gt;
&lt;p&gt;Testing connectivity interoperability is as simple as starting up two libp2p nodes and having them ping each other. The difficulty arises in how we make a reproducible environment for every implementation and connection strategy.&lt;&#x2F;p&gt;
&lt;p&gt;The first attempt used Testground, but it was too complicated and slow for what we wanted to do. The next attempt used Docker&#x27;s compose directly with some TypeScript to help generate the compose files. This was much easier to build.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;problems-to-solve&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#problems-to-solve&quot; aria-label=&quot;Anchor link for: problems-to-solve&quot;&gt;Problems to solve&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Compose handles spinning up the test environment, but there were still problems to solve:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;How do we define this test environment?&lt;&#x2F;li&gt;
&lt;li&gt;How do we share the listener&#x27;s address to the dialer?&lt;&#x2F;li&gt;
&lt;li&gt;How do we build each implementation?&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;We solved the first problem with Sqlite. The problem of finding all combinations of implementations and parameters is equivalent to a Join operation.&lt;&#x2F;p&gt;
&lt;p&gt;The second problem we solved using Redis as a synchronization point. The listener pushes its address to Redis, and the dialer blocks until it can read it.&lt;&#x2F;p&gt;
&lt;p&gt;For building implementations, we use Makefiles and Docker container images with caching in S3.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;coverage&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#coverage&quot; aria-label=&quot;Anchor link for: coverage&quot;&gt;Coverage&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Right now, the system tests 6 different libp2p implementations and runs about 1700 tests. The tests are also run on each PR in Go, Rust, JS, Nim, and Zig libp2p.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;multidim-interop-coverage.png&quot; alt=&quot;Multidim Interop coverage matrix&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;See the latest full run at the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;libp2p.io&#x2F;status&quot;&gt;libp2p Status Page&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;impact-realized-so-far&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#impact-realized-so-far&quot; aria-label=&quot;Anchor link for: impact-realized-so-far&quot;&gt;Impact realized so far&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The system has already helped catch several bugs:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;quic-go wrong cipher selection&lt;&#x2F;li&gt;
&lt;li&gt;Interop failure with Firefox WebRTC&lt;&#x2F;li&gt;
&lt;li&gt;zig-libp2p multistream-select issue&lt;&#x2F;li&gt;
&lt;li&gt;Interop issue with Yamux between rust-libp2p and js-libp2p&lt;&#x2F;li&gt;
&lt;li&gt;Wrong default Noise handshake pattern&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;It has also validated big code changes like the new WebTransport transport for rust-libp2p in Wasm.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;next-steps&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#next-steps&quot; aria-label=&quot;Anchor link for: next-steps&quot;&gt;Next steps&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;There&#x27;s still room for improvement, especially in making tests faster. The biggest optimization would be reducing the Docker overhead.&lt;&#x2F;p&gt;
&lt;p&gt;Beyond basic connectivity, we want to add tests for mDNS and test interoperability of libp2p protocols like Kademlia, GossipSub, and more.&lt;&#x2F;p&gt;
&lt;p&gt;Are you working on a libp2p implementation? Check out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;unified-testing&#x2F;tree&#x2F;master&#x2F;docs&quot;&gt;unified-testing docs&lt;&#x2F;a&gt; for specifics on how to implement these tests.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 1.0.0</title>
          <pubDate>Wed, 23 Aug 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-08-23-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-08-23-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-08-23-jvm-libp2p/">&lt;p&gt;This release contains experimental &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;yamux&quot;&gt;yamux&lt;&#x2F;a&gt; support as well as various other improvements and dependency updates. From this version onwards, the dependency published will be &lt;code&gt;io.libp2p:jvm-libp2p&lt;&#x2F;code&gt;. For previous versions of the library, the old &lt;code&gt;io.libp2p:jvm-libp2p-minimal&lt;&#x2F;code&gt; dependency can be used.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-changed&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-changed&quot; aria-label=&quot;Anchor link for: what-s-changed&quot;&gt;What&#x27;s Changed&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Remove the interop tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ajsutton&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ajsutton&quot;&gt;@ajsutton&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1503776824&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;261&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;261&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;261&quot;&gt;#261&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Update dependencies and linting changes by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1579925248&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;264&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;264&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;264&quot;&gt;#264&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add JitPack to readme by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1585696233&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;266&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;266&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;266&quot;&gt;#266&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Convert to multi-module project by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1589062891&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;267&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;267&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;267&quot;&gt;#267&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Open some Gossip members for hacking by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1591311355&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;268&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;268&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;268&quot;&gt;#268&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add Gossip simulator module  by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1593117990&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;269&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;269&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;269&quot;&gt;#269&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Integrate Android example by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1710230217&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;275&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;275&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;275&quot;&gt;#275&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Finer grained netty dependencies by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1711696935&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;276&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;276&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;276&quot;&gt;#276&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Remove Apache commons-codec dependency by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1711831179&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;277&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;277&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;277&quot;&gt;#277&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Migrate to slf4j by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1713989521&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;279&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;279&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;279&quot;&gt;#279&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Support webtransport multiaddrs by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;kevodwyer&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;kevodwyer&quot;&gt;@kevodwyer&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1715218316&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;280&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;280&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;280&quot;&gt;#280&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Yamux implementation by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1715673602&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;281&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;281&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;281&quot;&gt;#281&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Refactor: test fixtures sort. Regression bug fix by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1725047217&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;284&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;284&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;284&quot;&gt;#284&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Improve muxer test coverage. Fix several muxer issues by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1725084466&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;285&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;285&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;285&quot;&gt;#285&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Implement TLS security protocol including early muxer negotiation by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1723821860&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;283&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;283&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;283&quot;&gt;#283&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix ecdsa cert usage in TLS which bouncycastle broke by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1742106355&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;293&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;293&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;293&quot;&gt;#293&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix yamux remote open by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1738405870&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;292&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;292&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;292&quot;&gt;#292&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix yamux handling of writes bigger than the window size by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1798511978&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;295&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;295&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;295&quot;&gt;#295&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add Yamux specific unit tests by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1851266344&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;298&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;298&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;298&quot;&gt;#298&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Fix Gossip excessive memory consumption by SeenCache by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1853296677&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;300&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;300&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;300&quot;&gt;#300&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Rename &lt;code&gt;jvm-libp2p-minimal&lt;&#x2F;code&gt; to &lt;code&gt;jvm-libp2p&lt;&#x2F;code&gt; by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1855039912&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;302&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;302&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;302&quot;&gt;#302&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Update README.md for upcoming v1.0.0 by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;Nashatyrev&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;Nashatyrev&quot;&gt;@Nashatyrev&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1854836610&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;301&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;301&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;301&quot;&gt;#301&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add Host.getProtocols() and fix addProtocolHandler by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1851813967&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;299&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;299&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;299&quot;&gt;#299&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Disable publishing of test fixtures variants by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1859718161&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;306&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;306&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;306&quot;&gt;#306&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Disable customization of the generated pom by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1861298132&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;308&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;308&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;308&quot;&gt;#308&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Add all required repositories to the README by &lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;StefanBratanov&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;StefanBratanov&quot;&gt;@StefanBratanov&lt;&#x2F;a&gt; in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1861961142&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;309&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;309&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;309&quot;&gt;#309&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;new-contributors&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-contributors&quot; aria-label=&quot;Anchor link for: new-contributors&quot;&gt;New Contributors&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;kevodwyer&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;kevodwyer&quot;&gt;@kevodwyer&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1715218316&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;280&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;280&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;280&quot;&gt;#280&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;user-mention notranslate&quot; data-hovercard-type=&quot;user&quot; data-hovercard-url=&quot;&#x2F;users&#x2F;ianopolous&#x2F;hovercard&quot; data-octo-click=&quot;hovercard-link-click&quot; data-octo-dimensions=&quot;link_type:self&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ianopolous&quot;&gt;@ianopolous&lt;&#x2F;a&gt; made their first contribution in &lt;a class=&quot;issue-link js-issue-link&quot; data-error-text=&quot;Failed to load title&quot; data-id=&quot;1715673602&quot; data-permission-text=&quot;Title is private&quot; data-url=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;issues&#x2F;281&quot; data-hovercard-type=&quot;pull_request&quot; data-hovercard-url=&quot;&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;281&#x2F;hovercard&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;jvm-libp2p&#x2F;pull&#x2F;281&quot;&gt;#281&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</description>
      </item>
      <item>
          <title>Metrics in go-libp2p</title>
          <pubDate>Tue, 15 Aug 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2023-08-15-metrics-in-go-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2023-08-15-metrics-in-go-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2023-08-15-metrics-in-go-libp2p/">&lt;p&gt;go-libp2p is the core networking component for many go-based implementations like Kubo (IPFS), Lotus (Filecoin), and Prysm (Ethereum Beacon Chain).&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;ve added instrumentation to collect metrics from various components, which have already helped debug nuanced issues and develop features.&lt;&#x2F;p&gt;
&lt;p&gt;Check out the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;tree&#x2F;master&#x2F;dashboards&#x2F;README.md#public-dashboards&quot;&gt;public dashboards&lt;&#x2F;a&gt; to see metrics from different libp2p components in production.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;why-prometheus&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-prometheus&quot; aria-label=&quot;Anchor link for: why-prometheus&quot;&gt;Why Prometheus?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We chose Prometheus over OpenCensus and OpenTelemetry because:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;OpenCensus creates a lot of allocations, leading to increased GC pressure&lt;&#x2F;li&gt;
&lt;li&gt;OpenTelemetry&#x27;s metrics API is still unstable&lt;&#x2F;li&gt;
&lt;li&gt;Prometheus is performant (zero-alloc) and ubiquitous&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We also added ready-to-use Grafana dashboards.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-enable-metrics&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-to-enable-metrics&quot; aria-label=&quot;Anchor link for: how-to-enable-metrics&quot;&gt;How to Enable Metrics&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Metrics are enabled by default since go-libp2p v0.26.0. Just setup a Prometheus exporter:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;go&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;func&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; main&lt;&#x2F;span&gt;&lt;span&gt;() {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    http.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;Handle&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;quot;&#x2F;metrics&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;, promhttp.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;Handler&lt;&#x2F;span&gt;&lt;span&gt;())&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;    go func&lt;&#x2F;span&gt;&lt;span&gt;() {&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;        http.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;ListenAndServe&lt;&#x2F;span&gt;&lt;span&gt;(&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt;&amp;quot;:2112&amp;quot;&lt;&#x2F;span&gt;&lt;span&gt;,&lt;&#x2F;span&gt;&lt;span style=&quot;color: #AE81FF;&quot;&gt; nil&lt;&#x2F;span&gt;&lt;span&gt;)&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    }()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;    host, err&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; :=&lt;&#x2F;span&gt;&lt;span&gt; libp2p.&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;New&lt;&#x2F;span&gt;&lt;span&gt;()&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #88846F;&quot;&gt;    &#x2F;&#x2F; ...&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;}&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;Point your Prometheus instance to scrape from &lt;code&gt;:2112&#x2F;metrics&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;discovering-available-metrics&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#discovering-available-metrics&quot; aria-label=&quot;Anchor link for: discovering-available-metrics&quot;&gt;Discovering Available Metrics&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;go-libp2p provides metrics and Grafana dashboards for all major subsystems. Check the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;tree&#x2F;master&#x2F;dashboards&quot;&gt;dashboards directory&lt;&#x2F;a&gt; for available Grafana dashboards.&lt;&#x2F;p&gt;
&lt;p&gt;To discover metrics, type &lt;code&gt;libp2p_(libp2p-package-name)_&lt;&#x2F;code&gt; in the Prometheus UI and find available metrics from autocomplete.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;metrics-in-go-libp2p-prometheus-ui.png&quot; alt=&quot;Prometheus UI&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;impact&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#impact&quot; aria-label=&quot;Anchor link for: impact&quot;&gt;Impact&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;These metrics have already helped us:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Debug AutoNAT issues&lt;&#x2F;li&gt;
&lt;li&gt;Optimize the Resource Manager&lt;&#x2F;li&gt;
&lt;li&gt;Improve connection handling&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;We encourage users to deploy these dashboards and share feedback!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.1.13</title>
          <pubDate>Wed, 02 Aug 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-08-02-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-08-02-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-08-02-swift-libp2p/"></description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.1.12</title>
          <pubDate>Thu, 20 Jul 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-07-20-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-07-20-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-07-20-swift-libp2p/"></description>
      </item>
      <item>
          <title>libp2p at IPFS þing 2023 Recap</title>
          <pubDate>Thu, 11 May 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2023-libp2p-ipfs-thing-recap/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2023-libp2p-ipfs-thing-recap/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2023-libp2p-ipfs-thing-recap/">&lt;p&gt;Last month, April 15th - 19th 2023, the IPFS community came together in Brussels, Belgium for &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;blog.ipfs.tech&#x2F;2023-ipfs-thing-recap&#x2F;&quot;&gt;IPFS þing 2023&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;The libp2p users and contributors community came out to meet up once again, interface with the broader IPFS community, and share all of the great accomplishments and new work going on in the libp2p project.&lt;&#x2F;p&gt;
&lt;p&gt;Over the course of five days the libp2p community gave 6 different talks on recent developments and finished strong with a workshop where participants built their own peer-to-peer chat application.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;goals&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#goals&quot; aria-label=&quot;Anchor link for: goals&quot;&gt;Goals&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The goals of the libp2p contributors attending IPFS þing 2023 were to:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Build excitement by demonstrating the Universal Connectivity application&lt;&#x2F;li&gt;
&lt;li&gt;Give updates on performance, dealing with non-uniform network topology, interoperability improvements, and lowering barriers to libp2p compatibility&lt;&#x2F;li&gt;
&lt;li&gt;Reconnect with community contributors and build up the greater libp2p community&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;recap-of-talks&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#recap-of-talks&quot; aria-label=&quot;Anchor link for: recap-of-talks&quot;&gt;Recap of Talks&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;connecting-everything-everywhere-all-at-once-with-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#connecting-everything-everywhere-all-at-once-with-libp2p&quot; aria-label=&quot;Anchor link for: connecting-everything-everywhere-all-at-once-with-libp2p&quot;&gt;Connecting Everything, Everywhere, All at Once with libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Max Inden (rust-libp2p maintainer)&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;4v-iIB0C9_8&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Max&#x27;s talk about the Universal Connectivity demonstrator app broke the record for the most people involved! The live demo showed a go-libp2p node talking to a rust-libp2p node talking to a laptop talking to js-libp2p browsers using a variety of transports including QUIC, WebRTC Direct, WebRTC, and WebTransport.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;libp2p-performance&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#libp2p-performance&quot; aria-label=&quot;Anchor link for: libp2p-performance&quot;&gt;libp2p Performance&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Max Inden &amp;amp; Marco Munizaga&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;2h9jth3nvJw&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Watch Max and Marco describe how libp2p maintainers think about and measure performance, plus learn about some optimizations in the latest versions.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-incredible-benefits-of-libp2p-http&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-incredible-benefits-of-libp2p-http&quot; aria-label=&quot;Anchor link for: the-incredible-benefits-of-libp2p-http&quot;&gt;The Incredible Benefits of libp2p + HTTP&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Marten Seemann &amp;amp; Marco Munizaga&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;Ixyo1G2tJZE&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Marten and Marco demonstrated using js-libp2p and service workers to intercept normal HTTP calls in the browser and re-route them over libp2p connections.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;how-to-build-your-own-compatible-libp2p-stack-from-scratch&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-to-build-your-own-compatible-libp2p-stack-from-scratch&quot; aria-label=&quot;Anchor link for: how-to-build-your-own-compatible-libp2p-stack-from-scratch&quot;&gt;How to Build Your Own Compatible libp2p Stack from Scratch&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Marten Seemann &amp;amp; Marco Munizaga&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;aDHymXQJ4bs&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Marten and Marco showed how simple it is to create a compatible libp2p stack out of a QUIC library, the libp2p TLS extension and some code for peer ID encoding.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;enabling-more-applications-to-join-the-libp2p-dht-ecosystem&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#enabling-more-applications-to-join-the-libp2p-dht-ecosystem&quot; aria-label=&quot;Anchor link for: enabling-more-applications-to-join-the-libp2p-dht-ecosystem&quot;&gt;Enabling More Applications to Join the libp2p DHT Ecosystem&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Gui Michel (Research Engineer at Protocol Labs)&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;OHrtv1jz2Jc&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;This talk covered improvements to the DHT to enable more applications to participate.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;workshop-build-your-own-p2p-chat&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#workshop-build-your-own-p2p-chat&quot; aria-label=&quot;Anchor link for: workshop-build-your-own-p2p-chat&quot;&gt;Workshop: Build Your Own p2p Chat&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Participants built their own peer-to-peer chat application leveraging the same technology as the Universal Connectivity demonstrator project. It was a great hands-on experience for everyone!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 0.9.11: Merge pull request #6 from Peergos&#x2F;fix&#x2F;yamux-race</title>
          <pubDate>Mon, 24 Apr 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-11/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-11/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-11/">&lt;p&gt;Fix opening reverse streams in yamux&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p 0.9.12: Merge pull request #6 from Peergos&#x2F;fix&#x2F;yamux-race</title>
          <pubDate>Mon, 24 Apr 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-12/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-12/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-04-24-jvm-libp2p-0-9-12/">&lt;p&gt;Fix opening reverse streams in yamux&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of swift-libp2p 0.1.11</title>
          <pubDate>Sun, 23 Apr 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-04-23-swift-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-04-23-swift-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-04-23-swift-libp2p/">&lt;p&gt;ConnectionManager.setIdleTimeout API, Identify.Ping improvements, Mis…&lt;&#x2F;p&gt;
&lt;p&gt;…c Logging Fixes&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>Announcing the release of jvm-libp2p v0.9.11</title>
          <pubDate>Wed, 19 Apr 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/releases/2023-04-19-jvm-libp2p/</link>
          <guid>https://sumanjeet.duckdns.org/releases/2023-04-19-jvm-libp2p/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/releases/2023-04-19-jvm-libp2p/">&lt;p&gt;debug more&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>go-libp2p in 2022</title>
          <pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/go-libp2p-2022/</link>
          <guid>https://sumanjeet.duckdns.org/blog/go-libp2p-2022/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/go-libp2p-2022/">&lt;p&gt;We are excited to share with you all the progress that has been made on &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&quot;&gt;go-libp2p&lt;&#x2F;a&gt; in 2022. It has been a year full of exciting new features, code organization, and a growing team of talented contributors.&lt;&#x2F;p&gt;
&lt;p&gt;Throughout the year, we released seven updates to go-libp2p ranging from &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.18.0&quot;&gt;v0.18.0&lt;&#x2F;a&gt; to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.24.0&quot;&gt;v0.24.0&lt;&#x2F;a&gt;, with a number of patch releases in between. In total, we had &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;graphs&#x2F;contributors?from=2022-01-01&amp;amp;to=2022-12-31&amp;amp;type=c&quot;&gt;21 contributors&lt;&#x2F;a&gt; to the project in 2022.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;new-features&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-features&quot; aria-label=&quot;Anchor link for: new-features&quot;&gt;New Features&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;transport-protocols&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#transport-protocols&quot; aria-label=&quot;Anchor link for: transport-protocols&quot;&gt;Transport Protocols&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webtransport&quot; aria-label=&quot;Anchor link for: webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;One of the most exciting developments of the year was the release of the WebTransport protocol in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.23.0&quot;&gt;v0.23.0&lt;&#x2F;a&gt;. WebTransport enables browser-to-server connectivity in go-libp2p when paired with a peer running js-libp2p-webtransport in the browser.&lt;&#x2F;p&gt;
&lt;p&gt;To learn more about this exciting feature, check out our blog post on &lt;a href=&quot;&#x2F;blog&#x2F;2022-12-19-libp2p-webtransport&quot;&gt;WebTransport in libp2p&lt;&#x2F;a&gt; and the &lt;a href=&quot;&#x2F;docs&#x2F;webtransport&#x2F;&quot;&gt;WebTransport documentation&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;webrtc-browser-to-server&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webrtc-browser-to-server&quot; aria-label=&quot;Anchor link for: webrtc-browser-to-server&quot;&gt;WebRTC (Browser to Server)&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;In addition to WebTransport, the go-libp2p team also began work on enabling the WebRTC transport, in partnership with Little Bear Labs. This new transport allows for connectivity between go-libp2p server nodes and js-libp2p browser nodes.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;quic-versions&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#quic-versions&quot; aria-label=&quot;Anchor link for: quic-versions&quot;&gt;QUIC Versions&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;We also made developments to the existing QUIC implementation in go-libp2p. In &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.24.0&quot;&gt;v0.24.0&lt;&#x2F;a&gt;, go-libp2p changed to properly distinguish between QUIC versions (in their multiaddresses) and changed the default dial behavior to prefer the new QUIC version.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;dos-protection-resource-management&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dos-protection-resource-management&quot; aria-label=&quot;Anchor link for: dos-protection-resource-management&quot;&gt;DoS Protection &amp;amp; Resource Management&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We added the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;tree&#x2F;master&#x2F;p2p&#x2F;host&#x2F;resource-manager#readme&quot;&gt;Resource Manager component&lt;&#x2F;a&gt; in &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.18.0&quot;&gt;v0.18.0&lt;&#x2F;a&gt;. This feature allows developers to configure limits on connections, streams, and memory usage.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;faster-handshakes&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#faster-handshakes&quot; aria-label=&quot;Anchor link for: faster-handshakes&quot;&gt;Faster Handshakes&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;In &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.24.0&quot;&gt;v0.24.0&lt;&#x2F;a&gt;, go-libp2p added optimized muxer selection via TLS&#x27; ALPN extension and Noise extensions. This resulted in saving one round trip during connection establishment.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;autorelay-discovers-circuit-relay-v2&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#autorelay-discovers-circuit-relay-v2&quot; aria-label=&quot;Anchor link for: autorelay-discovers-circuit-relay-v2&quot;&gt;AutoRelay discovers Circuit Relay v2&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;In &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.19.0&quot;&gt;v0.19.0&lt;&#x2F;a&gt;, we enabled AutoRelay to discover nodes running Circuit Relay v2, improving the overall performance and reliability of the network.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;project-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#project-improvements&quot; aria-label=&quot;Anchor link for: project-improvements&quot;&gt;Project Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;interoperability-testing&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#interoperability-testing&quot; aria-label=&quot;Anchor link for: interoperability-testing&quot;&gt;Interoperability Testing&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We began a concerted effort to improve interoperability between go-libp2p and libp2p implementations in other languages. The details can be seen in the shared &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;unified-testing&quot;&gt;unified-testing repo&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;monorepo-consolidation&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#monorepo-consolidation&quot; aria-label=&quot;Anchor link for: monorepo-consolidation&quot;&gt;Monorepo Consolidation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;strong&gt;go-libp2p is a monorepo as of the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.22.0&quot;&gt;v0.22.0 release&lt;&#x2F;a&gt;.&lt;&#x2F;strong&gt; This improvement makes changes and improvements across go-libp2p much easier.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;plans-for-2023&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#plans-for-2023&quot; aria-label=&quot;Anchor link for: plans-for-2023&quot;&gt;Plans for 2023&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Key areas of focus:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Interoperability and end-to-end testing&lt;&#x2F;li&gt;
&lt;li&gt;Expanding seamless browser connectivity&lt;&#x2F;li&gt;
&lt;li&gt;Adding support for libp2p + HTTP&lt;&#x2F;li&gt;
&lt;li&gt;Optimizing performance&lt;&#x2F;li&gt;
&lt;li&gt;Better observability with metrics&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;resources-and-how-you-can-help-contribute&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#resources-and-how-you-can-help-contribute&quot; aria-label=&quot;Anchor link for: resources-and-how-you-can-help-contribute&quot;&gt;Resources and how you can help contribute&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;We always welcome contributions from the community! Check out &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&#x2F;issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22&quot;&gt;any of these help wanted&#x2F;good first issues&lt;&#x2F;a&gt; to start contributing.&lt;&#x2F;p&gt;
&lt;p&gt;Thank you for reading!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>WebRTC (Browser-to-Server) in libp2p</title>
          <pubDate>Mon, 06 Feb 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/libp2p-webrtc-browser-to-server/</link>
          <guid>https://sumanjeet.duckdns.org/blog/libp2p-webrtc-browser-to-server/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/libp2p-webrtc-browser-to-server/">&lt;p&gt;This is the second entry in the Universal Browser Connectivity series on how libp2p achieves browser connectivity. Read about WebTransport in the &lt;a href=&quot;&#x2F;blog&#x2F;2022-12-19-libp2p-webtransport&quot;&gt;first post&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;overview&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#overview&quot; aria-label=&quot;Anchor link for: overview&quot;&gt;Overview&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The &lt;a href=&quot;&#x2F;&quot;&gt;libp2p project&lt;&#x2F;a&gt; supports many transport protocols across a variety of implementations. These transport protocols enable applications using libp2p to run as server nodes (on a personal laptop or in a datacenter) or as browser nodes (inside a Web browser).&lt;&#x2F;p&gt;
&lt;p&gt;Historically, libp2p has bridged these runtime environments with different node connectivity options in varying degrees:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;server node to server node via TCP and QUIC&lt;&#x2F;li&gt;
&lt;li&gt;browser node to public server node via WebSockets and, more recently, &lt;a href=&quot;&#x2F;blog&#x2F;2022-12-19-libp2p-webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;browser node to browser node (via less than ideal solutions)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;Today our focus is on advancements in the &lt;strong&gt;browser to public server&lt;&#x2F;strong&gt; use case...&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re excited to present a new paradigm for browser-to-server connectivity and announce, &lt;strong&gt;native support for WebRTC now exists in libp2p across three implementations!&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;acknowledgements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#acknowledgements&quot; aria-label=&quot;Anchor link for: acknowledgements&quot;&gt;Acknowledgements&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We would like to recognize and express our gratitude to &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;littlebearlabs.io&#x2F;&quot;&gt;Little Bear Labs&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.parity.io&#x2F;&quot;&gt;Parity Technologies&lt;&#x2F;a&gt; for their contributions to the development of the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;webrtc&quot;&gt;WebRTC specification&lt;&#x2F;a&gt; and implementation in libp2p.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;webrtc-in-the-browser&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webrtc-in-the-browser&quot; aria-label=&quot;Anchor link for: webrtc-in-the-browser&quot;&gt;WebRTC in the browser&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;WebRTC, or Web Real-Time Communication, is a set of standards that enables peer-to-peer connections between browsers, clients, and servers and the exchange of audio, video, and data in real-time. It is built directly into modern browsers and is straightforward to use via its API.&lt;&#x2F;p&gt;
&lt;p&gt;While WebRTC handles audio, video, and data traffic, we&#x27;re just going to focus on the data aspect because that&#x27;s the API leveraged in libp2p WebRTC.&lt;&#x2F;p&gt;
&lt;p&gt;In most cases, peers directly connect to other peers, improving privacy and requiring fewer hops than on a relay. Peers connect via an &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;RTCPeerConnection&quot;&gt;RTCPeerConnection&lt;&#x2F;a&gt; interface. Once connected, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&#x2F;RTCDataChannel&quot;&gt;RTCDataChannels&lt;&#x2F;a&gt; can be added to the connection to send and receive binary data.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;webrtc-in-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webrtc-in-libp2p&quot; aria-label=&quot;Anchor link for: webrtc-in-libp2p&quot;&gt;WebRTC in libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;webrtc_browser_to_server_diagram.png&quot; alt=&quot;WebRTC Browser to Server Diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Connecting from a browser to a public server in the WebRTC implementation in libp2p has some similarities but differs in several ways. Many of the features supported in the WebRTC standard, such as video, audio, and centralized STUN and Turn servers, are not needed in libp2p. The primary WebRTC component that libp2p leverages is the RTCDataChannels.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;server-setup&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#server-setup&quot; aria-label=&quot;Anchor link for: server-setup&quot;&gt;Server Setup&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;To prepare for a connection from the browser, the server:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Generates a self-signed TLS certificate.&lt;&#x2F;li&gt;
&lt;li&gt;Listens on a UDP port for incoming STUN packets.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;browser-connection&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#browser-connection&quot; aria-label=&quot;Anchor link for: browser-connection&quot;&gt;Browser Connection&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;To initiate a connection, the browser:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Assembles the multiaddress of the server, which is either known upfront or discovered.&lt;&#x2F;li&gt;
&lt;li&gt;Creates an RTCPeerConnection.&lt;&#x2F;li&gt;
&lt;li&gt;Generates the server&#x27;s Answer SDP using the components in the multiaddress.&lt;&#x2F;li&gt;
&lt;li&gt;Modifies the SDP, or &quot;munges&quot; it, to include an auto-generated ufrag and password, as well as the server&#x27;s IP and port.&lt;&#x2F;li&gt;
&lt;li&gt;Creates an Offer SDP and modifies it with the same values.&lt;&#x2F;li&gt;
&lt;li&gt;Sets the Offer and Answer SDP on the browser, which triggers the sending of STUN packets to the server.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;server-response&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#server-response&quot; aria-label=&quot;Anchor link for: server-response&quot;&gt;Server Response&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The server responds by creating the browser&#x27;s Offer SDP using the values in the STUN Binding Request.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;dtls-handshake&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dtls-handshake&quot; aria-label=&quot;Anchor link for: dtls-handshake&quot;&gt;DTLS Handshake&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The browser and server then engage in a DTLS handshake to open a DTLS connection that WebRTC can run SCTP on top of. A &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;blob&#x2F;master&#x2F;noise&#x2F;README.md&quot;&gt;Noise handshake&lt;&#x2F;a&gt; is initiated by the server using the fingerprints in the SDP as input to the prologue data, and completed by the browser over the Data Channel.&lt;&#x2F;p&gt;
&lt;p&gt;Once the DTLS and Noise handshakes are complete, DTLS-encrypted SCTP data is ready to be exchanged over the UDP socket.&lt;&#x2F;p&gt;









    
    




&lt;div class=&quot;alert alert--tip&quot;&gt;
    &lt;span class=&quot;alert__icon&quot;&gt;&amp;#128161;&lt;&#x2F;span&gt;
    &lt;div class=&quot;alert__content&quot;&gt;
        
        Unlike standard WebRTC, signaling is completely removed in libp2p browser-to-server communication, and Signal Channels are not needed. Removing signaling results in fewer roundtrips to establish a Data Channel and reduces complexity.
    &lt;&#x2F;div&gt;
&lt;&#x2F;div&gt;
&lt;h3 id=&quot;multiaddress&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#multiaddress&quot; aria-label=&quot;Anchor link for: multiaddress&quot;&gt;Multiaddress&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The multiaddress of a WebRTC address begins like a standard UDP address, but adds three additional protocols: &lt;code&gt;webrtc&lt;&#x2F;code&gt;, &lt;code&gt;hash&lt;&#x2F;code&gt;, and &lt;code&gt;p2p&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;&#x2F;ip4&#x2F;1.2.3.4&#x2F;udp&#x2F;1234&#x2F;webrtc&#x2F;certhash&#x2F;&amp;lt;hash&amp;gt;&#x2F;p2p&#x2F;&amp;lt;peer-id&amp;gt;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;webrtc&lt;&#x2F;code&gt;: the name of this transport&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;hash&lt;&#x2F;code&gt;: the multihash of the certificate used in the DTLS handshake&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;p2p&lt;&#x2F;code&gt;: the peer-id of the libp2p node (optional)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;benefits&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#benefits&quot; aria-label=&quot;Anchor link for: benefits&quot;&gt;Benefits&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;self-signed-certificate&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#self-signed-certificate&quot; aria-label=&quot;Anchor link for: self-signed-certificate&quot;&gt;Self-signed Certificate&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;WebRTC enables browsers to connect to public libp2p nodes without the nodes requiring a TLS certificate in the browser&#x27;s certificate chain. WebRTC allows the server to use a self-signed TLS certificate, eliminating the need for additional services like DNS and Let&#x27;s Encrypt.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;broad-support&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#broad-support&quot; aria-label=&quot;Anchor link for: broad-support&quot;&gt;Broad support&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;WebRTC has been supported in Chrome since 2012, and support has since been added to all evergreen browsers. This makes WebRTC widely available and easy to implement in libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;limitations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#limitations&quot; aria-label=&quot;Anchor link for: limitations&quot;&gt;Limitations&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;setup-and-configuration&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#setup-and-configuration&quot; aria-label=&quot;Anchor link for: setup-and-configuration&quot;&gt;Setup and configuration&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;WebRTC is a complex set of technologies that requires extensive server setup and configuration. While libraries like Pion and webrtc-rs abstract away this functionality, the additional complexity introduced and the configuration fine-tuning required can be a drawback for some users.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;extensive-roundtrips&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#extensive-roundtrips&quot; aria-label=&quot;Anchor link for: extensive-roundtrips&quot;&gt;Extensive Roundtrips&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;Another limitation is the 6 roundtrips required before data is exchanged. This may make other transports, such as WebTransport, more appealing where the browser supports it.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;usage&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#usage&quot; aria-label=&quot;Anchor link for: usage&quot;&gt;Usage&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The complexity of WebRTC is abstracted in the libp2p implementations, making it easy to swap in WebRTC as the transport. In the JavaScript implementation, for example, all you need to do is initialize with:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color: #F8F8F2; background-color: #272822;&quot;&gt;&lt;code data-lang=&quot;javascript&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #F92672;&quot;&gt;import&lt;&#x2F;span&gt;&lt;span&gt; { webRTC }&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; from&lt;&#x2F;span&gt;&lt;span style=&quot;color: #E6DB74;&quot;&gt; &amp;#39;js-libp2p-webrtc&amp;#39;&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt;const&lt;&#x2F;span&gt;&lt;span&gt; node&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; = await&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; createLibp2p&lt;&#x2F;span&gt;&lt;span&gt;({&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  transports: [&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt;webRTC&lt;&#x2F;span&gt;&lt;span&gt;()],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;  connectionEncryption: [()&lt;&#x2F;span&gt;&lt;span style=&quot;color: #66D9EF;font-style: italic;&quot;&gt; =&amp;gt;&lt;&#x2F;span&gt;&lt;span style=&quot;color: #F92672;&quot;&gt; new&lt;&#x2F;span&gt;&lt;span style=&quot;color: #A6E22E;&quot;&gt; Noise&lt;&#x2F;span&gt;&lt;span&gt;()],&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;});&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;&lt;h2 id=&quot;alternative-transports&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#alternative-transports&quot; aria-label=&quot;Anchor link for: alternative-transports&quot;&gt;Alternative transports&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;WebRTC is just one option for connecting browsers to libp2p nodes. libp2p supports a variety of transports, and choosing the right one for your use case is an important consideration. The &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity&quot;&gt;libp2p connectivity guide&lt;&#x2F;a&gt; was designed to help developers consider the available options.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;websocket&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#websocket&quot; aria-label=&quot;Anchor link for: websocket&quot;&gt;WebSocket&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The WebSocket protocol allows for the opening of a two-way socket between a browser and a server over TCP. One limitation of WebSocket is the number of roundtrips required to establish a connection—up to six roundtrips. Additionally, WebSocket requires the server to have a trusted TLS certificate using TCP, unlike WebRTC which can use a self-signed certificate.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#webtransport&quot; aria-label=&quot;Anchor link for: webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;&lt;a href=&quot;&#x2F;blog&#x2F;2022-12-19-libp2p-webtransport&quot;&gt;WebTransport&lt;&#x2F;a&gt; is the new kid on the block for communication in the browser. WebTransport has many of the same benefits as WebRTC, such as fast, secure, and multiplexed connections, without requiring servers to implement the stack. Additionally, WebTransport requires fewer roundtrips to establish a connection than WebRTC, making it the preferred choice when supported.&lt;&#x2F;p&gt;
&lt;p&gt;Currently, it is only implemented in Chrome and is still under development. Until WebTransport is supported by all major browsers, WebRTC can serve as a good fallback option.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;can-i-use-webrtc-now&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#can-i-use-webrtc-now&quot; aria-label=&quot;Anchor link for: can-i-use-webrtc-now&quot;&gt;Can I use WebRTC now?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Yes, you can use libp2p-webrtc in the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;tree&#x2F;master&#x2F;transports&#x2F;webrtc&quot;&gt;Rust&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p-webrtc&quot;&gt;JavaScript&lt;&#x2F;a&gt; implementations! The &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;go-libp2p&quot;&gt;Go&lt;&#x2F;a&gt; implementation is also available.&lt;&#x2F;p&gt;
&lt;p&gt;For how to use WebRTC browser-to-server, you can take a look at the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;js-libp2p-webrtc&#x2F;tree&#x2F;main&#x2F;examples&#x2F;browser-to-server&quot;&gt;examples in the js-libp2p-webrtc repo&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-next&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link for: what-s-next&quot;&gt;What&#x27;s next?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;WebRTC offers the capability for browsers to connect to browsers. The &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;pull&#x2F;497&quot;&gt;WebRTC browser-to-browser connectivity spec&lt;&#x2F;a&gt; has been authored and development is underway.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;resources-and-how-you-can-help-contribute&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#resources-and-how-you-can-help-contribute&quot; aria-label=&quot;Anchor link for: resources-and-how-you-can-help-contribute&quot;&gt;Resources and how you can help contribute&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;webrtc-browser-connectivity&#x2F;&quot;&gt;WebRTC Docs&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#webrtc&quot;&gt;WebRTC Connectivity&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;webrtc&quot;&gt;WebRTC Spec&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you would like to contribute, please &lt;a href=&quot;&#x2F;get-involved&#x2F;&quot;&gt;connect with the libp2p maintainers&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Thank you for reading!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>rust-libp2p in 2022</title>
          <pubDate>Thu, 12 Jan 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2023-01-12-rust-libp2p-in-2022/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2023-01-12-rust-libp2p-in-2022/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2023-01-12-rust-libp2p-in-2022/">&lt;p&gt;The &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&quot;&gt;rust-libp2p&lt;&#x2F;a&gt; project has made significant strides in 2022, with numerous technical advancements and improvements to the project itself. This is the work of many across various organizations including Protocol Labs, Parity Technologies, Sigma Prime, Iroh, Actyx and Little Bear Labs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;technical-highlights&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#technical-highlights&quot; aria-label=&quot;Anchor link for: technical-highlights&quot;&gt;Technical Highlights&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;decentralized-hole-punching&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#decentralized-hole-punching&quot; aria-label=&quot;Anchor link for: decentralized-hole-punching&quot;&gt;Decentralized Hole Punching&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We started the year with the release of the various components needed for hole punching. We added the Circuit Relay v2 protocol, DCUtR protocol and AutoNAT protocol. These features were all included together in rust-libp2p &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;releases&#x2F;tag&#x2F;v0.43.0&quot;&gt;v0.43.0&lt;&#x2F;a&gt; released in February.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;new-transports&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#new-transports&quot; aria-label=&quot;Anchor link for: new-transports&quot;&gt;New Transports&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Over the year we worked on two new transports: WebRTC (browser-to-server) and QUIC, which we both released towards the end of the year as alpha&#x2F;experimental features.&lt;&#x2F;p&gt;
&lt;p&gt;Our implementation of WebRTC enables browsers to connect to rust-libp2p based servers without those servers needing to have signed TLS certificates. QUIC is a better libp2p transport than the combination of TCP+Noise+Yamux in almost every dimension.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;user-experience-improvements&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#user-experience-improvements&quot; aria-label=&quot;Anchor link for: user-experience-improvements&quot;&gt;User Experience Improvements&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We tackled many smaller improvements including naming consistency across crates, refactoring of event handlers, deprecation of event-based &lt;code&gt;PollParameters&lt;&#x2F;code&gt;, rework of Rust feature flags, and removal of listener streams in favor of polling transports directly.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;dos-protection&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#dos-protection&quot; aria-label=&quot;Anchor link for: dos-protection&quot;&gt;DoS Protection&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;rust-libp2p saw a lot of DoS protection improvements in 2022. We enforce various limits and prioritize local work over new incoming work from a remote across the many layers.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;metrics-and-observability&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#metrics-and-observability&quot; aria-label=&quot;Anchor link for: metrics-and-observability&quot;&gt;Metrics and Observability&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We introduced a metric crate for rust-libp2p exposing Prometheus metrics, e.g. the time to establish a connection or the protocols supported by peers.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;meta-improvements-to-the-project&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#meta-improvements-to-the-project&quot; aria-label=&quot;Anchor link for: meta-improvements-to-the-project&quot;&gt;Meta - Improvements to the Project&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The core rust-libp2p maintainer team grew from two engineers to four. Beyond the core maintainers, a total of 36 people contributed to rust-libp2p&#x27;s &lt;code&gt;master&lt;&#x2F;code&gt; branch in 2022.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;automation&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#automation&quot; aria-label=&quot;Anchor link for: automation&quot;&gt;Automation&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;We invested heavily into rust-libp2p&#x27;s automation including mergify, &lt;code&gt;cargo-semver-checks&lt;&#x2F;code&gt;, conventional commits, and refactored CI job structure.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;interoperability&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#interoperability&quot; aria-label=&quot;Anchor link for: interoperability&quot;&gt;Interoperability&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;As of September 2022, we continuously test that the various versions of go-libp2p and rust-libp2p can connect.&lt;&#x2F;p&gt;
&lt;p&gt;In 2022 we published 9 releases of the main &lt;code&gt;libp2p&lt;&#x2F;code&gt; crate and a total of 268 releases across the workspace.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-next&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-next&quot; aria-label=&quot;Anchor link for: what-s-next&quot;&gt;What&#x27;s Next?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Check out the rust-libp2p &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;rust-libp2p&#x2F;blob&#x2F;master&#x2F;ROADMAP.md&quot;&gt;project roadmap&lt;&#x2F;a&gt; for planned developments including improved WASM support, WebRTC browser-to-browser, and WebTransport.&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>libp2p &amp; Ethereum (the Merge)</title>
          <pubDate>Fri, 06 Jan 2023 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/libp2p-and-ethereum/</link>
          <guid>https://sumanjeet.duckdns.org/blog/libp2p-and-ethereum/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/libp2p-and-ethereum/">&lt;p&gt;If you&#x27;ve kept up with developments in Web3, you&#x27;ve likely heard of the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;ethereum&#x2F;execution-specs&#x2F;blob&#x2F;master&#x2F;network-upgrades&#x2F;mainnet-upgrades&#x2F;paris.md&quot;&gt;Paris upgrade&lt;&#x2F;a&gt;, more widely known as &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;ethereum.org&#x2F;en&#x2F;upgrades&#x2F;merge&#x2F;&quot;&gt;The Merge&lt;&#x2F;a&gt;, on the Ethereum network.&lt;&#x2F;p&gt;
&lt;p&gt;You may be wondering... why is the libp2p blog writing about Ethereum and the Merge?&lt;&#x2F;p&gt;
&lt;p&gt;Well, as a result of the Merge, we&#x27;re excited to share that:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;libp2p is integrated into the Ethereum network!&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;a-brief-history-of-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#a-brief-history-of-libp2p&quot; aria-label=&quot;Anchor link for: a-brief-history-of-libp2p&quot;&gt;A Brief History of libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Protocol Labs first developed libp2p as a networking library inside of IPFS. At the outset, their code and repositories were coupled. However, Protocol Labs soon realized libp2p&#x27;s potential and utility beyond IPFS, and project maintainers split the two codebases apart.&lt;&#x2F;p&gt;
&lt;p&gt;As a result, the libp2p project saw tremendous growth and adoption. Besides IPFS and Filecoin, libp2p is relied on by networks like Polkadot, Polygon, Mina, Celestia, Flow, and many more.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;the-merge&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-merge&quot; aria-label=&quot;Anchor link for: the-merge&quot;&gt;The Merge&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Ethereum&#x27;s genesis occurred on July 30, 2015 as a part of a milestone called Frontier. The most recent (and arguably the most anticipated) upgrade was Paris, a.k.a. The Merge, executed on September 15, 2022.&lt;&#x2F;p&gt;
&lt;p&gt;The Merge encompassed major changes:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Upgrading the consensus mechanism&lt;&#x2F;strong&gt; - Transitioning to proof-of-stake, away from proof-of-work&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Reducing network energy consumption by 99.95%&lt;&#x2F;strong&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Integrating libp2p&lt;&#x2F;strong&gt; into the mainnet&#x27;s networking layer&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h2 id=&quot;how-libp2p-was-integrated-into-ethereum&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-libp2p-was-integrated-into-ethereum&quot; aria-label=&quot;Anchor link for: how-libp2p-was-integrated-into-ethereum&quot;&gt;How libp2p was integrated into Ethereum&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;In the early days of Ethereum and libp2p, libp2p didn&#x27;t exist when Ethereum was first developed, so it never got a chance to be evaluated and&#x2F;or adopted.&lt;&#x2F;p&gt;
&lt;p&gt;Prior to the Merge, Ethereum solely used devp2p, a dedicated networking stack. Though there were talks between the Ethereum and IPFS&#x2F;libp2p communities to have one solution instead of two, the timing didn&#x27;t work.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;early-days-2016-2017&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#early-days-2016-2017&quot; aria-label=&quot;Anchor link for: early-days-2016-2017&quot;&gt;Early Days (2016-2017)&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;At Devcon 2, David Dias from Protocol Labs gave a talk titled &quot;libp2p ❤ devp2p: IPFS and Ethereum Networking&quot;. He gave an overview of libp2p and demonstrated running the EVM in a browser connecting to a go-ethereum node using libp2p.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;eth-libp2p-2016.png&quot; alt=&quot;Early libp2p and Ethereum collaboration&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;the-integration&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#the-integration&quot; aria-label=&quot;Anchor link for: the-integration&quot;&gt;The Integration&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The integration of libp2p into Ethereum came through the new consensus layer (beacon chain) that powers proof-of-stake. Beacon nodes use libp2p for peer discovery, establishing connections, and exchanging messages.&lt;&#x2F;p&gt;
&lt;p&gt;This is the work of many across various organizations including the Ethereum Foundation, Prysmatic Labs, Sigma Prime, ChainSafe, Status.im, and Protocol Labs.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-ethereum-beacon-nodes-use-libp2p&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-ethereum-beacon-nodes-use-libp2p&quot; aria-label=&quot;Anchor link for: how-ethereum-beacon-nodes-use-libp2p&quot;&gt;How Ethereum Beacon Nodes use libp2p&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Beacon nodes use libp2p in several ways:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Peer Discovery&lt;&#x2F;strong&gt;: Using discv5 for discovery and libp2p for connections&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;GossipSub&lt;&#x2F;strong&gt;: For propagating blocks and attestations&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Request&#x2F;Response&lt;&#x2F;strong&gt;: For syncing and specific data requests&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;conclusion&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#conclusion&quot; aria-label=&quot;Anchor link for: conclusion&quot;&gt;Conclusion&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;The integration of libp2p into Ethereum represents years of collaboration between the communities. It demonstrates the power of open-source development and the value of modular, reusable networking libraries.&lt;&#x2F;p&gt;
&lt;p&gt;We&#x27;re excited about this milestone and look forward to continued collaboration with the Ethereum community!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>WebTransport in libp2p</title>
          <pubDate>Mon, 19 Dec 2022 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2022-12-19-libp2p-webtransport/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2022-12-19-libp2p-webtransport/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2022-12-19-libp2p-webtransport/">&lt;p&gt;This is the first entry in a series of posts on how libp2p achieves browser connectivity.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;overview&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#overview&quot; aria-label=&quot;Anchor link for: overview&quot;&gt;Overview&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Seamless browser connectivity is a crucial goal of the &lt;a href=&quot;&#x2F;&quot;&gt;libp2p project&lt;&#x2F;a&gt;. Over many years, libp2p has made many strides to realize that vision. Today, we are proud to announce a significant milestone that puts us much closer to that aim:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;libp2p now supports the new, bleeding-edge WebTransport protocol!&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;In this article, we:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Introduce WebTransport&lt;&#x2F;li&gt;
&lt;li&gt;Show what it means for apps and how you can use it today&lt;&#x2F;li&gt;
&lt;li&gt;Explain its advantages over existing solutions&lt;&#x2F;li&gt;
&lt;li&gt;Give you a deep dive into how it works&lt;&#x2F;li&gt;
&lt;li&gt;Describe the current state of WebTransport (specs and implementations)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;what-is-webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-is-webtransport&quot; aria-label=&quot;Anchor link for: what-is-webtransport&quot;&gt;What is WebTransport?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;At a high level, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.w3.org&#x2F;TR&#x2F;webtransport&#x2F;&quot;&gt;WebTransport&lt;&#x2F;a&gt; is a new &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;osi-model.com&#x2F;transport-layer&#x2F;&quot;&gt;transport protocol&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;developer.mozilla.org&#x2F;en-US&#x2F;docs&#x2F;Web&#x2F;API&quot;&gt;Web API&lt;&#x2F;a&gt; currently under development by both the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.ietf.org&#x2F;&quot;&gt;Internet Engineering Task Force (IETF)&lt;&#x2F;a&gt; and the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.w3.org&#x2F;&quot;&gt;World Wide Web Consortium (W3C)&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;WebTransport is developing to meet &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;w3c&#x2F;webtransport&#x2F;blob&#x2F;main&#x2F;explainer.md#goals&quot;&gt;these goals&lt;&#x2F;a&gt;:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Enable low latency communication between browsers and servers (efficiently transfer data and decrease travel time from browser to server).&lt;&#x2F;li&gt;
&lt;li&gt;Have an API that supports different protocols and use cases (e.g., reliable&#x2F;unreliable and ordered&#x2F;unordered data transmission, client-server and peer-to-peer architectures, transmitting audio&#x2F;video media as well as generic data).&lt;&#x2F;li&gt;
&lt;li&gt;Have the same security properties as current solutions (e.g., WebSocket over TLS.)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;With these goals in mind, WebTransport seeks to address a multitude of use cases, including browser gaming, live streaming, multimedia applications, and more.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;websocket-the-old-solution-and-its-challenges&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#websocket-the-old-solution-and-its-challenges&quot; aria-label=&quot;Anchor link for: websocket-the-old-solution-and-its-challenges&quot;&gt;WebSocket: The old solution and its challenges&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Before we delve deeper, let&#x27;s reflect on the history of browser connectivity in libp2p. How did libp2p browser nodes connect to server nodes before the advent of WebTransport, and what challenges existed when bridging browsers to the libp2p ecosystem?&lt;&#x2F;p&gt;
&lt;p&gt;Browsers dial &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Transmission_Control_Protocol&quot;&gt;TCP&lt;&#x2F;a&gt; connections (for HTTP 1.1 and HTTP&#x2F;2) and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc9000.html&quot;&gt;QUIC&lt;&#x2F;a&gt; connections (for HTTP&#x2F;3) all the time. However, there&#x27;s no way to &lt;em&gt;just&lt;&#x2F;em&gt; dial a TCP or QUIC connection and use it for things other than HTTP.&lt;&#x2F;p&gt;
&lt;p&gt;This posed a problem when integrating browser applications with libp2p. libp2p is built on top of a bidirectional, asynchronous stream abstraction, whereas HTTP is a stateless, unidirectional, synchronous request-response protocol.&lt;&#x2F;p&gt;
&lt;p&gt;Therefore, for the longest time, the only way to connect a libp2p client running in the browser to the rest of the network was using the somewhat dated &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.rfc-editor.org&#x2F;rfc&#x2F;rfc6455&quot;&gt;WebSocket protocol&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;WebSocket has multiple drawbacks:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Slow time to connect&lt;&#x2F;strong&gt;: It takes six network roundtrips until the libp2p connection is finally established because of the steps involved in establishing a WebSocket connection.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Inefficiency&lt;&#x2F;strong&gt;: We&#x27;re double-encrypting the data: The first time, it&#x27;s encrypted on the outer (HTTPS) connection, and then again by the libp2p security protocol.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Increased latency&lt;&#x2F;strong&gt;: There&#x27;s no native stream multiplexing in WebSocket, and each internal stream can suffer from head-of-line blocking.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;In practice, a different obstacle prevented WebSocket from achieving widespread deployment in libp2p. When a browser connects to a website, in practically all cases, it does so via HTTPS. This means that the server needs a valid TLS certificate signed by a Certificate Authority like Let&#x27;s Encrypt.&lt;&#x2F;p&gt;
&lt;p&gt;However, most libp2p nodes don&#x27;t have such a certificate. This is because libp2p nodes constitute a decentralized peer-to-peer network where participants can run nodes on home laptops or browsers and join or leave the network at will. Most nodes don&#x27;t even possess a domain name.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;meet-webtransport&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#meet-webtransport&quot; aria-label=&quot;Anchor link for: meet-webtransport&quot;&gt;Meet WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Thankfully, WebTransport addresses almost all of the pain points when using WebSocket!&lt;&#x2F;p&gt;
&lt;p&gt;Conceptually, WebTransport is similar to WebSocket, although it&#x27;s a new protocol on the wire. The browser can &quot;upgrade&quot; an HTTP&#x2F;2 or an HTTP&#x2F;3 connection to a &lt;strong&gt;WebTransport session&lt;&#x2F;strong&gt;. HTTP&#x2F;3 runs on top of QUIC. A WebTransport session over HTTP&#x2F;3 allows both endpoints to open (very thinly wrapped) QUIC streams to each other. This enables WebTransport to take advantage of QUIC&#x27;s offerings:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Speedy time to connect using a fast handshake (just one network roundtrip)&lt;&#x2F;li&gt;
&lt;li&gt;Native stream multiplexing without head-of-line blocking&lt;&#x2F;li&gt;
&lt;li&gt;Advanced loss recovery and congestion control&lt;&#x2F;li&gt;
&lt;li&gt;Low latency communication and unordered and unreliable delivery of data&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;certificate-hash-verification&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#certificate-hash-verification&quot; aria-label=&quot;Anchor link for: certificate-hash-verification&quot;&gt;Certificate Hash Verification&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The most critical change for our peer-to-peer use case is the new verification option. The WebTransport browser API allows for two distinct modes:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Verification of the TLS certificate chain&lt;&#x2F;strong&gt;: This is precisely what the browser does when checking the certificate for any website it connects to.&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Verification of the TLS certificate hash&lt;&#x2F;strong&gt;: The browser will trust the server if the hash of the certificate used during the handshake matches its expected hash.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Option (2) allows us to use WebTransport on &lt;em&gt;any&lt;&#x2F;em&gt; libp2p node without manual configuration!&lt;&#x2F;p&gt;
&lt;p&gt;It works because when setting up a WebTransport server, the libp2p node will generate a self-signed TLS certificate and calculate the certificate hash. It then advertises the following &lt;a href=&quot;&#x2F;docs&#x2F;addressing&#x2F;&quot;&gt;multiaddress&lt;&#x2F;a&gt; to the network:&lt;&#x2F;p&gt;
&lt;p&gt;&lt;code&gt;&#x2F;ip4&#x2F;1.2.3.4&#x2F;udp&#x2F;4001&#x2F;quic&#x2F;webtransport&#x2F;certhash&#x2F;&amp;lt;hash&amp;gt;&lt;&#x2F;code&gt;&lt;&#x2F;p&gt;
&lt;p&gt;The &lt;code&gt;certhash&lt;&#x2F;code&gt; component of the multiaddress tells the browser the certificate hash, allowing it to establish the WebTransport connection successfully.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;deep-dive-how-webtransport-works&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#deep-dive-how-webtransport-works&quot; aria-label=&quot;Anchor link for: deep-dive-how-webtransport-works&quot;&gt;Deep dive: How WebTransport works&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ol&gt;
&lt;li&gt;The browser dials a regular HTTP&#x2F;3 connection to the server, verifying the certificate either by its chain of trust or by the certificate&#x27;s hash.&lt;&#x2F;li&gt;
&lt;li&gt;The browser sends an &lt;code&gt;Extended CONNECT&lt;&#x2F;code&gt; request on an HTTP&#x2F;3 stream, requesting establishing a WebTransport session. If the server sends a &lt;code&gt;200&lt;&#x2F;code&gt; HTTP status, the WebTransport session is successfully established.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;&lt;img src=&quot;&#x2F;img&#x2F;blog&#x2F;WebTransport-blog-post-diagram-1.png&quot; alt=&quot;WebTransport Diagram&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Both sides can now open streams (both bidirectional and unidirectional) and send (unreliable) HTTP datagrams.&lt;&#x2F;p&gt;
&lt;p&gt;In libp2p, we still need to verify the libp2p peer IDs, so we&#x27;re not entirely done yet. The browser opens a new WebTransport stream and starts a &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;noiseprotocol.org&#x2F;noise.html&quot;&gt;Noise&lt;&#x2F;a&gt; handshake. This is the same handshake we use to secure connections on top of TCP in libp2p.&lt;&#x2F;p&gt;
&lt;p&gt;Therefore, setting up a WebTransport connection in libp2p takes no more than &lt;strong&gt;three network roundtrips&lt;&#x2F;strong&gt;. Compare that to the six roundtrips we needed for WebSocket!&lt;&#x2F;p&gt;
&lt;h3 id=&quot;limitations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#limitations&quot; aria-label=&quot;Anchor link for: limitations&quot;&gt;Limitations&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;WebTransport does not support browser-to-browser connectivity. To meet this need, libp2p implementations are adding support for WebRTC browser-to-server connectivity and browser-to-browser connectivity.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;what-s-the-current-state-of-webtransport-and-where-is-it-supported&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-s-the-current-state-of-webtransport-and-where-is-it-supported&quot; aria-label=&quot;Anchor link for: what-s-the-current-state-of-webtransport-and-where-is-it-supported&quot;&gt;What&#x27;s the current state of WebTransport, and where is it supported?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;state-of-specifications&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#state-of-specifications&quot; aria-label=&quot;Anchor link for: state-of-specifications&quot;&gt;State of Specifications&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The IETF specification of the protocol itself is still in the draft stage with ongoing revisions. The libp2p specification is here: &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;webtransport&quot;&gt;libp2p WebTransport spec&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;state-in-browsers&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#state-in-browsers&quot; aria-label=&quot;Anchor link for: state-in-browsers&quot;&gt;State in Browsers&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Currently, WebTransport support is limited to Chromium browsers. See the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;caniuse.com&#x2F;webtransport&quot;&gt;Can I Use? page for more details&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;state-in-libp2p-implementations&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#state-in-libp2p-implementations&quot; aria-label=&quot;Anchor link for: state-in-libp2p-implementations&quot;&gt;State in libp2p implementations&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;WebTransport is supported in two libp2p implementations as an experimental feature:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;go-libp2p as of v0.23.0&lt;&#x2F;li&gt;
&lt;li&gt;js-libp2p through the js-libp2p-webtransport npm package&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;Dt42Ss6X_Vk&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;h2 id=&quot;can-i-use-this-right-now&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#can-i-use-this-right-now&quot; aria-label=&quot;Anchor link for: can-i-use-this-right-now&quot;&gt;Can I use this right now?&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;p&gt;Yes, please! WebTransport already works between browsers and servers in applications powered by go-libp2p and js-libp2p.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;what-use-cases-does-this-unlock&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-use-cases-does-this-unlock&quot; aria-label=&quot;Anchor link for: what-use-cases-does-this-unlock&quot;&gt;What use cases does this unlock?&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Enable browser nodes (or light clients) as &quot;full&quot; peers in a decentralized network&lt;&#x2F;li&gt;
&lt;li&gt;Enable browser extension crypto wallets to submit transactions directly to the blockchain&lt;&#x2F;li&gt;
&lt;li&gt;Get data from the DHT by directly connecting to a DHT server node&lt;&#x2F;li&gt;
&lt;li&gt;Upload to Filecoin directly from the browser&lt;&#x2F;li&gt;
&lt;li&gt;Enable decentralized peer-to-peer video streaming as a dapp&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;resources-and-how-you-can-help-contribute&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#resources-and-how-you-can-help-contribute&quot; aria-label=&quot;Anchor link for: resources-and-how-you-can-help-contribute&quot;&gt;Resources and How you can help contribute&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;webtransport&#x2F;&quot;&gt;Documentation on WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity#webtransport&quot;&gt;Connectivity site section on the protocol&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;libp2p&#x2F;specs&#x2F;tree&#x2F;master&#x2F;webtransport&quot;&gt;Specification on WebTransport&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;If you would like to contribute, please &lt;a href=&quot;&#x2F;get-involved&#x2F;&quot;&gt;connect with the libp2p maintainers&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;Thank you for reading!&lt;&#x2F;p&gt;
</description>
      </item>
      <item>
          <title>libp2p Day 2022 Recap</title>
          <pubDate>Tue, 22 Nov 2022 00:00:00 +0000</pubDate>
          <author>The libp2p Foundation</author>
          <link>https://sumanjeet.duckdns.org/blog/2022-11-22-libp2p-day-2022-recap/</link>
          <guid>https://sumanjeet.duckdns.org/blog/2022-11-22-libp2p-day-2022-recap/</guid>
          <description xml:base="https://sumanjeet.duckdns.org/blog/2022-11-22-libp2p-day-2022-recap/">&lt;p&gt;Last month, on October 30th 2022, libp2p users and contributors gathered together for the first ever libp2p Day!&lt;&#x2F;p&gt;
&lt;p&gt;The day included talks from maintainers, contributors, community members, and users. Topics included latest libp2p updates, preview of future roadmap items, bleeding-edge demos on browser connectivity using new transport protocols, and much more.&lt;&#x2F;p&gt;
&lt;p&gt;Speakers shared new, exciting developments built on libp2p and represented organizations like Little Bear Labs, ChainSafe Systems, Status.im, Gather, Quiet, Pyrsia, Satellite.im, and Protocol Labs.&lt;&#x2F;p&gt;
&lt;p&gt;In the larger context, libp2p Day was hosted at &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;2022.ipfs.camp&#x2F;&quot;&gt;IPFS Camp 2022&lt;&#x2F;a&gt; as a part of a diverse lineup.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;goals&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#goals&quot; aria-label=&quot;Anchor link for: goals&quot;&gt;Goals&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;The goals of libp2p Day were to:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;Share updates on libp2p and highlight new developments through demos&lt;&#x2F;li&gt;
&lt;li&gt;Gather the libp2p ecosystem, give a spotlight to projects building on libp2p, and energize the community&lt;&#x2F;li&gt;
&lt;li&gt;Empower newcomers and existing users to become contributors and spec authors&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;h3 id=&quot;key-takeaways&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#key-takeaways&quot; aria-label=&quot;Anchor link for: key-takeaways&quot;&gt;Key Takeaways&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;h4 id=&quot;browser-connectivity-unlocked&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#browser-connectivity-unlocked&quot; aria-label=&quot;Anchor link for: browser-connectivity-unlocked&quot;&gt;Browser Connectivity Unlocked&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;First-class support for WebTransport enables libp2p nodes running in the browser to connect directly with peers on a host machine. WebRTC browser-to-server has also made significant progress.&lt;&#x2F;p&gt;
&lt;p&gt;Check out the &lt;a href=&quot;&#x2F;docs&#x2F;browser-connectivity&quot;&gt;new libp2p connectivity guide&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;libp2p-interoperability&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#libp2p-interoperability&quot; aria-label=&quot;Anchor link for: libp2p-interoperability&quot;&gt;libp2p Interoperability&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;The libp2p ecosystem continues to flourish with several implementations, each with its own set of supported features. libp2p teams are focusing on testing interoperability.&lt;&#x2F;p&gt;
&lt;h4 id=&quot;demand-for-libp2p-http&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#demand-for-libp2p-http&quot; aria-label=&quot;Anchor link for: demand-for-libp2p-http&quot;&gt;Demand for libp2p + HTTP&lt;&#x2F;a&gt;&lt;&#x2F;h4&gt;
&lt;p&gt;With the growing demand for libp2p + HTTP, the team has started drafting an HTTP specification.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;recap-of-talks&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#recap-of-talks&quot; aria-label=&quot;Anchor link for: recap-of-talks&quot;&gt;Recap of talks&lt;&#x2F;a&gt;&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;intro-to-libp2p-helping-with-real-world-application-problems&quot;&gt;&lt;a class=&quot;zola-anchor&quot; href=&quot;#intro-to-libp2p-helping-with-real-world-application-problems&quot; aria-label=&quot;Anchor link for: intro-to-libp2p-helping-with-real-world-application-problems&quot;&gt;Intro to libp2p: helping with real world application problems&lt;&#x2F;a&gt;&lt;&#x2F;h3&gt;
&lt;p&gt;Max Inden (rust-libp2p maintainer, Software Engineer at Protocol Labs)&lt;&#x2F;p&gt;







&lt;div class=&quot;video-container video-container--youtube&quot;&gt;
    &lt;iframe
        src=&quot;https:&#x2F;&#x2F;www.youtube-nocookie.com&#x2F;embed&#x2F;J7ZWbpo2AZk&quot;
        title=&quot;YouTube video&quot;
        frameborder=&quot;0&quot;
        allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture&quot;
        allowfullscreen
        loading=&quot;lazy&quot;
    &gt;&lt;&#x2F;iframe&gt;
&lt;&#x2F;div&gt;
&lt;p&gt;Max introduced libp2p covering transport protocols, secure channels, multiplexing mechanisms, how libp2p traverses NATs, discovers peers, uses Kademlia for peer-to-peer routing, and GossipSub for pub&#x2F;sub messaging.&lt;&#x2F;p&gt;
&lt;p&gt;For all the talk recordings, visit the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;2022.ipfs.camp&#x2F;&quot;&gt;IPFS Camp 2022 archive&lt;&#x2F;a&gt;.&lt;&#x2F;p&gt;
</description>
      </item>
    </channel>
</rss>
