Author

Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool - page 266. (Read 2592023 times)

legendary
Activity: 1258
Merit: 1027
The block header "Time" is not in any way considered accurate.
It can be in the past or future of when the block was found.

For those 2 ... I'll look up when I actually saw them:

NB 2014-11-10 16:30:12+00 | bc : 000000000000000002b8cd492e2428d4f95047a591c89975e63a474c8d3b7c21
NB 2014-11-10 16:30:41+00 | bc : 0000000000000000019bf01c784eb86ce651a072f667da0ec1b71e53b2f2c517

So they were actually closer, only 29 seconds apart.
However, you also have the issue of the p2pool hash rate not being all that accurate.

Yep, noted... For the calculation I went with when my node was first notified, 30 seconds apart....

What is the best method to store block time?

Not a better solution for pool hash rate I'm aware of...
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
The block header "Time" is not in any way considered accurate.
It can be in the past or future of when the block was found.

For those 2 ... I'll look up when I actually saw them:

NB 2014-11-10 16:30:12+00 | bc : 000000000000000002b8cd492e2428d4f95047a591c89975e63a474c8d3b7c21
NB 2014-11-10 16:30:41+00 | bc : 0000000000000000019bf01c784eb86ce651a072f667da0ec1b71e53b2f2c517

So they were actually closer, only 29 seconds apart.
However, you also have the issue of the p2pool hash rate not being all that accurate.
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
Its the network propagation time...

Some quick back of the napkin math using blockchains times puts block 329,431's luck at 47,368.42% 180,136.66% (see edit)

To put that in prospective our previous record luck (since I have been recording data) is block 313,299 (July 31) at 12,519.64%, that block took about 9:30...

Block 313,299: http://minefast.coincadence.com/p2pool-stats.php?blockoffset=213

Edit: Ok, here is the math...

Expected seconds to block = Difficulty * 2**32 / hashrate

Current bitcoin difficulty = 39,603,666,252
P2Pool Hashrate at time block found = 3,147.55 TH/s = 3,147,550,000,000,000 H/s

39,603,666,252 * 2**32 / 3,147,550,000,000,000 = 54,040.9 expected seconds to block

Luck % = Expected Time / Actual Time * 100

(54,041 / 30) * 100 = 180,136.66%

I'd love for someone to check the math....

Using the blockchain, you get
Code:
{
"height" : 329431,
"hash" : "0000000000000000019bf01c784eb86ce651a072f667da0ec1b71e53b2f2c517",
"time" : 1415637083,
"main_chain" : true
},

{
"height" : 329430,
"hash" : "000000000000000002b8cd492e2428d4f95047a591c89975e63a474c8d3b7c21",
"time" : 1415636970,
"main_chain" : true
},
329431 found Mon, 10 Nov 2014 16:31:23 GMT
329430 found Mon, 10 Nov 2014 16:29:30 GMT

Just shy of two minutes apart (113 seconds).  Plugging those numbers in you get a luck percentage of 47823.81.
sr. member
Activity: 308
Merit: 250
Decentralize your hashing - p2pool - Norgz Pool
Guys, I have low getblock latency, Matt's relay, plenty of bitcoind peers and a handful of p2pool peers yet I'm seeing almost 50% orphan shares. What could be the issue?

I would try and find some closer peers and add them with -n when starting p2pool...

Only 2 of your peers are under 100ms away, the others are much further:

"218.16.212.194:9333": 335.9999656677246
"115.70.176.17:9333": 14.999866485595703
"178.63.18.3:9333": 312.999963760376
"59.167.237.19:9333": 31.000137329101562
"198.72.112.205:9333": 226.99999809265137
"73.20.171.64:9333": 233.99996757507324
"58.22.92.36:51905": 359.9998950958252
"92.251.43.47:1138": 383.00013542175293
"185.59.16.32:9333": 296.9999313354492
"95.154.200.216:9333": 289.0000343322754
Yeah that's because the server is in Australia. Not many peers to choose from nearby.
legendary
Activity: 1258
Merit: 1027
Guys, I have low getblock latency, Matt's relay, plenty of bitcoind peers and a handful of p2pool peers yet I'm seeing almost 50% orphan shares. What could be the issue?

I would try and find some closer peers and add them with -n when starting p2pool...

Only 2 of your peers are under 100ms away, the others are much further:

