Permalink
Browse files

Some README updates.

  • Loading branch information...
Glenn Rempe
Glenn Rempe committed Jan 28, 2018
1 parent ca2255c commit a628a9497df5e3779ccc8a7ba27a9f5e95b6bdb9
Showing with 23 additions and 18 deletions.
  1. +23 −18 README.md
@@ -12,11 +12,10 @@ Nodes communicate with the Tierion Core, spending TNT to anchor hashes, and gain

To be eligible to earn TNT a Node must:

* register a unique Ethereum address
* register with a unique Ethereum address
* maintain a minimum balance of 5000 TNT for that address
* provide public network services
* pass all audits and health checks from Tierion Core
* have enough credits to send hashes from a Node to Core

Chainpoint Nodes that don't meet these requirements won't be eligible to earn TNT through periodic rewards.

@@ -55,16 +54,16 @@ When started, `docker-compose` will install and run three system components in t
* PostgreSQL Database
* Redis
* Chainpoint Node (Node.js)
* NTP server (if not already running)

They are started as a group and should not interfere with any other
software systems running on your server.

Each Node instance you want to run will need:

* A dedicated Ethereum address
* Public IP/hostname
* Public IP address
* Minimum TNT balance
* Access to credits, purchased with TNT

### System Requirements

@@ -75,29 +74,27 @@ the Docker and Docker Compose container management tools and meets the minimal h

The minimum hardware requirements for running a Node are
relatively low. The following would be suitable minimums
for a Node expecting relatively light traffic:
for a Node:

- `>= 1GB RAM`
- `1 CPU Core`
- `>= 2GB RAM`
- `2 CPU Core`
- `20GB Hard Disk or SSD`
- `Public IPv4 address`

Running a Node on a server with less than 1GB of RAM has been [known to cause issues](https://github.com/chainpoint/chainpoint-node-src).
Running a Node on a server with 1GB of RAM or less has been [known to cause issues](https://github.com/chainpoint/chainpoint-node/wiki/Frequently-Asked-Questions#operating-and-monitoring-a-node).

If you are expecting larger volumes of hashes to be sent to your server its recommended that you scale-up the system resources by adding more RAM and CPU cores. Alternatively, you can scale-out horizontally by running more Nodes. The disk storage needs of a Node are relatively small.
If you are expecting larger volumes of hashes to be sent to your server its recommended that you scale-up the system resources by adding more RAM and CPU cores. Alternatively, you can scale-out horizontally by running more Nodes. The disk storage and CPU needs of a Node are relatively small, RAM is the first suggested upgrade.

It is not currently supported to run multiple Nodes on a single
physical host.
It is not supported to run multiple instances of the Node software on a single physical host.

#### Operating System

The software has been tested on the following operating systems:
The software has been tested and is supported on the following operating systems:

* `Ubuntu 16.04 LTS`
* `macOS Version 10.12.6`
* `macOS Version 10.12.6+`

It will likely run on other operating systems that support Docker
and Docker Compose, but support is not currently provided for those.
It will likely run on other operating systems that support Docker and Docker Compose, but support is not currently provided for those.

#### Docker & Docker Compose

@@ -162,7 +159,7 @@ Simply copy/paste that script into your terminal and it will:
* grant the ability for your local user to run Docker commands without using `sudo`
* download this repository to your home folder.

**Important**: You should close your terminal and login again now to make sure that the changes in the script are fully applied.
**Important**: You should close your terminal SSH session and login again now to make sure that the changes in the script are fully applied.

### Configure Your Node

@@ -192,6 +189,8 @@ CHAINPOINT_NODE_PUBLIC_URI=

`CHAINPOINT_NODE_PUBLIC_URI` : should be a URI where your Node can be publicly discovered and utilized by others. This might look like `http://10.1.1.20`. Your Node will run on port `80` over `http`. If provided, this address will be periodically audited by Tierion Core to ensure compliance with the rules for a healthy Node. If you leave this config value blank, it will be assumed that your Node is not publicly available, and you will not be eligible to earn TNT rewards.

Once running you should be able to visit `http://YOURIP/config` from another host on the Internet and see a JSON response.

### Node Firewall

You will need to expose port 80 (HTTP) to the world if you want your Node to be available for
@@ -227,7 +226,7 @@ You can run `make logs` to tail the logfiles for all `docker-compose` managed se

When you start your Node you'll see in the logs that your Node will attempt to register itself with one of our Tierion Core clusters and will be provided with a secret key.

The Node will then go through a process of downloading, and cryptographically verifying the entire Calendar. Every block will have its signature checked and will be stored locally. This process may take some time on first run as our Calendar grows. After initial sync, all incremental changes will also be pulled down to every Node, verified and stored.
The Node will then go through a process of downloading, and cryptographically verifying the entire Chainpoint Calendar. Every block will have its signature checked and will be stored locally. This process may take some time on first run as our Calendar grows. After initial sync, all incremental changes will also be pulled down to every Node, verified and stored.

If there are any problems you see in the logs, or if something is not working as expected, please [file a bug](https://github.com/chainpoint/chainpoint-node/issues) and provide as much information about the issue as possible.

@@ -263,7 +262,7 @@ Once your Node starts and registers itself a secret key will be provided for you
submitting hashes and performing other actions. The database can hold multiple authentication keys
and will choose the right one based on the Ethereum address you've configured in the `NODE_TNT_ADDRESS` environment variable in the `.env` file.

If this secret key is lost, you will likely need to switch to another Ethereum address, and any credits on Tierion Core will be inaccessible. When you first start your Node this secret key is displayed in the logs. You will want to store it somewhere in case of accidental deletion.
If this secret key is lost, you will likely need to switch to another Ethereum address. You will want to store it somewhere in case of accidental deletion.

Its easy to export your keys at any time by issuing the command `make auth-keys`. This will
select the keys from the database and print them out to the console. Just copy and paste them
@@ -281,6 +280,12 @@ When you run `make auth-key-update` your Node will be automatically restarted.

On successful restart you should see log messages in `make logs` indicating use of your new auth key.

## Frequently Asked Questions

Answers to many questions that have been raised by Node operators, and helpful tips, can be found in our [FAQ](https://github.com/chainpoint/chainpoint-node/wiki/Frequently-Asked-Questions#operating-and-monitoring-a-node)

Please refer to this document before filing any issues.

## License

[Apache License, Version 2.0](https://opensource.org/licenses/Apache-2.0)

0 comments on commit a628a94

Please sign in to comment.