jtoomim / p2pool

Peer-to-peer Bitcoin mining pool
https://github.com/jtoomim/p2pool/
GNU General Public License v3.0
37 stars 45 forks source link

Handle Litecoin MWEB rules #59

Closed northern-lites closed 2 years ago

northern-lites commented 2 years ago

https://github.com/jtoomim/p2pool/issues/58

jtoomim commented 2 years ago

That's better, thanks.

I'm going to do a little testing on this before merging, but as long as everything tests out, I'll probably merge within a couple of days.

Can you provide a crypto address for thank-you tips?

northern-lites commented 2 years ago

ltc1qsfac6mdk498zfrgs5dh3k8twqxfu4j563cu06v

Thanks!

jtoomim commented 2 years ago

Lingering concerns:

  1. Does this actually mine valid MWEB blocks? I haven't tried on testnet.

  2. Does this need to be a p2pool hard fork? If a p2pool node is creating blocks that get orphaned by the Litecoin blockchain, then we would have the unfortunate situation where updated p2pool nodes would reward obsolete p2pool nodes for their work in the blocks that the updated nodes mine, but will go unrewarded by the obsolete nodes because the obsolete nodes will get orphaned. This scenario probably will not occur on account of Taproot and MWEB being soft forks, but I don't know enough about the implementation to be certain.

Anyway, this seems to work as far as I've tested, so I'll go ahead and merge it. Thanks for the contribution. Maybe buy yourself some pie for dessert to celebrate?

ed9148413c1cae229cf00bdc18e40fef5d986940dea97ebcf4741b6191eceb1a

northern-lites commented 2 years ago

Thanks for the tip! I was mining valid blocks on testnet for the past few weeks (about 70000 tLTC) with these changes or similar. You're right to be concerned about point 2. I'm pretty sure that miners connected to older p2pool nodes will be rewarded, and if they mine a block it will be orphaned.

jtoomim commented 2 years ago

Do you know if it's required for every post-fork LTC block to have the MW extension block? Do you know if Taproot transactions will propagate to obsolete nodes and be included in blocks, or if they will be ignored as non-standard?

The standard p2pool way to deal with (soft/hard) forks in which there's a risk of orphaned *coin blocks is to do a p2pool hard fork. This is done by creating a new share class in p2pool/data.py with a higher version number, setting the successor_share class for the current best version to be the new best version, and (usually, but not necessarily) incrementing the protocol number. However, there's currently no mechanism to make this happen only for LTC, so this would cause unnecessary p2pool hard forks to occur on all p2pool networks, like BCH and BTC. So I'd rather only do that if it's necessary.

Anandraj-Singh commented 2 years ago

Please tell me which version of bitcoin core is your version of p2pool compatible with?

jtoomim commented 2 years ago

@Anandraj-Singh This thread is about a PR to update p2pool's Litecoin compatibility. If there are issues with compatibility with BTC Bitcoin, that should be opened in a separate issue.

Anandraj-Singh commented 2 years ago

@jtoomim thank you!

Azskygod commented 2 years ago

I'm HyperDonkey.com's P2Pool owner and we are merge mining Litecoin and Dogecoin with the MWEB update as of today, 5/15/22.

I will report back here once we mine a few blocks on either chain to confirm it's working OK.

P2Pool statistics: https://p2pool.hyperdonkey.com

Thanks for supporting P2Pool!

northern-lites commented 2 years ago

I'm HyperDonkey.com's P2Pool owner and we are merge mining Litecoin and Dogecoin with the MWEB update as of today, 5/15/22.

I will report back here once we mine a few blocks on either chain to confirm it's working OK.

P2Pool statistics: https://p2pool.hyperdonkey.com

Thanks for supporting P2Pool!

Remember to update your node too. Litecoin core 0.21.2 is available now.

northern-lites commented 2 years ago

@Azskygod, the block you found today, 2263948 looks good. (Version hex 20000010)

Azskygod commented 2 years ago

@northern-lites the Litecoin block is fine, but we are also merge mining Dogecoin and our AuxPoW block didn't validate.

