NeoxaChain / kawpow-pool

GNU General Public License v2.0
12 stars 37 forks source link

Adding other Coins #15

Closed Recoyle2 closed 1 year ago

Recoyle2 commented 2 years ago

Trying to add other coins to pool. Running into this error. The coin api outputs html instead of json. Not sure what to do to fix this. Any help would be appreciated. Thanks.

SyntaxError: /home/pool/kawpow-pool/config.json: Unexpected token , in JSON at position 315 at JSON.parse (<anonymous>) at Object.Module._extensions..json (internal/modules/cjs/loader.js:987:27) at Module.load (internal/modules/cjs/loader.js:812:32) at Function.Module._load (internal/modules/cjs/loader.js:724:14) at Module.require (internal/modules/cjs/loader.js:849:19) at require (internal/modules/cjs/helpers.js:74:18) at Object.<anonymous> (/home/pool/kawpow-pool/libs/logger.js:4:16) at Module._compile (internal/modules/cjs/loader.js:956:30) at Object.Module._extensions..js (internal/modules/cjs/loader.js:973:10) at Module.load (internal/modules/cjs/loader.js:812:32)

Recoyle2 commented 2 years ago

I got past that, now having this issue.

TypeError: Expected String at decodeUnsafe (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:66:45) at Object.decode (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:109:18) at Object.decode (/home/pool/kawpow-pool/node_modules/bs58check/base.js:39:25) at Object.fromBase58Check (/home/pool/kawpow-pool/node_modules/stratum-pool/node_modules/bitcoinjs-lib/src/address.js:40:29) at Object.exports.createGeneration (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/transactions.js:93:62) at new BlockTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/blockTemplate.js:50:35) at JobManager.processTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/jobManager.js:164:28) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/pool.js:539:62 at itemFinished (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:155:36) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:171:17

mueller-webservice commented 2 years ago

@AlphaX-Projects Could you give a hint how to do that? I'm struggling with this for days now and would appreciate some help

Recoyle2 commented 2 years ago

@AlphaX-Projects Decided to just try your repo. Ended up with same issues.

SyntaxError: Unexpected token . in JSON at position 143 at JSON.parse (<anonymous>) at /home/pool/alphax-kawpow-server/init.js:82:32 at Array.forEach (<anonymous>) at buildPoolConfigs (/home/pool/alphax-kawpow-server/init.js:80:31) at init (/home/pool/alphax-kawpow-server/init.js:245:19) at Object.<anonymous> (/home/pool/alphax-kawpow-server/init.js:251:3) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:12)

mueller-webservice commented 2 years ago

@AlphaX-Projects that's exactly what I did to make it work too :) But thank you, this tells me I wasn't wrong implementing the if condition

Recoyle2 commented 2 years ago

@AlphaX-Projects that's exactly what I did to make it work too :) But thank you, this tells me I wasn't wrong implementing the if condition

where did you change the if command?

dogemackenzie commented 2 years ago

I tried @AlphaX-Projects your repo, and couldnt get stratum to start for Raven

mueller-webservice commented 2 years ago

@AlphaX-Projects that's exactly what I did to make it work too :) But thank you, this tells me I wasn't wrong implementing the if condition

where did you change the if command?

In the transaction.js of the stratum module

dogemackenzie commented 2 years ago

@mueller-webservice Ok i see transactions.js in ~/kawpow-pool/node_modules/stratum-pool/lib$

Were talking about this one correct? What line, where do we add? Thank you in advance, have been going nuts

dogemackenzie commented 2 years ago

https://rvn.ukrainepool.org - Ravencoin

https://neoxa.ukrainepool.org - Neoxa

https://hvq.ukrainepool.org - Hivecoin

Right, but your are talking about multiple servers in your example, a server per coin. This thread is not that, its to get more than 1 coin running on the stratum

dogemackenzie commented 2 years ago

TypeError: Expected String at decodeUnsafe (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:66:45) at Object.decode (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:109:18) at Object.decode (/home/pool/kawpow-pool/node_modules/bs58check/base.js:39:25) at Object.fromBase58Check (/home/pool/kawpow-pool/node_modules/bitcoinjs-lib/src/address.js:40:29) at Object.exports.createGeneration (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/transactions.js:93:62) at new BlockTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/blockTemplate.js:50:35) at JobManager.processTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/jobManager.js:164:28) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/pool.js:539:62 at itemFinished (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:155:36) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:171:17 [2022-10-01T18:49:44.665Z] [error] [system] [init.js] : PoolSpawner: Fork 7 died, spawning replacement worker... [2022-10-01T18:49:45.507Z] [debug] [system] [SwitchingSetup[:1]] : Loading last proxy state from redis [2022-10-01T18:49:45.529Z] [debug] [neoxa] [ShareProcessor [:0]] : Share processing setup with redis (127.0.0.1:6379) [2022-10-01T18:49:45.539Z] [debug] [ravencoin] [ShareProcessor [:0]] : Share processing setup with redis (127.0.0.1:6379)

Any suggestions. Issue isnt with the Daemon, i was able to resolve that, but it seems Im back to this error when I update the pool config for Ravencoin to "true"

What am Im missing, im sure its obvious for someone

dogemackenzie commented 2 years ago

I got past that, now having this issue.

TypeError: Expected String at decodeUnsafe (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:66:45) at Object.decode (/home/pool/kawpow-pool/node_modules/base-x/src/index.js:109:18) at Object.decode (/home/pool/kawpow-pool/node_modules/bs58check/base.js:39:25) at Object.fromBase58Check (/home/pool/kawpow-pool/node_modules/stratum-pool/node_modules/bitcoinjs-lib/src/address.js:40:29) at Object.exports.createGeneration (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/transactions.js:93:62) at new BlockTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/blockTemplate.js:50:35) at JobManager.processTemplate (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/jobManager.js:164:28) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/pool.js:539:62 at itemFinished (/home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:155:36) at /home/pool/kawpow-pool/node_modules/stratum-pool/lib/daemon.js:171:17

Did you resolve this?

dogemackenzie commented 2 years ago

@mueller-webservice Ok i see transactions.js in ~/kawpow-pool/node_modules/stratum-pool/lib$

Were talking about this one correct? What line, where do we add? Thank you in advance, have been going nuts

@mueller-webservice Hi Friend, any guidance on this?

mueller-webservice commented 2 years ago

@dogemackenzie in the transaction.js replace this

    //strCommunityAutonomousAddress 10% of coinbase
    var strCommunityAutonomousAddress       = rpcData.CommunityAutonomousAddress;
    var strCommunityAutonomousAddressHash   = bitcoin.address.fromBase58Check(strCommunityAutonomousAddress).hash;
        tx.addOutput(
        scriptCompile(strCommunityAutonomousAddressHash),
        Math.floor(rpcData.CommunityAutonomousValue)
    );

with this

    //strCommunityAutonomousAddress 10% of coinbase
    if (rpcData.CommunityAutonomousAddress !== undefined) {
        var strCommunityAutonomousAddress       = rpcData.CommunityAutonomousAddress;
        }
    if (rpcData.CommunityAutonomousAddressHash !== undefined) {
        var strCommunityAutonomousAddressHash   = bitcoin.address.fromBase58Check(strCommunityAutonomousAddress).hash;
        tx.addOutput(
            scriptCompile(strCommunityAutonomousAddressHash),
            Math.floor(rpcData.CommunityAutonomousValue)
        );
    }
dogemackenzie commented 2 years ago

Thank you friend. Really appreciate it

Recoyle2 commented 2 years ago

I finally got it working. Lots of circles, but eventually got it. DM me and I can try to help. My issue now is that the domain name doesn't work. Website works when going directly to ip:port but wont show on domain name. Made sure to open ports and still a no go. DNS is all setup and I know works. My brain is broken if anyone has a quick fix for me.

dogemackenzie commented 2 years ago

@ALL there is a bug in all of the kawpow sharediff submission, even on original one, you have to solve this before can run a 100% legit pool

How/Where do we fix the bug?

Recoyle2 commented 2 years ago

I finally got it working. Lots of circles, but eventually got it. DM me and I can try to help. My issue now is that the domain name doesn't work. Website works when going directly to ip:port but wont show on domain name. Made sure to open ports and still a no go. DNS is all setup and I know works. My brain is broken if anyone has a quick fix for me.

Sorry, didn't work. After the daemon updated the blocks, it broke. Will keep working.

dogemackenzie commented 2 years ago

I finally got it working. Lots of circles, but eventually got it. DM me and I can try to help. My issue now is that the domain name doesn't work. Website works when going directly to ip:port but wont show on domain name. Made sure to open ports and still a no go. DNS is all setup and I know works. My brain is broken if anyone has a quick fix for me.

Sorry, didn't work. After the daemon updated the blocks, it broke. Will keep working.

I was able to get multiple tokens running, and running pretty well. However...now im concerned with the Math issues being discussed by @mueller-webservice and @AlphaX-Projects....How do we fix?

dogemackenzie commented 2 years ago

@ALL Have any of you seen this before? I built out the server internally, everything works now thanks to everyones advice. I really appreciate it.

I built my internal set up on Ubuntu 22. No SSL since it was just a private pool. Everything worked, using ports 10001 to 10006 for two coins.

I proceeded to build it on Contabo, set up SSL. Site works 100%, however when connecting a miner, this is the message that I see. Im using the same settings on the test miner rig, that I used when the build was internal. Miner has been set to use SSL, or append --no-strict-ssl so it doesnt get hung up. The traffic does come in, but doesnt auth. Any ideas?

Malformed message from (unauthorized) [::ffff:IP]

UFW rules are in place. I can verify the port is open. I thought it was ipv6 or some kind of weird issue, but not sure.

dogemackenzie commented 2 years ago

mardock's pool and frontend works with 2 coins after modyfing transactions.js. Only thing is that it needs frontend modification to show both pools

Thats what I did. I was recommended to add a line to the transaction.js, and then started working. However...I cant connect my miners.

I get this

Malformed message from (unauthorized) [::ffff:IP]

dogemackenzie commented 2 years ago

Lol, NVM, was IPS getting in my way from connecting. Did a test, and temp turn off IPS at my router, bingo. Forget it was doing 2 way IPS.

@AlphaX-Projects I tested your stratum server as well. Just dropped it in place of the current one, no issues.

dogemackenzie commented 2 years ago

Was my firewall doing 2 way IPS. That was the issue, nothing wrong with the server, or my mining config. Was just weird.

dogemackenzie commented 2 years ago

@mueller-webservice wow, your frontend work on your site is really nice brother. You were really plugging away at it. Im inspired, dont know where to start, but inspired

mueller-webservice commented 2 years ago

@mueller-webservice wow, your frontend work on your site is really nice brother. You were really plugging away at it. Im inspired, dont know where to start, but inspired

thx mate. It was a lot of work but I'm currently redesigning from scratch. The frontend code in this repo is completely bloated so I recommend doing the same. (we digress)

dogemackenzie commented 2 years ago

@mueller-webservice Hi friend, another question if you dont mind. I had issues compiling 2 Daemons.

Is there a guide on how to install these from Source? I tried a few different methods that are tried and true for installing from source, but both of these I am unable to compile. I saw you have them compiled on your site, so just hoping to can point me. Thank you again.

dogemackenzie commented 2 years ago

Nice, i need to compile hivecoin. It gave me issues. That and Sato as well

dogemackenzie commented 2 years ago

My guide that i gave you can help you. Same process as for neoxa :) just don`t build db4 from contrib folder. Skip to ./autogen.sh, export db4 ..., and ./configure ..., then "make -j(threads number that you have on vm)" ex: make -j12

Then add the coin json in COINS folder, add the coin json in pool_configs and make folder ~/.hive and add hive.conf. Change the mining ports so it wont conflict with your other coins mining ports. Also make sure rpcport in hive.conf is the same as in hivecoin.json from pool_configs.

example for ~/.hive/hive.conf

rpcuser= rpcpassword= server=1 daemon=1 rpcport= miningaddress= uacomment=

when generating username and password for RPC you can use whatever username you want. Ex:

python3 ~/src/Hivecoin/share/rpcuser/rpcuser.py hvq

or

python3 ~/src/Neoxa/share/rpcuser/rpcuser.py neox

Output should look like this:

String to be appended to hive.conf: rpcauth=hvq:382368d432a02184e9746891b3b72$72fd62c2cfb591874313fuhfh12a835b6194f8807aadacf0f23dbd1236 Your password: XdB27346fg9q83gf3gfqgweb0lZ3cWfHC5TEXdm2E=

use rpcuser=hvq and rpcpassword=Generated password

Ill give that a try today. Thank you sir

dogemackenzie commented 2 years ago

No worries :) Good luck.

So I was able to build Hive, skipping the db4 build was the trick for that.

However for Sato, it wont compile, errors out for me. Have you tried to compile Sato?

dogemackenzie commented 2 years ago

permissions denied, but if I run as sudo, its goes, but fails at the end. Id have to run it again to get the exact error, but if you have time, maybe you can try to compile it?

dogemackenzie commented 2 years ago

Im using this

https://github.com/Satoex/Sato

The Satoverse one asked for Git login

dogemackenzie commented 2 years ago

chmod 777 genbuild.sh

trying this now

dogemackenzie commented 2 years ago

Wait, wtf. Are you saying Ive been loading the wrong project?? Son of a .....

dogemackenzie commented 2 years ago

Lol, Oh man....thank you sir.

dogemackenzie commented 2 years ago

Btw, have you compiled Renecoin yet? I have it working, but hasnt sync'd. I thought it was firewall, but its not that. Added peers, I can see it get peer info, but no sync. Let me know if youve tried it yet

dogemackenzie commented 2 years ago

Btw, have you compiled Renecoin yet? I have it working, but hasnt sync'd. I thought it was firewall, but its not that. Added peers, I can see it get peer info, but no sync. Let me know if youve tried it yet

Be patient. It will get HEaders first then blocks :)

Just added Sato to my pool. It in sync tho

Nice, yes other daemons were pretty fast. Infact the Redecoin windows wallet fully sync'd in an hour, vs daemon has been sitting for days, thats what I meant. Will let it do its thing

dogemackenzie commented 2 years ago

33456 is what I just used

dogemackenzie commented 2 years ago

I think that was the issue, but not sure, will let it sync. What I noticed, when checking redecoin-cli getpeerinfo, it would show my IP as banned when using other ports, only 33456 the ban stopped. So we will see soon

dogemackenzie commented 2 years ago

I think that was the issue, but not sure, will let it sync. What I noticed, when checking redecoin-cli getpeerinfo, it would show my IP as banned when using other ports, only 33456 the ban stopped. So we will see soon

redecoin-cli getblockchaininfo and youll see the headers and blocks. Also you can start the pool with the coin "true" and youll see the % of sync

Yes correct, thats how I know its still at zero, its telling me that in the stratum read out. Ill see how it goes, will give it more time.

mueller-webservice commented 2 years ago

Guys, this is the wrong channel for discussions. You should talk on discord or somewhere.