"218.16.212.194:9333": 335.9999656677246
"115.70.176.17:9333": 14.999866485595703
"178.63.18.3:9333": 312.999963760376
"59.167.237.19:9333": 31.000137329101562
"198.72.112.205:9333": 226.99999809265137
"73.20.171.64:9333": 233.99996757507324
"58.22.92.36:51905": 359.9998950958252
"92.251.43.47:1138": 383.00013542175293
"185.59.16.32:9333": 296.9999313354492
"95.154.200.216:9333": 289.0000343322754
sr. member
Activity: 308
Merit: 250
Decentralize your hashing - p2pool - Norgz Pool
Guys, I have low getblock latency, Matt's relay, plenty of bitcoind peers and a handful of p2pool peers yet I'm seeing almost 50% orphan shares. What could be the issue?
legendary
Activity: 1258
Merit: 1027
Its the network propagation time...

Some quick back of the napkin math using blockchains times puts block 329,431's luck at 47,368.42% 180,136.66% (see edit)

To put that in prospective our previous record luck (since I have been recording data) is block 313,299 (July 31) at 12,519.64%, that block took about 9:30...

Block 313,299: http://minefast.coincadence.com/p2pool-stats.php?blockoffset=213

Edit: Ok, here is the math...

Expected seconds to block = Difficulty * 2**32 / hashrate

Current bitcoin difficulty = 39,603,666,252
P2Pool Hashrate at time block found = 3,147.55 TH/s = 3,147,550,000,000,000 H/s

39,603,666,252 * 2**32 / 3,147,550,000,000,000 = 54,040.9 expected seconds to block

Luck % = Expected Time / Actual Time * 100

(54,041 / 30) * 100 = 180,136.66%

I'd love for someone to check the math....
legendary
Activity: 1596
Merit: 1000
Sweet, back to back blocks!  Cool

Edit: And only 1 second apart..  Shocked

CoinCadence is showing them as 30s apart. Any idea why is it showing as 0.00% luck?

Lol, they are to close together for my luck calculator to handle.....

Definitely a new P2Pool record...

I'll figure it out manually when I have some time.

Expected time to block ~ 15 hours

Actual time to block varies by what node you look at:
Coin Cadence recoded them 30 seconds apart
BlockChain has them 1:53 apart



Weird, wonder why my local node shows them 1 second apart?

legendary
Activity: 1258
Merit: 1027
Sweet, back to back blocks!  Cool

Edit: And only 1 second apart..  Shocked

CoinCadence is showing them as 30s apart. Any idea why is it showing as 0.00% luck?

Lol, they are to close together for my luck calculator to handle.....

Definitely a new P2Pool record...

I'll figure it out manually when I have some time.

Expected time to block ~ 15 hours

Actual time to block varies by what node you look at:
Coin Cadence recoded them 30 seconds apart
BlockChain has them 1:53 apart

hero member
Activity: 924
Merit: 1000
Watch out for the "Neg-Rep-Dogie-Police".....
Cos it was pure skill......?  Cheesy
legendary
Activity: 1904
Merit: 1007
Sweet, back to back blocks!  Cool

Edit: And only 1 second apart..  Shocked

CoinCadence is showing them as 30s apart. Any idea why is it showing as 0.00% luck?
legendary
Activity: 1596
Merit: 1000
Sweet, back to back blocks!  Cool

Edit: And only 1 second apart..  Shocked
hero member
Activity: 924
Merit: 1000
Watch out for the "Neg-Rep-Dogie-Police".....
Please contact me, I'd like to give you a private node address...
Hilarious.

I'd like to offer him my wife...... Tongue
hero member
Activity: 918
Merit: 1002
Please contact me, I'd like to give you a private node address...
Hilarious.
legendary
Activity: 1258
Merit: 1027
To the 1+ PH/s miner using CoinCadence as a backup



