Giter Club home page Giter Club logo

siapool's Introduction

siapool

Build Status Join the chat at https://gitter.im/robvanmieghem/siapool

Status

Early development phase, completely useless at the moment.

The intention is to make a p2pool for SIA. In a first phase the pool interface and blockgeneration will be created. This will result in a fully functional but centralized pplns pool. The sharechain is currently just a list of accepted shared and the p2peer protocol will be added in phase 2.

Connect your miner

Direct your miner to the pool using the following host: <poolhost>:<poolport>/<yourpayoutaddress>

Example using gominer:

gominer -H "siapool.tech:9985/1e80b18e7cdd92c3a03f307c5f453bb5a26784dfce054063b4976c8784b3a98f55ecf5f59627"

Passing this host will work on most other miners as well but siapool rejects requests for the same payout address if the previous request happened less then 5 seconds before, unless the miner submitted a share off course.

Share difficulty

The pool has a fixed difficulty for a 1Gh/s miner to find two shares/day on average. The length of the sharechain is 8640 * 4 (= 4 days of shares if the all miners combined would find a share every 10 seconds).

Payout logic

Each share contains a generation transaction that pays to the previous n shares, where n is the length of the sharechain.

The block reward and the transaction fees are combined and apportioned according to these rules:

A subsidy of 0.5% is sent to the miner that solved the block in order to discourage not sharing solutions that qualify as a block. (A miner with the aim to harm others could withhold the block, thereby preventing anybody from getting paid. He can NOT redirect the payout to himself.) The remaining 99.5% is distributed evenly to miners based on work done recently.

A node can choose to keep a fee for operating the node.

In the event that a share qualifies as a block, this generation transaction is exposed to the Sia network and takes effect, transferring each miner its payout.

Architectural concept

Siapool needs a lot of information from the sia network to be able to construct the blocks for which it hands out headers to miners and needs to feed complete blocks to the sia network. Siad does not expose this information through it's api and siapool needs to react fast on new blocks. It's a lot more comfortable if siapool accesses the internal datastructures of siad directly to be able to serve it's miners up to date block headers and to submit custom made blocks to the sia network.

This left the option of implementing siapool as a siad module or vice versa, namely importing siad and launching the modules we require ourselves. The second option has been chosen to limit the impact on the sia project itself and to leave the pool landscape for sia mining open.

An additional benefit of embedding the necessary siad functionality is that there is only a single binary, there is no need to run a separate siad and to configure the pool and siad to work together.

Support development

If you really want to, you can support the siapool development:

SIA: 1e80b18e7cdd92c3a03f307c5f453bb5a26784dfce054063b4976c8784b3a98f55ecf5f59627

siapool's People

Contributors

robvanmieghem avatar gitter-badger avatar

Stargazers

Roman avatar 3lackhat avatar

Watchers

3lackhat 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.