* Replace floodsub with gossipsub
* Add a pubsub flag to support both floodsub and gossipsub
* Fix deps
* Handle empty string values
* Upgrade @cerc-io/libp2p dependency
* Upgrade package versions
* Refactor discovery handler
* Broadcast peer info over floodsub on requests
* Broadcast peer info from relay nodes
* Make debug reponse handler optional
* Register debug info request handler on peer init
* Move debug info types to types dir
* Return method to unsubscribe from the debug topic
* Make debug info flag optional for relay nodes
* Restructure peer connection info data
* Refactor getting peer info to be used in react app
* Refactor duplicate code to utils
* Rename peer methods
---------
Co-authored-by: nabarun <nabarun@deepstacksoft.com>
* Add an option to use a domain name for a announce address
* Update chat CLI readme
* Set port range for relay node
* Add descriptive comment
* Upgrade webrtc-direct version
* Use webrtc-direct transport with pubsub based discovery
* Use changes to integrate signalling using relay node
* Add an indicator for peer connection type (direct/relayed)
* Catch errors while creting a libp2p node
* Catch errors while dialling peers
* Catch errors when dialling from relay node
* Pass CLI arg for port to listen on for relay node
* Subscribe chat CLI to pubsub topic
* Update yarn lockfile
* Update webrtc-direct dependency in package json
* Update webrtc-direct version
* Update yarn lockfile
* Pass relay node an optional list of relay peers to connect to
* Catch protocol selection failure on dialling to new relay nodes
* Restrict max number of connections for a peer
* Tag the relay node with a high value to avoid disconnects
* Use debug for connect/disconnect logs in relay nodes
* Ignore incomplete multiaddr on a peer discovery
* Increase max connections for a peer to 10
* Refactor and descriptive comments
* Initial implementation of class and discoving other peers
* Implement peer connection and sending messages between peers
* Add react app and use peer package for broadcasting
* Maintain stream for each remote peer
* Refactor code in peer package
* Add serve package for react-app
* Add readme for running react app
* Add peer package readme
* Add logs for events with details
* Add a chat CLI using peer package (#280)
* Add a flag to instantiate Peer for nodejs
* Add a basic chat CLI using peer
* Add a signal server arg to chat CLI
* Add instructions for chat CLI
* Fix typescript and ESM issues after adding peer package (#282)
* Fix build issues in util package
* Update eslint TS plugins
* Scope react app package name
* Convert cli package back to CJS and dynamically import ESM
* Upgrade ts-node version
* Fix tests
* Setup a relay node and pubsub based discovery (#284)
* Add a script to setup a relay node
* Use pubsub based peer discovery
* Add peer multiaddr to connection log
* Catch relay node dial errors
* Increase discovery interval and dial all mutiaddr
* Add UI to display self peer ID and multiaddrs
* Add UI for displaying live remote connections
* Send js objects in peer broadcast messages
* Add react-peer package for using peer in react app
* Reduce disconnect frequency between peers (#287)
* Restrict number of max concurrent dials per peer
* Increase hop relay timeout to 1 day
* Self review changes
* Review changes
* Increase pubsub discovery interval and add steps to create a peer id (#290)
* Increase pubsub discovery interval
* Disable autodial to avoid peer dials without protocol on a reconnect
* Add steps to create a peer id and use for relay node
* Add back dependency to run signalling server
* Avoid bootstrapping and dial to relay node directly
Co-authored-by: prathamesh0 <42446521+prathamesh0@users.noreply.github.com>
Co-authored-by: prathamesh0 <prathamesh.musale0@gmail.com>