Please contact me, I'd like to give you a private node address...
legendary
Activity: 1361
Merit: 1003
Don`t panic! Organize!
Everyone.
P2Pool payout is direct from block so it need to MATURE b4 you can spend it.
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
So... something strange just happened on my node.  I've been busy with work today and didn't really check on my node.  However, when I just recently looked, I noticed a couple of blocks had been found.  I checked my wallet... and no payout.  Well, that's just odd, since I definitely have shares on the chain.

I head on over to windpath's node to check on my address and see that each block records me as being on the payout list.  I go and check blockchain... yup, my address received the payouts.  So... where are they?

I looked at my client and see the happy green checkbox stating that all is good in the world and that I'm up to date.  I see multiple connections.  Everything looks good.  Right up until I look at the block height reported as the latest.  Um... that block was found over 5 hours ago.

The core client claimed it was up to date and everything showed green, but clearly it wasn't.  I restarted the core client and when it came back up it happily synchronized and wouldn't you know it, I get the notifications of my mining payouts.

Has anyone ever seen this before?
legendary
Activity: 1344
Merit: 1024
Mine at Jonny's Pool
3 Things:
...

Thanks.  My node is not showing 2 blocks found today.  It is only showing 1 of the 3.  My node shows block 328799, but is missing 328777 and 328755.   Would be great if anyone knows how to fix this in the front-end code.  Cheers.

Edit:  Oops...   Congrats Windpath!

It is not actually a bug in the front end code, it is a limitation of only pulling data from the p2pool node.

When a share is DOA it is not included in the share chain, so other p2pool nodes do not know about it.

However, DOA shares that meet the minimum bitcoin difficulty are still submitted to the bitcoin network just to be safe.

Two of these DOA shares found a block today...

This does happen relatively frequently.

The problem is that however you find the "DOA blocks" it ads dependencies to the front end that are not required to run a node, and increases the complexity of running one...

CoinCadence can find these blocks because we scan the bitcoin blockchain for p2pool blocks and store them in a MySQL DB.

There are 3 ways that come to mind to accomplish including these blocks in your front end:

1. Scan the local bitcoin blockchain as mentioned above
2. Pull P2Pool blocks from another source (i.e. https://blockchain.info/blocks/P2Pool contains blocks from the last 3 days, someone did this on the Node Status front end and shared the source here if you want to dig through the thread for it)
3. Monitor the balance on your payout address (will have some false positives when donations occur)

Or you can just visit http://minefast.coincadence.com/p2pool-stats.php Wink



Thank you for the explanation.  I already have the coincadence site bookmarked, so I'm good to go there.  I was just hoping there was an easy way to adjust the code on the local node.  And now I understand why.  Thanks again.
As windpath stated, virtually every front end relies upon the share data on your local node to obtain the information used in the display.  Since DOA/Orphan shares never make it into the chain, nodes don't know about them, and hence can't display the info to the user.  The most reliable way to actually get p2pool blocks is to query the blockchain.info APIs and filter on p2pool.

Code:
http://blockchain.info/blocks/P2Pool?format=json
gets you this:
Code:



{
"blocks" : [
{
"height" : 328799,
"hash" : "00000000000000000c3ad871b33074e0c7764ef49c8b55b3b7adeaa23368a434",
"time" : 1415269319,
"main_chain" : true
},

{
"height" : 328777,
"hash" : "000000000000000014887e877f75f2b2891ae07794d3d9f89b2e18cde0640f7d",
"time" : 1415260433,
"main_chain" : true
},

{
"height" : 328755,
"hash" : "000000000000000014d699b2c406f04bd9ebfb0be4971db7159b2e87e498ad26",
"time" : 1415249780,
"main_chain" : true
},

{
"height" : 328555,
"hash" : "000000000000000011ca6426165101ea682e9432383a10d7877dce5086c9be06",
"time" : 1415131036,
"main_chain" : true
},

{
"height" : 328506,
"hash" : "000000000000000004228856bb5340644e299c85e03ff0dfec46165cdd6fe90f",
"time" : 1415104948,
"main_chain" : true
},

{
"height" : 328402,
"hash" : "00000000000000001ad400d94bcefa5712325b159b9f0c20f83ab74f69d91bf0",
"time" : 1415050207,
"main_chain" : true
},

{
"height" : 328270,
"hash" : "00000000000000000ef9d63a3e7a93bd86aee5d38a050665febcd7d63f7fc6d6",
"time" : 1414979743,
"main_chain" : true
},

{
"height" : 328253,
"hash" : "000000000000000015baf96ed8e738f41c69fbcdd76e73a49b9d1f481890d197",
"time" : 1414973069,
"main_chain" : true
}
]
}
If you want more detailed information about the block, you can then query about each specifically:
Code:
http://blockchain.info/block-index/328799?format=json
gets you the following:
Code:


{
"hash":"0000000000000001a90ea36d3c2b44e5dc9658a63b99916ca77e81be9fde3fb0",
"ver":2,
"prev_block":"0000000000000009c0ea1ce62d6affc55cb84455e51edd7c6cea352563b6fcc3",
"mrkl_root":"2921c6ddb81babe9baf571cee293bc7b6c2d7d36944ae1d039bb8bbd6a0ceca7",
"time":1382908236,
"bits":420150405,
    "fee":6356397,
    "nonce":1565264106,
"n_tx":151,
"size":105883,
"block_index":328799,
"main_chain":true,
"height":266427,
"received_time":1382908240,
"relayed_by":"68.168.104.126",

"tx":[{"ver":1,"size":2954,"inputs":[{"sequence":4294967295,"script":"03bb10040d00456c696769757300526d8118fabe6d6d91f57b13a8f0ef318e7afb8f221514d0571fd65f87d6b62095efc2cf02ea60bc0400000000000000002f7373312f00d037e70e00000000563b0200"}],"time":1382908240,"tx_index":41908536,"vin_sz":1,"hash":"2a4076ba40e87159549f3fbe3a7725f0256326426dd06c056bc2b1fdb7b256b5","vout_sz":83,"relayed_by":"68.168.104.126","out":

.....

.....


 }
Using this information, you can properly render things.
sr. member
Activity: 312
Merit: 250
3 Things:
...

Thanks.  My node is not showing 2 blocks found today.  It is only showing 1 of the 3.  My node shows block 328799, but is missing 328777 and 328755.   Would be great if anyone knows how to fix this in the front-end code.  Cheers.

Edit:  Oops...   Congrats Windpath!

It is not actually a bug in the front end code, it is a limitation of only pulling data from the p2pool node.

When a share is DOA it is not included in the share chain, so other p2pool nodes do not know about it.

However, DOA shares that meet the minimum bitcoin difficulty are still submitted to the bitcoin network just to be safe.

Two of these DOA shares found a block today...

This does happen relatively frequently.

The problem is that however you find the "DOA blocks" it ads dependencies to the front end that are not required to run a node, and increases the complexity of running one...

CoinCadence can find these blocks because we scan the bitcoin blockchain for p2pool blocks and store them in a MySQL DB.

There are 3 ways that come to mind to accomplish including these blocks in your front end:

1. Scan the local bitcoin blockchain as mentioned above
2. Pull P2Pool blocks from another source (i.e. https://blockchain.info/blocks/P2Pool contains blocks from the last 3 days, someone did this on the Node Status front end and shared the source here if you want to dig through the thread for it)
3. Monitor the balance on your payout address (will have some false positives when donations occur)

Or you can just visit http://minefast.coincadence.com/p2pool-stats.php Wink



Thank you for the explanation.  I already have the coincadence site bookmarked, so I'm good to go there.  I was just hoping there was an easy way to adjust the code on the local node.  And now I understand why.  Thanks again.
legendary
Activity: 1258
Merit: 1027
3 Things:
...

Thanks.  My node is not showing 2 blocks found today.  It is only showing 1 of the 3.  My node shows block 328799, but is missing 328777 and 328755.   Would be great if anyone knows how to fix this in the front-end code.  Cheers.

Edit:  Oops...   Congrats Windpath!

It is not actually a bug in the front end code, it is a limitation of only pulling data from the p2pool node.

When a share is DOA it is not included in the share chain, so other p2pool nodes do not know about it.

However, DOA shares that meet the minimum bitcoin difficulty are still submitted to the bitcoin network just to be safe.

Two of these DOA shares found a block today...

This does happen relatively frequently.

The problem is that however you find the "DOA blocks" it ads dependencies to the front end that are not required to run a node, and increases the complexity of running one...

CoinCadence can find these blocks because we scan the bitcoin blockchain for p2pool blocks and store them in a MySQL DB.

There are 3 ways that come to mind to accomplish including these blocks in your front end:

1. Scan the local bitcoin blockchain as mentioned above
2. Pull P2Pool blocks from another source (i.e. https://blockchain.info/blocks/P2Pool contains blocks from the last 3 days, someone did this on the Node Status front end and shared the source here if you want to dig through the thread for it)
3. Monitor the balance on your payout address (will have some false positives when donations occur)

Or you can just visit http://minefast.coincadence.com/p2pool-stats.php Wink

Jump to: