Bitcoin Forum
April 19, 2024, 12:56:45 AM *
News: Latest Bitcoin Core release: 26.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 [783] 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 »
  Print  
Author Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool  (Read 2591613 times)
tubexc
Hero Member
*****
Offline Offline

Activity: 496
Merit: 500


View Profile
August 14, 2017, 09:16:06 PM
 #15641

Duce, that's not a bug in p2pool. It's because Bitcoin Core 14.2 does not support Segwit2x, which was enacted by 80-90% of miners about 2 weeks ago.  All versions of Bitcoin Core are about to become incompatible with the majority of the Bitcoin hashrate, as they do not support Segwit2x. If you continue to use Bitcoin Core, it is expected that you will be on the minority fork of a chainsplit in 2-3 months, when the 2x part of SegWit2x is enabled. I recommend that you either switch to btc1 or lobby Bitcoin Core to change their policy regarding SegWit2x.

P2pool does not currently have any functionality to handle chainsplits gracefully. If you are aware of the SegWit2x issue and wish to continue to mine with Bitcoin Core even though doing so will support a chainsplit, let me know and I will consider adding code to p2pool to make the p2pool sharechain split in parallel to the Bitcoin chain.

So this means I've been syncing Bitcoin Core complete blockchain for months and I'll still be in March 2017
to my external drive for nothing?  Shocked
1713488205
Hero Member
*
Offline Offline

Posts: 1713488205

View Profile Personal Message (Offline)

Ignore
1713488205
Reply with quote  #2

1713488205
Report to moderator
The trust scores you see are subjective; they will change depending on who you have in your trust list.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


View Profile WWW
August 14, 2017, 09:21:03 PM
 #15642

Duce, that's not a bug in p2pool. It's because Bitcoin Core 14.2 does not support Segwit2x, which was enacted by 80-90% of miners about 2 weeks ago.  All versions of Bitcoin Core are about to become incompatible with the majority of the Bitcoin hashrate, as they do not support Segwit2x. If you continue to use Bitcoin Core, it is expected that you will be on the minority fork of a chainsplit in 2-3 months, when the 2x part of SegWit2x is enabled. I recommend that you either switch to btc1 or lobby Bitcoin Core to change their policy regarding SegWit2x.

P2pool does not currently have any functionality to handle chainsplits gracefully. If you are aware of the SegWit2x issue and wish to continue to mine with Bitcoin Core even though doing so will support a chainsplit, let me know and I will consider adding code to p2pool to make the p2pool sharechain split in parallel to the Bitcoin chain.

So this means I've been syncing Bitcoin Core complete blockchain for months and I'll still be in March 2017
to my external drive for nothing?  Shocked

Nope. Jtoomim is misleading. If you want to continue mining Bitcoin stick to Core.
Also even if you choose to mine the 2x altcoin the btc1 client should be able to use the blockchain downloaded by Core.

P2Pool donation button | Bitrated user: veqtrus.
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1006


View Profile WWW
August 14, 2017, 09:49:46 PM
 #15643

veqtrus, signaling on bit 4 terminated after it was locked in. Showing a graph of current voting and saying "hey, there's no SegWit2x version bit signaling right now!" is like saying "hey, there's no BIP65 (OP_CHECKLOCKTIMEVERIFY) signaling going on right now!" Signaling terminates after it's locked in.

Xantus, that seems like a Windows-specific bug in my code. I'll have to look into it later.

Hosting bitcoin miners for $65 to $80/kW/month on clean, cheap hydro power.
http://Toom.im
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


View Profile WWW
August 14, 2017, 10:18:21 PM
 #15644

veqtrus, signaling on bit 4 terminated after it was locked in. Showing a graph of current voting and saying "hey, there's no SegWit2x version bit signaling right now!" is like saying "hey, there's no BIP65 (OP_CHECKLOCKTIMEVERIFY) signaling going on right now!" Signaling terminates after it's locked in.
Do you have any evidence that bit 4 signaling was ever significant on P2Pool?

P2Pool donation button | Bitrated user: veqtrus.
nonnakip
Hero Member
*****
Offline Offline

Activity: 633
Merit: 591



View Profile
August 14, 2017, 10:42:59 PM
 #15645

P2pool does not currently have any functionality to handle chainsplits gracefully. If you are aware of the SegWit2x issue and wish to continue to mine with Bitcoin Core even though doing so will support a chainsplit, let me know and I will consider adding code to p2pool to make the p2pool sharechain split in parallel to the Bitcoin chain.

P2Pool should provide support for separate BitcoinCore or BTC1 or BCH with separate sharechains. Will not sharechain splits occur naturally as Bitcoin forks diverge? Nodes will begin to ban each other for sending work that does not apply to local Bitcoin HEAD?

It seems to me that if P2Pool can be tuned for SegWit or SegWit2x or 8MB blocks then P2Pool miners can happily choose the fork they want.

For me I am interested in a P2Pool to support SegWit. I monitor various work to choose patches for this but hope maybe official P2Pool pull will bring in support.

P2Pool is forking and Bitcoin is forking. I think it is all healthy. But there is a real danger if miners are not able to choose the forks they want.
-ck
Legendary
*
Offline Offline

Activity: 4088
Merit: 1630


Ruu \o/


View Profile WWW
August 14, 2017, 10:43:16 PM
Last edit: August 14, 2017, 10:59:46 PM by -ck
 #15646

veqtrus, what I personally prefer or what you personally prefer is irrelevant. SegWit2x has 92.76% support among miners at the moment, well above the needed threshold of 80% for activation. The only reason SegWit is being enabled is because it is part of SegWit2x. P2pool needs to support the majority blockchain.

Supporting minority blockchains like Bitcoin Core or Bitcoin Cash is desirable if it can be implemented in a way that does not conflict with support for the majority chain. Until that code is written, p2pool should consider minority chains to be unsupported.

You don't like 2x. I don't like SegWit. It doesn't matter. The majority has spoken.

https://coin.dance/blocks/proposals

If you wish to maintain your own no-2x fork of p2pool with a separate share chain, that would be appropriate.
Jtoomim I need to point something out to you. Irrespective of what your and my positions may be on the fork, this forum will be following core's lead since it is a private forum run by Theymos. This means that if and when a 2x fork happens, anything mining on 2x will be considered an altcoin and your p2pool will be relegated to the altcoin pool section. Let me make it clear that I'm not passing my own judgement on the issue here, but simply pointing out how it will be handled on the forum. Feel free to debate it in meta/ (and not with me, I'm not the one deciding here) but I can guarantee you that's how it will play out.

Yes it's going to be very lonely in here...

Developer/maintainer for cgminer, ckpool/ckproxy, and the -ck kernel
2% Fee Solo mining at solo.ckpool.org
-ck
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1006


View Profile WWW
August 14, 2017, 11:09:00 PM
 #15647

P2Pool should provide support for separate BitcoinCore or BTC1 or BCH with separate sharechains. Will not sharechain splits occur naturally as Bitcoin forks diverge?
I agree that this is preferable. Unfortunately, sharechain splits will NOT automatically occur with the current code. This presents the issue where a person mining one one blockchain (e.g. Cash) would get paid by miners on a different blockchain (e.g. no-2x). Fixing this is a medium-difficulty task.

Hosting bitcoin miners for $65 to $80/kW/month on clean, cheap hydro power.
http://Toom.im
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1006


View Profile WWW
August 14, 2017, 11:11:34 PM
 #15648

Jtoomim I need to point something out to you. Irrespective of what your and my positions may be on the fork, this forum will be following core's lead since it is a private forum run by Theymos. This means that if and when a 2x fork happens, anything mining on 2x will be considered an altcoin and your p2pool will be relegated to the altcoin pool section. Let me make it clear that I'm not passing my own judgement on the issue here, but simply pointing out how it will be handled on the forum. Feel free to debate it in meta/ (and not with me, I'm not the one deciding here) but I can guarantee you that's how it will play out.

Yes it's going to be very lonely in here...
Noted.

Hosting bitcoin miners for $65 to $80/kW/month on clean, cheap hydro power.
http://Toom.im
nonnakip
Hero Member
*****
Offline Offline

Activity: 633
Merit: 591



View Profile
August 14, 2017, 11:18:26 PM
 #15649

P2Pool should provide support for separate BitcoinCore or BTC1 or BCH with separate sharechains. Will not sharechain splits occur naturally as Bitcoin forks diverge?
I agree that this is preferable. Unfortunately, sharechain splits will NOT automatically occur with the current code. This presents the issue where a person mining one one blockchain (e.g. Cash) would get paid by miners on a different blockchain (e.g. no-2x). Fixing this is a medium-difficulty task.

BCH already exists. How could a BCH miner get paid for P2Pool work now? The BCH blocks do not fit BTC head. Only if the miner is mining BCH transactions on the BTC head. And although P2Pool should avoid that I think it is not a real issue.
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1006


View Profile WWW
August 15, 2017, 12:49:30 AM
 #15650

P2pool does not care where the share/block fits in the Bitcoin2x/BitcoinCash/BitcoinNo2x blockchains. It does not care if the block has a valid parent at all. It probably should, but it currently does not.

P2pool also does not care if the transactions included in the block are valid or not. Doing that verification requires that p2pool have access to the blockchain and/or the UTXO set, which p2pool does not itself have.

The solution I have in mind is to have p2pool query bitcoind with the getblockheader RPC for the parentblock for all shares, and if that share's parentblock is not known by our bitcoind, then we reject the share. This shouldn't be super-difficult to implement, but it will take more time than I have right now. If anyone else has some time to work on this, I'd be happy to give some guidance.

Hosting bitcoin miners for $65 to $80/kW/month on clean, cheap hydro power.
http://Toom.im
frodocooper
Sr. Member
****
Offline Offline

Activity: 351
Merit: 410


View Profile
August 15, 2017, 06:27:41 AM
Last edit: August 15, 2017, 09:37:18 AM by frodocooper
 #15651

If you are aware of the SegWit2x issue and wish to continue to mine with Bitcoin Core even though doing so will support a chainsplit, let me know and I will consider adding code to p2pool to make the p2pool sharechain split in parallel to the Bitcoin chain.

P2Pool should provide support for separate BitcoinCore or BTC1 or BCH with separate sharechains...

...

P2Pool is forking and Bitcoin is forking. I think it is all healthy. But there is a real danger if miners are not able to choose the forks they want.

I intend to continue mining with Bitcoin Core, and I agree with nonnakip.

(Edited to remove unnecessary comments.)
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


View Profile WWW
August 15, 2017, 07:17:50 AM
 #15652

P2pool does not care where the share/block fits in the Bitcoin2x/BitcoinCash/BitcoinNo2x blockchains. It does not care if the block has a valid parent at all. It probably should, but it currently does not.
Your fork works like that because you removed the "Block-stale detected" punishment.
Additionally for quicker resolution of what the valid last block header is I should cherry-pick PR#334 into segwit.

P2Pool donation button | Bitrated user: veqtrus.
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1006


View Profile WWW
August 15, 2017, 08:00:23 AM
Last edit: August 15, 2017, 08:23:10 AM by jtoomim
 #15653

P2pool does not care where the share/block fits in the Bitcoin2x/BitcoinCash/BitcoinNo2x blockchains. It does not care if the block has a valid parent at all. It probably should, but it currently does not.
Your fork works like that because you removed the "Block-stale detected" punishment.
Additionally for quicker resolution of what the valid last block header is I should cherry-pick PR#334 into segwit.

Alas, block-stale punishment is not nearly enough. Here's the code for choosing which sharechain tip to prioritize the highest:

Code:
       decorated_heads = sorted(((
            self.verified.get_work(self.verified.get_nth_parent_hash(h, min(5, self.verified.get_height(h)))),
            #self.items[h].peer_addr is None,
            -self.items[h].should_punish_reason(previous_block, bits, self, known_txs)[0],
            -self.items[h].time_seen,
        ), h) for h in self.verified.tails.get(best_tail, []))
        best_head_score, best = decorated_heads[-1] if decorated_heads else (None, None)

P2pool will choose a share to work on based on the work done as of the 5th-grandparent of the shares first, and punishment is only the 2nd priority in case of a tie (i.e. shares that both have the same 5th grandparent). So if, for example, there is a Segwit2x sharechain that has 1.5x the hashrate as a Bitcoin Cash sharechain, and if a p2pool node sees both, it will choose the Segwit2x chain even if the bitcoind is Bitcoin Cash. This means that there will not be two completely separate sharechains, and that sharechain forks will generally be "resolved" (albeit incorrectly) in 5 shares or less. All Bitcoin forks will fight over the same share chain. But wait, there's more just below that:

Code:
       if best is not None:
            best_share = self.items[best]
            punish, punish_reason = best_share.should_punish_reason(previous_block, bits, self, known_txs)
            if punish > 0:
                print 'Punishing share for %r! Jumping from %s to %s!' % (punish_reason, format_hash(best), format_hash(best_share.previous_hash))
                best = best_share.previous_hash

That's a second check for punishment. If the share chosen by the first block of code is getting punished, then p2pool will just use its parent. This would mean that our hypothetical Bitcoin Cash miner would be mining a share based on the Segwit2x chain, but he would use the second-to-last share in that chain. This would make his shares have a disproportionately high chance of being orphaned, but not a 100% chance. If he and other BCH miners mine two shares in quick succession, they stand a reasonable chance of being used by Segwit2x miners.

Malicious miners could improve their chances by using the minimum share difficulty instead of the default share difficulty to further increase the probability of mining multiple shares in quick succession. A Bitcoin Cash proponent with a significant minority of hashrate could use this mechanism to preferentially orphan many or most shares submitted by Segwit2x or SegwitNo2x miners. On one of my nodes right now, the default share difficulty is about 30x higher than the consensus-enforced minimum share difficulty, so this attack would actually be quite feasible and effective even with only around 1/30th of the total p2pool hashrate.

In other words, the block-stale detection is not a solution to the forking blockchain problem. It is relevant to p2pool's behavior in forking situations, but it's mostly a weirding factor, and can be exploited by malicious, selfish, or politically motivated entities.

Hosting bitcoin miners for $65 to $80/kW/month on clean, cheap hydro power.
http://Toom.im
tubexc
Hero Member
*****
Offline Offline

Activity: 496
Merit: 500


View Profile
August 15, 2017, 09:03:16 AM
 #15654

All this indicisions around p2pool bother me.
What blockshain?
What bitcoin client?
Who started this p2pool mess doesn't have time to
finish it!
And we are loosing time because the next bitcoin halving is around the corner and p2pool is not full throtle yet...
frodocooper
Sr. Member
****
Offline Offline

Activity: 351
Merit: 410


View Profile
August 15, 2017, 09:33:09 AM
Last edit: August 15, 2017, 09:44:48 AM by frodocooper
 #15655

All this indicisions around p2pool bother me.
What blockshain?
What bitcoin client?

If you don't know what a blockchain and a Bitcoin client is, then I suggest you take a good, long, hard look at whether you ought to be mining in the first place.

Who started this p2pool mess doesn't have time to
finish it!

And what have you done for P2Pool so far, besides running your mouth? forrestv, veqtrus, and jtoomim have done more for P2Pool than the rest of us combined, and on a voluntary basis too. Please show some respect.

And we are loosing time because the next bitcoin halving is around the corner and p2pool is not full throtle yet...

The next reward halving is projected to be on May 17, 2020. That's 3 years from now. Not exactly what most of us here would call "around the corner."
nonnakip
Hero Member
*****
Offline Offline

Activity: 633
Merit: 591



View Profile
August 15, 2017, 10:18:32 AM
 #15656

The solution I have in mind is to have p2pool query bitcoind with the getblockheader RPC for the parentblock for all shares, and if that share's parentblock is not known by our bitcoind, then we reject the share.

I think that is a reasonable and simple approach.

I also think we do not want P2Pool nodes operating on different forks to talk to each other. If a node is sending shares that do not apply to my fork then I want to drop the connection. Shares of stale blocks can keep connection with punishment. A stale block is different than a foreign block.

If P2Pool nodes are dropping forked connections I think the P2Pool networks will align themselves automatically realtive quick.

If anyone else has some time to work on this, I'd be happy to give some guidance.

I will look into this as I have staked interest. If you want to send or post guidance it would certainly help. I also have little time available.
chasaamm
Newbie
*
Offline Offline

Activity: 19
Merit: 0


View Profile
August 15, 2017, 01:17:52 PM
 #15657

All this indicisions around p2pool bother me.
What blockshain?
What bitcoin client?

If you don't know what a blockchain and a Bitcoin client is, then I suggest you take a good, long, hard look at whether you ought to be mining in the first place.

Who started this p2pool mess doesn't have time to
finish it!

And what have you done for P2Pool so far, besides running your mouth? forrestv, veqtrus, and jtoomim have done more for P2Pool than the rest of us combined, and on a voluntary basis too. Please show some respect.

And we are loosing time because the next bitcoin halving is around the corner and p2pool is not full throtle yet...

The next reward halving is projected to be on May 17, 2020. That's 3 years from now. Not exactly what most of us here would call "around the corner."

frodocooper  lick boots number one WINNER
A lot of people stopped mining here a long time ago because there is no non-linux OS support.
Now people can not express their opinion and shake things up a bit because frodocooper do not let.
Who receives percentage for running the p2pool code (forrestv) is not called voluntary.
Show you some respect for a member with many posts helping newbies with his problems in this forum.
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


View Profile WWW
August 15, 2017, 01:24:39 PM
 #15658

A lot of people stopped mining here a long time ago because there is no non-linux OS support.
I have been running p2pool on windows only and had no problem.

P2Pool donation button | Bitrated user: veqtrus.
Xantus
Newbie
*
Offline Offline

Activity: 43
Merit: 0


View Profile
August 15, 2017, 01:49:21 PM
 #15659

A lot of people stopped mining here a long time ago because there is no non-linux OS support.
I have been running p2pool on windows only and had no problem.

me too, usind p2pool_win32_V16. on Windows 10. But Old version, Segwit2x is an problem for me up to now.

p.s. found Block  Grin
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


View Profile WWW
August 15, 2017, 02:13:06 PM
 #15660

me too, usind p2pool_win32_V16. on Windows 10. But Old version, Segwit2x is an problem for me up to now.
You misunderstood, I have been running from source on windows and made my own exe using py2exe.

P2Pool donation button | Bitrated user: veqtrus.
Pages: « 1 ... 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 [783] 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 »
  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!