Bitcoin Forum
November 18, 2024, 07:14:39 PM *
News: Check out the artwork 1Dq created to commemorate this forum's 15th anniversary
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  All
  Print  
Author Topic: CoiniumServ - open source & high performance pooled mining server software  (Read 105775 times)
This is a self-moderated topic. If you do not want to be moderated by the person who started this topic, create a new topic.
bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 11, 2014, 12:48:30 PM
Last edit: October 14, 2014, 03:45:16 PM by bonesoul
 #1

CoiniumServ - pooled mining server software by coinium.org

CoiniumServ is a high performance, extremely efficient, platform-agnostic, easy to setup pool server implementation. It features stratum and vanilla services, reward, payment, share processors, vardiff & ban managers, user-friendly embedded web-server & front-end and a full-stack API.



Demo

Checkout http://www.coinium.org that is proudly powered by CoinumServ!

Getting CoiniumServ


Help


Latest Release

0.2.2 beta

More


bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 11, 2014, 03:15:24 PM
Last edit: July 16, 2014, 01:14:00 PM by bonesoul
 #2

and yes coinium can run on mono Smiley

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 11, 2014, 03:41:15 PM
 #3

Building with mono: https://github.com/CoiniumServ/CoiniumServ/wiki/Building-with-Mono

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 13, 2014, 12:49:05 AM
 #4

technical documentation wiki: https://github.com/CoiniumServ/CoiniumServ/wiki/Technical-Documentation

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 17, 2014, 12:06:56 PM
 #5

Cgminer accepting jobs & sending notifications;


bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
May 20, 2014, 12:27:53 AM
 #6

master-plan: https://github.com/CoiniumServ/CoiniumServ/wiki/Master-Plan

DRKLord
Member
**
Offline Offline

Activity: 84
Merit: 10

DRK Developer


View Profile
June 18, 2014, 04:18:14 AM
 #7

First of all, I want to give this project my highest praises! Well done! This is EXACTLY the sort of mining pool software I've been looking for, and I LOVE C#/.NET/Mono!!!

However, I'm having a few problems with the code...

After I downloaded the .zip of the repo, I noticed that the project's dependencies were missing. It was missing Gibbed.IO and Json.RPC / AustinHarris.Json.RPC... I then downloaded those dependencies from the master branch and made a few modifications and reloaded them. I got the code to build and run in DEBUG config successfully. But I'm not able to tell if it's actually communicating with bitcoind... And when I try to connect one of my AntMiner S-1s, it throws an exception in the GetJsonResponse(HttpWebRequest) method of the DaemonBase class...

Code:
        private string GetJsonResponse(HttpWebRequest httpWebRequest)
        {
            try
            {
                WebResponse webResponse = httpWebRequest.GetResponse();

                // Deserialize the json response
                using (var stream = webResponse.GetResponseStream())
                using (var reader = new StreamReader(stream))
                {
                    string result = reader.ReadToEnd();
                    reader.Close();

                    return result;
                }
            }
            catch (ProtocolViolationException protocolException)
            {
                throw new Exception("Unable to connect to the Bitcoin server.", protocolException);
            }
            catch (WebException webException)
            {
                var response = webException.Response as HttpWebResponse;

                if(response == null)
                    throw new Exception("An unknown web exception occured while trying to read the JSON response.", webException);

                using (var stream = response.GetResponseStream())
                using (var reader = new StreamReader(stream))
                {
                    throw new Exception(string.Format("{0} - {1}", response.StatusCode, reader.ReadToEnd()));
                }
            }
            catch (Exception exception)
            {
                throw new Exception("An unknown exception occured while trying to read the JSON response.", exception);
            }
        }

^ I haven't yet been able to determine what's going on here or what the problem is. I just downloaded the code today, so I haven't had much time to dig in and explore it. But if anyone can help me figure out what the problem is and why this exception is being thrown I would greatly appreciate it!!!  Smiley

Also, I'm having trouble figuring out whether or not the pool software is successfully connecting to my *coind server and getting valid getwork responses. Does anyone have an example config file or some tips to help me out here?

I'm REALLY excited about this code/project and very eager to get it up and running. If anyone can help me out here I may have a bit of extra coin I can send your way...  Wink

