Bitcoin Forum
August 21, 2018, 01:02:37 AM *
News: Latest stable version of Bitcoin Core: 0.16.2  [Torrent].
 
   Home   Help Search Donate Login Register  
Pages: « 1 ... 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 815 »
  Print  
Author Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool  (Read 2564860 times)
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1001


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

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
BOUNTY PORTALS
BLOG
WHERE BOUNTY MANAGEMENT
MEETS AUTOMATION
SIGNATURE CAMPAIGNS
TWITTER
FACEBOOK
MEDIA CAMPAIGNS
AND MORE!
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1534813357
Hero Member
*
Offline Offline

Posts: 1534813357

View Profile Personal Message (Offline)

Ignore
1534813357
Reply with quote  #2

1534813357
Report to moderator
veqtrus
Member
**
Offline Offline

Activity: 107
Merit: 10


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

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: 593
Merit: 542



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

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
Moderator
Legendary
*
Offline Offline

Activity: 2618
Merit: 1123


Ruu \o/


View Profile WWW
August 14, 2017, 10:43:16 PM
 #15664

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 and ckpool/ckproxy.
ZERO FEE Pooled mining at ckpool.org, 1% Fee Solo mining at solo.ckpool.org
-ck
jtoomim
Hero Member
*****
Offline Offline

Activity: 818
Merit: 1001


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

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: 1001


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

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: 593
Merit: 542



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

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: 1001


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

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
Moderator
Sr. Member
*
Offline Offline

Activity: 245
Merit: 279


View Profile
August 15, 2017, 06:27:41 AM
 #15669

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
 #15670

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: 1001


View Profile WWW
August 15, 2017, 08:00:23 AM
 #15671

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: 501
Merit: 500


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

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
Moderator
Sr. Member
*
Offline Offline

Activity: 245
Merit: 279


View Profile
August 15, 2017, 09:33:09 AM
 #15673

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: 593
Merit: 542



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

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: 11
Merit: 0


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

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
 #15676

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
Jr. Member
*
Offline Offline

Activity: 43
Merit: 0


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

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
 #15678

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.
Xantus
Jr. Member
*
Offline Offline

Activity: 43
Merit: 0


View Profile
August 15, 2017, 02:40:23 PM
 #15679

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.
i using this version : http://u.forre.st/u/wanckfqm/p2pool_win32_16.0.zip found on http://p2pool.in. is an Windows Executabe file (simpel .exe)
Duce
Full Member
***
Offline Offline

Activity: 175
Merit: 100


View Profile
August 15, 2017, 03:36:22 PM
 #15680

So which version will work with segwit, the one that is supported by Bitcoin core? Is that 1Meg now lowmem version? I would like to stay with P2P for Bitcoin and not fork to an alt coin. After reading the post in the link provided this again makes sense to me https://bitcointalk.org/index.php?topic=2090805.0.

It seems that there is a divide on which direction P2P will take. We have the old fork still running that will not be compatible when segwit is implemented around August 23rd, true? Then the the 1Meg or lowmem version that would be the correct version for segwit, true? Then we have segwit 2 which will be an alt coin.
Pages: « 1 ... 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 815 »
  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!