Skip to content

Conversation

@marcus-pousette
Copy link
Contributor

@marcus-pousette marcus-pousette commented Sep 24, 2025

Title

Fixes the imports to use CJS so the benchmarks can potentially run.

Description

I am trying to run the benchmarks of yamux and a performance improvement BUT

However this is still not working. (this fix in the chainsafe repo which uses libp2p 2.x works.

I get this error when running

  1. comparison benchmark
    mplex send and receive 1 0.0625KB chunks:
    ValidationError: Value must be smaller than or equal to 65535 got 65537
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:16:19
    at Object.validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:23:13)
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:130:25
    at Array.forEach ()
    at validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:125:10)
    at new Multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:45:13)
    at multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/index.js:99:12)
    at multiaddrConnectionPair (file:///Users/admin/git/js-libp2p/packages/utils/dist/src/multiaddr-connection-pair.js:89:55)
    at Object.beforeEach (file:///Users/admin/git/js-libp2p/packages/stream-multiplexer-yamux/dist/test/bench/comparison.bench.js:28:69)
    at runBenchFn (/Users/admin/git/js-libp2p/node_modules/@dapplion/benchmark/lib/cjs/mochaPlugin/runBenchFn.js:36:52)

  2. comparison benchmark
    mplex send and receive 1 1KB chunks:
    ValidationError: Value must be smaller than or equal to 65535 got 65539
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:16:19
    at Object.validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:23:13)
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:130:25
    at Array.forEach ()
    at validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:125:10)
    at new Multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:45:13)
    at multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/index.js:99:12)
    at multiaddrConnectionPair (file:///Users/admin/git/js-libp2p/packages/utils/dist/src/multiaddr-connection-pair.js:89:55)
    at Object.beforeEach (file:///Users/admin/git/js-libp2p/packages/stream-multiplexer-yamux/dist/test/bench/comparison.bench.js:28:69)
    at runBenchFn (/Users/admin/git/js-libp2p/node_modules/@dapplion/benchmark/lib/cjs/mochaPlugin/runBenchFn.js:36:52)

  3. comparison benchmark
    mplex send and receive 1000 0.0625KB chunks:
    ValidationError: Value must be smaller than or equal to 65535 got 65541
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:16:19
    at Object.validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:23:13)
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:130:25
    at Array.forEach ()
    at validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:125:10)
    at new Multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:45:13)
    at multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/index.js:99:12)
    at multiaddrConnectionPair (file:///Users/admin/git/js-libp2p/packages/utils/dist/src/multiaddr-connection-pair.js:89:55)
    at Object.beforeEach (file:///Users/admin/git/js-libp2p/packages/stream-multiplexer-yamux/dist/test/bench/comparison.bench.js:28:69)
    at runBenchFn (/Users/admin/git/js-libp2p/node_modules/@dapplion/benchmark/lib/cjs/mochaPlugin/runBenchFn.js:36:52)

  4. comparison benchmark
    mplex send and receive 1000 1KB chunks:
    ValidationError: Value must be smaller than or equal to 65535 got 65543
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:16:19
    at Object.validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/validation.js:23:13)
    at file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:130:25
    at Array.forEach ()
    at validate (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:125:10)
    at new Multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js:45:13)
    at multiaddr (file:///Users/admin/git/js-libp2p/node_modules/@multiformats/multiaddr/dist/src/index.js:99:12)
    at multiaddrConnectionPair (file:///Users/admin/git/js-libp2p/packages/utils/dist/src/multiaddr-connection-pair.js:89:55)
    at Object.beforeEach (file:///Users/admin/git/js-libp2p/packages/stream-multiplexer-yamux/dist/test/bench/comparison.bench.js:28:69)
    at runBenchFn (/Users/admin/git/js-libp2p/node_modules/@dapplion/benchmark/lib/cjs/mochaPlugin/runBenchFn.js:36:52)

Notes & open questions

What has changed in the defaults?

Change checklist

  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation if necessary (this includes comments as well)
  • I have added tests that prove my fix is effective or that my feature works

@achingbrain
Copy link
Member

achingbrain commented Sep 24, 2025

Thanks for opening this. The yamux implementation here is only here temporarily to resolve a circular dependency.

Once ChainSafe/js-libp2p-yamux#105 is merged/released, it will be deleted and everything will revert to using https://github.com/chainSafe/js-libp2p-yamux - this PR should be opened against that repo.

@marcus-pousette
Copy link
Contributor Author

Thanks for letting me know. Then I will close this and re-open it there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants