Coinbase transaction parser#1391
Conversation
|
idea for the network detection, why not use the active pools mining address? assuming the user is actually configured correctly, their address will reveal which network the pool is on. |
|
@mutatrum please resolve conflicts |
|
love that! I was thinking about adding some solo-mining verification that checks if all coins go to the own address - like I had on the piaxe python code but it seems you are almost finished 🙌 |
Need to think how to show this on the front-end. Especially with pools like OCEAN that can have dozens of payout addresses. |
IMHO a real verficiation would need a % field that allows a certain value to not be sent to the own address because ckpool is solo mining with 2% fee. A more easy approach that would work without any settings (besides a "solo verification" checkbox) would be to check if the address is amongst the payout addresses and maybe just accept it on >95% or so. A little bit of a safety net, to prevent the biggest scams. edit: hmm ... or a checkbox on the stratum settings with just "Solo Pool" and enable a slight check automatically. This could be tuned later but just to make sure it's not complete scam. I would like that 🥰 IMHO this is important because every solo pool could steal some hashrate by just letting it mine on its own address now and then and nobody would ever notice |
54cb52a to
7492f0b
Compare
|
please resolve conflicts |
…coinbase-tx-parser
Resolved. Only thing I can't get to work is the sensitive-data attribute on the payout address. |
|
Please add demo data to system.service.ts |
|
Tested on Ocean:
Edit: I've reduced the number of decoded tx outputs to 6. This should cover most solo pools. If there are more outputs, they are still checked if it's the user's address, but they are not sent to the front-end. |
|
Also fixes #1446 |
…coinbase-tx-parser
8b6100a to
e959885
Compare
|
will be reviewed today |
Looking forward to it. Take note of this:
That'll save you some reviewing. I think that code is batlle-tested. |

This PR adds parsing of the coinbase transaction outputs. Needs testing on as many pools as possible.
It incorporates
segwit_address.cfrom pwuille andbase58.cfrom luke-jr. These are a big part of all the new code (558 lines). They are copied without any changes.One limitation is that the network (mainnet/testnet/signet) is not known, so if you mine on testnet/signet, the addresses are shown as mainnet. Suggestions welcome here.
The are shown on the dashboard, if the address matches the address part of the pool user, it's printed bold with a star:

It also works with the

sensitive-dataflag:If the payout is above 95%, it shows the pool fee, otherwise it will show the share percentage and a warning banner
Example log from solo ckpool (address masked, first output is the same as my pool address:
For the dashboard, the address abbreviation has changed to split the address in 4 segments, removing middle segments until it falls below a certain length. This was done after review by the bitcoin design community, which you can read the thread in the Bitcoin Design Discord at https://discord.com/channels/903125802726596648/1443584935305678878.
We came to this mechanism because that's also usable on the display and yields the best results for verification for all address types:
