Author

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

kjj
legendary
Activity: 1302
Merit: 1026
We have a long list of blocks in the "Strange Blocks" list on blockchain: https://blockchain.info/strange-transactions.  That list goes back to late May, and a cursory glance suggests every one of p2pool's blocks appears there.

It looks like one of us isn't getting paid  Cry

Since this is always at the bottom of each transaction list:

Code:
1Kz5QaUPDtKrj5SqW5tFkn7WZh8LmQaQi4 0.0123456789 BTC
Unable to decode input address 0 BTC

Does that mean 1Kz5Q is the one not getting paid?  Are those coins redistributed among the miners (I'm not sure they could be), or just lost?

Should we worry about this at all?

No, p2pool shares are regular bitcoin blocks.  The generation transaction includes a bogus transaction to keep track of internal state (actually, a hash of the share chain).  Incidentally, the current protocol actually had a change to that bogus transaction to make it more network friendly.
newbie
Activity: 18
Merit: 0
We have a long list of blocks in the "Strange Blocks" list on blockchain: https://blockchain.info/strange-transactions.  That list goes back to late May, and a cursory glance suggests every one of p2pool's blocks appears there.

It looks like one of us isn't getting paid  Cry

Since this is always at the bottom of each transaction list:

Code:
1Kz5QaUPDtKrj5SqW5tFkn7WZh8LmQaQi4 0.0123456789 BTC
Unable to decode input address 0 BTC

Does that mean 1Kz5Q is the one not getting paid?  Are those coins redistributed among the miners (I'm not sure they could be), or just lost?

Should we worry about this at all?
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
When is this round going to end Sad

Seeing as my nodes have had very bad luck the last couple of days (2.2hrs to share, 6 shares in the last 48 hours!) and my payout has dropped to under half what it was a day ago, I'm predicting a bunch of blocks in short succession!
Future mining is unaffected by past mining.
Thinking otherwise is called the Gambler's Falacy.
I added a BFL SC Single on to p2pool today ... I wonder if that will help Smiley

(P.S. I run /+64 but I don't put up the true share difficulty)
hero member
Activity: 924
Merit: 1000
Watch out for the "Neg-Rep-Dogie-Police".....
But one can always hope  Wink

Hope is useless, so relaxen und watschen der blinkenlichten.


 Cheesy Cheesy Cheesy Cheesy Cheesy
full member
Activity: 164
Merit: 100
But one can always hope  Wink

Hope is useless, so relaxen und watschen der blinkenlichten.
sr. member
Activity: 441
Merit: 250
Seeing as my nodes have had very bad luck the last couple of days (2.2hrs to share, 6 shares in the last 48 hours!) and my payout has dropped to under half what it was a day ago, I'm predicting a bunch of blocks in short succession!

That's the thing with randomness. You never know. Bad luck will follow bad luck precisely as often as good luck will.

But one can always hope  Wink
sr. member
Activity: 448
Merit: 250
When is this round going to end Sad

Seeing as my nodes have had very bad luck the last couple of days (2.2hrs to share, 6 shares in the last 48 hours!) and my payout has dropped to under half what it was a day ago, I'm predicting a bunch of blocks in short succession!
sr. member
Activity: 447
Merit: 250
When is this round going to end Sad
sr. member
Activity: 476
Merit: 250

    Now consider the rule defined by those 3 lines I was talking about. It states "If a share (S) is based on stale block, mine on its parent (P)." (That's what "Punishing for block-stale / Jumping to ..." log message is about.) If a miner (either intentionally or because of slow bitcoind) disrespects this rule, not only he loses nothing, but may also eventually profit from it! Really, his share A (a child of block-stale share S, which is punished by the rest of the network) is 1 share ahead of "proper" miner's share B, which is P's child. As a result, A will have priority over B even if B is found earlier!

    Should I report a bug on GitHub?

    You should. But read below why I think it's not high priority.

    2 cases in your example:
    • local bitcoind lagging: miner is punished most of the time so it is prevented to benefit from worthless work as intended and is motivated to upgrade his/her configuration
    • node trying to make his share more resilient by avoiding to build on the parent share

    In the "more resilient attack" the node can only attack after one out of 20 shares (30s share interval with 10mn block interval) if and only if it is from a slow node producing a stale share

    A node does not have to be slow to produce a block-stale share. Any non-block-stale share will become block-stale after a new block.

    Quote
    (assuming we don't have nodes more than 30-60s behind the Bitcoin network able to make 2 successive stale shares).

    With high-hashrate nodes it gets even worse because any node doesn't punish own block-stales:
    [/list]
    Code:
        if (self.header['previous_block'], self.header['bits']) != (previous_block, bits) and self.header_hash != previous_block and self.peer_addr is not None:
            return True, 'Block-stale detected! %x < %x' % (self.header['previous_block'], previous_block)
      So a massive node doesn't even have to be slow to orphan other's shares.

    Quote
    • if another node finds a share before him he will automatically switch to it as building on either fork doesn't give him any benefit anymore
    With 10% global stales, which corresponds to about 3s effective latency on average, he has those 3s or even more to send his share to other peers before he receives and processes that other's share. Once sent to any, even just 1 peer, his share will definitely orphan the "proper" one.

    Quote
    • if he finds a share before the rest of the network, he won't have gained anything (he has as much chances of that happening when mining on the parent share)
    • the only gain is when he finds a share that collides with another : there he will be sure to win instead of having ~50% chances
    .

    So someone trying this attack will get benefit for less than 5% (1 in 20 at most, probably far less) of his expected DOA+Orphan rate (which seems to be ~10% since we switched to a 30s share interval) and this benefit will be ~50%.

    If he has high latency, both your estimates are wrong. Someone may have even 20% stales and sure to win instead of having ~10% chances. In this case, his expected benefit is...

    Quote
    So in the most pathological case where 100% of the network produces stale shares (built with the previous block), the expected benefit is only 50% of 10% of 5% : 0.25%.

    90% of 20% of 5% = 0.9%

    Quote
    Most nodes probably don't produce stale shares, so this is more likely a ~0.1% advantage.

    As I stated before, every node produces block-stale shares, because a good share becomes a block-stale after block switch.

    Quote
    Now what is the attacker losing? If you don't punish slow nodes you are hurting yourself as much as the rest of the network by validating wasted work. The exception is the slow node which is grateful to be paid for worthless work.
    For every gained share you are validating one worthless share. If everyone did this, everyone would lose money to worthless shares producers instead of gaining 0.1%. Now it's too late for me to try to estimate how much is lost but disabling the protection might not be a good idea, especially if many are doing it. It probably would end in a "tragedy of the commons": you can gain a bit by doing it, but when everyone does it, everyone loses.

    Again, most punished shares are good shares turned block-stale by a new block. That means with hash < block target, they would have been a valid block at the time they were found.

    Quote
    Allowing worthless work allows it to rise without limits: if there are very slow bitcoinds with very high hashrate they could make 2 or more consecutive stale shares a frequent occasion and rise the worthless hashrate to 10 or more percent of the whole pool.

    One solution might be to ignore stale shares when comparing the different sharechain forks. People disabling the protection would get no benefit at all.

    Exactly! Jumping to a fork with same height but less block-stales is right. Jumping to the parent is nonsense.

    Disabling this jumping is essential not only for slow nodes. Look, while a new bitcoin block is propagated by the network, some p2pool nodes receive it earlier, some later. At this time, it's better for anyone to be safe and work on the last share instead of its parent.

    Quote
    In the meanwhile, advocating to remove the protection is an attack on P2Pool, please stop doing it unless you want to participate in your own reduced income.

    I haven't removed the punishing itself but only disabled jumping to parent share. When comparing two forks, it's still active.
    And people here complain that they have their good shares orphaned all the time by this mechanism. Why should they have reduced income because someone else (with much higher hashrate) doesn't care about tuning his node?
    sr. member
    Activity: 454
    Merit: 252
    Miner01/1500+1
    I don't understand difference between / and +
    How do I use a diff of 4

    Miner01/1500+1

    right now that doesn't do anything
    /1500 means only return difficulty >1500 pseudoshares to the p2pool network. Right now the default is 8480.
    +1 means report all difficulty 1 shares to your miner software

    so both of those will end up being the default

    if you want your miner to use a diff of 4, try

    Miner01+4
    legendary
    Activity: 2912
    Merit: 1060
    Miner01/1500+1
    I don't understand difference between / and +
    How do I use a diff of 4
    sr. member
    Activity: 397
    Merit: 500
    Also, let me understand: you have cgminer running separately on a laptop with USB connection from FPGA controller connected to the laptop? openWRT controller still monitors temperature and controls fan speed?

    I unpluged the USB from openWRT, this is now off. openWRT get the power from that USB cable. Then i have removed the Jumper J1, that is the jumper to provide power to the openWRT.

    Now I plugged the USB cable from the avalon into the laptop und run the last cgminer on it. cgminer controlls the temps, frequency, fans etc.

    Does this configuration give you the full 80Gh/s, or do you still lose ~10% of the hashrate as I have experienced?
    avalon via laptop = ~80GH/s stable (+32)
    avalon openWRT = ~80GH/s not stable (4x restarts needed today) (+16,+32 still crashes, testing +64 atm)

    But you can see it at my public pool in my sig.
    legendary
    Activity: 3430
    Merit: 3080
    Also, let me understand: you have cgminer running separately on a laptop with USB connection from FPGA controller connected to the laptop? openWRT controller still monitors temperature and controls fan speed?

    I unpluged the USB from openWRT, this is now off. openWRT get the power from that USB cable. Then i have removed the Jumper J1, that is the jumper to provide power to the openWRT.

    Now I plugged the USB cable from the avalon into the laptop und run the last cgminer on it. cgminer controlls the temps, frequency, fans etc.

    Does this configuration give you the full 80Gh/s, or do you still lose ~10% of the hashrate as I have experienced?
    sr. member
    Activity: 397
    Merit: 500
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?
    yes, cgminer is using cpu > 75% on the embedded openWRT device. That could be the problem. It looks like the device got problems when running at the limit.

    I have another avalon running from a laptop which is stable till now. I'm trying +16 for diff atm on the other avalon, I don't know if that makes any difference.

    I see. I've been using +64 the entire time, I would have thought that would decrease load on the openWRT board's CPU? Also, let me understand: you have cgminer running separately on a laptop with USB connection from FPGA controller connected to the laptop? openWRT controller still monitors temperature and controls fan speed?

    I unpluged the USB from openWRT, this is now off. openWRT get the power from that USB cable. Then i have removed the Jumper J1, that is the jumper to provide power to the openWRT.

    Now I plugged the USB cable from the avalon into the laptop und run the last cgminer on it. cgminer controlls the temps, frequency, fans etc.
    legendary
    Activity: 3430
    Merit: 3080
    I use ckolivas' latest firmware build on a batch 2 (reaching ~347MHz on average).

    Early on I had one long stream of HW errors without any work done that was solved by a reboot (a simple cgminer restart couldn't solve it).
    So I modified cgminer-monitor to reboot instead of restarting cgminer.

    The Avalon reboots sometimes but I can't say much as I received it recently: it doesn't seem to reboot often (I've yet to monitor it correctly).

    Yes, I'm using ckolivas 20130703 firmware also. Having had the avalon unit for some time (since April Cheesy), I cannot say that any configuration I have used in that time has been as unstable as this. I once had 4 weeks of uptime  Tongue
    legendary
    Activity: 3430
    Merit: 3080
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?
    yes, cgminer is using cpu > 75% on the embedded openWRT device. That could be the problem. It looks like the device got problems when running at the limit.

    I have another avalon running from a laptop which is stable till now. I'm trying +16 for diff atm on the other avalon, I don't know if that makes any difference.

    I see. I've been using +64 the entire time, I would have thought that would decrease load on the openWRT board's CPU? Also, let me understand: you have cgminer running separately on a laptop with USB connection from FPGA controller connected to the laptop? openWRT controller still monitors temperature and controls fan speed?
    sr. member
    Activity: 397
    Merit: 500
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?

    I use ckolivas' latest firmware build on a batch 2 (reaching ~347MHz on average).

    Early on I had one long stream of HW errors without any work done that was solved by a reboot (a simple cgminer restart couldn't solve it).
    So I modified cgminer-monitor to reboot instead of restarting cgminer.

    The Avalon reboots sometimes but I can't say much as I received it recently: it doesn't seem to reboot often (I've yet to monitor it correctly).
    A reboot solves it? I had to turn off and on the avalon. Reboot is faster, I will try that.
    hero member
    Activity: 896
    Merit: 1000
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?

    I use ckolivas' latest firmware build on a batch 2 (reaching ~347MHz on average).

    Early on I had one long stream of HW errors without any work done that was solved by a reboot (a simple cgminer restart couldn't solve it).
    So I modified cgminer-monitor to reboot instead of restarting cgminer.

    The Avalon reboots sometimes but I can't say much as I received it recently: it doesn't seem to reboot often (I've yet to monitor it correctly).
    sr. member
    Activity: 397
    Merit: 500
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?
    yes, cgminer is using cpu > 75% on the embedded openWRT device. That could be the problem. It looks like the device got problems when running at the limit.

    I have another avalon running from a laptop which is stable till now. I'm trying +16 for diff atm on the other avalon, I don't know if that makes any difference.
    legendary
    Activity: 3430
    Merit: 3080
    Unfortunately, there seems to be a stability issue of some kind with Avalon miners and P2Pool. I've had to reboot the Avalon unit I'm using twice already today, cgminer seems to drop out totally. Can anyone confirm a similar problem?
    Jump to: