Bitcoin Forum
April 18, 2014, 07:26:50 PM *
News: Due to the OpenSSL heartbleed bug, changing your forum password is recommended.
 
   Home   Help Search Donate Login Register  
Pages: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 [68] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ... 415
  Print  
Author Topic: [185 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool  (Read 693485 times)
spiccioli
Hero Member
*****
Offline Offline

Activity: 980

nec sine labore


View Profile

Ignore
March 14, 2012, 06:33:41 PM
 #1341

Yes, I understand the percentage of actually seeing some if not any shares are; the thing that confuses me is how am I able to show accepted on the miner when my pool doesn't show any shares, unless it's mining so low that the pool already is on another block. :\

https://en.bitcoin.it/wiki/P2Pool#Frequently_Asked_Questions

Q: Why does my miner say it has found a lot of shares but p2pool say I have only found a few?!

A: The real P2Pool difficulty is hundreds of times higher than on normal pools, but p2pool essentially lies to your miner and tells it to work on relatively easy shares so that it submits shares every few seconds instead of every few hours. P2Pool then ignores any submitted shares that don't match the real share difficulty. By doing this, P2Pool can more accurately report your local hash rate and you can see if you are having problems with too many stale shares quickly


twmz,

question: could p2pool use difficulty 1 shares to calc miner payout instead of using high difficulty ones? This should lower miner's variance and still be able to use high difficulty shares to solve blocks.

spiccioli
1397849210
Hero Member
*
Offline Offline

Posts: 1397849210

View Profile Personal Message (Offline)

Ignore
1397849210
Reply with quote  #2

1397849210
Report to moderator
1397849210
Hero Member
*
Offline Offline

Posts: 1397849210

View Profile Personal Message (Offline)

Ignore
1397849210
Reply with quote  #2

1397849210
Report to moderator
GAWMiners.com - FREE Hosting & Electricity for 1 Year!
Exclusive Offer Code: GAWHOST1
Mining Made Easy
For Everyone

Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1397849210
Hero Member
*
Offline Offline

Posts: 1397849210

View Profile Personal Message (Offline)

Ignore
1397849210
Reply with quote  #2

1397849210
Report to moderator
Red Emerald
Hero Member
*****
Offline Offline

Activity: 728



View Profile WWW

Ignore
March 14, 2012, 06:39:36 PM
 #1342

Yes, I understand the percentage of actually seeing some if not any shares are; the thing that confuses me is how am I able to show accepted on the miner when my pool doesn't show any shares, unless it's mining so low that the pool already is on another block. :\

https://en.bitcoin.it/wiki/P2Pool#Frequently_Asked_Questions

Q: Why does my miner say it has found a lot of shares but p2pool say I have only found a few?!

A: The real P2Pool difficulty is hundreds of times higher than on normal pools, but p2pool essentially lies to your miner and tells it to work on relatively easy shares so that it submits shares every few seconds instead of every few hours. P2Pool then ignores any submitted shares that don't match the real share difficulty. By doing this, P2Pool can more accurately report your local hash rate and you can see if you are having problems with too many stale shares quickly


twmz,

question: could p2pool use difficulty 1 shares to calc miner payout instead of using high difficulty ones? This should lower miner's variance and still be able to use high difficulty shares to solve blocks.

spiccioli
This has also been discuseed on previous pages.  If you are a small miner, you should try out p2pmining.com.  They use p2pool, but pay diff 1 shares.

DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 06:48:06 PM
 #1343

Yes, I understand the percentage of actually seeing some if not any shares are; the thing that confuses me is how am I able to show accepted on the miner when my pool doesn't show any shares, unless it's mining so low that the pool already is on another block. :\

https://en.bitcoin.it/wiki/P2Pool#Frequently_Asked_Questions

Q: Why does my miner say it has found a lot of shares but p2pool say I have only found a few?!

A: The real P2Pool difficulty is hundreds of times higher than on normal pools, but p2pool essentially lies to your miner and tells it to work on relatively easy shares so that it submits shares every few seconds instead of every few hours. P2Pool then ignores any submitted shares that don't match the real share difficulty. By doing this, P2Pool can more accurately report your local hash rate and you can see if you are having problems with too many stale shares quickly


twmz,

question: could p2pool use difficulty 1 shares to calc miner payout instead of using high difficulty ones? This should lower miner's variance and still be able to use high difficulty shares to solve blocks.

spiccioli

No.

First high difficulty shares aren't used to solve a block.  They aren't used for anything other than payouts.  They need to be high to keep avg time between shares ~ 10 seconds.  For example if p2pool uses 1 difficulty shares instead of 0.1 shares per second it would have 60 shares per second.  The sharechain would simply collapse under the weight of dozens of forks a second.

Shares are completely worthless (in terms of real value).  This applies to any pool.  You don't work towards a block.  You either solve it or you don't.  If you don't the hash produced is worthless.  Pools simply use shares to record how much work was attempted and thus determine a fair split.

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
spiccioli
Hero Member
*****
Offline Offline

Activity: 980

nec sine labore


View Profile

Ignore
March 14, 2012, 07:11:02 PM
 #1344

Yes, I understand the percentage of actually seeing some if not any shares are; the thing that confuses me is how am I able to show accepted on the miner when my pool doesn't show any shares, unless it's mining so low that the pool already is on another block. :\

https://en.bitcoin.it/wiki/P2Pool#Frequently_Asked_Questions

Q: Why does my miner say it has found a lot of shares but p2pool say I have only found a few?!

A: The real P2Pool difficulty is hundreds of times higher than on normal pools, but p2pool essentially lies to your miner and tells it to work on relatively easy shares so that it submits shares every few seconds instead of every few hours. P2Pool then ignores any submitted shares that don't match the real share difficulty. By doing this, P2Pool can more accurately report your local hash rate and you can see if you are having problems with too many stale shares quickly


twmz,

question: could p2pool use difficulty 1 shares to calc miner payout instead of using high difficulty ones? This should lower miner's variance and still be able to use high difficulty shares to solve blocks.

spiccioli

No.

First high difficulty shares aren't used to solve a block.  They aren't used for anything other than payouts.  They need to be high to keep avg time between shares ~ 10 seconds.  For example if p2pool uses 1 difficulty shares instead of 0.1 shares per second it would have 60 shares per second.  The sharechain would simply collapse under the weight of dozens of forks a second.

Shares are completely worthless (in terms of real value).  This applies to any pool.  You don't work towards a block.  You either solve it or you don't.  If you don't the hash produced is worthless.  Pools simply use shares to record how much work was attempted and thus determine a fair split.

Thanks DAT,

I was missing (I didn't completely understand) this issue.

I was thinking that using a higher "sampling frequency" could give a better estimate of miner contribution to the pool.

I was wrong Smiley

spiccioli.

DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 07:22:35 PM
 #1345

I was thinking that using a higher "sampling frequency" could give a better estimate of miner contribution to the pool.

Just to be precise.  A higher sampling frequency (lower diff shares) does provide a better estimate (less variance in short run).  This is why all traditional pools use a diff 1 shares.  

It just happens to be that given the limits of internet connectivity, latency, and node response times p2pool has a semi-unique restriction in that it needs to keep LP interval at ~ 10 seconds.  That puts an lower limit on difficulty of shares.  Hypothetically if all the nodes of p2pool were on internet backbone and had sub 100ms latency with every other node you could use a smaller LP window and thus a lower difficulty.

As indicated above you can support p2pool w/ 1 difficulty shares by using p2pmining.com.  It works as a "front end".  It records diff 1 shares submitted by miners and submits p2pool dif shares to p2pool.  When a block is found it splits any revenue by the diff 1 shares.  It is semi-centralized (in rewards not work generation).

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
Red Emerald
Hero Member
*****
Offline Offline

Activity: 728



View Profile WWW

Ignore
March 14, 2012, 07:30:33 PM
 #1346

I was thinking that using a higher "sampling frequency" could give a better estimate of miner contribution to the pool.

Just to be precise.  A higher sampling frequency (lower diff shares) does provide a better estimate (less variance in short run).  This is why all traditional pools use a diff 1 shares. 

It just happens to be that given the limits of internet connectivity, latency, and node response times p2pool has a semi-unique restriction in that it needs to keep LP interval at ~ 10 seconds.  That puts an lower limit on difficulty of shares.  Hypothetically if all the nodes of p2pool were on internet backbone and had sub 100ms latency with every other node you could use a smaller LP window and thus a lower difficulty.

As indicated above you can support p2pool w/ 1 difficulty shares by using p2pmining.com.  It works as a "front end".  It records diff 1 shares submitted by miners and submits p2pool dif shares to p2pool.  When a block is found it splits any revenue by the diff 1 shares.  It is semi-centralized (in rewards not work generation).


Isn't the work generation centralized too? p2pmining runs bitcoind and namecoind and then gives you the work.

DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 07:33:33 PM
 #1347

Isn't the work generation centralized too? p2pmining runs bitcoind and namecoind and then gives you the work.

Yes.  I guess I should say work can be verified.  It is possible for p2pmining to provide software which would allow user to create work locally.  No idea if the operator plans on implementing something like that.

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
ragnard
Member
**
Offline Offline

Activity: 66



View Profile

Ignore
March 14, 2012, 08:00:27 PM
 #1348

Hypothetically if all the nodes of p2pool were on internet backbone and had sub 100ms latency with every other node you could use a smaller LP window and thus a lower difficulty.

Makes me think... Could P2Pool protocol be setup to allow "super nodes" that have this good connectivity?  Users would then connect to those on a random or geographical basis.  That would give the benefit of allowing lower difficulty shares but still have a decentralized "core".  Kind of like TOR does with multiple entry/exit points on the network.  Anyone could setup a P2Pool super node, and the clients could decide if they want to keep using it based on latency, hops, etc...

As the popularity of P2Pool grows, the difficulty is only going to get higher and turn off small miners.  If this is indeed the future of BTC mining, and I hope it is, something needs to be done to address this.
DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 08:05:18 PM
 #1349

Hypothetically if all the nodes of p2pool were on internet backbone and had sub 100ms latency with every other node you could use a smaller LP window and thus a lower difficulty.

Makes me think... Could P2Pool protocol be setup to allow "super nodes" that have this good connectivity?  Users would then connect to those on a random or geographical basis.  That would give the benefit of allowing lower difficulty shares but still have a decentralized "core".  Kind of like TOR does with multiple entry/exit points on the network.  Anyone could setup a P2Pool super node, and the clients could decide if they want to keep using it based on latency, hops, etc...

As the popularity of P2Pool grows, the difficulty is only going to get higher and turn off small miners.  If this is indeed the future of BTC mining, and I hope it is, something needs to be done to address this.

Yes it has been discussed.  There are a couple of methods of providing multiple layers to p2pool with the highest layer (highest difficulty, possibly 6000+ per TH/s) forming a backbone for major farms, sub p2pools and conventional pools.

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
kano
Hero Member
*****
Offline Offline

Activity: 1008


Linux since 1997 RedHat 4


View Profile

Ignore
March 14, 2012, 09:09:06 PM
 #1350

...
Yes it has been discussed.  There are a couple of methods of providing multiple layers to p2pool with the highest layer (highest difficulty, possibly 6000+ per TH/s) forming a backbone for major farms, sub p2pools and conventional pools.
However, as soon as you have sub-p2pools - they are no different to normal pools.
So why not use a normal pool with 1 difficulty instead and solve the whole issue up front?

BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CGMiner developer,  IRC FreeNode #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 09:10:47 PM
 #1351

However, as soon as you have sub-p2pools - they are no different to normal pools.

I think you misunderstand the concept of a sub-p2pool.  Everything would be completely decentralized just as p2pool is now.

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
kano
Hero Member
*****
Offline Offline

Activity: 1008


Linux since 1997 RedHat 4


View Profile

Ignore
March 14, 2012, 10:27:56 PM
 #1352

However, as soon as you have sub-p2pools - they are no different to normal pools.

I think you misunderstand the concept of a sub-p2pool.  Everything would be completely decentralized just as p2pool is now.
Hmm - well I guess it could be possible?

But certainly people opening up their own p2pool as a pool is no different to a normal pool.

However, I'm not sure how the sub-p2pool would pay out the earnings.
Either the master p2pool share chain would have to know every sub-p2pool address and pay them their micro-payments in the master p2pool block or there would have to be some centralised non p2p control to handle that ... or Huh

BTC: 1KanoiBupPiZfkwqB7rfLXAzPnoTshAVmb
CGMiner developer,  IRC FreeNode #cgminer kanoi
Help keep Bitcoin secure by mining on pools with Stratum, the best protocol to mine Bitcoins with ASIC hardware
DeathAndTaxes
Donator
Hero Member
*
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 14, 2012, 11:18:37 PM
 #1353

However, I'm not sure how the sub-p2pool would pay out the earnings.
Either the master p2pool share chain would have to know every sub-p2pool address and pay them their micro-payments in the master p2pool block

Thats it.

Simple version.

1) Increase LP interval of p2pool to 60 seconds (and increase difficulty by factor of 6).
2) Expand protocol from 1 share = 1 address to 1 share = multiple addresses and weighted split
3) Build sub p2pool protocol which creates its own share chain (unknown and invisible to main p2pool).

When p2pool find a block it payouts as normal with the exception of the fact that 1 share may be paid to more than one address.

When subpool find a low diff share it adds it to its internal share chain.
When subpool finds a p2oool diff share it submits it to p2pool (which updates p2pool split)
When subpool finds a block it submits it to Bitcoin network.

Gerald Davis  CEO, Tangible Cryptography Inc.
BitSimple. A simpler way to buy and sell bitcoins
NothinG
Hero Member
*****
Offline Offline

Activity: 560



View Profile

Ignore
March 14, 2012, 11:37:20 PM
 #1354

Yes, I understand the percentage of actually seeing some if not any shares are; the thing that confuses me is how am I able to show accepted on the miner when my pool doesn't show any shares, unless it's mining so low that the pool already is on another block. :\

https://en.bitcoin.it/wiki/P2Pool#Frequently_Asked_Questions

Q: Why does my miner say it has found a lot of shares but p2pool say I have only found a few?!

A: The real P2Pool difficulty is hundreds of times higher than on normal pools, but p2pool essentially lies to your miner and tells it to work on relatively easy shares so that it submits shares every few seconds instead of every few hours. P2Pool then ignores any submitted shares that don't match the real share difficulty. By doing this, P2Pool can more accurately report your local hash rate and you can see if you are having problems with too many stale shares quickly
That's the problem. I was able to see some shares even if they wen't getting submitted to the pool itself, but my pool wont even show those shares.

gyverlb
Hero Member
*****
Offline Offline

Activity: 840



View Profile

Ignore
March 15, 2012, 12:56:50 AM
 #1355

However, I'm not sure how the sub-p2pool would pay out the earnings.
Either the master p2pool share chain would have to know every sub-p2pool address and pay them their micro-payments in the master p2pool block

Thats it.

Simple version.

1) Increase LP interval of p2pool to 60 seconds (and increase difficulty by factor of 6).
2) Expand protocol from 1 share = 1 address to 1 share = multiple addresses and weighted split
3) Build sub p2pool protocol which creates its own share chain (unknown and invisible to main p2pool).

When p2pool find a block it payouts as normal with the exception of the fact that 1 share may be paid to more than one address.

When subpool find a low diff share it adds it to its internal share chain.
When subpool finds a p2oool diff share it submits it to p2pool (which updates p2pool split)
When subpool finds a block it submits it to Bitcoin network.
Just thinking out loud...

I'm not sure how the subpool would be notified of share difficulty changes and submit shares to the parent p2pool : each subpool node should be notified of the share difficulty changes so could probably maintain a connection to the parent p2pool to get it (or can it trust other subpool nodes to forward the information and only have a subset of the subpool in charge of broadcasting it?). If having "proxies" is a security problem and mandates a direct parent p2pool connection for each subpool node, is the p2pool protocol scalable enough to support this diff broadcast to thousands of nodes or even more (assuming we want every miner to be able to join p2pool) instead of the current 200+ nodes?
I can see how the share submission could be efficient : it's supposed to be low traffic.

Another problem would be to make sure one subpool node would have to reward other nodes having successfully found low-diff shares while having a valid p2pool share. I'm not familiar enough with Bitcoin to be sure it is doable.

If p2pool can scale to an arbitrary large number of nodes, and still get low latencies for broadcasting diff changes, the first class of problems don't really exist : just make all subpool nodes join both p2pool and the subpool and submit information to both according to the difficulty having been resolved. I suppose it should work, I'm only worried about latencies on large scale p2p nets (raising the target LP interval would help).

For the second problem, sorry no clue.

P2pool tuning guide
Trade BTC for €/$ at bitcoin.de (referral), it's cheaper and faster (acts as escrow and lets the buyers do bank transfers).
Tip: 17bdPfKXXvr7zETKRkPG14dEjfgBt5k2dd
Panda Mouse
Member
**
Offline Offline

Activity: 88


Gliding...


View Profile

Ignore
March 15, 2012, 12:47:08 PM
 #1356


On another note, I'm trying to get my 7970 hashing in the pool, but I can't seem to get it configured correctly with diablominer.
It works fine with cgminer, but I get better hashrates with diablo.
Anyone got this combo (7970+diablominer+P2Pool) working?
I'd love a few pointers in the right direction. Smiley

Try use cgminer and diablominer as a kernel. This is the best solution.

Try: cgminer.exe -u user -p pass -o http://127.0.0.1:9332 --auto-fan --gpu-engine 450-1195 --gpu-memdiff -150 --gpu-powertune 0 --temp-target 75 -q -g 1 -I 8 -k diablo -v 1 -w 256

Panda Mouse
spiccioli
Hero Member
*****
Offline Offline

Activity: 980

nec sine labore


View Profile

Ignore
March 15, 2012, 01:06:45 PM
 #1357

No you shouldn't have to port anything. PyPy should just work with normal Python code. It's simply a different implementation of the standard Python interpreter. No difference in the language it interprets, just how it does it.

For one thing it has a built-in Just-in-time compiler powered by LLVM, which means that instead of the writers of a Python implementation needing to worry about how to create an efficient Just-in-time compiler, the work of people from the LLVM project, who are already experts in constructing such a compiler, can be leveraged.

This made me curious, so I am running p2pool with pypy as we speak.  It seems to be working fine, but I'll watch it for a day or two and see if there are any abnormalities.

twmz,

I've used pypy for a couple of days, it works ok, I don't see a big difference in CPU usage compared to python, but it has a problem: it is not compatible with pygame so you cannot show/generate graphs.

spiccioli
bitpop
Hero Member
*****
Offline Offline

Activity: 966



View Profile WWW

Ignore
March 15, 2012, 01:37:31 PM
 #1358

Where is a list of url resources I can look at such as http://bitpoppool.geekgalaxy.com:9332/fee

Arbitrage opportunities: http://cuarta.info/    Buy Bitcoin: https://buttercoin.com/    Live trades: http://coinslinger.pw/
BTC: 1BitPoPW7jeHYyiEXvngwH8U1Mpk83E26r Any tip is appreciated! | PGP | OpenVPN | KNC Miner
Bitmessage: (bitpop) BM-NC2jK32oc4asYcT274paC17naKKChb1A | Reputation/Free Escrow/Consulting Service
twmz
Hero Member
*****
Offline Offline

Activity: 737



View Profile

Ignore
March 15, 2012, 02:34:31 PM
 #1359

I've used pypy for a couple of days, it works ok, I don't see a big difference in CPU usage compared to python, but it has a problem: it is not compatible with pygame so you cannot show/generate graphs.

Bummer about both.  I don't use the graphs so hadn't noticed that pygame wasn't compatible.  But if it doesn't offer any significant CPU efficiency gain, it's probably irrelevant.

Was I helpful?  1TwmzX1wBxNF2qtAJRhdKmi2WyLZ5VHRs
WoT, GPG
forrestv
Sr. Member
****
Offline Offline

Activity: 467


View Profile

Ignore
March 15, 2012, 02:55:20 PM
 #1360

Where is a list of url resources I can look at such as http://bitpoppool.geekgalaxy.com:9332/fee
https://en.bitcoin.it/wiki/P2Pool#Web_interface

1J1zegkNSbwX4smvTdoHSanUfwvXFeuV23
Pages: 1 ... 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 [68] 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ... 415
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!