Bitcoin Forum
May 04, 2024, 02:31:16 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: [XPM] [ANN] Primecoin Pool Software  (Read 5181 times)
versificateur (OP)
Newbie
*
Offline Offline

Activity: 47
Merit: 0


View Profile
August 06, 2013, 01:30:29 AM
Last edit: August 08, 2013, 08:41:31 PM by versificateur
 #1

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

1714833076
Hero Member
*
Offline Offline

Posts: 1714833076

View Profile Personal Message (Offline)

Ignore
1714833076
Reply with quote  #2

1714833076
Report to moderator
According to NIST and ECRYPT II, the cryptographic algorithms used in Bitcoin are expected to be strong until at least 2030. (After that, it will not be too difficult to transition to different algorithms.)
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714833076
Hero Member
*
Offline Offline

Posts: 1714833076

View Profile Personal Message (Offline)

Ignore
1714833076
Reply with quote  #2

1714833076
Report to moderator
SlyWax
Sr. Member
****
Offline Offline

Activity: 248
Merit: 251



View Profile
August 06, 2013, 04:47:10 AM
 #2

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
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500



View Profile
August 06, 2013, 11:57:17 AM
 #3

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
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1000



View Profile
August 06, 2013, 08:39:20 PM
 #4

I'll keep an eye on this thread...I feel ypool is scamming people with it's strange mechanics.
bcp19
Hero Member
*****
Offline Offline

Activity: 532
Merit: 500



View Profile
August 06, 2013, 08:55:00 PM
 #5

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 Offline

Activity: 61
Merit: 10


View Profile
August 06, 2013, 08:58:47 PM
 #6

I'd love to see a stratum fork for XPM.
tomtommy
Full Member
***
Offline Offline

Activity: 120
Merit: 100



View Profile
August 06, 2013, 09:06:32 PM
 #7

I'd love to see a stratum fork for XPM.
 

+1
funnow
Full Member
***
Offline Offline

Activity: 347
Merit: 100


View Profile WWW
August 07, 2013, 11:12:17 AM
 #8

I'd love to see a stratum fork for XPM.
 

+1
+1
bitwarrior
Legendary
*
Offline Offline

Activity: 1764
Merit: 1000



View Profile
August 07, 2013, 11:55:42 AM
 #9

+1^2
minerstorm
Full Member
***
Offline Offline

Activity: 200
Merit: 100



View Profile
August 07, 2013, 12:08:55 PM
 #10

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 Offline

Activity: 1239
Merit: 1020


No surrender, no retreat, no regret.


View Profile WWW
August 07, 2013, 12:22:37 PM
 #11

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.

"If you've got a problem and have to spread some coins to make it go away, you've got no problem. You've got an expence." ~ Phoenixcoin (PXC) and Orbitcoin (ORB) and Halcyon (HAL)
ivanlabrie
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1000



View Profile
August 07, 2013, 02:30:17 PM
 #12

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 Offline

Activity: 1239
Merit: 1020


No surrender, no retreat, no regret.


View Profile WWW
August 07, 2013, 04:20:54 PM
 #13

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.

"If you've got a problem and have to spread some coins to make it go away, you've got no problem. You've got an expence." ~ Phoenixcoin (PXC) and Orbitcoin (ORB) and Halcyon (HAL)
ivanlabrie
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1000



View Profile
August 07, 2013, 05:07:09 PM
 #14

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 Offline

Activity: 47
Merit: 0


View Profile
August 08, 2013, 08:17:07 PM
 #15

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
Hero Member
*****
Offline Offline

Activity: 812
Merit: 1000



View Profile
August 08, 2013, 09:47:05 PM
 #16

Nice man, I'll keep an eye on your progress...ypool doesn't seem fair at all, really shady pool.
hendo420
Sr. Member
****
Offline Offline

Activity: 420
Merit: 250



View Profile WWW
August 08, 2013, 09:55:29 PM
 #17

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.  Wink

ebmarket.co
SlyWax
Sr. Member
****
Offline Offline

Activity: 248
Merit: 251



View Profile
August 09, 2013, 02:01:50 AM
 #18

.../
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
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250



View Profile
August 13, 2013, 07:59:05 AM
 #19

yea but it ridicules at what one gets i have found 5 blocks in 3 days and only have 12 primecoins 
shakti
Member
**
Offline Offline

Activity: 60
Merit: 10



View Profile
August 13, 2013, 08:49:45 AM
Last edit: August 13, 2013, 09:16:21 AM by shakti
 #20

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 Smiley

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.

Pages: [1] 2 »  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!