gossipmonger-tcp-transport

TCP Transport for Gossipmonger

Usage no npm install needed!

<script type="module">
  import gossipmongerTcpTransport from 'https://cdn.skypack.dev/gossipmonger-tcp-transport';
</script>

README

gossipmonger-tcp-transport

Stability: 1 - Experimental

NPM version

TCP Transport for Gossipmonger (an implementation of the Scuttlebutt gossip protocol endpoint for real-time peer-to-peer replication).

Installation

npm install gossipmonger-tcp-transport

Tests

npm test

NOTE: There are no tests right now.

Overview

TCP Transport for Gossipmonger.

Documentation

TcpTransport

Public API

TcpTransport.listen(options, [callback])

  • options: See new TcpTransport(options) options.
  • callback: See tcpTransport.listen(callback) callback.
  • Return: Object An instance of TcpTransport with server running.

Creates new TCP transport and starts the server.

new TcpTransport(options)

  • options:
    • host: String (Default: 'localhost')
    • port: Integer (Default: 9742) A port value of zero will assign a random port.

Creates a new TCP transport.

tcpTransport.close([callback])

  • callback: Function (Default: undefined) Optional callback to call once the server is stopped.

Stops the server from listening to requests from other peers.

tcpTransport.deltas(remotePeer, localPeer, deltasToSend)

  • remotePeer: Object Peer to send rpc to.
    • transport: Object TCP transport data.
      • host: String Host to connect to.
      • port: Integer Port to connect to.
  • localPeer: Object Sender peer.
    • id: String Sender peer id.
    • transport: Object TCP transport data.
      • host: String Host to connect to.
      • port: Integer Port to connect to.
  • deltasToSend: Any Deltas to send.

Sends deltasToSend to the remotePeer.

tcpTransport.digest(remotePeer, localPeer, digestToSend)

  • remotePeer: Object Peer to send rpc to.
    • transport: Object TCP transport data.
      • host: String Host to connect to.
      • port: Integer Port to connect to.
  • localPeer: Object Sender peer.
    • id: String Sender peer id.
    • transport: Object TCP transport data.
      • host: String Host to connect to.
      • port: Integer Port to connect to.
  • digestToSend: Any Digest to send.

Sends digestToSend to the remotePeer.

tcpTransport.listen([callback])

  • callback: Function (Default: undefined) Optional callback to call once the server is up.

Starts the server to listen to requests from other peers.

tcpTransport.rpc(remotePeer, payload)

CAUTION: reserved for internal use

  • remotePeer: Object Peer to send rpc to.
    • transport: Object TCP transport data.
      • host: String Host to connect to.
      • port: Integer Port to connect to.
  • payload: String or Object Payload is send on the wire. If an Object is provided, it will be JSON.stringify()'ed.

An internal common implementation for tcpTransport.deltas(...) and tcpTransport.digest(...).

Event deltas

  • remotePeer: Object
    • id: String Id of the peer.
    • transport: Any Any data identifying this peer to the transport mechanism that is required for correct transport operation.
  • deltas: Any Received deltas.

Emitted when TcpTransport receives deltas from a peer.

Event digest

  • remotePeer: Object
    • id: String Id of the peer.
    • transport: Any Any data identifying this peer to the transport mechanism that is required for correct transport operation.
  • digest: Any Received digest.

Emitted when TcpTransport receives digest from a peer.