Pages:
Author

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

legendary
Activity: 1258
Merit: 1027
Just to clarify how the fees are handled, it is a percentage of shares found by your node, not a % of rewards earned... So if your charging 1%, during perfectly flat luck/variance if a miner on your node mines 100 shares, your node address will be credited with 1 share.

hero member
Activity: 675
Merit: 504
  • I set a 1% pool fee, meaning that if somebody on my node mined a block, i would get a 1% cut... Seems fair. But i've also seen a node setting a +90% fee, does this mean that he gets an equal cut when somebody on an other node finds a block, but when he finds a block he can keep +90% of the block reward?
It is only the percentage of the particular address's earnings, not the whole block reward.

  • i can setup my node so it doesn't broadcast new transactions. If i do this, can i put my own (secret) transactions in a block or do the other nodes also have to know my transactions? I know the chance of hitting a block by yourself are astronomically small, so it's just a theoretical question.
I think the short answer is, yes.

  • Can i prioritise my own transactions, so that if a block gets mined on my node, my own transactions have a better shot of being in this block?
How is this different than the last question?

  • If i find a share at a time when there is a dip in the p2pool network's hashrate (so the diff of the sharechain is lower), does this share have an equal value to a share that is found at a time of high hashrate (so high diff)?
Yes, p2pool is PPLNS regardless of the current difficulty. If the difficulty is high, you find less shares and vice versa.

  • I tried a setup where i merge mined several coins, the log didn't show any errors, but for some reason i didn't find a single share on the BTC sharechain anymore (at the time i should have found 6+ shares, but i didn't find a single one... This could be due to variance, but the odds of this should be small). Is there a potential pitfall i missed when setting up merged mining, or was i just very, very unlucky?
There is not enough information without your logs to answer this question.

Thank you very much for the answers, they were exactly what i needed.

Just to clarify, i tought there was a difference between creating a transaciton and not broadcasting it (so it would only exist in my own mempool) and creating a transaction, broadcasting it, but only prioritizing it on my own node (so it's in the pool's mempool, but it has a higher priority in mine).

About the logs for my merged-mining setup, i can probably re-setup the merged mining and re-run my experiment (i disabled the merged mining setup since i couldn't find any shares), but what basically happened is:

I setup my node, started my daemon, waited untill it synchronised
I setup the merged mining coins, let them synchronise (not at the same time as my main daemon, since the I/O was to high)
I started p2pool in this way:

Code:
python run_p2pool.py -f 1 \
--merged http://[redacted]:[redacted]@[ip]:[port] \
--merged http://[redacted]:[redacted]@[ip]:[port] \
--merged http://[redacted]:[redacted]@[ip]:[port]

Then i tail'ed the log, i saw following things:

Code:
Got new merged mining work!
Pool: [hashrate] Stale rate: [stalerate]% Expected time to block: [x] days
Local: [my own hashrate] in last 0.0 seconds Local dead on arrival: [DOA] Expected time to share: [time to next share in minutes]
Shares: 0 (0 orphan, 0 dead) Stale rate: ??? Efficiency: ??? Current payout: [expected payout]

When looking at the merge mined coin's debug log, i could got a line like this all the time:
Code:
CreateNewBlock(): total size [size]

Now, it looks like everything works 100% fine. My hashrate is registered, so i must be sending pseudo-shares. The merged mining also seems to work, since the merged mining daemon asks for a new block all the time... However, i kept running this setup for a couple of hours, and it should have generated 7 or 8 shares (on average) during this time, but it generated 0.
I then stopped p2pool started it without the --merged options, let it run for about the same timeframe and got 6 or 7 shares (can't remember exactly).

The odds of this happening witout any reason seem very small to me, so i must have messed something up...
hero member
Activity: 578
Merit: 501
  • I set a 1% pool fee, meaning that if somebody on my node mined a block, i would get a 1% cut... Seems fair. But i've also seen a node setting a +90% fee, does this mean that he gets an equal cut when somebody on an other node finds a block, but when he finds a block he can keep +90% of the block reward?
It is only the percentage of the particular address's earnings, not the whole block reward.

  • i can setup my node so it doesn't broadcast new transactions. If i do this, can i put my own (secret) transactions in a block or do the other nodes also have to know my transactions? I know the chance of hitting a block by yourself are astronomically small, so it's just a theoretical question.
I think the short answer is, yes.

  • Can i prioritise my own transactions, so that if a block gets mined on my node, my own transactions have a better shot of being in this block?
How is this different than the last question?

  • If i find a share at a time when there is a dip in the p2pool network's hashrate (so the diff of the sharechain is lower), does this share have an equal value to a share that is found at a time of high hashrate (so high diff)?
Yes, p2pool is PPLNS regardless of the current difficulty. If the difficulty is high, you find less shares and vice versa.

  • I tried a setup where i merge mined several coins, the log didn't show any errors, but for some reason i didn't find a single share on the BTC sharechain anymore (at the time i should have found 6+ shares, but i didn't find a single one... This could be due to variance, but the odds of this should be small). Is there a potential pitfall i missed when setting up merged mining, or was i just very, very unlucky?
There is not enough information without your logs to answer this question.
hero member
Activity: 675
Merit: 504
I'm sorry if these questions have been asked before (i'm pretty sure they should have been answered already), i tried to find the answers, but this thread is alreay more than 700 pages long, so it was TL;DR  Smiley

I tried to setup a p2pool node, rented some hash on miningrigrentals and started playing with the setup, i ran into the following questions:

  • I set a 1% pool fee, meaning that if somebody on my node mined a block, i would get a 1% cut... Seems fair. But i've also seen a node setting a +90% fee, does this mean that he gets an equal cut when somebody on an other node finds a block, but when he finds a block he can keep +90% of the block reward?
  • i can setup my node so it doesn't broadcast new transactions. If i do this, can i put my own (secret) transactions in a block or do the other nodes also have to know my transactions? I know the chance of hitting a block by yourself are astronomically small, so it's just a theoretical question.
  • Can i prioritise my own transactions, so that if a block gets mined on my node, my own transactions have a better shot of being in this block?
  • If i find a share at a time when there is a dip in the p2pool network's hashrate (so the diff of the sharechain is lower), does this share have an equal value to a share that is found at a time of high hashrate (so high diff)?
  • I tried a setup where i merge mined several coins, the log didn't show any errors, but for some reason i didn't find a single share on the BTC sharechain anymore (at the time i should have found 6+ shares, but i didn't find a single one... This could be due to variance, but the odds of this should be small). Is there a potential pitfall i missed when setting up merged mining, or was i just very, very unlucky?
legendary
Activity: 1308
Merit: 1011
I have made the node AUR (GROESTL) http://crypto.office-on-the.net:12351 based on the fork of p2pool from jtoomim
If there is no shares in sharechain then this https://github.com/jtoomim/p2pool/blob/1mb_hardforked/p2pool/data.py#L202 leads to the fact that the miners do not connect to the stratum.
Worker started mining when I turned off lines 202-210
After receiving the first shares, I included lines 202-210
Then, the first share is obtained without a time stamp and when connecting other nodes an error is displayed about the impossibility of checking this share
Code:
Share check failed: 6ef7e789aaa686c19462aa74ae38da897e1da46f3b83d88bd97a8e6a38a46efd -> 0000000000000000000000000000000000000000000000000000000000000000
Traceback (most recent call last):
  File "/opt/groestl/p2pool-aur/p2pool/util/deferral.py", line 284, in _worker
    self.func(*self.args, **self.kwargs)
  File "/opt/groestl/p2pool-aur/p2pool/node.py", line 355, in clean_tracker
    self.set_best_share()
  File "/opt/groestl/p2pool-aur/p2pool/node.py", line 293, in set_best_share
    best, desired, decorated_heads, bad_peer_addresses = self.tracker.think(self.get_height_rel_highest, self.bitcoind_work.value['previous_block'], self.bitcoind_work.value['bits'], self.known_txs_var.value)
  File "/opt/groestl/p2pool-aur/p2pool/data.py", line 533, in think
    if not self.attempt_verify(share):
--- ---
  File "/opt/groestl/p2pool-aur/p2pool/data.py", line 477, in attempt_verify
    share.check(self)
  File "/opt/groestl/p2pool-aur/p2pool/data.py", line 359, in check
    share_info, gentx, other_tx_hashes2, get_share = self.generate_transaction(tracker, self.share_info['share_data'], self.header['bits'].target, self.share_info['timestamp'], self.share_info['bits'].target, self.contents['ref_merkle_link'], [(h, None) for h in other_tx_hashes], self.net, last_txout_nonce=self.contents['last_txout_nonce'])
  File "/opt/groestl/p2pool-aur/p2pool/data.py", line 208, in generate_transaction
    if desired_timestamp > previous_share.timestamp + 180:
exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'

Also, when opening link in http://crypto.office-on-the.net:12351/static/classic/ on "Verified tails", for example http://crypto.office-on-the.net:12351/static/classic/share.html#6ef7e789aaa686c19462aa74ae38da897e1da46f3b83d88bd97a8e6a38a46efd opens this:
Quote
P2Pool> Share 38a46efd
Share not found
In the screen of the node at the time of opening, I see the message:
Code:
Error in DeferredResource handler:
Traceback (most recent call last):
  File "/opt/groestl/p2pool-aur/p2pool/util/deferred_resource.py", line 24, in render
    defer.maybeDeferred(resource.Resource.render, self, request).addCallbacks(finish, finish_error)
  File "/usr/local/lib/pypy2.7/dist-packages/twisted/internet/defer.py", line 150, in maybeDeferred
    result = f(*args, **kw)
  File "/usr/local/lib/pypy2.7/dist-packages/twisted/web/resource.py", line 250, in render
    return m(request)
  File "/usr/local/lib/pypy2.7/dist-packages/twisted/internet/defer.py", line 1532, in unwindGenerator
    return _inlineCallbacks(None, gen, Deferred())
--- ---
  File "/usr/local/lib/pypy2.7/dist-packages/twisted/internet/defer.py", line 1386, in _inlineCallbacks
    result = g.send(result)
  File "/opt/groestl/p2pool-aur/p2pool/web.py", line 198, in render_GET
    res = yield self.func(*self.args)
  File "/opt/groestl/p2pool-aur/p2pool/web.py", line 342, in
    new_root.putChild('share', WebInterface(lambda share_hash_str: get_share(share_hash_str)))
  File "/opt/groestl/p2pool-aur/p2pool/web.py", line 295, in get_share
    far_parent='%064x' % share.share_info['far_share_hash'],
exceptions.TypeError: unsupported operand type for long(): 'NoneType'
hero member
Activity: 1438
Merit: 574
Always ask questions. #StandWithHongKong

Thanks. I'll load it up as soon as I have some spare time & report back Smiley

Edit:  OK, I tried to set up p2pool using zetacoin, which I can mine no problem using the latest forestv version, but got this error on startup & was unable to connect:

2017-06-25 12:39:49.843352 > Unhandled Error
2017-06-25 12:39:49.843457 > Traceback (most recent call last):
2017-06-25 12:39:49.843488 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:39:49.843516 >     reactor.run()
2017-06-25 12:39:49.843555 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:39:49.843594 >     self.mainLoop()
2017-06-25 12:39:49.843642 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:39:49.843702 >     self.runUntilCurrent()
2017-06-25 12:39:49.843721 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:39:49.843739 >     call.func(*call.args, **call.kw)
2017-06-25 12:39:49.843761 > --- ---
2017-06-25 12:39:49.843782 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:39:49.843800 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:39:49.843819 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:39:49.843836 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:39:49.843880 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:39:49.843904 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:39:49.843926 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:39:49.843949 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:39:49.843979 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:39:49.934315 Peer 192.168.1.50:37428 says protocol version is 3200, client version 1
2017-06-25 12:39:54.665514 > Unhandled Error
2017-06-25 12:39:54.665604 > Traceback (most recent call last):
2017-06-25 12:39:54.665630 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:39:54.665652 >     reactor.run()
2017-06-25 12:39:54.665672 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:39:54.665693 >     self.mainLoop()
2017-06-25 12:39:54.665713 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:39:54.665736 >     self.runUntilCurrent()
2017-06-25 12:39:54.665755 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:39:54.665796 >     call.func(*call.args, **call.kw)
2017-06-25 12:39:54.665816 > --- ---
2017-06-25 12:39:54.665836 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:39:54.665856 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:39:54.665880 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:39:54.665901 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:39:54.665921 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:39:54.665942 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:39:54.665959 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:39:54.665979 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:39:54.665999 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:39:55.278487 Got new merged mining work!
2017-06-25 12:39:55.288591 Got new merged mining work!
2017-06-25 12:39:55.300866 Got new merged mining work!
2017-06-25 12:39:56.096555 P2Pool: 0 shares in chain (0 verified/0 total) Peers: 1 (0 incoming)
2017-06-25 12:39:56.096729  Local: 0H/s in last 0.0 seconds Local dead on arrival: Huh Expected time to share: Huh
2017-06-25 12:40:20.833103 > Unhandled Error
2017-06-25 12:40:20.833193 > Traceback (most recent call last):
2017-06-25 12:40:20.833218 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:40:20.833240 >     reactor.run()
2017-06-25 12:40:20.833260 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:40:20.833281 >     self.mainLoop()
2017-06-25 12:40:20.833300 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:40:20.833324 >     self.runUntilCurrent()
2017-06-25 12:40:20.833343 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:40:20.833382 >     call.func(*call.args, **call.kw)
2017-06-25 12:40:20.833402 > --- ---
2017-06-25 12:40:20.833421 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:40:20.833451 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:40:20.833470 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:40:20.833487 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:40:20.833505 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:40:20.833525 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:40:20.833545 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:40:20.833564 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:40:20.833584 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:40:25.306398 Generating a share with 225 bytes (225 new) and 1 transactions (1 new)
2017-06-25 12:40:25.306716 > Unhandled Error
2017-06-25 12:40:25.306784 > Traceback (most recent call last):
2017-06-25 12:40:25.306809 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:40:25.306830 >     reactor.run()
2017-06-25 12:40:25.306848 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:40:25.306959 >     self.mainLoop()
2017-06-25 12:40:25.306982 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:40:25.307000 >     self.runUntilCurrent()
2017-06-25 12:40:25.307017 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:40:25.307036 >     call.func(*call.args, **call.kw)
2017-06-25 12:40:25.307053 > --- ---
2017-06-25 12:40:25.307074 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:40:25.307092 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:40:25.307110 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:40:25.307128 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:40:25.307145 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:40:25.307162 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:40:25.307179 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:40:25.307197 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:40:25.307213 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:40:26.097103 P2Pool: 0 shares in chain (0 verified/0 total) Peers: 1 (0 incoming)
2017-06-25 12:40:26.097290  Local: 0H/s in last 0.0 seconds Local dead on arrival: Huh Expected time to share: Huh
2017-06-25 12:40:42.506989 Got new merged mining work!
2017-06-25 12:40:48.546604 Got new merged mining work!
2017-06-25 12:40:51.244188 Peer 192.168.1.50:38916 says protocol version is 3200, client version 1
2017-06-25 12:40:51.878535 > Unhandled Error
2017-06-25 12:40:51.878624 > Traceback (most recent call last):
2017-06-25 12:40:51.878647 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:40:51.878668 >     reactor.run()
2017-06-25 12:40:51.878689 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:40:51.878710 >     self.mainLoop()
2017-06-25 12:40:51.878730 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:40:51.878750 >     self.runUntilCurrent()
2017-06-25 12:40:51.878773 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:40:51.878794 >     call.func(*call.args, **call.kw)
2017-06-25 12:40:51.878812 > --- ---
2017-06-25 12:40:51.878829 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:40:51.878848 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:40:51.878866 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:40:51.878920 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:40:51.878944 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:40:51.878962 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:40:51.878980 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:40:51.879004 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:40:51.879024 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:40:56.110247 > Unhandled Error
2017-06-25 12:40:56.110338 > Traceback (most recent call last):
2017-06-25 12:40:56.110362 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:40:56.110384 >     reactor.run()
2017-06-25 12:40:56.110405 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:40:56.110425 >     self.mainLoop()
2017-06-25 12:40:56.110445 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:40:56.110468 >     self.runUntilCurrent()
2017-06-25 12:40:56.110486 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:40:56.110528 >     call.func(*call.args, **call.kw)
2017-06-25 12:40:56.110548 > --- ---
2017-06-25 12:40:56.110567 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:40:56.110588 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:40:56.110612 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:40:56.110633 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:40:56.110653 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:40:56.110673 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:40:56.110693 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:40:56.110725 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:40:56.110745 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'
2017-06-25 12:40:56.111196 P2Pool: 0 shares in chain (0 verified/0 total) Peers: 1 (0 incoming)
2017-06-25 12:40:56.111282  Local: 0H/s in last 0.0 seconds Local dead on arrival: Huh Expected time to share: Huh
2017-06-25 12:40:56.564996 Got new merged mining work!
2017-06-25 12:40:57.311776 > Error in DeferredResource handler:
2017-06-25 12:40:57.311869 > Traceback (most recent call last):
2017-06-25 12:40:57.311896 >   File "/home/rig/p2pool-1mb/p2pool/util/deferred_resource.py", line 24, in render
2017-06-25 12:40:57.311922 >     defer.maybeDeferred(resource.Resource.render, self, request).addCallbacks(finish, finish_error)
2017-06-25 12:40:57.311948 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 139, in maybeDeferred
2017-06-25 12:40:57.311973 >     result = f(*args, **kw)
2017-06-25 12:40:57.311994 >   File "/usr/lib/python2.7/dist-packages/twisted/web/resource.py", line 250, in render
2017-06-25 12:40:57.312015 >     return m(request)
2017-06-25 12:40:57.312034 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1237, in unwindGenerator
2017-06-25 12:40:57.312061 >     return _inlineCallbacks(None, gen, Deferred())
2017-06-25 12:40:57.312085 > --- ---
2017-06-25 12:40:57.312106 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1099, in _inlineCallbacks
2017-06-25 12:40:57.312132 >     result = g.send(result)
2017-06-25 12:40:57.312152 >   File "/home/rig/p2pool-1mb/p2pool/web.py", line 198, in render_GET
2017-06-25 12:40:57.312181 >     res = yield self.func(*self.args)
2017-06-25 12:40:57.312203 >   File "/home/rig/p2pool-1mb/p2pool/web.py", line 347, in
2017-06-25 12:40:57.312225 >     new_root.putChild('best_share_hash', WebInterface(lambda: '%064x' % node.best_share_var.value))
2017-06-25 12:40:57.312248 > exceptions.TypeError: %x format: a number is required, not NoneType
2017-06-25 12:41:02.694283 Got new merged mining work!
2017-06-25 12:41:22.863380 > Unhandled Error
2017-06-25 12:41:22.863468 > Traceback (most recent call last):
2017-06-25 12:41:22.863498 >   File "/home/rig/p2pool-1mb/p2pool/main.py", line 669, in run
2017-06-25 12:41:22.863520 >     reactor.run()
2017-06-25 12:41:22.863542 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1192, in run
2017-06-25 12:41:22.863563 >     self.mainLoop()
2017-06-25 12:41:22.863584 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 1201, in mainLoop
2017-06-25 12:41:22.863605 >     self.runUntilCurrent()
2017-06-25 12:41:22.863624 >   File "/usr/lib/python2.7/dist-packages/twisted/internet/base.py", line 824, in runUntilCurrent
2017-06-25 12:41:22.863645 >     call.func(*call.args, **call.kw)
2017-06-25 12:41:22.863681 > --- ---
2017-06-25 12:41:22.863703 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/stratum.py", line 38, in _send_work
2017-06-25 12:41:22.863724 >     x, got_response = self.wb.get_work(*self.wb.preprocess_request('' if self.username is None else self.username))
2017-06-25 12:41:22.863747 >   File "/home/rig/p2pool-1mb/p2pool/bitcoin/worker_interface.py", line 129, in get_work
2017-06-25 12:41:22.863769 >     x, handler = self._inner.get_work(*args)
2017-06-25 12:41:22.863793 >   File "/home/rig/p2pool-1mb/p2pool/work.py", line 334, in get_work
2017-06-25 12:41:22.863814 >     base_subsidy=self.node.net.PARENT.SUBSIDY_FUNC(self.current_work.value['height']),
2017-06-25 12:41:22.863847 >   File "/home/rig/p2pool-1mb/p2pool/data.py", line 202, in generate_transaction
2017-06-25 12:41:22.863869 >     if desired_timestamp > previous_share.timestamp + 180:
2017-06-25 12:41:22.863902 > exceptions.AttributeError: 'NoneType' object has no attribute 'timestamp'

I also saw a lot of these, but presume it's just informational:

2017-06-25 12:40:43.009648 Peer 192.168.1.50:38694 says protocol version is 3200, client version 1
2017-06-25 12:40:46.808608 Peer 192.168.1.50:9174 says protocol version is 3200, client version 1
2017-06-25 12:40:47.673999 Peer 192.168.1.50:9174 says protocol version is 3200, client version 1
2017-06-25 12:41:05.053476 Peer 192.168.1.50:39246 says protocol version is 3200, client version 1
2017-06-25 12:41:09.160712 Peer 192.168.1.50:39340 says protocol version is 3200, client version 1
2017-06-25 12:41:13.091230 Peer 192.168.1.50:9174 says protocol version is 3200, client version 1
2017-06-25 12:41:15.805755 Peer 192.168.1.50:39508 says protocol version is 3200, client version 1
2017-06-25 12:41:17.081234 Peer 192.168.1.50:39540 says protocol version is 3200, client version 1

I then tried running it with the sharechin from the forrestv branch, but got complaints of my system clock being wrong, which of course it wasn't, so I think there's an issue with time/timestamp somewhere?  Merge mining appears to be working though.

Hope the logs help.
legendary
Activity: 1258
Merit: 1027
The blocker on merging is still testing with altcoins. If someone can set up a node for a non-litecoin alt using the 1mb_hardforked or lowmem branches and mine to it for a while, and maybe verify that it forks cleanly to v17 and then v32 shares, that would speed things up a lot.

Hello p2poolers.

This statement caught my eye. Although I've never mined BTC using p2pool, I do mine altcoins using various forks of p2pool & have been meaning to ask on this thread for a while about weather the new fork that jtoomim has been working on was compatible with altcoins or not. p2pool has been due a revamp for a long time now & it's great that someone has finally taken it upon themselves to do so.

Point me to the repo & I'll have a look-see.

Awesome, here you go: https://github.com/jtoomim/p2pool/tree/1mb_hardforked
hero member
Activity: 1438
Merit: 574
Always ask questions. #StandWithHongKong
The blocker on merging is still testing with altcoins. If someone can set up a node for a non-litecoin alt using the 1mb_hardforked or lowmem branches and mine to it for a while, and maybe verify that it forks cleanly to v17 and then v32 shares, that would speed things up a lot.

Hello p2poolers.

This statement caught my eye. Although I've never mined BTC using p2pool, I do mine altcoins using various forks of p2pool & have been meaning to ask on this thread for a while about weather the new fork that jtoomim has been working on was compatible with altcoins or not. p2pool has been due a revamp for a long time now & it's great that someone has finally taken it upon themselves to do so.

Point me to the repo & I'll have a look-see.
legendary
Activity: 1258
Merit: 1027
The blocker on merging is still testing with altcoins. If someone can set up a node for a non-litecoin alt using the 1mb_hardforked or lowmem branches and mine to it for a while, and maybe verify that it forks cleanly to v17 and then v32 shares, that would speed things up a lot.
You are joking, right?
Bitcoin is the mother of all coins!

P2Pool has long supported both merged mining and solo mining of many alts. Maintaining that compatibility is important.
newbie
Activity: 19
Merit: 0
The blocker on merging is still testing with altcoins. If someone can set up a node for a non-litecoin alt using the 1mb_hardforked or lowmem branches and mine to it for a while, and maybe verify that it forks cleanly to v17 and then v32 shares, that would speed things up a lot.
You are joking, right?
Bitcoin is the mother of all coins!
hero member
Activity: 818
Merit: 1006
The blocker on merging is still testing with altcoins. If someone can set up a node for a non-litecoin alt using the 1mb_hardforked or lowmem branches and mine to it for a while, and maybe verify that it forks cleanly to v17 and then v32 shares, that would speed things up a lot.
legendary
Activity: 1258
Merit: 1027
...
The math works out such that if two p2pool chains are equally efficient, then no matter which chain you mine on, the expected value of your payout remains the same regardless of how much time you spend on each chain and how often you switch between chains.
...
No.
When a 'chain' pays out less often it means your shares lose value.

Same as comparing a small 'pool' to a large 'pool'.
If a 'chain' or 'pool' pays only rarely (or never) per diff change, then you are losing out due to that.

For maybe the second time in a few years I find myself agreeing with Kano, our variance is now spanning difficulty changes. P2Pool is still the best pool by far for reasons all of us here understand, but it's time to reunite Smiley

Jtoomim, your skill is highly valued, lets merge and continue on...

Forrest offered the commit, lets do it before any major BTC changes happen and be ready to keep a form of decentralized mining alive Wink
legendary
Activity: 4592
Merit: 1851
Linux since 1997 RedHat 4
...
The math works out such that if two p2pool chains are equally efficient, then no matter which chain you mine on, the expected value of your payout remains the same regardless of how much time you spend on each chain and how often you switch between chains.
...
No.
When a 'chain' pays out less often it means your shares lose value.

Same as comparing a small 'pool' to a large 'pool'.
If a 'chain' or 'pool' pays only rarely (or never) per diff change, then you are losing out due to that.
hero member
Activity: 818
Merit: 1006
What's the difference betwen p2pool1,p2pool2,p2pool+ltc+segwit and bittorrent,utorrent or bitlord?
Is that you can change the torrent client and you don't loose your file.But you can't change p2pool chain without loosing
your work.
A better analogy would be using the bittorrent protocol to download different files. Each of the different p2pool forks represents a different share chain, a different set of users, and a different history.

If you switch share chains, you don't "lose" your work. If a block is found on the chain you left within ~3 days of you leaving, you get paid for the work you did on the old chain. The math works out such that if two p2pool chains are equally efficient, then no matter which chain you mine on, the expected value of your payout remains the same regardless of how much time you spend on each chain and how often you switch between chains.

(Of course, the two chains are not equally efficient. jtoomimnet has about 2x higher transaction fees, so your expected revenue will be higher on jtoomimnet than on mainnet. Recently, jtoomimnet's expected revenue has been about 10% higher than mainnet.)
newbie
Activity: 19
Merit: 0
Let's try to make an analogy.
What's the difference betwen p2pool1,p2pool2,p2pool+ltc+segwit and bittorrent,utorrent or bitlord?
Is that you can change the torrent client and you don't loose your file.But you can't change p2pool chain without loosing
your work.
So don't play with miners work and time.
Pool operators should be interventive people,open to new ideias and forks and not open to caos.
Part of running a p2pool node is choosing your bitcoin node software, optimizing your node, and signaling your support for different BIPs when your node finds a block. When there is more than one p2pool sharechain, you also get to choose which one your node joins. If you are not running a node, you do not get a vote. If you do not like it, go to a regular pool. Quit trolling.
ATTENTION:no trolling intention,only helping.
About your answer although you are not the OP.
What's the point of runinng a node if you are afraid of mining on it?
Take a good look, there's a lot of empty nodes at this moment!
hero member
Activity: 578
Merit: 501
Let's try to make an analogy.
What's the difference betwen p2pool1,p2pool2,p2pool+ltc+segwit and bittorrent,utorrent or bitlord?
Is that you can change the torrent client and you don't loose your file.But you can't change p2pool chain without loosing
your work.
So don't play with miners work and time.
Pool operators should be interventive people,open to new ideias and forks and not open to caos.
Part of running a p2pool node is choosing your bitcoin node software, optimizing your node, and signaling your support for different BIPs when your node finds a block. When there is more than one p2pool sharechain, you also get to choose which one your node joins. If you are not running a node, you do not get a vote. If you do not like it, go to a regular pool. Quit trolling.
newbie
Activity: 19
Merit: 0
Let's try to make an analogy.
What's the difference betwen p2pool1,p2pool2,p2pool+ltc+segwit and bittorrent,utorrent or bitlord?
Is that you can change the torrent client and you don't loose your file.But you can't change p2pool chain without loosing
your work.
So don't play with miners work and time.
Pool operators should be interventive people,open to new ideias and forks and not open to chaos.
sr. member
Activity: 448
Merit: 250
How does the ETA to the next block relate to the the last block, or how is
that estimated?

The last block found has absolutely zero impact on the next block found - it's purely luck.

The estimate comes from calculating how often you should statistically find a block based on the current pool hashrate compared to the total global network hashrate. But it is just that, an estimate, not a guarantee.

If you find blocks more often than statistically expected then you're having good luck. Likewise if you find blocks less often than statistically expected, you are having bad luck. Over the long term (>6 months) you should expect to get pretty close to what you statistically expect - that is the good luck and bad luck about even out. Short term it's just luck  Smiley
newbie
Activity: 37
Merit: 0
The last couple pages of BC and P2Pool discussions and science has been great.

Sorry to ask this, but what's up with "hitting a block"?

When i was looking into what pool to join, and I saw all the blocks that P2P was
hitting, and at a very high frequency, (luck factor off the charts), I got in just a
couple days after the last block was hit.... bad luck there I guess....

How does the ETA to the next block relate to the the last block, or how is
that estimated?

thank you

legendary
Activity: 1258
Merit: 1027
...

Edit: Does p2pool.org also signal in its coinbase string?

Not currently.
Pages:
Jump to: