Hosted Nodes User Guide

Sybil Technologies runs a Hyperware hosting service for users who do not want to run a node themselves. These hosted nodes are useful for both end users and developers. This guide is largely targeted at developers who want to develop Hyperware applications using their hosted Hyperware node. End users may also find the Managing Your Node section useful.

Here, ssh is used extensively. This guide is specifically tailored to sshs use for the Hyperware hosting service. A more expansive guide can be found here.

Managing Your Node

Valet is the interface for managing your hosted node. We plan to open-source the hosting code so there will be other hosting options in the future. Once logged in, Your Nodes will be displayed: clicking on the name of a node will navigate to the homepage for that node. Clicking on the gear icon will open a modal with some information about the node. Click Show advanced details to reveal information for accessing your nodes terminal.

Accessing Your Nodes Terminal

As discussed in Managing Your Node, navigate to:

  1. https://valet.uncentered.systems
  2. Your Nodes
  3. Gear icon
  4. Show advanced details

In the advanced details, note the SSH Address and SSH Password.

To access your node remote instance, open a terminal and

ssh <SSH Address>

where <SSH Address> should be replaced with the one from your Valet advanced details. You will be prompted for a password: copy-paste the SSH Password.

You should now have a different terminal prompt, indicating you have sshd into the remote instance hosting your node.

Using SSH keys

Rather than typing in a password to create a SSH connection, you can use a keypair.

Generating Keypair

How to generate a keypair

ssh-agent

How to use ssh-agent to store a keypair

SSH Config

How to use ~/.ssh/config to make SSH easier to use

Adding Public Key to Remote Node

How to add the public key to a remote node to allow login with it

Using kit With Your Hosted Node

kit interacts with a node through the nodes HTTP RPC. However, Hyperware limits HTTP RPC access to localhost — remote requests are rejected. The local limit is a security measure, since the HTTP RPC allows injection of arbitrary messages with "root" capabilities.

To use kit with a hosted node, you need to create a SSH tunnel, which maps a port on your local machine to a port on the nodes remote host. HTTP requests routed to that local port will then appear to the remote host as originating from its localhost.

It is recommended to use kit connect to create and destroy a SSH tunnel. Otherwise, you can also follow the instructions below to do it yourself.

Create a SSH tunnel like so (again, replacing assumed values with those in your advanced details):

ssh -L 9090:localhost:<HTTP port> <SSH address>

e.g.,

ssh -L 9090:localhost:8099 [email protected]

or, if you've added your host to your ~/.ssh/config,

ssh -L 9090:localhost:<HTTP port> <Host>

You should see a ssh session open. While this session is open, kit requests sent to 9090 will be routed to the remote node, e.g.,

kit s foo -p 9090

will function the same as for a locally-hosted node.

Closing the ssh connections with Ctrl+D or typing exit will close the tunnel.

Get Help: