Skip to content

M1: Pocket PoS (Proof of Stake)

No due date 63% complete

Origin Document

This is the first milestone taken from the V1 Roadmap.

Goals

  • Cosmos SDK (i.e Tendermint) equivalent for a proof-of-stake blockchain custom-built for Pocket
  • Basic LocalNet development environment

Deliverables

Client / Interface

  • Keybase - MVP functionality to interact with keys (e.g. import, create, export, etc...)
  • CLI - MVP to interact…

Origin Document

This is the first milestone taken from the V1 Roadmap.

Goals

  • Cosmos SDK (i.e Tendermint) equivalent for a proof-of-stake blockchain custom-built for Pocket
  • Basic LocalNet development environment

Deliverables

Client / Interface

  • Keybase - MVP functionality to interact with keys (e.g. import, create, export, etc...)
  • CLI - MVP to interact with a PoS blockchain (e.g. send, stake, unstake, set param, etc...)
  • RPC - MVP to receive and process commands from the CLI

Tooling

  • LocalNet infrastructure - enable local development
  • Logging infrastructure - standardized logging with basic visibility into telemetry

Utility

  • PoS Logic - for each protocol level actor (stake, unstake, pause, unpause, jail, etc…)
  • Account logic - send & receive funds

Utility - Validator rewards

  • Slashing & jailing for unsigned blocks
  • Slashing & jailing for double signing blocks
  • Reward Validators for producing a block

Consensus

Consensus - BFT

  • HotPOKT - Hotstuff implementation w/ pacemaker module
  • Safety & liveness - tests and logging for visibility
  • Validation - replica block validation

Consensus - Leader election

  • Primary - VRF leader selection
  • Secondary - Round robin leader selection
  • Validators voting power proportional to stake_tokens/total_stake_tokens

Consensus - State Sync

  • Block-by-block - MVP implementation of a state sync w/ block replay
  • Snapshot - basic sync from a prior snapshot
  • Node types - validators, other protocol actors, and full nodes

P2P

P2P - RainTree

  • MVP RainTree implementation
  • Addressbook management
  • Direct P2P message sending
  • Message gossip

P2P - Networking

  • Basic network communication (retry, send, receive, etc…)
  • Network security (TLS, etc…)
  • Networking issues debugging & functionality

P2P - Configuration

  • Peer discovery
  • Dynamic peer addition / removal

Persistence

Persistence - State Storage

  • Postgres infrastructure
  • SQL - logic & implementation for basic PoS read/write operations

Persistence - State Commitment

  • Commitment for Postgres based state storage
  • State hash - Merkle tree-based implementation for state storage
  • Block store - key-value block store

Block Production (cross-module)

  • Mempool reaping
  • Tx de-duplication
  • Tx Indexing
  • Tx validation
  • Block production

Non-goals

  • Pocket-specific utility
  • Devnet infrastructure
  • Extensive E2E automated testing
Loading