Coder Social home page Coder Social logo

aleo-pool-server's Introduction

Aleo Mining Pool Server

Introduction

A mining pool server for the Aleo network.

Why a Standalone Server?

  1. I want to separate the mining pool part from the network node as ledger syncing sometimes interferes with the mining pool operations.
  2. I want to use a more efficient network protocol for pool - miner communication.
  3. Making too many changes to the snarkOS code could be a bad idea as I still need to sync with upstream code.
  4. It's easier to test the mining pool with a standalone server.
  5. It's also easier to add more features to a smaller codebase.

Features

  1. A stratum protocol. Specs.
  2. A good enough automatic difficulty targeting system. (Needs more test under high load)
  3. Stats for pool and provers.

State

Undergoing a lot of rewrite:

  • Use RDBMS instead of RocksDB for most of the data storage
  • Use a real stratum protocol for pool - miner communication
  • Rework the difficulty targeting system
  • Decide if more API endpoints are needed -- many of the work should be offloaded to frontends
  • Payout system step 1 - allocate rewards to provers after confirmation
  • Payout system step 2 - send rewards to provers (indefinitely delayed until the network is ready)

Things to test

  • If new blocks can be properly generated
  • If the payout system works
  • If the difficulty retargeting system works under high load - Works under light load
  • If there is no deadlock under high load - Works under light load

Usage

Don't use unless you know what you're doing for now.

System requirements

  • Rust 1.59+ (Not sure what's strictly required)

Optional:

  • PostgreSQL 11+ (Still not sure what's strictly required)
  • PL/Python 3.6+

License

AGPL-3.0-or-later

aleo-pool-server's People

Contributors

harukama avatar rockhanni avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.