Pages:
Author

Topic: CKPOOL - Open source pool/proxy/passthrough/redirector/library in c for Linux - page 6. (Read 124185 times)

-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Might have a memory leak when running ckproxy. Had a Pi start acting up this morning after running fine for about 3 weeks. Turned out it ran out of free memory and the watchdog had trouble killing it and killed some system processes instead. Checked the other Pis and the ckproxy process was using high amounts of memory. Percentage-wise the memory on most of them had gone over 60%, where on a fresh start it's more around 6-7%.
There could well be, especially if you're running older code. Try running latest git if you haven't upgraded lately as the code has been dramatically updated. When time permits I'll do a more extensive search for memleaks with the proxy code.
newbie
Activity: 49
Merit: 0
Might have a memory leak when running ckproxy. Had a Pi start acting up this morning after running fine for about 3 weeks. Turned out it ran out of free memory and the watchdog had trouble killing it and killed some system processes instead. Checked the other Pis and the ckproxy process was using high amounts of memory. Percentage-wise the memory on most of them had gone over 60%, where on a fresh start it's more around 6-7%.

Edit: To note the Pi that locked up was also the one handling the highest hashrate, so that may be related. Since it ran out of memory while the lower hashrate Pis still had some free.
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
... Is there a way to prevent this switch from happening on a pool restart?
It's more a problem of knowing at what commit the ckpool programs are tested and working ...
As far as I know that is some time last year ...
The last tag is v0.9.4 2016-08-23 (for standard ckpool I run ded126d5 which is the same thing since there's no ckpool changes in between them and there's a deadlock some point after that and the workinfo changes after that can break ckdb shift processing and payouts)

The problem is that there's a collection of ckpool programs in there and they aren't all tested properly or at all (and at what version/commit):
Mining pool, standard proxy, passthru proxy, proxy node, remote node, redirector, bitmain's hidden ckpool api to manage ckpool programs directly.

This deadlock you mention, can you provide more info?
It's no longer relevant.
ckpool deadlocks talking to ckdb, he doesn't test his changes with ckdb ... i.e. Bitmain pays him to break ckdb ... often.
... and he doesn't even test the effects of his changes on all the other ckpool modules Tongue
newbie
Activity: 7
Merit: 0
... Is there a way to prevent this switch from happening on a pool restart?
It's more a problem of knowing at what commit the ckpool programs are tested and working ...
As far as I know that is some time last year ...
The last tag is v0.9.4 2016-08-23 (for standard ckpool I run ded126d5 which is the same thing since there's no ckpool changes in between them and there's a deadlock some point after that and the workinfo changes after that can break ckdb shift processing and payouts)

The problem is that there's a collection of ckpool programs in there and they aren't all tested properly or at all (and at what version/commit):
Mining pool, standard proxy, passthru proxy, proxy node, remote node, redirector, bitmain's hidden ckpool api to manage ckpool programs directly.

This deadlock you mention, can you provide more info?
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
... Is there a way to prevent this switch from happening on a pool restart?
It's more a problem of knowing at what commit the ckpool programs are tested and working ...
As far as I know that is some time last year ...
The last tag is v0.9.4 2016-08-23 (for standard ckpool I run ded126d5 which is the same thing since there's no ckpool changes in between them and there's a deadlock some point after that and the workinfo changes after that can break ckdb shift processing and payouts)

The problem is that there's a collection of ckpool programs in there and they aren't all tested properly or at all (and at what version/commit):
Mining pool, standard proxy, passthru proxy, proxy node, remote node, redirector, bitmain's hidden ckpool api to manage ckpool programs directly.
newbie
Activity: 49
Merit: 0
My setup has slush, kano, & solo.ckpool as proxies 0,1, & 2 respectively. Kano lost connectivity or restarted the pool a few hours ago and the proxies switched to it and stayed there for a few hours until I noticed and restarted them.

Code:
[2017-03-15 18:11:57.400] Proxy:{"current": 0, "active": 3, "total": 3}
[2017-03-15 18:12:34.834] Proxy 1:0 stratum+tcp://stratum.kano.is:3333 failed to read_socket_line in proxy_recv
[2017-03-15 18:12:34.834] Proxy 1:0 stratum+tcp://stratum.kano.is:3333 epoll hangup in proxy_recv
[2017-03-15 18:12:34.834] Proxy 1:stratum+tcp://stratum.kano.is:3333 failed, attempting reconnect
[2017-03-15 18:12:39.010] Found notify for new proxy 1:0 with enonce 159c0d5d nonce2len 8
[2017-03-15 18:12:39.010] Got updated subscribe for proxy 1
[2017-03-15 18:12:39.010] Upstream pool stratum+tcp://stratum.kano.is:3333 1 extranonce2 length 8, max proxy clients 4294967296
[2017-03-15 18:12:39.010] Stratifier setting active proxy to 1

