Bitcoin Forum
November 02, 2024, 12:18:23 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 ... 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 [234] 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 ... 814 »
  Print  
Author Topic: [1500 TH] p2pool: Decentralized, DoS-resistant, Hop-Proof pool  (Read 2591877 times)
Nite69
Sr. Member
****
Offline Offline

Activity: 477
Merit: 500


View Profile
March 17, 2013, 08:08:57 PM
 #4661

this happens sometimes, start litecoind first and then start ltcp2pool, that should fix it.

It happens *allways* on my system. Every single time p2pool finds a block.

The code looks like it tries to use some 'getmemorypool' method, and fallbacks to use 'submitblock' if it fails. Unfortunately, fallback uses 'submitblock', which also does not work in litecoin. You have to wait for the first found litecoin block on p2pool network to see the problem. Hopefully this problem is not on every 11.2 node.

I do not know why getmemorypool fails. Shouldn't it?

Sync: ShiSKnx4W6zrp69YEFQyWk5TkpnfKLA8wx
Bitcoin: 17gNvfoD2FDqTfESUxNEmTukGbGVAiJhXp
Litecoin: LhbDew4s9wbV8xeNkrdFcLK5u78APSGLrR
AuroraCoin: AXVoGgYtSVkPv96JLL7CiwcyVvPxXHXRK9
forrestv (OP)
Hero Member
*****
Offline Offline

Activity: 516
Merit: 643


View Profile
March 18, 2013, 02:17:10 AM
 #4662

submitblock is relatively new in bitcoind.  In litecoind it's done with getblocktemplate, passing the first argument (mode) as submit, and the second argument (data) as the hex data of the full block.

That means there really is a compatibility problem between latest p2pool (11.2, possibly earlier) and any version of litecoind. Maybe users should be adviced not to update to latest p2pool with litecoin. If everyone updates... litecoin p2pool stops getting any blocks :-(

P2Pool also submits blocks over the P2P connection, so even if everyone upgraded, there wouldn't be any problem.

I'll either fix this in P2Pool or submit a pull request to the Litecoin project to add submitblock.

1J1zegkNSbwX4smvTdoHSanUfwvXFeuV23
-ck
Legendary
*
Offline Offline

Activity: 4284
Merit: 1645


Ruu \o/


View Profile WWW
March 18, 2013, 10:55:39 PM
 #4663

p2pool stratum for ltc uses difficulty based on btc difficulty. Unfortunately the defacto standard as used by many pools using ltc stratum now set difficulty according to the base ltc difficulty (65536 times larger) meaning p2pool is at odds with what everyone else is doing and thus is asking for way too low difficulties making cgminer submit shares of much lower difficulty than p2pool is expecting. As there is a precedent with other pools setting the defacto standard prior to p2pool, unfortunately the onus is on p2pool to come in line with the rest.

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

Activity: 1361
Merit: 1003


Don`t panic! Organize!


View Profile WWW
March 19, 2013, 07:37:08 AM
 #4664

submitblock is relatively new in bitcoind.  In litecoind it's done with getblocktemplate, passing the first argument (mode) as submit, and the second argument (data) as the hex data of the full block.

Thank you, fixed it by changing one line in source:
helper.py, line 73:
was
Code:
        #result = yield bitcoind.rpc_submitblock(bitcoin_data.block_type.pack(block).encode('hex'))
Fix:
Code:
	result = yield bitcoind.rpc_getblocktemplate(dict(mode='submit', data=bitcoin_data.block_type.pack(block).encode('hex')))

Of course, I don't know if this works on bitcoin p2pool any more. Someone into this make this and add correct checks (litecoind/bitcoind (terracoin/ppc?!) mode, other end version etc..)

Seriously, the rpc interface should give a version number so the client could choose correct method to use.. Current one this is a mess and very difficult to do (litecoind/bitcoind) version independent code :-(

Testing is a bit slow, allways need to wait for p2poop to find a block...

Poll request send, for litecoin p2pool should use getblocktemplate instead of submitblock. Till they fix/update daemon code.

1Rav3nkMayCijuhzcYemMiPYsvcaiwHni  Bitcoin stuff on my OneDrive
My RPC CoinControl for any coin https://bitcointalk.org/index.php?topic=929954
Some stuff on https://github.com/Rav3nPL/
wtogami
Sr. Member
****
Offline Offline

Activity: 263
Merit: 250



View Profile
March 20, 2013, 09:34:23 PM
Last edit: March 20, 2013, 10:25:17 PM by wtogami
 #4665

submitblock is relatively new in bitcoind.  In litecoind it's done with getblocktemplate, passing the first argument (mode) as submit, and the second argument (data) as the hex data of the full block.

That means there really is a compatibility problem between latest p2pool (11.2, possibly earlier) and any version of litecoind. Maybe users should be adviced not to update to latest p2pool with litecoin. If everyone updates... litecoin p2pool stops getting any blocks :-(

P2Pool also submits blocks over the P2P connection, so even if everyone upgraded, there wouldn't be any problem.

I'll either fix this in P2Pool or submit a pull request to the Litecoin project to add submitblock.

Litecoin has plans for 0.8.1, it looks like it will be a few months as coblee wants to be extra cautious.  He wants to wait past May 15th to be certain the BTC hard-fork goes smoothly.

Meanwhile there are a lot of p2pool litecoin miners who are currently failing to submit blocks.  Perhaps this is a good time to push 11.3 and make it incompatible with the previous version to ensure the broken miners are no longer leaching shares?

Edit: It seems I was wrong.  gmaxwell reminded me that p2pool has parallel block submissions, so as long as other nodes have working block submissions this isn't broken enough to require a protocol version bump and sharechain fork.  Until everyone upgrades p2pool, it seems that block submission will be delayed and we have a slightly higher chance of block orphans.

If you appreciate my work please consider making a small donation.
BTC:  1LkYiL3RaouKXTUhGcE84XLece31JjnLc3      LTC:  LYtrtYZsVSn5ymhPepcJMo4HnBeeXXVKW9
GPG: AEC1884398647C47413C1C3FB1179EB7347DC10D
PatMan
Hero Member
*****
Offline Offline

Activity: 924
Merit: 1000


Watch out for the "Neg-Rep-Dogie-Police".....


View Profile WWW
March 20, 2013, 10:16:01 PM
 #4666

What on earth has happened here?

160% 7 day "L**k"?!!!  Shocked

Has someone been tinkering?...... Cheesy Wink

Peace.

"When one person is deluded it is called insanity - when many people are deluded it is called religion" - Robert M. Pirsig.  I don't want your coins, I want change.
Amazon UK BTC payment service - https://bitcointalk.org/index.php?topic=301229.0 - with FREE delivery!
http://www.ae911truth.org/ - http://rethink911.org/ - http://rememberbuilding7.org/
wtogami
Sr. Member
****
Offline Offline

Activity: 263
Merit: 250



View Profile
March 20, 2013, 10:24:15 PM
 #4667

p2pool stratum for ltc uses difficulty based on btc difficulty. Unfortunately the defacto standard as used by many pools using ltc stratum now set difficulty according to the base ltc difficulty (65536 times larger) meaning p2pool is at odds with what everyone else is doing and thus is asking for way too low difficulties making cgminer submit shares of much lower difficulty than p2pool is expecting. As there is a precedent with other pools setting the defacto standard prior to p2pool, unfortunately the onus is on p2pool to come in line with the rest.

https://github.com/coblee/litecoin/commit/923b6643c902590f4817e3c4111649082353b1b8#L12L31
Quote
-static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);
+static CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); // Litecoin: starting difficulty is 1 / 2^12

This is another difference between bitcoin and litecoin.  Is this also taken into account by p2pool/cgminer?

If you appreciate my work please consider making a small donation.
BTC:  1LkYiL3RaouKXTUhGcE84XLece31JjnLc3      LTC:  LYtrtYZsVSn5ymhPepcJMo4HnBeeXXVKW9
GPG: AEC1884398647C47413C1C3FB1179EB7347DC10D
gyverlb
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
March 20, 2013, 10:36:40 PM
Last edit: March 21, 2013, 12:27:45 AM by gyverlb
 #4668

p2pool stratum for ltc uses difficulty based on btc difficulty. Unfortunately the defacto standard as used by many pools using ltc stratum now set difficulty according to the base ltc difficulty (65536 times larger) meaning p2pool is at odds with what everyone else is doing and thus is asking for way too low difficulties making cgminer submit shares of much lower difficulty than p2pool is expecting. As there is a precedent with other pools setting the defacto standard prior to p2pool, unfortunately the onus is on p2pool to come in line with the rest.

https://github.com/coblee/litecoin/commit/923b6643c902590f4817e3c4111649082353b1b8#L12L31
Quote
-static CBigNum bnProofOfWorkLimit(~uint256(0) >> 32);
+static CBigNum bnProofOfWorkLimit(~uint256(0) >> 20); // Litecoin: starting difficulty is 1 / 2^12

This is another difference between bitcoin and litecoin.  Is this also taken into account by p2pool/cgminer?
Nope: it seems p2pool should be patched as patching cgminer would break all other litecoin/stratum pools.

I've stumbled upon this bug and posted a message in #cgminer shortly before ckolivas posted this. I've documented it in the FAQ of this guide too in case someone looks in the forum for the information (I couldn't and found the information on IRC).

P2pool tuning guide
Trade BTC for €/$ at bitcoin.de (referral), it's cheaper and faster (acts as escrow and lets the buyers do bank transfers).
Tip: 17bdPfKXXvr7zETKRkPG14dEjfgBt5k2dd
Luke-Jr
Legendary
*
Offline Offline

Activity: 2576
Merit: 1186



View Profile
March 21, 2013, 12:20:01 AM
 #4669

p2pool stratum for ltc uses difficulty based on btc difficulty. Unfortunately the defacto standard as used by many pools using ltc stratum now set difficulty according to the base ltc difficulty (65536 times larger) meaning p2pool is at odds with what everyone else is doing and thus is asking for way too low difficulties making cgminer submit shares of much lower difficulty than p2pool is expecting. As there is a precedent with other pools setting the defacto standard prior to p2pool, unfortunately the onus is on p2pool to come in line with the rest.
This is really a bug in litecoin pools and *gminer. p2pool handles it more sanely. The protocol/miner only cares about algorithm, not network.
The original bug is in stratum, for specifying a network-related variable unit for difficulty, instead of the actual target.
But as long as stratum is specifying target as a fuzzy bdiff, pools using litecoin-diff instead are merely violating the spec.

jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
March 21, 2013, 02:07:32 AM
 #4670

Yeah we could point out how YOU put botnet support into the bitcoind client (yes it is there) buy adding a STUPID 32bit nonce range that wasn't in the BIP

Read the code closely.  bitcoind's block processing behavior is the same as it always was.  getblocktemplate returns a static value for "noncerange":

Code:
    result.push_back(Pair("noncerange", "00000000ffffffff"));

and never examines the value.

noncerange was always silly in my opinion -- which is why it does not change bitcoind's behavior one bit.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
kano
Legendary
*
Offline Offline

Activity: 4606
Merit: 1851


Linux since 1997 RedHat 4


View Profile
March 21, 2013, 03:18:05 AM
 #4671

Yeah we could point out how YOU put botnet support into the bitcoind client (yes it is there) buy adding a STUPID 32bit nonce range that wasn't in the BIP

Read the code closely.  bitcoind's block processing behavior is the same as it always was.  getblocktemplate returns a static value for "noncerange":

Code:
    result.push_back(Pair("noncerange", "00000000ffffffff"));

and never examines the value.

noncerange was always silly in my opinion -- which is why it does not change bitcoind's behavior one bit.

It is not in the BIP he implemented ... go read it.

Pool: https://kano.is - low 0.5% fee PPLNS 3 Days - Most reliable Solo with ONLY 0.5% fee   Bitcointalk thread: Forum
Discord support invite at https://kano.is/ Majority developer of the ckpool code - k for kano
The ONLY active original developer of cgminer. Original master git: https://github.com/kanoi/cgminer
jgarzik
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
March 21, 2013, 04:50:46 AM
 #4672

It is not in the BIP he implemented ... go read it.

Not relevant to evaluating your claim of "[luke-jr] put botnet support into the bitcoind client"

That statement is not just characteristically hyperbolic... it is simply false, as the source code demonstrates.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
kano
Legendary
*
Offline Offline

Activity: 4606
Merit: 1851


Linux since 1997 RedHat 4


View Profile
March 21, 2013, 05:25:17 AM
 #4673

It is not in the BIP he implemented ... go read it.

Not relevant to evaluating your claim of "[luke-jr] put botnet support into the bitcoind client"

That statement is not just characteristically hyperbolic... it is simply false, as the source code demonstrates.

Logic fail.
Implement a new interface, and include an old option that isn't required or even in the implementation spec.
Yeah I know it's a bit beyond a BTC dev to understand ...

Pool: https://kano.is - low 0.5% fee PPLNS 3 Days - Most reliable Solo with ONLY 0.5% fee   Bitcointalk thread: Forum
Discord support invite at https://kano.is/ Majority developer of the ckpool code - k for kano
The ONLY active original developer of cgminer. Original master git: https://github.com/kanoi/cgminer
eleuthria
Legendary
*
Offline Offline

Activity: 1750
Merit: 1007



View Profile
March 21, 2013, 08:48:55 PM
 #4674

Just a note for p2pool miners (and possibly a required hard fork for p2pool software versions):  Version 2 blocks (height-in-coinbase) will likely hit supermajority next week which will make any attempt to submit a Version1 block be orphaned by the rest of the network.  Deepbit has switched, BTC Guild has finally patched the getwork pools, and Ozcoin is closing getwork entirely.  After ~1 week, the 1,000 block window used to evaluate 95% supermajority has a good chance of triggering, and once it is triggered it will never turn off.

This change to v2 blocks is also a good chance to upgrade to bitcoind 0.8.1 if you haven't done so already.

RIP BTC Guild, April 2011 - June 2015
gyverlb
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
March 21, 2013, 09:09:03 PM
 #4675

This change to v2 blocks is also a good chance to upgrade to bitcoind 0.8.1 if you haven't done so already.
Note that you only need 0.7.0 or later to generate v2 blocks. Upgrading to 0.8.1 from any 0.7.x is still advisable for P2Pool miners (for efficiency reasons).

P2pool tuning guide
Trade BTC for €/$ at bitcoin.de (referral), it's cheaper and faster (acts as escrow and lets the buyers do bank transfers).
Tip: 17bdPfKXXvr7zETKRkPG14dEjfgBt5k2dd
mdude77
Legendary
*
Offline Offline

Activity: 1540
Merit: 1001



View Profile
March 22, 2013, 12:37:16 AM
 #4676

Now that p2pool seems to have recovered, I'm trying to use it again.  I found whenever cgminer 2.11.x tries to connect, I get this error from p2pool.  2.10.5 doesn't do it.  With my machine with one GPU, cgminer is able to mine.  With the machine with 4 GPUs, cgminer hangs and then crashes.  This is on win7 x64.  What gives?

Code:
2013-03-21 20:20:56.830000 > Squelched JSON error:
2013-03-21 20:20:56.830000 > Traceback (most recent call last):
2013-03-21 20:20:56.830000 >   File "c:\python27\lib\site-packages\twisted\proto
cols\basic.py", line 455, in dataReceived
2013-03-21 20:20:56.830000 >     self.lineReceived(line)
2013-03-21 20:20:56.830000 >   File "C:\mining\p2pool\p2pool\util\jsonrpc.py", l
ine 164, in lineReceived
2013-03-21 20:20:56.830000 >     _handle(line, self, response_handler=self._matc
her.got_response).addCallback(lambda line2: self.sendLine(line2) if line2 is not
 None else None)
2013-03-21 20:20:56.830000 >   File "c:\python27\lib\site-packages\twisted\inter
net\defer.py", line 1187, in unwindGenerator
2013-03-21 20:20:56.830000 >     return _inlineCallbacks(None, gen, Deferred())
2013-03-21 20:20:56.830000 >   File "c:\python27\lib\site-packages\twisted\inter
net\defer.py", line 1045, in _inlineCallbacks
2013-03-21 20:20:56.830000 >     result = g.send(result)
2013-03-21 20:20:56.840000 > --- <exception caught here> ---
2013-03-21 20:20:56.840000 >   File "C:\mining\p2pool\p2pool\util\jsonrpc.py", l
ine 85, in _handle
2013-03-21 20:20:56.840000 >     result = yield method_meth(*list(preargs) + lis
t(params))
2013-03-21 20:20:56.840000 > exceptions.TypeError: rpc_subscribe() takes exactly
 1 argument (2 given)
2013-03-21 20:20:56.840000 > Squelched JSON error:
2013-03-21 20:20:56.840000 > Traceback (most recent call last):
2013-03-21 20:20:56.840000 >   File "c:\python27\lib\site-packages\twisted\proto
cols\basic.py", line 455, in dataReceived
2013-03-21 20:20:56.840000 >     self.lineReceived(line)
2013-03-21 20:20:56.850000 >   File "C:\mining\p2pool\p2pool\util\jsonrpc.py", l
ine 164, in lineReceived
2013-03-21 20:20:56.850000 >     _handle(line, self, response_handler=self._matc
her.got_response).addCallback(lambda line2: self.sendLine(line2) if line2 is not
 None else None)
2013-03-21 20:20:56.850000 >   File "c:\python27\lib\site-packages\twisted\inter
net\defer.py", line 1187, in unwindGenerator
2013-03-21 20:20:56.850000 >     return _inlineCallbacks(None, gen, Deferred())
2013-03-21 20:20:56.850000 >   File "c:\python27\lib\site-packages\twisted\inter
net\defer.py", line 1045, in _inlineCallbacks
2013-03-21 20:20:56.850000 >     result = g.send(result)
2013-03-21 20:20:56.850000 > --- <exception caught here> ---
2013-03-21 20:20:56.850000 >   File "C:\mining\p2pool\p2pool\util\jsonrpc.py", l
ine 85, in _handle
2013-03-21 20:20:56.850000 >     result = yield method_meth(*list(preargs) + lis
t(params))
2013-03-21 20:20:56.860000 > exceptions.TypeError: rpc_subscribe() takes exactly
 1 argument (2 given)

M

I mine at Kano's Pool because it pays the best and is completely transparent!  Come join me!
gyverlb
Hero Member
*****
Offline Offline

Activity: 896
Merit: 1000



View Profile
March 22, 2013, 02:02:38 AM
 #4677

Now that p2pool seems to have recovered, I'm trying to use it again.  I found whenever cgminer 2.11.x tries to connect, I get this error from p2pool.  2.10.5 doesn't do it.  With my machine with one GPU, cgminer is able to mine.  With the machine with 4 GPUs, cgminer hangs and then crashes.  This is on win7 x64.  What gives?

If it's cgminer crashing and not P2Pool the cgminer thread would be a better place to find a solution. I've seen the kind of stacktrace you got with connectivity problems.

P2pool tuning guide
Trade BTC for €/$ at bitcoin.de (referral), it's cheaper and faster (acts as escrow and lets the buyers do bank transfers).
Tip: 17bdPfKXXvr7zETKRkPG14dEjfgBt5k2dd
mdude77
Legendary
*
Offline Offline

Activity: 1540
Merit: 1001



View Profile
March 22, 2013, 02:52:44 AM
 #4678

Now that p2pool seems to have recovered, I'm trying to use it again.  I found whenever cgminer 2.11.x tries to connect, I get this error from p2pool.  2.10.5 doesn't do it.  With my machine with one GPU, cgminer is able to mine.  With the machine with 4 GPUs, cgminer hangs and then crashes.  This is on win7 x64.  What gives?

If it's cgminer crashing and not P2Pool the cgminer thread would be a better place to find a solution. I've seen the kind of stacktrace you got with connectivity problems.

p2pool gives the error when cgminer tries to connect.

I know the cgminer guys read here, maybe they'll pipe up.

M

I mine at Kano's Pool because it pays the best and is completely transparent!  Come join me!
mdude77
Legendary
*
Offline Offline

Activity: 1540
Merit: 1001



View Profile
March 22, 2013, 03:31:48 AM
 #4679

Now that p2pool seems to have recovered, I'm trying to use it again.  I found whenever cgminer 2.11.x tries to connect, I get this error from p2pool.  2.10.5 doesn't do it.  With my machine with one GPU, cgminer is able to mine.  With the machine with 4 GPUs, cgminer hangs and then crashes.  This is on win7 x64.  What gives?

If it's cgminer crashing and not P2Pool the cgminer thread would be a better place to find a solution. I've seen the kind of stacktrace you got with connectivity problems.

p2pool gives the error when cgminer tries to connect.

I know the cgminer guys read here, maybe they'll pipe up.

M

Also, while 2.10.5 works, it isn't working right.  On the 4xgpu box, it sits there for a good 30 seconds just showing the version before it starts.  Then it starts on LP instead of stratum.  I get this when using the windows .exe build for 11.2, as well as directly with python with latest source git.  My 1 gpu rig connects right up immediately with stratum.

M

I mine at Kano's Pool because it pays the best and is completely transparent!  Come join me!
forrestv (OP)
Hero Member
*****
Offline Offline

Activity: 516
Merit: 643


View Profile
March 22, 2013, 05:40:46 AM
 #4680

I just pushed a commit that should fix the traceback. All it does is ignore the extra argument cgminer provides to mining.subscribe (which is cgminer's version).

1J1zegkNSbwX4smvTdoHSanUfwvXFeuV23
Pages: « 1 ... 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 [234] 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 ... 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!