Has anyone successfully merge mined a block with this release?

I'm digging into the logs now and will update here when more information is available.

losh11 commented 2 years ago

Do you know if it's required for every post-fork LTC block to have the MW extension block?

@jtoomim yes. The extension block is required for every block after activation.

Azskygod commented 2 years ago

@northern-lites and @jtoomim,

AUXPOW ERROR

Litecoin blocks mine OK, but Dogecoin AuxPoW blocks are not valid and failing as duplicates on block submission:

2022-05-18 04:02:34.716077 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.771901 > Block submittal result: False (u'duplicate') Expected: True 2022-05-18 04:02:34.783986 trying to punish a share by mining a low-diff share

I captured and synched the log output from our P2Pool, Dogecoind and Litecoind West US nodes as shown below:

P2POOL WEST US NODE

2022-05-18 04:01:38.907036 P2Pool: 17422 shares in chain (17427 verified/17427 total) Peers: 6 (3 incoming) 2022-05-18 04:01:38.907197 Local: 141GH/s in last 10.0 minutes Local dead on arrival: ~6.8% (5-9%) Expected time to share: 58.7 seconds 2022-05-18 04:01:38.907250 Shares: 3627 (116 orphan, 214 dead) Stale rate: ~9.1% (8-11%) Efficiency: ~97.3% (96-99%) Current payout: (0.2422)=0.2422 LTC 2022-05-18 04:01:38.907320 Pool: 587GH/s Stale rate: 6.6% Expected time to block: 1.4 days 2022-05-18 04:01:45.417809 Received good share: diff=1.29e+08 hash=eb8434c1d5bc1bfd93456d0a5ad8389d8ec71b97f3bf9827059a4ec6a64a0e09 miner=MXEhFonuGD4E3au65DhGdhaGbjTXRCv6bx 2022-05-18 04:01:45.437859 New work! Share diff: 1972.03 Block value: 12.61 LTC (345 tx, 239 kB) 2022-05-18 04:01:51.912808 > Worker LfpVMxDY39Z4iT8Y6DMKg1EqMtJBcWot71.DAw3uoZuwxrqKWNogxpvd58GQoz16UHGnv submitted share more than once! 2022-05-18 04:02:05.248729 Got new merged mining work! 2022-05-18 04:02:05.265916 New work! Share diff: 1972.03 Block value: 12.61 LTC (353 tx, 240 kB) 2022-05-18 04:02:08.910351 P2Pool: 17423 shares in chain (17428 verified/17428 total) Peers: 6 (3 incoming) 2022-05-18 04:02:08.910508 Local: 139GH/s in last 10.0 minutes Local dead on arrival: ~6.8% (5-9%) Expected time to share: 59.5 seconds 2022-05-18 04:02:08.910561 Shares: 3627 (116 orphan, 214 dead) Stale rate: ~9.1% (8-11%) Efficiency: ~97.3% (96-99%) Current payout: (0.2437)=0.2437 LTC 2022-05-18 04:02:08.910616 Pool: 586GH/s Stale rate: 6.6% Expected time to block: 1.4 days 2022-05-18 04:02:19.554312 Received good share: diff=1.29e+08 hash=4a00d5f4a1fae95800320a67a89b7a74d93511457f83ae5171a2bc2519c26c6b miner=ltc1qanp464aes8zuqq5zlxqn0zxwhtapm7x2tx08l2 2022-05-18 04:02:19.577368 New work! Share diff: 1949.63 Block value: 12.68 LTC (364 tx, 304 kB) 2022-05-18 04:02:21.468449 Received good share: diff=1.28e+08 hash=9c5920b45d64ef4fc5e92d3ec6bbcc4a2c5a1957f95934204cbaada43b937869 miner=LMNsP1rGvVxHfkkWrnYjdBs52zqvKqaNhR 2022-05-18 04:02:23.426663 GOT SHARE! M9dVtj4t94NRx3DPmHLkd8rhSE7HEWwFFA.DEKFDDPzjcqgTqTb6j5S9XDY71H4PRGbmT 6fb9cff4 prev 3b937869 age 1.45s 2022-05-18 04:02:23.432918 Received good share: diff=4.27e+06 hash=a2ea59e7e1ff910cdd7f37650c4244fedb76de9a897cf32e84d60aa16fb9cff4 miner=M9dVtj4t94NRx3DPmHLkd8rhSE7HEWwFFA 2022-05-18 04:02:33.791693 2022-05-18 04:02:33.791918 GOT BLOCK FROM MINER! Passing to bitcoind! https://chainz.cryptoid.info/ltc/block.dws?25f2aa3844cc9401c0f4706ad921f0b543cc376c6aefabe791183c2fc6e41c37 2022-05-18 04:02:33.792089 2022-05-18 04:02:33.835033 GOT SHARE! ltc1qk4fdf6atptmy37vxspu3v86aaw20nsvjyuar7r.DDEPBqR1TTi7PRx3aa7WwDRqAiPjKzD8bK c6e41c37 prev 6fb9cff4 age 10.23s 2022-05-18 04:02:33.843111 Received good share: diff=1.29e+08 hash=25f2aa3844cc9401c0f4706ad921f0b543cc376c6aefabe791183c2fc6e41c37 miner=ltc1qk4fdf6atptmy37vxspu3v86aaw20nsvjyuar7r 2022-05-18 04:02:33.843362 GOT BLOCK FROM PEER! c6e41c37 https://chainz.cryptoid.info/ltc/block.dws?25f2aa3844cc9401c0f4706ad921f0b543cc376c6aefabe791183c2fc6e41c37 2022-05-18 04:02:33.846730 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.867005 New work! Share diff: 65.47 Block value: 12.72 LTC (377 tx, 347 kB) 2022-05-18 04:02:33.867565 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.887386 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.906306 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.925232 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.945151 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.963242 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.981616 trying to punish a share by mining a low-diff share 2022-05-18 04:02:33.999321 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.017706 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.038244 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.056335 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.075953 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.095885 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.114761 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.132862 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.151215 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.171580 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.192049 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.214316 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.236882 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.255638 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.275892 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.294658 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.315327 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.333940 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.353206 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.397702 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.417440 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.435853 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.455759 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.473971 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.493314 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.530241 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.549868 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.568643 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.587724 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.606614 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.625113 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.643266 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.661206 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.679961 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.697848 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.716077 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.771901 > Block submittal result: False (u'duplicate') Expected: True 2022-05-18 04:02:34.783986 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.790039 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.794969 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.800165 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.805135 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.809953 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.814591 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.819498 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.823984 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.828604 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.832924 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.837667 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.842029 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.846324 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.851084 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.855668 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.860495 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.865979 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.871004 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.875361 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.880172 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.884848 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.889344 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.893758 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.898027 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.902792 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.907235 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.916167 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.921214 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.926258 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.931236 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.936127 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.946012 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.951370 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.956743 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.961170 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.967098 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.971715 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.976859 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.981491 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.986657 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.991086 trying to punish a share by mining a low-diff share 2022-05-18 04:02:34.996267 trying to punish a share by mining a low-diff share 2022-05-18 04:02:37.191389 Received good share: diff=4.29e+06 hash=03f24593b4669153e0efaca0072789ebb97579debf2d11d58cf6071a277ee0dc miner=MXEhFonuGD4E3au65DhGdhaGbjTXRCv6bx 2022-05-18 04:02:38.912911 P2Pool: 17428 shares in chain (17433 verified/17433 total) Peers: 6 (3 incoming) 2022-05-18 04:02:38.913066 Local: 144GH/s in last 10.0 minutes Local dead on arrival: ~6.9% (5-9%) Expected time to share: 55.5 seconds 2022-05-18 04:02:38.913118 Shares: 3629 (116 orphan, 214 dead) Stale rate: ~9.1% (8-11%) Efficiency: ~97.3% (96-99%) Current payout: (0.2402)=0.2402 LTC 2022-05-18 04:02:38.913172 Pool: 577GH/s Stale rate: 6.6% Expected time to block: 1.4 days 2022-05-18 04:02:40.097941 GOT SHARE! ltc1q7cl9ynm8pqq2ad636t47cplwkpf79ryrp6f734.D72HF3iYJa4hrA8uuBgKFSGw5U3LKppWPg 4aa093d7 prev 277ee0dc age 2.77s 2022-05-18 04:02:40.104149 Received good share: diff=1.30e+08 hash=5dfdb1b14c00cbce95d39a61c46ac069cf7eb3c1c7526516701ea7b64aa093d7 miner=ltc1q7cl9ynm8pqq2ad636t47cplwkpf79ryrp6f734 2022-05-18 04:02:40.112588 New work! Share diff: 2002.24 Block value: 12.50 LTC (9 tx, 1 kB) 2022-05-18 04:02:51.592299 Received good share: diff=1.31e+08 hash=b856506c4253004220fdae9159bd484fe34e08b99de0277a6bab1d6d5ff7f396 miner=LMNsP1rGvVxHfkkWrnYjdBs52zqvKqaNhR 2022-05-18 04:02:51.605279 New work! Share diff: 2002.20 Block value: 12.55 LTC (54 tx, 55 kB) 2022-05-18 04:03:06.985856 Got new merged mining work! 2022-05-18 04:03:06.995706 New work! Share diff: 2002.20 Block value: 12.55 LTC (69 tx, 68 kB) 2022-05-18 04:03:08.915865 P2Pool: 17430 shares in chain (17435 verified/17435 total) Peers: 6 (3 incoming) 2022-05-18 04:03:08.916017 Local: 145GH/s in last 10.0 minutes Local dead on arrival: ~7.1% (5-9%) Expected time to share: 55.3 seconds 2022-05-18 04:03:08.916069 Shares: 3630 (116 orphan, 214 dead) Stale rate: ~9.1% (8-11%) Efficiency: ~97.3% (96-99%) Current payout: (0.2413)=0.2413 LTC 2022-05-18 04:03:08.916122 Pool: 577GH/s Stale rate: 6.6% Expected time to block: 1.4 days

LITECOIND WEST US NODE

2022-05-18T03:59:53Z CreateNewBlock(): block weight: 469426 txs: 255 fees: 2999396 sigops: 4325 MWEB weight: 0 2022-05-18T04:00:08Z CreateNewBlock(): block weight: 522944 txs: 274 fees: 3831192 sigops: 4530 MWEB weight: 0 2022-05-18T04:00:23Z CreateNewBlock(): block weight: 628743 txs: 287 fees: 3951520 sigops: 5166 MWEB weight: 0 2022-05-18T04:00:38Z CreateNewBlock(): block weight: 650816 txs: 298 fees: 4023585 sigops: 5198 MWEB weight: 0 2022-05-18T04:00:53Z CreateNewBlock(): block weight: 788483 txs: 312 fees: 4255159 sigops: 5637 MWEB weight: 0 2022-05-18T04:01:08Z CreateNewBlock(): block weight: 1063858 txs: 326 fees: 10552272 sigops: 5713 MWEB weight: 0 2022-05-18T04:01:23Z CreateNewBlock(): block weight: 1067472 txs: 331 fees: 10556782 sigops: 5729 MWEB weight: 0 2022-05-18T04:01:38Z CreateNewBlock(): block weight: 1091626 txs: 345 fees: 10778226 sigops: 6105 MWEB weight: 0 2022-05-18T04:01:53Z CreateNewBlock(): block weight: 1099335 txs: 353 fees: 10853866 sigops: 6149 MWEB weight: 0 2022-05-18T04:02:08Z CreateNewBlock(): block weight: 1355117 txs: 364 fees: 18160970 sigops: 6202 MWEB weight: 0 2022-05-18T04:02:23Z CreateNewBlock(): block weight: 1530409 txs: 377 fees: 22145217 sigops: 6623 MWEB weight: 0 2022-05-18T04:02:34Z UpdateTip: new best=25f2aa3844cc9401c0f4706ad921f0b543cc376c6aefabe791183c2fc6e41c37 height=2264787 version=0x20000010 log2_work=75.010290 tx=115822343 date='2022-05-18T04:02:23Z' progress=1.000000 cache=16.0MiB(102865txo) 2022-05-18T04:02:34Z CreateNewBlock(): block weight: 8193 txs: 9 fees: 11097 sigops: 417 MWEB weight: 0 2022-05-18T04:02:50Z CreateNewBlock(): block weight: 229743 txs: 54 fees: 4711451 sigops: 586 MWEB weight: 0 2022-05-18T04:03:05Z CreateNewBlock(): block weight: 285580 txs: 69 fees: 5287374 sigops: 815 MWEB weight: 0 2022-05-18T04:03:20Z CreateNewBlock(): block weight: 401166 txs: 84 fees: 7696053 sigops: 1187 MWEB weight: 0 2022-05-18T04:03:35Z CreateNewBlock(): block weight: 529863 txs: 91 fees: 7748754 sigops: 2468 MWEB weight: 0 2022-05-18T04:03:50Z CreateNewBlock(): block weight: 534044 txs: 97 fees: 7757735 sigops: 2476 MWEB weight: 0 2022-05-18T04:04:05Z CreateNewBlock(): block weight: 537938 txs: 103 fees: 7765317 sigops: 2488 MWEB weight: 0 2022-05-18T04:04:20Z CreateNewBlock(): block weight: 546598 txs: 112 fees: 7773882 sigops: 2536 MWEB weight: 0 2022-05-18T04:04:35Z CreateNewBlock(): block weight: 570011 txs: 126 fees: 7871755 sigops: 2870 MWEB weight: 0 2022-05-18T04:04:50Z CreateNewBlock(): block weight: 589353 txs: 138 fees: 7933393 sigops: 2957 MWEB weight: 0 2022-05-18T04:05:05Z CreateNewBlock(): block weight: 604001 txs: 149 fees: 7975146 sigops: 2998 MWEB weight: 0

