ssbc / ssb-friend-pub

7 stars 0 forks source link

ssb-friend-pub

A module for scuttlebot that interprets pub owner announcements and presents a list of pubs run by your friends or within a certain number of hops.

Combining with Incoming Guard

This can be combined with the ssb-incoming-guard module to restrict replication within a defined hop limit.

For example, one way to do this is to install it on your machine and set friendPub.hops to 1. Meaning only replicate with pubs run by me or my friends. Then install it on your pub and set the same config to 2. This way your pub will replicate to the same pubs that you replicate, and won't start replicating to random pubs.

Please note that this does not guarantee that your messages will not be gossiped outside your friends, as any node not running this module will connect to random pubs they have encountered. But it does give you some level of control and also this will prioritise messages to your friends assuming they connect to their pubs more often that other pubs.

Install

Can be installed as a plugin and enabled in config using:

  sbot plugins.install ssb-friend-pub

Usage

This will make ssb-friend-pub prioritise pubs run by your friend. In order to only connect to these pubs, ssb-server 13.5 is needed. You need to disable global gossiping and enable friends as follows:

  "gossip": {
   "friends": true,
   "autoPopulate": false,
   "global": false,
   "local": false,
   "seed": false
  },

Message types for owner of pub:

Message types for pub:

If an address has been posted using ssb-device-address then this will be used and the address in confirm message can be skipped.

Example:

ssb-server publish --type pub-owner-announce --pub @lbocEWqF2Fg6WMYLgmfYvqJlMfL7hiqVAV6ANjHWNw8=.ed25519

=>

{
  "key": "%ZSsBgNjZcM+DSwIgvL965Ci71huNJGH5YwonUKGFb2M=.sha256",
  "value": {
    "previous": "%JQHAq5bbWlNFK7qsWjzPnIyuTfZuasyC51/jpoyylYY=.sha256",
    "sequence": 5429,
    "author": "@6CAxOI3f+LUOVrbAl0IemqiS7ATpQvr9Mdw9LC4+Uv0=.ed25519",
    "timestamp": 1545478575777,
    "hash": "sha256",
    "content": {
      "type": "pub-owner-announce",
      "pub": "@lbocEWqF2Fg6WMYLgmfYvqJlMfL7hiqVAV6ANjHWNw8=.ed25519"
    },
    "signature": "K/RGckneV7G8WdO2gGxqSZ+Y9cptytLrNoFEyN3B6w2qUvycup0WxHKtWSylL+zy4Jbquu3Tv3pD0/fG2otVCw==.sig.ed25519"
  },
  "timestamp": 1545478575785
}

On the pub use key:

ssb-server publish --type pub-owner-confirm \
  --announcement %ZSsBgNjZcM+DSwIgvL965Ci71huNJGH5YwonUKGFb2M=.sha256