Environment Setup

This section will detail the hardware and software needed to run a Pocket node.

Hardware

Hardware Requirements: 4 CPUs/vCPUs | 16 GB RAM | 500GB Disk

Warning

These are just the hardware requirements for your Pocket node. You’ll also most likely be running the full nodes of other blockchains, which will have their own hardware requirements.

Software

There are three ways to install the software you need to run Pocket Network:

Source

Install your dependencies:

Create source code directory:

mkdir -p $GOPATH/src/github.com/pokt-network && cd $GOPATH/src/github.com/pokt-network

Download the source code of Pocket core:

git clone https://github.com/pokt-network/pocket-core.git && cd pocket-core

Checkout the latest release of Pocket core:

git checkout tags/<release tag>
git checkout tags/RC-0.9.2

Make sure you have your $GOPATH environment variable set correctly:

echo $GOPATH
/home/<username>/go

Build from source and place the build in the $GOPATH/bin directory:

go build -o $GOPATH/bin/pocket <Source code directory>/...
go build -o $GOPATH/bin/pocket $GOPATH/src/github.com/pokt-network/pocket-core/app/cmd/pocket_core/main.go

Test your installation:

pocket version
AppVersion: RC-0.9.2
Info

You can find the latest release on the Pocket Core GitHub pagee.

Homebrew

You can also use Homebrew to build Pocket Core instead of building from source.

Install your dependencies:

Install using Homebrew:

brew tap pokt-network/pocket-core && brew install pokt-network/pocket-core/pocket

Test your installation:

pocket version
AppVersion: RC-0.9.2

Docker

See Pocket Core Deployments on GitHub for details on how to install using Docker.

Environment

  • Reverse Proxy: For SSL termination and request management
  • Ports: Expose Pocket RPC (Default: 8081) and P2P port (Default: 26656)
  • SSL Cert: Required for validator’s serviceURI

Set open files limit

ulimit -Sn 16384
Info

The value of ulimit -Sn should be set to greater than or equal to the sum of the following:

  • Maximum inbound peers
  • Maximum outbound peers
  • Maximum open connections
  • gRPC maximum open connections
  • Desired concurrent Pocket RPC connections
  • 100 × Constant number of Write-ahead Logging, database, and other open files
Warning

This limit is set based on the standard configuration provided with Pocket Core in <POCKET_DATADIR>/config/config.json. If you modify your config, you will need to ensure that you modify your open files limit as well.

Secure your server

Make sure the server that hosts your node is protected by up-to-date anti-virus and anti-malware software, as well as a firewall.

Your node’s private key will be available in plaintext on the server, so your key is only as secure as your server.