DOGECOIND WEST US NODE

2022-05-18 04:01:32 receive version message: /blockchair.com/dogecoin/nodes/: version 70015, blocks=4228992, us=20.150.137.205:22556, peer=1282 2022-05-18 04:01:32 keypool reserve 65 2022-05-18 04:01:32 keypool return 65 2022-05-18 04:01:33 keypool reserve 65 2022-05-18 04:01:33 keypool return 65 2022-05-18 04:01:34 keypool reserve 65 2022-05-18 04:01:34 keypool return 65 2022-05-18 04:01:35 keypool reserve 65 2022-05-18 04:01:35 keypool return 65 2022-05-18 04:01:36 keypool reserve 65 2022-05-18 04:01:36 keypool return 65 2022-05-18 04:01:37 keypool reserve 65 2022-05-18 04:01:37 keypool return 65 2022-05-18 04:01:38 keypool reserve 65 2022-05-18 04:01:38 keypool return 65 2022-05-18 04:01:39 keypool reserve 65 2022-05-18 04:01:39 keypool return 65 2022-05-18 04:01:40 keypool reserve 65 2022-05-18 04:01:40 keypool return 65 2022-05-18 04:01:41 keypool reserve 65 2022-05-18 04:01:41 keypool return 65 2022-05-18 04:01:42 keypool reserve 65 2022-05-18 04:01:42 keypool return 65 2022-05-18 04:01:43 keypool reserve 65 2022-05-18 04:01:43 keypool return 65 2022-05-18 04:01:44 keypool reserve 65 2022-05-18 04:01:44 keypool return 65 2022-05-18 04:01:46 keypool reserve 65 2022-05-18 04:01:46 keypool return 65 2022-05-18 04:01:47 keypool reserve 65 2022-05-18 04:01:47 keypool return 65 2022-05-18 04:01:48 keypool reserve 65 2022-05-18 04:01:48 keypool return 65 2022-05-18 04:01:49 keypool reserve 65 2022-05-18 04:01:49 keypool return 65 2022-05-18 04:01:50 keypool reserve 65 2022-05-18 04:01:50 keypool return 65 2022-05-18 04:01:51 keypool reserve 65 2022-05-18 04:01:51 keypool return 65 2022-05-18 04:01:52 keypool reserve 65 2022-05-18 04:01:52 keypool return 65 2022-05-18 04:01:53 keypool reserve 65 2022-05-18 04:01:53 keypool return 65 2022-05-18 04:01:54 keypool reserve 65 2022-05-18 04:01:54 keypool return 65 2022-05-18 04:01:55 keypool reserve 65 2022-05-18 04:01:55 keypool return 65 2022-05-18 04:01:56 keypool reserve 65 2022-05-18 04:01:56 keypool return 65 2022-05-18 04:01:57 keypool reserve 65 2022-05-18 04:01:57 keypool return 65 2022-05-18 04:01:58 keypool reserve 65 2022-05-18 04:01:58 keypool return 65 2022-05-18 04:01:59 keypool reserve 65 2022-05-18 04:01:59 keypool return 65 2022-05-18 04:02:00 keypool reserve 65 2022-05-18 04:02:00 keypool return 65 2022-05-18 04:02:01 keypool reserve 65 2022-05-18 04:02:01 keypool return 65 2022-05-18 04:02:01 CreateNewBlock(): total size: 199272 block weight: 797088 txs: 106 fees: 10465153860 sigops 1200 2022-05-18 04:02:02 keypool reserve 65 2022-05-18 04:02:02 keypool return 65 2022-05-18 04:02:03 keypool reserve 65 2022-05-18 04:02:03 keypool return 65 2022-05-18 04:02:04 keypool reserve 65 2022-05-18 04:02:04 keypool return 65 2022-05-18 04:02:05 keypool reserve 65 2022-05-18 04:02:05 CreateNewBlock(): total size: 206038 block weight: 824152 txs: 110 fees: 10725913860 sigops 1224 2022-05-18 04:02:05 keypool return 65 2022-05-18 04:02:08 keypool reserve 65 2022-05-18 04:02:08 keypool return 65 2022-05-18 04:02:09 keypool reserve 65 2022-05-18 04:02:09 keypool return 65 2022-05-18 04:02:10 keypool reserve 65 2022-05-18 04:02:10 keypool return 65 2022-05-18 04:02:11 keypool reserve 65 2022-05-18 04:02:11 keypool return 65 2022-05-18 04:02:12 keypool reserve 65 2022-05-18 04:02:12 keypool return 65 2022-05-18 04:02:13 keypool reserve 65 2022-05-18 04:02:13 keypool return 65 2022-05-18 04:02:14 keypool reserve 65 2022-05-18 04:02:14 keypool return 65 2022-05-18 04:02:15 keypool reserve 65 2022-05-18 04:02:15 keypool return 65 2022-05-18 04:02:16 keypool reserve 65 2022-05-18 04:02:16 keypool return 65 2022-05-18 04:02:17 keypool reserve 65 2022-05-18 04:02:17 keypool return 65 2022-05-18 04:02:18 keypool reserve 65 2022-05-18 04:02:18 keypool return 65 2022-05-18 04:02:19 keypool reserve 65 2022-05-18 04:02:19 keypool return 65 2022-05-18 04:02:20 keypool reserve 65 2022-05-18 04:02:20 keypool return 65 2022-05-18 04:02:21 keypool reserve 65 2022-05-18 04:02:21 keypool return 65 2022-05-18 04:02:22 keypool reserve 65 2022-05-18 04:02:22 keypool return 65 2022-05-18 04:02:23 keypool reserve 65 2022-05-18 04:02:23 keypool return 65 2022-05-18 04:02:24 keypool reserve 65 2022-05-18 04:02:24 keypool return 65 2022-05-18 04:02:25 keypool reserve 65 2022-05-18 04:02:25 keypool return 65 2022-05-18 04:02:26 keypool reserve 65 2022-05-18 04:02:26 keypool return 65 2022-05-18 04:02:27 keypool reserve 65 2022-05-18 04:02:27 keypool return 65 2022-05-18 04:02:28 keypool reserve 65 2022-05-18 04:02:28 keypool return 65 2022-05-18 04:02:29 keypool reserve 65 2022-05-18 04:02:29 keypool return 65 2022-05-18 04:02:30 keypool reserve 65 2022-05-18 04:02:30 keypool return 65 2022-05-18 04:02:31 keypool reserve 65 2022-05-18 04:02:31 keypool return 65 2022-05-18 04:02:32 keypool reserve 65 2022-05-18 04:02:32 keypool return 65 2022-05-18 04:02:33 keypool reserve 65 2022-05-18 04:02:33 keypool return 65 2022-05-18 04:02:34 keypool reserve 65 2022-05-18 04:02:34 keypool return 65 2022-05-18 04:02:35 keypool reserve 65 2022-05-18 04:02:35 keypool return 65 2022-05-18 04:02:36 keypool reserve 65 2022-05-18 04:02:36 keypool return 65 2022-05-18 04:02:37 keypool reserve 65 2022-05-18 04:02:37 keypool return 65 2022-05-18 04:02:38 keypool reserve 65 2022-05-18 04:02:38 keypool return 65 2022-05-18 04:02:39 keypool reserve 65 2022-05-18 04:02:39 keypool return 65 2022-05-18 04:02:40 keypool reserve 65 2022-05-18 04:02:40 keypool return 65 2022-05-18 04:02:41 keypool reserve 65 2022-05-18 04:02:41 keypool return 65 2022-05-18 04:02:42 keypool reserve 65 2022-05-18 04:02:42 keypool return 65 2022-05-18 04:02:43 keypool reserve 65 2022-05-18 04:02:43 keypool return 65 2022-05-18 04:02:44 keypool reserve 65 2022-05-18 04:02:44 keypool return 65 2022-05-18 04:02:45 keypool reserve 65 2022-05-18 04:02:45 keypool return 65 2022-05-18 04:02:46 keypool reserve 65 2022-05-18 04:02:46 keypool return 65 2022-05-18 04:02:47 keypool reserve 65 2022-05-18 04:02:47 keypool return 65 2022-05-18 04:02:48 keypool reserve 65 2022-05-18 04:02:48 keypool return 65 2022-05-18 04:02:49 keypool reserve 65 2022-05-18 04:02:49 keypool return 65 2022-05-18 04:02:50 keypool reserve 65 2022-05-18 04:02:50 keypool return 65 2022-05-18 04:02:51 keypool reserve 65 2022-05-18 04:02:51 keypool return 65 2022-05-18 04:02:52 keypool reserve 65 2022-05-18 04:02:52 keypool return 65 2022-05-18 04:02:53 keypool reserve 65 2022-05-18 04:02:53 keypool return 65 2022-05-18 04:02:54 keypool reserve 65 2022-05-18 04:02:54 keypool return 65 2022-05-18 04:02:55 keypool reserve 65 2022-05-18 04:02:55 keypool return 65 2022-05-18 04:02:56 keypool reserve 65 2022-05-18 04:02:56 keypool return 65 2022-05-18 04:02:57 keypool reserve 65 2022-05-18 04:02:57 keypool return 65 2022-05-18 04:02:58 keypool reserve 65 2022-05-18 04:02:58 keypool return 65 2022-05-18 04:02:59 keypool reserve 65 2022-05-18 04:02:59 keypool return 65 2022-05-18 04:03:00 keypool reserve 65 2022-05-18 04:03:00 keypool return 65 2022-05-18 04:03:01 CreateNewBlock(): total size: 220315 block weight: 881260 txs: 121 fees: 12872580136 sigops 1340 2022-05-18 04:03:01 keypool reserve 65 2022-05-18 04:03:01 keypool return 65 2022-05-18 04:03:02 keypool reserve 65 2022-05-18 04:03:02 keypool return 65 2022-05-18 04:03:03 keypool reserve 65 2022-05-18 04:03:03 keypool return 65 2022-05-18 04:03:04 keypool reserve 65 2022-05-18 04:03:04 keypool return 65 2022-05-18 04:03:05 keypool reserve 65 2022-05-18 04:03:05 keypool return 65 2022-05-18 04:03:06 keypool reserve 65 2022-05-18 04:03:06 CreateNewBlock(): total size: 220575 block weight: 882300 txs: 122 fees: 13170900136 sigops 1348 2022-05-18 04:03:06 keypool return 65 2022-05-18 04:03:08 keypool reserve 65 2022-05-18 04:03:08 keypool return 65

