gossipmonger-tart-transport

0.1.0 • Public • Published

gossipmonger-tart-transport

Stability: 1 - Experimental

NPM version

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

Contributors

@tristanls

Usage

const GossipmongerTartTransport = require("gossipmonger-tart-transport");
const transport = new GossipmongerTartTransport();
 
transport.on("deltas", (remotePeer, deltas) =>
    {
        console.log(remotePeer, deltas);
    }
);
 
transport.on("digest", (remotePeer, digest) =>
    {
        console.log(remotePeer, digest);
    }
);
 
transport.on("error", error =>
    {
        console.error(error);
        // if error handler is not registered, the error will be thrown
    }
);

Overview

Tart transport for Gossipmonger.

Documentation

TartTransport

Public API

new TartTransport([config])

  • config: Object Configuration.
    • authority: String (Default: random) Tart Ansible protocol authority name to use for this transport.
    • randomBytes: Function Allow for replacement of crypto.randomBytes in case of need for deterministic testing.
    • router: Function Tart-marshal router to register this transport's domain.

Creates a new TartTransport ready to send and receive messages.

tartTransport.deltas(remotePeer, localPeer, deltasToSend)

  • remotePeer: Object Peer to send message to.
    • transport: Object Tart transport data.
      • ansible: String Ansible address of peer to send message to.
  • localPeer: Object Sender peer.
    • id: String Sender peer id.
    • transport: Object Tart transport data.
      • ansible: String Ansible address of peer sending the message.
  • deltasToSend: Any Deltas to send

Sends deltasToSend to the remotePeer.

tartTransport.digest(remotePeer, localPeer, digestToSend)

  • remotePeer: Object Peer to send message to.
    • transport: Object Tart transport data.
      • ansible: String Ansible address of peer to send message to.
  • localPeer: Object Sender peer.
    • id: String Sender peer id.
    • transport: Object Tart transport data.
      • ansible: String Ansible address of peer sending the message.
  • digestToSend: Any Digest to send

Sends digestToSend to the remotePeer.

tartTransport.send(remotePeer, payload)

CAUTION: reserved for internal use

  • remotePeer: Object Peer to send message to.
    • transport: Object Tart transport data.
      • ansible: String Ansible address of peer to send message to.
  • payload: String or Object Payload to send to peer.

Internal common implementation for tartTransport.deltas(...) and tartTransport.digest(...).

Event deltas

  • (remotePeer, deltas) => {}
    • remotePeer: Object
      • id: String Id of the peer.
      • transport: Any Any data identifying this peer to the transport mechanism that is is required for correct transport operation.
    • deltas: Any Received deltas.

Event digest

  • (remotePeer, digest) => {}
    • remotePeer: Object
      • id: String Id of the peer.
      • transport: Any Any data identifying this peer to the transport mechanism that is is required for correct transport operation.
    • digest: Any Received digest.

Event error

  • (error) => {}
    • error: Object An error that occured.

Emitted when TartTransport encounters an error. If no handler is registered, an error will be thrown.

Readme

Keywords

none

Package Sidebar

Install

npm i gossipmonger-tart-transport

Weekly Downloads

1

Version

0.1.0

License

MIT

Last publish

Collaborators

  • tristanls