diff --git a/README.md b/README.md index efdb0bb..a2271bc 100644 --- a/README.md +++ b/README.md @@ -55,6 +55,10 @@ It is worth noting that this module does not include any message signing for bro This module *MUST* be used on a libp2p node that is running [Pubsub](https://github.com/libp2p/js-libp2p-pubsub). If Pubsub does not exist, or is not running, this module will not work. +To run a PubSub service, include a `pubsub` implementation in your services map such as `@chainsafe/libp2p-gossipsub`. + +For more information see the [docs on customizing libp2p](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#customizing-libp2p). + ### Usage in js-libp2p See the [js-libp2p configuration docs](https://github.com/libp2p/js-libp2p/blob/master/doc/CONFIGURATION.md#customizing-peer-discovery) for how to include this module as a peer discovery module in js-libp2p. @@ -64,10 +68,11 @@ If you are only interested in listening to the global pubsub topic the minimal c ```js import { createLibp2p } from 'libp2p' import { websockets } from '@libp2p/websockets' -import { mplex } from '@libp2p/mplex' +import { yamux } from '@chainsafe/libp2p-yamux' import { noise } from '@chainsafe/libp2p-noise' import { gossipsub } from '@chainsafe/libp2p-gossipsub' import { pubsubPeerDiscovery } from '@libp2p/pubsub-peer-discovery' +import { identify } from 'libp2p/identify' const node = await createLibp2p({ transports: [ @@ -77,12 +82,15 @@ const node = await createLibp2p({ mplex() ], connectionEncryption: [ - noise() + yamux() ], - pubsub: new GossipSub(), // Can also be `libp2p-floodsub` if desired peerDiscovery: [ pubsubPeerDiscovery() - ] + ], + services: { + pubsub: gossipsub(), + identify: identify() + } }) ``` diff --git a/package.json b/package.json index 998ffe7..ca91f9c 100644 --- a/package.json +++ b/package.json @@ -140,11 +140,8 @@ "docs": "aegir docs" }, "dependencies": { - "@libp2p/interface-peer-discovery": "^2.0.0", - "@libp2p/interface-peer-id": "^2.0.0", - "@libp2p/interface-peer-info": "^1.0.2", - "@libp2p/interface-pubsub": "^4.0.0", - "@libp2p/interfaces": "^3.0.3", + "@libp2p/interface": "^0.1.2", + "@libp2p/interface-internal": "^0.1.5", "@libp2p/logger": "^3.0.2", "@libp2p/peer-id": "^3.0.2", "@multiformats/multiaddr": "^12.0.0", @@ -152,8 +149,7 @@ "uint8arraylist": "^2.4.3" }, "devDependencies": { - "@libp2p/interface-address-manager": "^3.0.0", - "@libp2p/interface-peer-discovery-compliance-tests": "^2.0.0", + "@libp2p/interface-compliance-tests": "^4.0.6", "@libp2p/peer-id-factory": "^3.0.4", "aegir": "^40.0.0", "p-defer": "^4.0.0", diff --git a/src/index.ts b/src/index.ts index 825a330..0f8b5e0 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,15 +1,15 @@ -import { peerDiscovery } from '@libp2p/interface-peer-discovery' -import { CustomEvent, EventEmitter } from '@libp2p/interfaces/events' +import { CustomEvent, EventEmitter } from '@libp2p/interface/events' +import { peerDiscovery } from '@libp2p/interface/peer-discovery' import { logger } from '@libp2p/logger' import { peerIdFromKeys } from '@libp2p/peer-id' import { multiaddr } from '@multiformats/multiaddr' import { Peer as PBPeer } from './peer.js' -import type { AddressManager } from '@libp2p/interface-address-manager' -import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface-peer-discovery' -import type { PeerId } from '@libp2p/interface-peer-id' -import type { PeerInfo } from '@libp2p/interface-peer-info' -import type { Message, PubSub } from '@libp2p/interface-pubsub' -import type { Startable } from '@libp2p/interfaces/startable' +import type { PeerDiscovery, PeerDiscoveryEvents } from '@libp2p/interface/peer-discovery' +import type { PeerId } from '@libp2p/interface/peer-id' +import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { Message, PubSub } from '@libp2p/interface/pubsub' +import type { Startable } from '@libp2p/interface/startable' +import type { AddressManager } from '@libp2p/interface-internal/address-manager' const log = logger('libp2p:discovery:pubsub') export const TOPIC = '_peer-discovery._p2p._pubsub' diff --git a/test/compliance.spec.ts b/test/compliance.spec.ts index 77c897c..ac406f6 100644 --- a/test/compliance.spec.ts +++ b/test/compliance.spec.ts @@ -1,14 +1,14 @@ /* eslint-env mocha */ -import tests from '@libp2p/interface-peer-discovery-compliance-tests' -import { CustomEvent } from '@libp2p/interfaces/events' +import { CustomEvent } from '@libp2p/interface/events' +import tests from '@libp2p/interface-compliance-tests/peer-discovery' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' import { stubInterface } from 'ts-sinon' import { pubsubPeerDiscovery, TOPIC } from '../src/index.js' import { Peer as PBPeer } from '../src/peer.js' -import type { AddressManager } from '@libp2p/interface-address-manager' -import type { PubSub } from '@libp2p/interface-pubsub' +import type { PubSub } from '@libp2p/interface/pubsub' +import type { AddressManager } from '@libp2p/interface-internal/address-manager' describe('compliance tests', () => { let intervalId: ReturnType diff --git a/test/index.spec.ts b/test/index.spec.ts index aed05a3..7172875 100644 --- a/test/index.spec.ts +++ b/test/index.spec.ts @@ -1,7 +1,7 @@ /* eslint-env mocha */ -import { CustomEvent } from '@libp2p/interfaces/events' -import { start, stop } from '@libp2p/interfaces/startable' +import { CustomEvent } from '@libp2p/interface/events' +import { start, stop } from '@libp2p/interface/startable' import { peerIdFromKeys } from '@libp2p/peer-id' import { createEd25519PeerId } from '@libp2p/peer-id-factory' import { multiaddr } from '@multiformats/multiaddr' @@ -12,10 +12,10 @@ import sinon from 'sinon' import { type StubbedInstance, stubInterface } from 'ts-sinon' import { pubsubPeerDiscovery, type PubSubPeerDiscoveryComponents, TOPIC } from '../src/index.js' import * as PB from '../src/peer.js' -import type { AddressManager } from '@libp2p/interface-address-manager' -import type { PeerDiscovery } from '@libp2p/interface-peer-discovery' -import type { PeerInfo } from '@libp2p/interface-peer-info' -import type { PubSub } from '@libp2p/interface-pubsub' +import type { PeerDiscovery } from '@libp2p/interface/peer-discovery' +import type { PeerInfo } from '@libp2p/interface/peer-info' +import type { PubSub } from '@libp2p/interface/pubsub' +import type { AddressManager } from '@libp2p/interface-internal/address-manager' const listeningMultiaddr = multiaddr('/ip4/127.0.0.1/tcp/9000/ws')