This duplicate block submission error has occurred while merge mining since our upgrade on 5/15/22. Reference blocks:

In addition and possibly related, P2Pool has now experienced 2 orphaned Litecoin blocks in the last week since our upgrade to this code. I've been P2Pool mining for 4 years and had never seen an orphaned P2Pool block until applying this update.

URGENT -- Please let me know if I can provide any additional information for troubleshooting. Thank you!

P2POOL WEST US NODE.txt LITECOIND WEST US NODE.txt DOGECOIND WEST US NODE.txt

northern-lites commented 2 years ago

@Azskygod this is not good for your pool... The code change for MWEB is quite simple, on getwork we ask the node for the MWEB hex if defined as a softfork required in the network config. We store that in a buffer, and on submit block we append the MWEB object to the block. As of today, MWEB is not activated, so that object doesn't exist. So until Friday 20/5 at around 0330 UTC the MWEB object is empty, meaning the only real difference at the moment is around the "getwork" code. I'm happy to investigate your issue, but would need some info. Which version of p2pool were you running before this? I see that the previous commit is titled "Allow for new AUX POW" , could it be that code causing the issue? What changes are you making locally? Was it merged ok? Can we see that?

Azskygod commented 2 years ago

@northern-lites Thanks for the quick reply.

We were running the previous commit and successfully merge mining LTC/DOGE. We upgraded our Litecoind to 0.21.2 and our P2Pool on 5/15/22 with the latest commit.