Thanks!

The DRK Lord

Luficrem si drolkrd eht!

DRK Tips: XvWrvpERfUN8r1LB9JDMZS3Yu2rSfEYrHk
bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
June 25, 2014, 10:35:32 PM
 #8

DRKLord, we'll be soon posting a detailed documentation & usage guide soon. The develop branch code is still being worked and not yet production ready, but the good news is that, startum-server code's initial implementation is done now.

here's a few screenshots;

running over mono & ubuntu:


running over dotnet & windows


the first litecoin-testnet block found by coiniumserv: https://chain.so/tx/LTCTEST/5d3b79637855994ad582b1c304ea29525f1f644fa4fcc48f69954558768a30fe
and even more testnet blocks: https://chain.so/address/LTCTEST/n3Mvrshbf4fMoHzWZkDVbhhx4BLZCcU9oY

@drklord and please try this;

git submodule init
git submodule update
cd build
./build-mono.sh
cd ..
cd /bin/Debug
./CoiniumServ.exe

And give it a try, you'll have a debug.log file in bin/Debug/logs and it'll be very helpful for me to identify the problem. And keep in mind that right now scrypt is hardcoded for time being (will support sha256 coins soon too)

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
June 26, 2014, 01:18:35 PM
 #9

Solo mining with CoiniumServ & Windows

http://www.youtube.com/watch?v=z6h4-4tdxvI


jmaxmining
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
June 29, 2014, 08:45:28 PM
 #10

Nice video.
I see you were using the dotnet version.
I have mine running but I do not see many of the printouts to the console that we in the video init the pool etc. (my version is a couple a days newer that then one in the video - I think.
When mine runs - it gets a timeout exception trying to communicate with the coin daemon.
the config file has the daemon address as 127.0.0.1 port 9333.
Are those settings accurate?
I do not see any process listening on port 9333 - which may explain why the request is timing out.

Any ideas?

06/29/2014 15:48:19 -04:00 [Information] [global] [n/a] CoiniumServ "0.1.5293.24129" warming-up..
06/29/2014 15:48:19 -04:00 [Information] [global] [n/a] Running over DotNet 4.0.30319.17929.
06/29/2014 15:48:20 -04:00 [Debug] [Pool] [n/a] Generated cryptographically random instance Id: 974328085
06/29/2014 15:48:26 -04:00 [Information] [Redis] [n/a] Storage initialized: "InterNetwork/127.0.0.1:6379"
06/29/2014 15:48:27 -04:00 [Information] [PoolManager] [n/a] Discovered a total of 1 enabled pool configurations: ["Litecoin"].
06/29/2014 15:48:27 -04:00 [Information] [StratumServer] [n/a] Stratum server listening on "0.0.0.0":3333
06/29/2014 15:48:27 -04:00 [Information] [HttpServer] [n/a] Vanilla server listening on port 3334.
06/29/2014 15:48:27 -04:00 [Verbose] [DaemonBase] [n/a] Send: "{
    'method' : 'getblocktemplate',
    'params' : [
        {
            'capabilities' : [
                'coinbasetxn',
                'workid',
                'coinbase/append'
            ]
        }
    ],
    'id' : 0
}"


then it hits:   throw new Exception("There was a problem communicating with coin daemon.", exception);

Thanks!
jmaxmining
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
June 29, 2014, 09:44:18 PM
 #11

Well I did not know that the coin daemon is a separate process.
So I have the litecoind running now and it looks like I am past the issue with communicating to it...
However, now I have the same issue as the previous person.
I am getting this exception:  throw new Exception("An unknown web exception occured while trying to read the JSON response.", webException);
I am running on windows dotnet.

Any help on that one?

Thanks!
bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
June 30, 2014, 10:02:03 AM
 #12

for litecoin-testnet i use a this config;

Code:
server=1
rpcuser=user
rpcpassword=password
rpctimeout=30
rpcallowip=127.0.0.1
rpcport=9333
testnet=1

You should be having something similar to this, if the problem persist can you paste your litecoin.conf please?

jmaxmining
Newbie
*
Offline Offline

Activity: 4
Merit: 0


View Profile
July 05, 2014, 05:23:05 PM
 #13

For some reason I can not run more than one miner on one instance of cgminer using this pool. Are there any fixes for this?
bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 13, 2014, 03:09:03 AM
 #14

@jmax, can you handle your debug.log please?

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 16, 2014, 01:16:29 PM
 #15

I've been keeping an eye on Coinium. I'm in the process of developing a gameplan to set up a multipool type of thing, with some select auto-exchanged POS coins available for users. As far as multipool software that supports auto-exchange, there's nothing ready made that I can use, so I've been digging and digging everywhere I can for code snippets or other stuff I can adapt to something like NOMP. I've actually ran across quite a bit of very interesting stuff, but most everything I come across is done with programming languages I'm less than familiar with, so it presents a rather large obstacle. Since I ran across Coinium I've been pretty excited to see it with all its planned features implemented. I haven't actually tried out a build of it yet, but was wondering how feature-complete it is so far? Any idea how far off it is from being ready for running a live pool, and are/will the switching and autoexchange features be usable when its ready for live testing, or will those features be held off until the rest of the project has matured further?

Sorry for all the questions, just trying to get an idea of what, if anything, I can do with Coinium at the moment. Also, I really like the frontend on the coinium.org pool website. Will that be a feature in CoiniumServ or is it a custom, proprietary frontend? I'd like to get my hands on that :b

There's a ton of multipools out there, some of the biggest and oldest, if I'm not mistaken, are pretty much 100% custom. Unfortunately, for a lone entrepreneur like me, hiring a dev team is out of the question, and I just don't have the time or enough experience in the most useful programming languages for this kind of project. Its nice to see a project taking shape that doesn't seem to be having any features deliberately held back or put aside for a "premium" version.

Thanks for reading and please, if you have any information for me, if you wouldn't mind sending me a quick PM to check the thread, I would greatly appreciate it.


Thanks for your interest on the project.

Quote
I haven't actually tried out a build of it yet, but was wondering how feature-complete it is so far?

We will be soon releasing a feature-complete alpha version for testing stuff and so. The next step will be a feature-freeze where we'll be fixing the bugs in basic functionality. Next in the line we'll implement multi-pool capabilities. Check our list of milestones here; https://github.com/CoiniumServ/CoiniumServ/issues/milestones

So basically for switching and autoexchange we need to first make sure that the basic functionality is all tested & working as intended.

Quote
Also, I really like the frontend on the coinium.org pool website. Will that be a feature in CoiniumServ or is it a custom, proprietary frontend? I'd like to get my hands on that :b

Coinium.org pool website is proprietary frontend, but CoiniumServ project will feature a similar one which you'll be able to customize for your needs easily.

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 16, 2014, 01:17:46 PM
 #16

Does coinium work with btc as well or is it mostly for all coins ?

Right now it does support scrypt (and will add sha256 coin support soon - like BTC), x11, x13 and similar algo support will also eventually added.

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 16, 2014, 01:28:43 PM
 #17

CoiniumServ source code visualization

http://www.youtube.com/watch?v=6qHMiNbfH7s


edric
Hero Member
*****
Offline Offline

Activity: 546
Merit: 501



View Profile
July 18, 2014, 09:19:00 AM
Last edit: July 18, 2014, 10:21:27 AM by edric
 #18

Oh wow, that video reminds me of when I was folding for a bit a while back. Nice!

I haven't had any free time lately to test it out, I had started to a couple of weeks back and was having some issues and haven't had time since. Running several pools and keeping up the backends, maintaining a few small projects as well as helping with a friend's setup, tiring..

I'm pulling the repo now and will give it a look before turning in tonight. Very excited about it, as the goals of this project fit with my overall aims, and I'm hoping that its modular nature will allow for me to use some of my own customized backend tools.

I'm liking the development schedule you have laid out so far, seems very well thought out. Is there any concrete planning done yet on exactly how the system will be modular? What I mean is, for instance, if a part of the autoexchange engine doesn't quite fit what I need, but I have my own program that can pass commands and arguments through it via cli or even http, is that possible? Its understandable if you're not quite ready to elaborate on that for whatever reason but would love any explanation you're able to provide. At the moment I'm mostly running a solo venture as far as my pool stuff goes and CoiniumServ has definitely been looking attractive since the finished product is meant to be fully featured and flexible, allowing me to offer excellent services without having a huge staff, or budget. The ability to plug in some of my own tools (without having to resort to reverse engineering or hacking anything) would make it even more attractive, though I could be assuming too much, too early. Still, watching eagerly. Just wish I had more time to test!

If you wish, feel free to PM me. Smiley

Edit: Had another go at building it but not having any luck yet. I've barely even gotten my feet wet with C# or Mono so it is possible I'm just missing something or not set up quite right yet. I did get those repos added and installed mono-complete and mono-opt along with its extra dependencies.
With a bit of googling I'm thinking it is something on my end that I just need to wrap my head around a bit more. Once again, though, I've worked the night away and the kids will be up in a couple of hours, so I'll try again tomorrow. Following is a snippet of one of the errors I was getting when running the build script.

 Utils/Logging.cs(97,43): error CS0012: The type `System.Object' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 18, 2014, 01:30:05 PM
 #19


I'm liking the development schedule you have laid out so far, seems very well thought out. Is there any concrete planning done yet on exactly how the system will be modular? What I mean is, for instance, if a part of the autoexchange engine doesn't quite fit what I need, but I have my own program that can pass commands and arguments through it via cli or even http, is that possible? Its understandable if you're not quite ready to elaborate on that for whatever reason but would love any explanation you're able to provide. At the moment I'm mostly running a solo venture as far as my pool stuff goes and CoiniumServ has definitely been looking attractive since the finished product is meant to be fully featured and flexible, allowing me to offer excellent services without having a huge staff, or budget. The ability to plug in some of my own tools (without having to resort to reverse engineering or hacking anything) would make it even more attractive, though I could be assuming too much, too early. Still, watching eagerly. Just wish I had more time to test!

The plan is that we won't be releasing a ready-to-work auto-exchange code with - the number #1 reason is that auto-exchange pools as you know dumps coins and for the most part makes the coin prices to drop. But we have a plan for that which is quite different then nomp;

We'll create an auto-exchange module API that CoiniumServ can consume, so basically to get started with a new exchange-service working, you just need to put a simple module for CoiniumServ and fill in the details about connection to exchange-api. Then you'll be able to fill the exchange logic - which will allow you to code your own unique exchange logic;

The api is not here yet but will be something similar to this;

Quote
var txId = your_exchange_module.Send(dogecoins)
await your_exchange_module.Sell(txId)
var newtxId = your_exchange_module.Get(bitcoins-for-txId)
-- payment processor will do the rest to distribute the bitcoins for miners who contributed dogecoin mining period --

So we'll have two options
1) Use the above exchange module API and code your own simple exchange module so coiniumserv consume it's services (which is already what you are looking for).
2) For our own pools coinium.org, we'll develop our own proprietary exchange modules for our in house use, but will still have paid consulting services for people whom can't afford developing the module themself.  Consulting services we allow the development of the software to continue on.

Edit: Had another go at building it but not having any luck yet. I've barely even gotten my feet wet with C# or Mono so it is possible I'm just missing something or not set up quite right yet. I did get those repos added and installed mono-complete and mono-opt along with its extra dependencies.
With a bit of googling I'm thinking it is something on my end that I just need to wrap my head around a bit more. Once again, though, I've worked the night away and the kids will be up in a couple of hours, so I'll try again tomorrow. Following is a snippet of one of the errors I was getting when running the build script.

 Utils/Logging.cs(97,43): error CS0012: The type `System.Object' is defined in an assembly that is not referenced. Consider adding a reference to assembly `System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'

Will be lot better if you can paste a full build-log to pastie.org so I can check it out.

and maybe also give this command a try;
Quote

bonesoul (OP)
Sr. Member
****
Offline Offline

Activity: 389
Merit: 250


View Profile WWW
July 22, 2014, 02:41:27 PM
 #20

we are too close to milestone1, expect an alpha for testing soon guys! https://github.com/CoiniumServ/CoiniumServ/issues?milestone=1&state=open

Pages: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!