Closed binarybaron closed 3 years ago
Thanks for reaching out and apologies for the state of this implementation not being clear in the README. I updated the README to clarify this.
This module has a candidate implementation in a PR, but it still needs to be tested and finished. This will be picked up again once it is a priority per https://github.com/protocol/web3-dev-team/pull/67
For now, I would recommend you rely on a pubsub mechanism for your needs. You can see a setup for this in https://github.com/libp2p/js-libp2p/tree/master/examples/discovery-mechanisms#3-pubsub-based-peer-discovery
Thanks for the quick reply! Just to clarify, the rendezvous node I need to connect to follows the Rendezvous Spec and is written in Rust. I don't think I can use the detection mechanism you quoted above. Is that correct?
Oh, you want a rendezvous client, and not this (this module is a Rendezvous Server).
That is/was kind of blocked on not being a priority: https://github.com/libp2p/js-libp2p/pull/856
But, with other languages implementing the Server, it will be easy to get it in without having the JS Server ready
In the meantime, you can try to get libp2p#856 updated with master and try to get it running.
Note: There is also a WIP example that showcases how it would work: https://github.com/libp2p/js-libp2p/pull/862
Sorry, for bothering you again but I'm unable to install the branch via npm because I get typescript errors.
npm install git://github.com/binarybaron/js-libp2p.git#feat/rendezvous-client --save
npm ERR! prepareGitDep 1>
npm ERR! prepareGitDep > iso-constants@0.1.2 install /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/iso-constants
npm ERR! prepareGitDep > node build.js > index.browser.js
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > bcrypto@5.4.0 install /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/bcrypto
npm ERR! prepareGitDep > node-gyp rebuild
npm ERR! prepareGitDep
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/aead.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/asn1.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/cipher.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/drbg.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/dsa.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/ecc.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/encoding.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/entropy/env.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/entropy/hw.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/entropy/sys.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/hash.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/ies.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/internal.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/kdf.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/mac.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/mpi.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/rand.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/rsa.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/stream.o
npm ERR! prepareGitDep CC(target) Release/obj.target/torsion/deps/torsion/src/util.o
npm ERR! prepareGitDep LIBTOOL-STATIC Release/torsion.a
npm ERR! prepareGitDep CC(target) Release/obj.target/secp256k1/deps/secp256k1/contrib/lax_der_parsing.o
npm ERR! prepareGitDep CC(target) Release/obj.target/secp256k1/deps/secp256k1/src/secp256k1.o
npm ERR! prepareGitDep LIBTOOL-STATIC Release/secp256k1.a
npm ERR! prepareGitDep CC(target) Release/obj.target/bcrypto/src/bcrypto.o
npm ERR! prepareGitDep SOLINK_MODULE(target) Release/bcrypto.node
npm ERR! prepareGitDep
npm ERR! prepareGitDep > secp256k1@4.0.2 install /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/secp256k1
npm ERR! prepareGitDep > node-gyp-build || exit 0
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > ursa-optional@0.10.2 install /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/ursa-optional
npm ERR! prepareGitDep > node rebuild.js
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > playwright-core@1.10.0 install /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/playwright-core
npm ERR! prepareGitDep > node install.js
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > core-js@3.15.2 postinstall /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/core-js
npm ERR! prepareGitDep > node -e "try{require('./postinstall')}catch(e){}"
npm ERR! prepareGitDep
npm ERR! prepareGitDep Thank you for using core-js ( https://github.com/zloirock/core-js ) for polyfilling JavaScript standard library!
npm ERR! prepareGitDep
npm ERR! prepareGitDep The project needs your help! Please consider supporting of core-js on Open Collective or Patreon:
npm ERR! prepareGitDep > https://opencollective.com/core-js
npm ERR! prepareGitDep > https://www.patreon.com/zloirock
npm ERR! prepareGitDep
npm ERR! prepareGitDep Also, the author of core-js ( https://github.com/zloirock ) is looking for a good job -)
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > esbuild@0.11.5 postinstall /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/esbuild
npm ERR! prepareGitDep > node install.js
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > esbuild@0.12.15 postinstall /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/esbuild-register/node_modules/esbuild
npm ERR! prepareGitDep > node install.js
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > protobufjs@6.11.2 postinstall /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/protobufjs
npm ERR! prepareGitDep > node scripts/postinstall
npm ERR! prepareGitDep
npm ERR! prepareGitDep
npm ERR! prepareGitDep > libp2p@0.31.7 prepare /Users/user/.npm/_cacache/tmp/git-clone-51c623a1
npm ERR! prepareGitDep > aegir build --no-bundle
npm ERR! prepareGitDep
npm ERR! prepareGitDep [15:36:41] Clean ./dist [started]
npm ERR! prepareGitDep [15:36:41] Clean ./dist [completed]
npm ERR! prepareGitDep [15:36:41] Generate types [started]
npm ERR! prepareGitDep src/rendezvous/index.js(12,30): error TS7016: Could not find a declaration file for module 'it-buffer'. '/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/it-buffer/index.js' implicitly has an 'any' type.
npm ERR! prepareGitDep Try `npm i --save-dev @types/it-buffer` if it exists or add a new declaration (.d.ts) file containing `declare module 'it-buffer';`
npm ERR! prepareGitDep src/rendezvous/index.js(125,50): error TS2345: Argument of type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is not assignable to parameter of type 'string | PeerId | Multiaddr'.
npm ERR! prepareGitDep Type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is not assignable to type 'Multiaddr'.
npm ERR! prepareGitDep src/rendezvous/index.js(196,50): error TS2345: Argument of type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is not assignable to parameter of type 'string | PeerId | Multiaddr'.
npm ERR! prepareGitDep Type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is not assignable to type 'Multiaddr'.
npm ERR! prepareGitDep src/rendezvous/index.js(203,16): error TS7006: Parameter 'source' implicitly has an 'any' type.
npm ERR! prepareGitDep src/rendezvous/index.js(237,38): error TS7006: Parameter 'r' implicitly has an 'any' type.
npm ERR! prepareGitDep src/rendezvous/index.js(259,50): error TS2345: Argument of type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is not assignable to parameter of type 'string | PeerId | Multiaddr'.
npm ERR! prepareGitDep Type 'typeof import("/Users/user/.npm/_cacache/tmp/git-clone-51c623a1/node_modules/multiaddr/dist/src/index")' is missing the following properties from type 'Multiaddr': bytes, toJSON, toOptions, protos, and 15 more.
npm ERR! prepareGitDep [15:36:56] Generate types [failed]
npm ERR! prepareGitDep [15:36:56] → Command failed with exit code 1: tsc --build /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/tsconfig-types.aegir.json
npm ERR! prepareGitDep
npm ERR! prepareGitDep 2> npm WARN install Usage of the `--dev` option is deprecated. Use `--only=dev` instead.
npm ERR! prepareGitDep npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm ERR! prepareGitDep npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm ERR! prepareGitDep Command failed with exit code 1: tsc --build /Users/user/.npm/_cacache/tmp/git-clone-51c623a1/tsconfig-types.aegir.json
npm ERR! prepareGitDep npm ERR! code ELIFECYCLE
npm ERR! prepareGitDep npm ERR! errno 1
npm ERR! prepareGitDep npm ERR! libp2p@0.31.7 prepare: `aegir build --no-bundle`
npm ERR! prepareGitDep npm ERR! Exit status 1
npm ERR! prepareGitDep npm ERR!
npm ERR! prepareGitDep npm ERR! Failed at the libp2p@0.31.7 prepare script.
npm ERR! prepareGitDep npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! prepareGitDep
npm ERR! prepareGitDep npm ERR! A complete log of this run can be found in:
npm ERR! prepareGitDep npm ERR! /Users/user/.npm/_logs/2021-07-08T13_36_56_820Z-debug.log
npm ERR! prepareGitDep
npm ERR! premature close
I would like to to use your library to connect to a rendezvous point and retrieve peers from a namespace. Can you give me simple example on how I would be able to do that?