From e559d846635ea4e26224db1a724c05457c3d6ea3 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 24 Apr 2026 14:21:22 +0300 Subject: [PATCH 1/3] chore: use random bytes for echo Ensures that where bufs are split for sending, they are reassembled in the correct order. --- packages/interface-compliance-tests/src/transport/index.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/interface-compliance-tests/src/transport/index.ts b/packages/interface-compliance-tests/src/transport/index.ts index 6984b340b3..014bb31d80 100644 --- a/packages/interface-compliance-tests/src/transport/index.ts +++ b/packages/interface-compliance-tests/src/transport/index.ts @@ -1,3 +1,4 @@ +import { randomBytes } from '@libp2p/crypto' import { stop, TimeoutError } from '@libp2p/interface' import { prefixLogger } from '@libp2p/logger' import { expect } from 'aegir/chai' @@ -10,6 +11,7 @@ import pRetry from 'p-retry' import pWaitFor from 'p-wait-for' import { raceSignal } from 'race-signal' import { Uint8ArrayList } from 'uint8arraylist' +import { concat as uint8ArrayConcat } from 'uint8arrays' import { isValidTick } from '../is-valid-tick.js' import { createPeer, getTransportManager, getUpgrader } from './utils.ts' import type { TestSetup } from '../index.js' @@ -333,7 +335,7 @@ export default (common: TestSetup): void => { const connection = await dialer.dial(dialAddrs[0]) - const input = new Uint8Array(1024).fill(5) + const input = randomBytes(1024) const output = await dialer.services.echo.echo(connection.remotePeer, input, { signal: AbortSignal.timeout(timeout) }) @@ -349,7 +351,7 @@ export default (common: TestSetup): void => { const connection = await dialer.dial(dialAddrs[0]) - const input = new Uint8Array(1024 * 1024 * 10).fill(5) + const input = uint8ArrayConcat(new Array(160).fill(0).map(() => randomBytes(65535))) const output = await dialer.services.echo.echo(connection.remotePeer, input, { signal: AbortSignal.timeout(timeout) }) From 5a0f6be33817d2b9e0df74aa7e655c5792baee48 Mon Sep 17 00:00:00 2001 From: achingbrain Date: Fri, 24 Apr 2026 16:08:01 +0300 Subject: [PATCH 2/3] chore: size --- packages/interface-compliance-tests/src/transport/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/interface-compliance-tests/src/transport/index.ts b/packages/interface-compliance-tests/src/transport/index.ts index 014bb31d80..ab4ff6026c 100644 --- a/packages/interface-compliance-tests/src/transport/index.ts +++ b/packages/interface-compliance-tests/src/transport/index.ts @@ -351,7 +351,7 @@ export default (common: TestSetup): void => { const connection = await dialer.dial(dialAddrs[0]) - const input = uint8ArrayConcat(new Array(160).fill(0).map(() => randomBytes(65535))) + const input = uint8ArrayConcat(new Array(160).fill(0).map(() => randomBytes(65536))) const output = await dialer.services.echo.echo(connection.remotePeer, input, { signal: AbortSignal.timeout(timeout) }) From 8fcde5fa4c481ddfb36efd5bf4ef4758dcf1b0b5 Mon Sep 17 00:00:00 2001 From: tabcat Date: Sat, 25 Apr 2026 13:31:45 +0700 Subject: [PATCH 3/3] chore: use random bytes for many small writes too Co-Authored-By: Claude Opus 4.7 --- packages/interface-compliance-tests/src/transport/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/interface-compliance-tests/src/transport/index.ts b/packages/interface-compliance-tests/src/transport/index.ts index ab4ff6026c..a77bd15f93 100644 --- a/packages/interface-compliance-tests/src/transport/index.ts +++ b/packages/interface-compliance-tests/src/transport/index.ts @@ -369,7 +369,7 @@ export default (common: TestSetup): void => { const echoProtocol = dialer.services.echo.protocol for (let i = 0; i < 2_000; i++) { - const input = new Uint8Array(1024).fill(5) + const input = randomBytes(1024) const output = await dialer.services.echo.echo(connection.remotePeer, input, { signal: AbortSignal.timeout(timeout) })