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
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:
- go, plus go environment environment variables
GOPATH
andGOBIN
- git
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
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:
- go, plus the go environment and the environment variables
GOPATH
andGOBIN
- Homebrew (Mac or Linux)
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
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
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.