Author

Topic: [OLD] Eligius: ASIC, no registration, no fee CPPSRB BTC + 105% PPS NMC, 877 # - page 145. (Read 458499 times)

donator
Activity: 2058
Merit: 1007
Poor impulse control.
The bad news, this looks to be a global scalability problem. Maybe we need smaller and more blocks, but that's very unlikely to change, and has its own problems. Or a tiered network with small nodes not verifying everything -- again with problems.
Before starting to cry, I would actually prefer to see some numbers - i.e. what was the percentage of orphaned blocks 3 months ago, comparing to what it has been for the last few weeks.

Great idea.

Eligius' block history is at: http://eligius.st/~artefact2/blocks/

The 'Status' column shows whether or not a block was orphaned. See if there's been an increase here, then check other pools, and let us know Smiley
legendary
Activity: 2058
Merit: 1416
aka tonikt
The bad news, this looks to be a global scalability problem. Maybe we need smaller and more blocks, but that's very unlikely to change, and has its own problems. Or a tiered network with small nodes not verifying everything -- again with problems.
Before starting to cry, I would actually prefer to see some numbers - i.e. what was the percentage of orphaned blocks 3 months ago, comparing to what it has been for the last few weeks.
full member
Activity: 187
Merit: 100
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?
The block itself contains the full data for each transaction. So if we fill the block to the max, that's a 1 MB block that each node needs to download (from another node, likely not a server with a big fat upload pipe) before it even starts validating it. Then once it's downloaded, it's up to 20,000 ECDSA cryptographic signature verifications before it decides the block is valid and begins relaying/uploading it to other nodes.
Oh ok - now it does make sense. Smiley

Yes makes sense. Our own mined blocks are slow too and someone may jump us.

The bad news, this looks to be a global scalability problem. Maybe we need smaller and more blocks, but that's very unlikely to change, and has its own problems. Or a tiered network with small nodes not verifying everything -- again with problems.
legendary
Activity: 2058
Merit: 1416
aka tonikt
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?
The block itself contains the full data for each transaction. So if we fill the block to the max, that's a 1 MB block that each node needs to download (from another node, likely not a server with a big fat upload pipe) before it even starts validating it. Then once it's downloaded, it's up to 20,000 ECDSA cryptographic signature verifications before it decides the block is valid and begins relaying/uploading it to other nodes.
Oh ok - now it does make sense. Smiley
legendary
Activity: 2576
Merit: 1186
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?
The block itself contains the full data for each transaction. So if we fill the block to the max, that's a 1 MB block that each node needs to download (from another node, likely not a server with a big fat upload pipe) before it even starts validating it. Then once it's downloaded, it's up to 20,000 ECDSA cryptographic signature verifications before it decides the block is valid and begins relaying/uploading it to other nodes.
legendary
Activity: 2058
Merit: 1416
aka tonikt
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?

I believe that is true and considering the size of deepbit its likely why he also decided to limit his block TX long ago and why they never suffered performance issues.
But it wouldn't make any sense.
It would mean that if I restart my client after one week being offline it executes getdata not only for the thousand of blocks, but also (in parallel) for every tx that is inside these blocks...
I don't believe bitcoin devs would program it like this - bitcoin is not such a bad piece of code. Smiley
hero member
Activity: 504
Merit: 502
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?

I believe that is true and considering the size of deepbit its likely why he also decided to limit his block TX long ago and why they never suffered performance issues.
legendary
Activity: 2058
Merit: 1416
aka tonikt
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
If I understand Luke, he said that when a pool mines a new block and announces it to the network, the block does't get relayed by any node until the node receives all the transactions that are listed inside the block.
Is this really true?
I would have thought that for my node receiving a transaction inside a block is the same as receiving it outside a block. Moreover, if there is a tx inside a block there shouldn't be anything pending for it - so why would it wait?
full member
Activity: 187
Merit: 100
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.

I am not sure I can follow. I understand how large blocks propagate slower through the network, and how this causes higher orphan rate. But how does not accepting *TXs* into your own to be mined blocks improve this scenario, as long as other pools still mine them?

-coinft
hero member
Activity: 504
Merit: 502
Thats exactly the counter problem that will start to happen unless this gets solved somehow.

If every pool start to limit their TX's, eventually the whole network will start to simply crawl and take ages to process transactions.

Sadly I do understand why you need to do this, this is seriously fking over the network and its getting worse every day starting slowly a month ago.
legendary
Activity: 2576
Merit: 1186
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
They propagate the network much slower. First, because the larger amount of data takes longer to upload. Then more, because Bitcoin nodes don't relay it until they've verified every transaction in the block.
rjk
sr. member
Activity: 448
Merit: 250
1ngldh
Is there any specific reason that a large number of transactions would specifically cause orphans? Is it just because they are slower to be propagated to the network, or is it just too taxing to current pool softwares and algorithms to deal with?
legendary
Activity: 2576
Merit: 1186
FWIW, all pools have been experiencing higher stales and orphaned blocks due to the excessive transaction volume lately resulting from SatoshiDice abusing the blockchain (there are much cleaner ways to do the same thing). After our second set of 3 orphans in a row, I'm a bit on the annoyed end. For now, I am blocking transactions to 1dice* addresses and limiting our blocks to 32 transactions until we've caught up on the extra credit or at least have a viable alternative solution. I really hate to do this, as Eligius has traditionally been one of the most accepting mining pools, so any suggestions on other possibilities would be most welcome.

While SatoshiDice does force its users/victims to pay a transaction fee, those fees despite their high volume still don't add up to anywhere near the 300+ BTC we've lost by mining their transactions - so it's not like we can just "make up for" the orphans by throwing transaction fees into the pot.

Note that this is really a global Bitcoin scalability problem, but wasn't an immediate issue because up until recently the transaction volume growth was accompanied by an equivalent influx of more people using Bitcoin. SatoshiDice's abuse breaks that balance, so the developer and mining communities need to find a solution faster than previously anticipated.
full member
Activity: 210
Merit: 100
I didn't experience any issues on this side.
legendary
Activity: 2576
Merit: 1186
FWIW, Eligius was just hit with 6gbit/sec DDoS for about 15 minutes before they gave up and moved on. No services were affected at any point as far as I can tell. Wink
member
Activity: 60
Merit: 10
Hey,

first of all, I want to thank you for the good work and quick temporary solution that worked. Thanks!

Next thing is: the stats are broken. I can see some blocks were mined (the graph says so and my reward added from estimate to unpaid several times during the night), but they're not visible in Artefact2's block stats -- it still says we're mining one huge 65hr block...

The hash rate and estimate/unpaid reward seems fine. List of contributors seems fine. That leaves only the block stats.

Keep the good work!
legendary
Activity: 1223
Merit: 1006
Thanks, wizkid057. How can I throw a small tip your way for keeping the pool going?

Guess I should make a signature Smiley

12LPeeQmrUKbMKcamxLSaRqwBHKoBSwJz3

Thanks! Smiley
newbie
Activity: 16
Merit: 0
Ok, All PPS payments for mining on my temporary pool have been sent. (10 sendmany transactions).

I went ahead and paid 102.5% PPS, as a thanks for continuing to mine. Smiley
[snip]

Thanks, wizkid057. How can I throw a small tip your way for keeping the pool going?
legendary
Activity: 1223
Merit: 1006
Ok, All PPS payments for mining on my temporary pool have been sent. (10 sendmany transactions).

I went ahead and paid 102.5% PPS, as a thanks for continuing to mine. Smiley

Here are the transaction id's (smallest to largest):

8f87057c6200dbae359f94f1f1b5d356ecfc5351847f177d4d1bc5d91a1a76c1
fbd8f4f2809b0f9d0522b5080c479fbe8776bea072777b0a9b20a6f24b92dbbc
614530090b5b539b5b7ee64a44a96c09812c6a8bde8c1d6ddbb35816f997522d
9d27dbbf9f00eaba0e41899722775f961b77ac36de29887a7fd4fb106c55714c
2addb093a67ec0b2fc0186a12114b989f7f508226c1e45ad8454fb1dbcde9f43
0c9cd25a745e81b5052182f2148a9da52f92c34fe6ad7e71325e7b7209ed2ee9
ca508bd10ff2e7635851e725062b3bfcb209b90ae4da3b20b286d78ac51c2c15
43e2d6058f199c148f2bfff4fea6723f6be98585793af1a7c2ea7a7d3bab996d
91ffcbc4228ceb846784b85940ccabe0942d9e619fef5c908c84b9772559bd89
39e209999dbf36ec83ea5153abbe52d8013b9fde445e1137b05ef81e8454c332

Since I paid every single address, even people who submitted only one valid share, there should be no issues.  
There were a handful of shares (really, not many) submitted with invalid usernames (not bitcoin addresses) which can not be paid, obviously.  This is true of normal Eligius mining, also, however.
However, if you have any concerns, try to catch me in #eligius on freenode.

Also, just to note, even though it should be pretty obvious, these payments and shares and all mining that went towards my temporary pool will not show up on the artefact2 stats on the Eligius website, since they weren't mined on the normal Eligius server.  So, don't be alarmed.

Happy mining!

-wk

EDIT: Clarifications
donator
Activity: 980
Merit: 1000
Stats are back but it seems like I mined a whole day for naught. Is that so?

if you were referring to yesterday, see my posts above. it wasn't for nothing.

-wk

Yep, Luke replied above you. I didn't ACK it to keep the thread clean.

Cheers to both.
Jump to: