Skip to content

pokt-network/pocket-core

Repository files navigation

Pocket Core

Official golang implementation of the Pocket Network Protocol.

Overview

The Pocket Core application will allow anyone to spin up a Pocket Network full node, with options to enable/disable functionality and modules according to each deployment. For more information on Pocket Network, visit pokt.network.

Table of Contents

Installation

# Build local binary
git clone git@github.com:pokt-network/pocket && \
cd pocket && \
go build app/cmd/pocket_core/pocket.go

# Assign local binary and add to your `PATH`  if you'd like to use it without direct reference to the binary.
export POKT=$(pwd)/main

TIP: You can find alternative ways of installing pocket (e.g. homebrew) via the instructions here.

Usage

To run the Pocket Core binary you can use the following flags alongside the pocket executable:

Usage:
  pocket [command]

Available Commands:
  accounts    account management
  apps        application management
  completion  Generate the autocompletion script for the specified shell
  gov         governance management
  help        Help about any command
  nodes       node management
  query       query the blockchain
  reset       Reset pocket-core
  start       starts pocket-core daemon
  stop        Stop pocket-core
  util        utility functions
  version     Get current version

Flags:
      --datadir string            data directory (default is $HOME/.pocket/
  -h, --help                      help for pocket
      --node string               takes a remote endpoint in the form <protocol>://<host>:<port>
      --persistent_peers string   a comma separated list of PeerURLs: '<ID>@<IP>:<PORT>,<ID2>@<IP2>:<PORT>...<IDn>@<IPn>:<PORT>'
      --remoteCLIURL string       takes a remote endpoint in the form of <protocol>://<host> (uses RPC Port)
      --seeds string              a comma separated list of PeerURLs: '<ID>@<IP>:<PORT>,<ID2>@<IP2>:<PORT>...<IDn>@<IPn>:<PORT>'

Use "pocket [command] --help" for more information about a command.

For more detailed command information, see the usage section.

Documentation

Portal

The Portal to the Pocket Network is provided by Pocket Network Inc.

Database Snapshots

Snapshots are provided by Liquify LTD details on how to access the snapshots can be found in snapshot.md

Pocket Pruner

An offline pruning tool is provided by C0D3R. The tool is available in their GitHub repository.

Accessing TestNet

TestNet information can be found at testnet.md and is maintained by:

  1. Cryptonode
  2. Stakenodes

Charts & Analytics

Key charts & analytics are provided by POKTScan and C0D3R.

Running the tests

To run the Pocket Core unit tests, go test -short -v -p 1 ./...

Contributing

Please read CONTRIBUTING.md for details on contributions and the process of submitting pull requests.

Seeds (MainNet & TestNet)

Seeds for the mainnet are maintained by NodeFleet, and seeds for the testnet are managed by Stakenodes and Cryptonode.

You can find all the details at pokt-network/pocket-seeds.

Docker Image

GitHub Packages is used to maintain docker images via this workflow.

The latest images can be found here.

The latest image can be pulled like so:

docker pull ghcr.io/pokt-network/pocket-v0:latest

Rollback Recovery Process

An example of a rollback recovery process can be found here.

Support & Contact

License

This project is licensed under the MIT License; see the LICENSE.md file for details