Skip to content

Master Plan

Hüseyin Uslu edited this page May 19, 2014 · 20 revisions

Master Plan

In this document we'll be addressing the motivation behind CoiniumServ and present a basic road-map of the development process.

The motivation

So you'll be most likely asking the reasoning behind yet another pool-server when there exists lovely ones like python-stratum, python-stratum-continued, nomp and side-projects like mpos. First of all we already love those projects (especially Open Source ones that contributed the community) and using them.

Though for us today Bitcoin is just like the Internet in 1996, so we expect a huge evolution if in upcoming years. Said so, Bitcoins and alternative crypto currencies deserves a better pool-software that has a proper development model and plan.

Internet vs Bitcoin

The language choice - C#

Although python and javascript (node.js) are great choices, we feel they are a bit hacky and instead decided to go for a more conservative and dictative language - C#. With the Rosyln and .net native on the horizon, we think C# has great potential that we can use within the project.

The framework - Mono vs dotNet

CoiniumServ is built from ground up with the idea of supporting both DotNet and Mono frameworks. Basically you can run CoiniumServ over any platform that has Mono or dotNet support; Windows, Linux, MacOS and so on.

LINQ usage

We want CoiniumServ to support as many possible platform as possible, so just in order to be able to target Mono 2.8, we strictly don't use LINQ. Even more as LINQ adds another layer of computing, this decision has performance-wise outcomes too.

Right now, CoiniumServ supports these frameworks and our continous integration systems covers these;

  • Mono 2.8 - covered by travis with MacOS builds
  • Mono 3.x - covered by travis with MacOS builds
  • dotNet 4.x & 4.5.x - covered by appveyor with Windows 2012 builds
Layered Architecture
Modularity
Protocols
Persistance & Storage
Multipool & Automatic Trading Support