Our version is listed as -dirty only because we're using a custom GUI polling the standard P2Pool API. We've made no local changes to the current P2Pool commit or to the Dogecoind 1.14.5 node that worked previously.

Issue #61 may also be relevant. I will be monitoring this issue closely since this code is now in production on 3 public nodes.

Thanks for your pull and help!

Azskygod commented 2 years ago

@northern-lites the previous working commit we ran was 16.0-192-g6dac42e.

northern-lites commented 2 years ago

@Azskygod there was a pull request (https://github.com/jtoomim/p2pool/pull/51) previous to this one which was which was newer than the version you had. I believe your issue and https://github.com/jtoomim/p2pool/issues/61 are related to the typo in p2pool/work.py line 472 sub_meth = aux_work['merged_proxy'].rpc.getauxblock should be: sub_meth = aux_work['merged_proxy'].rpc_getauxblock

Are you able to test this?

Azskygod commented 2 years ago

@northern-lites You are correct. I found and fixed the typo in our local work.py line 472 as suggested. Testing now. I'll update this issue once we successfully merge mine an AuxPoW block or another error occurs. Thanks for your prompt replies!

Azskygod commented 2 years ago

@northern-lites We successfully mined an AuxPoW block today with this typo corrected. Thank you!

https://dogechain.info/tx/1663149009df84a487bbed78c04fd35ca352cf1cbee6f9b5b5a531d65749f643

Unfortunately, P2Pool is now logging intermittent loss of connectivity to Litecoind after MWEB activation and the sharechain contains mostly shares with Version (hex): 20000000 instead of the expected 20000010.

This is the same problem as issue #62, which results in mining rigs intermittently being disconnected from P2Pool when it occurs.

Logs available if needed.

northern-lites commented 2 years ago

Unfortunately, P2Pool is now logging intermittent loss of connectivity to Litecoind after MWEB activation and the sharechain contains mostly shares with Version (hex): 20000000 instead of the expected 20000010.

Version is controlled by the node, and only the bits are set for signaling/activation. (Now that MWEB is activated these version bits are not set).

kr1z1s commented 2 years ago

That's not problem. We necessarily parse ALL transactions. But we don't have MWEB transaction processing.