Slush was still up and running fine the whole time judging by the logs. Is there a way to prevent this switch from happening on a pool restart?
newbie
Activity: 49
Merit: 0
Seems to be working great on RPi3 running 64bit OpenSuse Leap - https://en.opensuse.org/HCL:Raspberry_Pi3

instead of apt-get just run
Code:
  zypper in yasm autoconf libtool git
  zypper in --type pattern devel_basis

then follow the rest of the install instructions. Thanks ck!
newbie
Activity: 49
Merit: 0
Yep, this is an old 32 bit Pi. I'll give it a try on 64 bit model 3 with 64bit suse tomorrow and report back.
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
Tried to set up ckproxy on a Raspberry Pi. Threw these errors while making

Code:
stratifier.c: In function ‘read_userstats’:
stratifier.c:5126:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’
stratifier.c: In function ‘read_workerstats’:
stratifier.c:5179:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’
stratifier.c: In function ‘read_poolstats’:
stratifier.c:8487:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’

ckpool/proxy is 64bit only. Did you compile it on a 32 bit environment?
newbie
Activity: 49
Merit: 0
Tried to set up ckproxy on a Raspberry Pi. Threw these errors while making

Code:
stratifier.c: In function ‘read_userstats’:
stratifier.c:5126:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’
stratifier.c: In function ‘read_workerstats’:
stratifier.c:5179:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’
stratifier.c: In function ‘read_poolstats’:
stratifier.c:8487:2: warning: passing argument 1 of ‘json_get_int64’ from incompatible pointer type [enabled by default]
ckpool.h:371:6: note: expected ‘int64_t *’ but argument is of type ‘__time_t *’

Then when run it complains thusly
Code:
[2017-03-05 01:13:19.278] ckproxy stratifier ready
[2017-03-05 01:13:19.397] Invalid json line:1 col:14 pos:14 text: NULL string argument from generator.c send_subscribe:1485
[2017-03-05 01:13:19.400] Failed to json decode subscribe response in update_subscribe (null)
[2017-03-05 01:13:19.403] Invalid json line:1 col:4 pos:4 text: NULL string argument from generator.c send_diff:1251
[2017-03-05 01:13:19.406] Failed to json decode in update_diff
[2017-03-05 01:13:19.409] Invalid json line:1 col:4 pos:4 text: NULL string argument from generator.c send_notify:1278 with errno 11: Resource temporarily unavailable
[2017-03-05 01:13:19.412] Failed to json decode in update_notify
[2017-03-05 01:13:19.414] Invalid json line:1 col:4 pos:4 text: NULL string argument from generator.c send_diff:1251 with errno 11: Resource temporarily unavailable
[2017-03-05 01:13:19.417] Failed to json decode in update_diff

the NULL errors keep repeating every few seconds.

Is it a lost cause due to the yasm requirement?
hero member
Activity: 800
Merit: 1000
While trying to setup ckpool i needed a way to integrate ckpool with other pool frontends.

So here's my version written in python

https://github.com/ahmedbodi/PyCKDB/

ATM it only handles user authentication and share inserts for MPOS.

Tip Jar for anyone who finds it useful: 1D9sGeqx5TVzcCSdmiUqxtdqbc8puyVM9N

I'll try and keep it maintained and up to date

Ahmed

An update fixing the handling of the "BLOCK" commands and auto-creating workers in the db if the user already exists has been made

Ahmed
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
While trying to setup ckpool i needed a way to integrate ckpool with other pool frontends.

So here's my version written in python

https://github.com/ahmedbodi/PyCKDB/

ATM it only handles user authentication and share inserts for MPOS.

Tip Jar for anyone who finds it useful: 1D9sGeqx5TVzcCSdmiUqxtdqbc8puyVM9N

I'll try and keep it maintained and up to date

Ahmed
Thanks for that, I'm sure someone out there might find it quite helpful.
hero member
Activity: 800
Merit: 1000
While trying to setup ckpool i needed a way to integrate ckpool with other pool frontends.

So here's my version written in python

https://github.com/ahmedbodi/PyCKDB/

ATM it only handles user authentication and share inserts for MPOS.

Tip Jar for anyone who finds it useful: 1D9sGeqx5TVzcCSdmiUqxtdqbc8puyVM9N

I'll try and keep it maintained and up to date

Ahmed
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
...
Should he wish to continue contributing I would reinstate his write access but he said he wouldn't upstream his code anyway and I doubt he wants to contribute to my projects any more since I've effectively not been contributing to his ...
Oh! Silly me who thought the project was ckpool and ckdb.

Lulz - "reinstate"
You mean it was just you throwing a public tantrum at the time locking me out of 2 projects (ckpool and cgminer) and removing my privs in 2 irc channels?

I had already stated that I would only update the public git if paid to make changes.
Like you do for Bitmain for most of the changes you make.
I must do it for free?

Will and Bitmain/BitClub have paid (a lot) for most of your work in ckpool
... though my tiny contribution to you (of my own choice) of only about 120 BTC over the 2 years probably counts for nothing ... since you have ignored some changes I've requested ...
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
My IRC comments (all, none missing) that he calls "cascade of events" and "rage quitting" Smiley

11:50 <@kanoi> yeah I have for you for ages : ) just finally got bored with that : )

Then I got a notification popup about being removed from the 'so called' BitmainWarranty git (that said 11:52)
I didn't realise there was also a message for the main git - my email notifier only shows the last message subject each time it checks
My next 2 comments were, in reference to that hidden git I had access to revoked:

11:58 <@kanoi> lol
...
11:58 <@kanoi> don't even know the last time I looked at it Smiley
...
12:01 <@kanoi> well I have my own private of the main one coz the 3 that exist are silly - one for solo that never checks any effect it has on a real pool, one for Lightsword that has a whole bunch of closed source that I'd never go near, and one public that randomly doesn't work


In reference to ckdb no longer having support that he was so happy about:
12:03 <@kanoi> the one part that always works Cheesy
...
12:03 <@kanoi> actually there's about 5 but anyway Tongue
12:04 <@kanoi> (all of the others larger than me Tongue)
...
12:05 <@kanoi> yep - I don't consider lack of money a good reason to commit code that fails
...
12:06 <@kanoi> well choose one or the other Smiley
12:06 <@kanoi> s/and/or/ Smiley


Then I checked my email and found that I had been removed from the main git also back at 11:52, that has more code in it by me than him.
Thus since he removed my access to the public ckpool git and the irc channel being the #ckpool channel:
12:13 <@kanoi> oh lol it was both gits - well that means I've no reason to be in here Smiley
12:13 -!- kanoi [~kanoi@...] has left #ckpool []


After I left, I saw this in the #cgminer thread:
12:12 -!- mode/#cgminer [+o conman] by ChanServ
12:13 -!- mode/#cgminer [-o kanoi] by ChanServ

Meaning he'd taken away my IRC privs in #cgminer, and I found he'd also taken away my cgminer git access.
So I:
12:13 -!- kanoi [~kanoi@...] has left #cgminer []

So I went and created the #kano.is channel in my sig - since that's what I run, and monitor, the real pool, and have always run since I started it.

Thus the above comment:
https://bitcointalksearch.org/topic/m.17590873
-ck
legendary
Activity: 4088
Merit: 1631
Ruu \o/
I maintain two private gits of ckpool, one for the solo ckpool which includes code that I do not plan to make public as it is the only thing that separates solo ckpool from any other. The other private git has code that is funded privately from a BitmainWarranty representative but all the code eventually gets pushed upstream to the master ckpool git.

As Kano said, ckdb support for this project is now in limbo as it currently has no maintainer. He had intimated his dissatisfaction with my contribution to his pool and that he would no longer be upstreaming his ckdb changes to the master git so it seemed inappropriate for him to have write access to the ckpool git any more. Once I revoked that it led to a cascade of events with him rage quitting the #ckpool IRC channel which implied to me he no longer wanted to have anything to do with me and my projects so I revoked his IRC channel operator and cgminer access as well. Should he wish to continue contributing I would reinstate his write access but he said he wouldn't upstream his code anyway and I doubt he wants to contribute to my projects any more since I've effectively not been contributing to his and I suspect he harbours an awful lot of ill will towards me now.
legendary
Activity: 4634
Merit: 1851
Linux since 1997 RedHat 4
Please note that I am no longer a developer on this project.
I run my own private git, and because of that the project owner decided to remove my access to the project.
I was effectively the only developer of CKDB on this project, so that no longer has any support.
newbie
Activity: 22
Merit: 0
Has anyone tried using the raspberry pi zero as a proxy? I was thinking of attaching one to each of my miners so that I can use wifi to change the address it is pointed to without disrupting the miner. Will it be fast enough?

how do you intend to use wifi with the pi zero? you would need a wifi usb thing at least , because it doesn't have it on board iirc


I have some hats with extra usb ports and a built in wifi chip.

https://www.kickstarter.com/projects/1728237598/hubpiwi-raspberry-pi-zero-hub-with-wifi-no-cable-c/
sr. member
Activity: 473
Merit: 250
Sodium hypochlorite, acetone, ethanol
Has anyone tried using the raspberry pi zero as a proxy? I was thinking of attaching one to each of my miners so that I can use wifi to change the address it is pointed to without disrupting the miner. Will it be fast enough?

how do you intend to use wifi with the pi zero? you would need a wifi usb thing at least , because it doesn't have it on board iirc
newbie
Activity: 22
Merit: 0
Has anyone tried using the raspberry pi zero as a proxy? I was thinking of attaching one to each of my miners so that I can use wifi to change the address it is pointed to without disrupting the miner. Will it be fast enough?
Pages:
Jump to: