versificateur (OP)
Newbie
Offline
Activity: 47
Merit: 0
|
|
August 06, 2013, 01:30:29 AM Last edit: August 08, 2013, 08:41:31 PM by versificateur |
|
Hi All,
I started to work on a Primecoin pool software. I intend this thread to be used as a central place for primecoin pools development. I think many people are looking for alternative for ypool. What ypool did was great. They offer possibility to people with small and less powered cpu to mine xpm, also reducing variance in finding share. But I think we need other pools for primecoin to get enlarged adoption, to reduce the probability of a 51% attack or fork, and we need a pool software to be "free" from a mining software. People should be free to use their miners on all pools as long as their miner fully implement the protocol.
I'm almost new into bitcoin/altcoin space so I'll spend all this week to look around bitcoin/primecoin RPCJSON protocol. I also still hesitate about two choices for my pool software. - First use an existing bitcoin pool software and write necessarily changes to make primecoin work on it. I'm reluctant to this, because It could result in a huge job (getting internal of primecoin, getting internal of selected mining software, and then rewrite it for primecoin). -Second, write my pool software from scratch (only based on primecoin)
As far as now, I think i understand how bitcoin pools work, at least in getwork and GBT protocols. Primecoind support GBT, so writing a pool software should be "easily" feasible but we still need an accurate measure of provided work by miner. I heard that ypool is using chain of lenght >= 6 as valid shares, resulting in fewer chains to considered as "stale". Is that accurate ?
PS: For what it worth, that I write my own pool or reuse an existing one, the final pool engine will be opensourced.
address for donations : XPM : ARtq1RSyDuDFQvHvthJhM3KAesV9W62ejN BTC : 1DqfEcPgaexKsVdHp194rsiivKARXe7fd3
|
|
|
|
SlyWax
|
|
August 06, 2013, 04:47:10 AM |
|
Nice initiative. Yes Ypool use 6-chain or more as shares, and each length have a different share value I guess. I don't know how it is balanced. Something like P2Pool might be hard to do on Primecoin ( https://en.bitcoin.it/wiki/P2Pool) Since you want multiple client/server, we will have to write a protocol first ! I guess you submit the client with some already made block hash, so that he can't go solo mining if he found a block. Then the client return the different chain he found. Client can ask for another batch of block to test. I guess the problem is high load on the server (from hash generation, and chain checking) Chain check can be done by other client though.
|
|
|
|
bcp19
|
|
August 06, 2013, 11:57:17 AM |
|
Hi All,
I started to work on a Primecoin pool software. I intend this thread to be used as a central place for primecoin pools development. I think many people are looking for alternative for ypool. What ypool did was great. They offer possibility to people with small and less powered cpu to mine xpm, also reducing variance in finding share. But I think we need other pools for primecoin to get enlarged adoption, to reduce the probability of a 51% attack or fork, and we need a pool software to be "free" from a mining software. People should be free to use their miners on all pools as long as their miner fully implement the protocol.
I'm almost new into bitcoin/altcoin space so I'll spend all this week to look around bitcoin/primecoin RPCJSON protocol. I also still hesitate about two choices for my pool software. - First use an existing bitcoin pool software and write necessarily changes to make primecoin work on it. I'm reluctant to this, because It could result in a huge job (getting internal of primecoin, getting internal of selected mining software, and then rewrite it for primecoin). -Second, write my pool software from scratch (only based on primecoin)
As far as now, I think i understand how bitcoin pools work, at least in getwork and GBT protocols. Primecoind support GBT, so writing a pool software should be "easily" feasible but we still need an accurate measure of provided work by miner. I heard that ypool is using chain of lenght >= 6 as valid shares, resulting in fewer chains to considered as "stale". Is that accurate ?
PS: For what it worth, that I write my own pool or reuse an existing one, the final pool engine will be opensourced.
The primecoin client had mining 'software' included in it since none of the current mining programs could be used or easily adapted to it. ypool created it's own miner at the same time they created their pool and did so successfully. You will have to do the same thing, creating your own metric for work shares or you will have to take apart one of the current miners to see what information it sends and then create your pool based on that information. I could be wrong, but my personal feeling is that taking an existing pools software would be more hassle than it's worth, the architectures are totally different.
|
I do not suffer fools gladly... "Captain! We're surrounded!" I embrace my inner Kool-Aid.
|
|
|
ivanlabrie
|
|
August 06, 2013, 08:39:20 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
|
|
|
|
bcp19
|
|
August 06, 2013, 08:55:00 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
I looked at block 101860, lists 11.12 block reward. Breakdown shows 10.778396 going to 739 users. Slightly over 3% (3.071) to pool, prob from rounding.
|
I do not suffer fools gladly... "Captain! We're surrounded!" I embrace my inner Kool-Aid.
|
|
|
robotrebellion
Member
Offline
Activity: 61
Merit: 10
|
|
August 06, 2013, 08:58:47 PM |
|
I'd love to see a stratum fork for XPM.
|
|
|
|
tomtommy
|
|
August 06, 2013, 09:06:32 PM |
|
I'd love to see a stratum fork for XPM.
+1
|
|
|
|
funnow
|
|
August 07, 2013, 11:12:17 AM |
|
I'd love to see a stratum fork for XPM.
+1 +1
|
|
|
|
bitwarrior
Legendary
Offline
Activity: 1764
Merit: 1000
|
|
August 07, 2013, 11:55:42 AM |
|
I'd love to see a stratum fork for XPM.
+1 +1 +1^2
|
|
|
|
minerstorm
|
|
August 07, 2013, 12:08:55 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
+100500 We need a new pool for the Prime's difficulty 6 is unfair! And incomprehensible system of charges of coins! We look forward to NORMAL pool!
|
|
|
|
ghostlander
Legendary
Offline
Activity: 1241
Merit: 1020
No surrender, no retreat, no regret.
|
|
August 07, 2013, 12:22:37 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
I have 3 machines of about the same performance mining XPM. I have pointed one at Ypool and left two mining solo. 3 days passed, solo miners have found one block each (difficulty ~9, that's ~11 XPM per block). The 3rd machine at Ypool has only made ~2 XPM. Either they're very inefficient or you guess what.
|
|
|
|
ivanlabrie
|
|
August 07, 2013, 02:30:17 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
I have 3 machines of about the same performance mining XPM. I have pointed one at Ypool and left two mining solo. 3 days passed, solo miners have found one block each (difficulty ~9, that's ~11 XPM per block). The 3rd machine at Ypool has only made ~2 XPM. Either they're very inefficient or you guess what. Yeah, I'll solo mine once I install my i7 3820+x79-ud3. What wallet? hp9?
|
|
|
|
ghostlander
Legendary
Offline
Activity: 1241
Merit: 1020
No surrender, no retreat, no regret.
|
|
August 07, 2013, 04:20:54 PM |
|
I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
I have 3 machines of about the same performance mining XPM. I have pointed one at Ypool and left two mining solo. 3 days passed, solo miners have found one block each (difficulty ~9, that's ~11 XPM per block). The 3rd machine at Ypool has only made ~2 XPM. Either they're very inefficient or you guess what. Yeah, I'll solo mine once I install my i7 3820+x79-ud3. What wallet? hp9? HP7 and HP8, now HP9.
|
|
|
|
ivanlabrie
|
|
August 07, 2013, 05:07:09 PM |
|
Thanks, I have my stuff, need to install win again and I'll post back with results.
Looking forward to new pool soft, I'd gladly donate.
|
|
|
|
versificateur (OP)
Newbie
Offline
Activity: 47
Merit: 0
|
|
August 08, 2013, 08:17:07 PM |
|
First report As I said before, I looked around bitcoin scheme and it's pretty impressive. Satoshi, what a man! I got only part of internal math and yes working in investment bank get you dumb. But now I'm focusing only on what is needed to write a pool, and yes I'll write something from scratch first for official client and with some compatibility with mikaehl's HP miner. It's hard to say now how long this work will take but I should know this by the end of the week. Nice initiative. Yes Ypool use 6-chain or more as shares, and each length have a different share value I guess. I don't know how it is balanced. Something like P2Pool might be hard to do on Primecoin ( https://en.bitcoin.it/wiki/P2Pool) Since you want multiple client/server, we will have to write a protocol first ! I guess you submit the client with some already made block hash, so that he can't go solo mining if he found a block. Then the client return the different chain he found. Client can ask for another batch of block to test. I guess the problem is high load on the server (from hash generation, and chain checking) Chain check can be done by other client though. Yeah! Basically this is what the pool server will do. I'll go with java or scala since it's easier to scale with (both scale-in and scale-out is achievable with standard methods). Concerning protocol stuff, i'm currently looking into ypool x.pushthrough, but mine will first be getwork-based as it's much easier to comprehend. Many people asked for a stratum fork protocol. I'll definitely get a look at this, but an optimized bandwith protocol is clearly not my first goal. Maybe after On reward side, after discussions with mtrlt and mikaelh_ on IRC, I decided go with and exponential-based scheme with diff-3+1 (the +1 part is like a modulo and bonus parameter). As we have to deal with the integer nature of primecoin chains and the exponential diff adjustments, diff based reward needs to be differently calibrated. For example at current difficulty (9.5) submitting 6-chain would give you 1% reward while submitting a 10-or-more-chain will give you more than 100% because 100% reward will be target to match the actual decimal number of diff and therefore the more we get closer to diff 10.0 the less your 9-chain worth. I think it's a fair valuation method. I have to do some maths and benchmarks to calibrate this model but I think it should work. I'll start to write code tomorrow, once I set all my coding stuff
|
|
|
|
ivanlabrie
|
|
August 08, 2013, 09:47:05 PM |
|
Nice man, I'll keep an eye on your progress...ypool doesn't seem fair at all, really shady pool.
|
|
|
|
hendo420
|
|
August 08, 2013, 09:55:29 PM |
|
Primecoin is desperate for pools. Competition is a must. Competition keeps pool owners honest and prevents 51% attacks. I'm here as a guinea pig if you need one.
|
ebmarket.co
|
|
|
SlyWax
|
|
August 09, 2013, 02:01:50 AM |
|
.../ On reward side, after discussions with mtrlt and mikaelh_ on IRC, I decided go with and exponential-based scheme with diff-3+1 (the +1 part is like a modulo and bonus parameter). As we have to deal with the integer nature of primecoin chains and the exponential diff adjustments, diff based reward needs to be differently calibrated.
For example at current difficulty (9.5) submitting 6-chain would give you 1% reward while submitting a 10-or-more-chain will give you more than 100% because 100% reward will be target to match the actual decimal number of diff and therefore the more we get closer to diff 10.0 the less your 9-chain worth. /....
You cant give 100% reward to someone, that would mean the others won't get anything. Or I didn't get from what you are taking your 100% ... Anyway, the reward should try to match a % of the chain/day that the miner have, if this indicator is proven to be reliable. But since chain/day cannot be used as a prof of work, you will have to finely tune the repartition of the shares. if we allocate different value for each length, we should take : S(L) = percentage of share allocated at length L. C(L) = number of chain of length L found by all the pool miners. M = block value in XPM If a miner found F chain of length L he will gain for this length : G(L) = M*F(L)*S(L)/C(L)For example :S( 9) = 10% S( 8) = 20% S( 7) = 70% C( 9) = 4 chain of length 9 found buy all miners C( 8) = 160 C( 7) = 4000 M = 10 XPM If a miner found 1 chain of length 9 he will gain for this length : G( 9) = 10*1*0.10/4 = 0.25 XPM 40 chain of 8 : G( 8) = 10*40*0.20/160 = 0.50 XPM 1000 of 7 : G( 7) = 10*1000*0.70/4000 = 1.75 XPM Total : 2.5 XPM
|
|
|
|
elvisrene
|
|
August 13, 2013, 07:59:05 AM |
|
yea but it ridicules at what one gets i have found 5 blocks in 3 days and only have 12 primecoins
|
|
|
|
shakti
Member
Offline
Activity: 60
Merit: 10
|
|
August 13, 2013, 08:49:45 AM Last edit: August 13, 2013, 09:16:21 AM by shakti |
|
The big problem for making pool is shares check.... Example: If you mine 9-er chain and submit 6-er chains as share you'll get about 20 6-er chains in a hour. If i use same block data and replace in miner to search for 6-er chains you'll find 200-300 6-er chains in a hour why ? well sieve is working like this ... it tryes sieve out all numbers that definitly don't make 9-er chain, this means if it makes 6-er chain but next number in chain is devided by any prime of primes in the sieve-check it will don't ever bother with check this chain, so no share. The pool should tell client exactly where to search... like this ... search with hash XXXX, with primorial multiplier YY, in the range of multipliers [NNN-MMM](bounds for min and max of Sieve) with exactly check of min (2.....XXXX) primes. The checking of share is problem .... you have to check would be this chain sieved out, if it's so - this share is illegal. so this means you have to factorize all next Numbers from the share chain ( numbers if it would be 7-er, 8-er,9-er chain), and check they dividable by primes from [2....XXXX]. It isn't trivial and means really a lot of work for pool software ... I have no idea how make it better atm, probably take 7-er, 8-er chains as share ... I hope i've made myself understandable, my english isn't that good. P.S. i think this is the one of the causes that Ypool doesn't work good for really miners.
|
|
|
|
|