Skip to content

Setting up a Skycoin BBS Node

Evan Lin edited this page Dec 21, 2017 · 6 revisions

This article will describe the process of setting up a BBS node (v5.*) that supports the hosting of boards. Other users can interact with the provided boards via a web-interface thin client hosted by the node.

Preparation steps

First, we need to have access to the bbsnode and bbscli binaries. Installation instructions can be found in the following links:

Running the node

For this example, we want to run the node with the following configurations:

  • The node to be publicly accessible (so that other nodes can easily find your hosting and subscribed boards via messenger).
  • Configuration and data files are to be stored under $HOME/.skybbs.
  • RPC port (used for command-line interface) is to be set as 8996.
  • We will have the node connect to one messenger server, at address 35.227.102.45:8005.
  • The web interface thin client will be served via port 8080.
  • The web interface static files will be served via $GOPATH/github.com/skycoin/bbs/static/dist.

Hence, the bbsnode will be exectuted with the following options:

$ bbsnode --public=true --config-dir="${HOME}/.skybbs" --rpc-port=8996 --enforced-messenger-addresses="35.227.102.45:8005" --web-port=8080 --web-gui-dir="${GOPATH}/src/github.com/skycoin/bbs/static/dist"

Users can access your thin client via port 8080. However, no boards are hosted at this point.

Hosting a board

To host board of public key 03588a2c8085e37ece47aec50e1e856e70f893f7f802cb4f92d52c81c4c3212742 on your node, run the following command:

$ bbscli --port=8996 subscriptions new --public-key=03588a2c8085e37ece47aec50e1e856e70f893f7f802cb4f92d52c81c4c3212742

2017/12/08 00:34:55 [OK] {
  "subscriptions": [
    "03588a2c8085e37ece47aec50e1e856e70f893f7f802cb4f92d52c81c4c3212742"
  ]
}

After waiting for the node to sync the board, users can now interact with the board.

Creating a board

After a board is created, your node will also automatically host it.

First we need to generate a public/private key pair that represents the board. Thus, we start by generating a seed. We can do this via bbscli:

$ bbscli tools generate_seed

2017/12/08 00:38:14 [OK] {
  "seed": "birth chaos wrist skin parade major urge spray wash judge hill excess"
}

After obtaining a seed, we can create the board as follows:

$ bbscli content new_board --name="A Board About Life" --body="Let's discuss the meaning of life!" --seed="birth chaos wrist skin parade major urge spray wash judge hill excess"

2017/12/08 01:00:16 [OK] {
  "master_boards": [
    {
      "public_key": "03c06f5c54c91cb511bf8c763ad613befbea494e8070b653fa3171287921e681a8",
      "header": {},
      "body": {
        "type": "5,board",
        "ts": 1512648016122864060,
        "name": "A Board About Life",
        "body": "Let's discuss the meaning of life!",
        "submission_keys": [
          "172.104.187.69:8080,0317dba1d8dc6e558fe2e2975dcdc811d0b8bff77a70ca34db4fc8e1acd3a9fd70"
        ]
      }
    }
  ],
  "remote_boards": []
}