ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 12, 2013, 06:29:10 PM |
|
Hey !
I'm trying to set up eloipool with the latest git release of litecoind.
I've got litecoind running, eloipool starts but it seems there is something wrong with the network id..
I've set eloipool to:
UpstreamNetworkId = b'\xFB\xC0\xB6\xDB'
which should be litecoin's network ID:
When I start eloipool i get in litecoinds logfile:
>>
accepted connection 127.0.0.1:48523 accepted connection 127.0.0.1:48524 send version message: version 60001, blocks=312567, us=1.2.3.4:9333, them=0.0.0.0:0, peer=127.0.0.1:48523 receive version message: version 60000, blocks=0, us=[::]:0, them=[::]:0, peer=127.0.0.1:48523
PROCESSMESSAGE MESSAGESTART NOT FOUND
<<<<
and eloipool gives me:
>>>
2013-03-12 19:28:51,853 merkleMaker CRITICAL Traceback (most recent call last): File "/home/user/eloipool/merklemaker.py", line 689, in run self.merkleMaker_I() File "/home/user/eloipool/merklemaker.py", line 679, in merkleMaker_I self.merkleMaker_II() File "/home/user/eloipool/merklemaker.py", line 645, in merkleMaker_II return self._updateMerkleTree() File "/home/user/eloipool/merklemaker.py", line 545, in _updateMerkleTree self._updateMerkleTree_I() File "/home/user/eloipool/merklemaker.py", line 509, in _updateMerkleTree_I r = self._updateMerkleTree_fromTS(TS) File "/home/user/eloipool/merklemaker.py", line 474, in _updateMerkleTree_fromTS MP = self._CallGBT(TS) File "/home/user/eloipool/merklemaker.py", line 324, in _CallGBT MP = access.getblocktemplate(self.GBTReq) File "/home/user/eloipool/bitcoinrpc/authproxy.py", line 100, in __call__ httpresp = self.__conn.getresponse() File "/usr/lib/python3.2/http/client.py", line 1052, in getresponse response.begin() File "/usr/lib/python3.2/http/client.py", line 346, in begin version, status, reason = self._read_status() File "/usr/lib/python3.2/http/client.py", line 308, in _read_status line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1") File "/usr/lib/python3.2/socket.py", line 287, in readinto return self._sock.recv_into(b) socket.timeout: timed out
<<<
so obviously litecoind is not responding..
Anyone got an idea what to change ?
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
dreamwatcher
Legendary
Offline
Activity: 1064
Merit: 1000
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 12, 2013, 09:44:00 PM |
|
You will need to find or write a scrypt module to work with eloipool. Luke-jr is not a fan of the alt coins, so do not count on him to release a scrypt update for eliopool. If you want to use stratum, a proper GBT patch for the litecoin daemon will need to be written, or released if already written. I have been working with eloipool to adapt it to the alt-coins, but it is not my primary project at the moment. ![Wink](https://bitcointalk.org/Smileys/default/wink.gif)
|
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 12, 2013, 09:49:06 PM |
|
Hey dreamwatcher,
thanks for your answer, I'm aware of luke being no fan of alt coins, i tried eloipool once with bitcoins and liked it very much because it is written in python and i know some basic steps in python.
is there other pool software available which can be used "out-of-the-box" with litecoind ? preferably also written in python ?
frontend is not needed, I'll come up with that myself, just a good backend, in python or c++.
thanks
oc
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
dreamwatcher
Legendary
Offline
Activity: 1064
Merit: 1000
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 01:27:49 AM |
|
Although a bit on the older side..The old work horse pushpool does have a couple of scrypt based coin forks. Artforz fork originally written for Tenebrix https://github.com/ArtForz/pushpoolalexhz's fork with a recent commit by CryptoManiac which was in general for scrypt based coins. https://github.com/alexhz/pushpool It has been awhile since I have experimented with scrypt based pushpool. For the most part I have been trying to get stratum support for scrypt coins when I have worked on scrypt based pooling. I would try alexhz'a fork first, the worst that could happen is that it wont work. There are a number of litecoin pools out there and I suspect they are using some form of these forks. I might start experimenting with pool software again over the next few days. However there are quite a few litecoin pools out there and after the DDoS problems coinotron has had lately, I am a bit gun shy about attempting a Novacoin pool. Getting some alt-coin pools going has been on my list for some time. It just seems the cryptocoin explorer has a tendency to push those projects down the list... ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif)
|
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 03:59:33 PM |
|
Hey dream,
I tried alexhz's fork, compiled it, installed it and ran it against the recent git litecoind
Both daemons run, they also connect, my client also connects but always solves the same work..
In the mysql-db there is also aways the same "solution" saved, as if the pool always "sends the same question"..
I'll try further, maybe its not working correctly with litecoind.. Novacoin might also be interesting, or Terracoin..
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 08:28:30 PM |
|
Got it working fine now, it just seems that pushpool has no vardiff integrated ..
Does someone know of a patch ?
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
dreamwatcher
Legendary
Offline
Activity: 1064
Merit: 1000
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 09:28:10 PM |
|
I do not know of a patch, but variable difficulty is one of the things I have looked in to. It did not appear that it would be that hard to implement. I was thinking of a non-registered login where miners would use whatever payout address they want as the username and the password would be the difficulty the miner wanted.Perhaps coded like Bitparking pools (d=xx) anything else in the password field would just be ignored. In the sever.c code it is fairly easy to find and enable/disable the password/username check and/or add whatever code you wanted to run at miner login. /* password database authentication check */ pass_db = pwdb_lookup(user); if (!pass_db || (strcmp(pass, pass_db) && *pass_db != '\0')) goto out;
rc = true; strncpy(username_out, user, 64); username_out[64] = 0;
out: free(pass_db); free(bin); free(t_type); free(t_b64); free(t_userpass); return rc;
Perhaps a check to make sure the address is a valid address for the chain, then place the payout address in the pool_worker database along with the password(difficulty desired). One could just as easy use a registered system and add a difficulty field to the pool_worker table. Either way, the simplicity of the pushpool code, makes alterations easier then with some of the newer pool software. Quick hint: if using the native blkmond for long poll trips, there are two places in the blkmond code that directly contain and use the "magic" number for the chain: def got_data(self): while True: if len(self.recvbuf) < 4: return if self.recvbuf[:4] != "\xFC\xC1\xB7\xDC": raise ValueError("got garbage %s" % repr(self.recvbuf)) if self.ver_recv < 209: if len(self.recvbuf) < 4 + 12 + 4: return
def send_message(self, message, pushbuf=False): if self.state != "connected" and not pushbuf: return print "send %s" % repr(message) command = message.command data = message.serialize() tmsg = "\xFC\xC1\xB7\xDC" tmsg += command tmsg += "\x00" * (12 - len(command)) tmsg += struct.pack("<I", len(data))
I sometimes think that the pool software developers purposely bury things like "magic numbers" instead of having them defined in the config file in order to make it more of a "challenge" to adapt the software to other coins.. ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) Some of the new daemons have a block notify feature that could be used to completely remove the need for a complex block monitor. I also found this simple little block monitor quite useful: #!/usr/bin/env python from jsonrpc.authproxy import AuthServiceProxy import sys import os
access = AuthServiceProxy("http://RPCUSER:RPCPASS@127.0.0.1:8332") blockcount = access.getblockcount() from time import sleep while(True): newcount = access.getblockcount() if newcount > blockcount: os.system("killall -s SIGUSR1 pushpoold") sys.stdout.write("B") sys.stdout.flush() blockcount = newcount sleep(1) else: sleep(0.1)
Thanks to metonymous Bitcointalk thread: https://bitcointalk.org/index.php?topic=8797.0
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 10:32:50 PM |
|
Like the origin, alexhz's fork uses 10s timer and SIGUSR1 as a trigger events to request new work template from upstream. Litecoind has getworkex integrated, so this daemon can work with unpatched litecoind, but blknotify script is required. I also found this simple little block monitor quite useful:
-blknotify option will be simplier and more reliable.
|
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 13, 2013, 11:02:07 PM |
|
Thanks a lot, I've got the block monitor script up an running, it willingly sends the signal when a new block is found on the network. blkmon was doing nothing :-/ Where in the code is difficulty defined ? All I see is EASY_TARGET in config.c .. Which is define EASY_TARGET "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000"
in original code. Would that need to be defined for each worker separately ?
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 14, 2013, 12:13:37 AM |
|
It's quite simple, and I have implementation of this feature for btc. I'll try to find my sources tomorrow.
|
|
|
|
gusti
Legendary
Offline
Activity: 1099
Merit: 1000
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 15, 2013, 12:16:53 PM |
|
OP, can you please reply to my PM's ? Thanks.
|
If you don't own the private keys, you don't own the coins.
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 15, 2013, 06:53:41 PM |
|
Balthazar, got that code for me ? Still looking for vardiff code
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 15, 2013, 07:36:40 PM |
|
Balthazar, got that code for me ? Still looking for vardiff code
Oh, I'm sorry because I forget about it. ![Embarrassed](https://bitcointalk.org/Smileys/default/embarrassed.gif) But I found the sources, and can send it to you. Give me your e-mail in PM. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
|
|
|
|
dreamwatcher
Legendary
Offline
Activity: 1064
Merit: 1000
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 31, 2013, 05:21:03 AM |
|
Like the origin, alexhz's fork uses 10s timer and SIGUSR1 as a trigger events to request new work template from upstream. Litecoind has getworkex integrated, so this daemon can work with unpatched litecoind, but blknotify script is required. I also found this simple little block monitor quite useful:
-blknotify option will be simplier and more reliable. You are 100% correct. I have been using the blocknotify option for a number of things, including some experiments with the explorers and tripping database updates.. Using blocknotify for pushpool I set blocknotify to run this script: #!/usr/bin/env python
import sys import os
os.system("killall -s SIGUSR1 pushpoold")
I seem to find more uses for blocknotify in every project I am working on... ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif)
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
March 31, 2013, 05:37:36 AM Last edit: March 31, 2013, 06:00:25 AM by Balthazar |
|
Using blocknotify for pushpool I set blocknotify to run this script: #!/usr/bin/env python
import sys import os
os.system("killall -s SIGUSR1 pushpoold")
I seem to find more uses for blocknotify in every project I am working on... ![Cheesy](https://bitcointalk.org/Smileys/default/cheesy.gif) This variant is acceptable only if pushpoold and bitcoind runned by the same account. Configurations like this not recommended for security reasons. The preferred option is: 1) run litecoind and pushpoold using separated accounts (I usually using accounts named like "litecoin" and "pushpool") 2) simple C program for notify event handling: #include <stdlib.h>
int main(void) { system("ps -ef | grep pushpoold | grep -v grep | awk '{print $2}' | xargs kill -s SIGUSR1 > /dev/null 2> /dev/null");
return 0; } gcc -o blocknotify blocknotify.c chown pushpool:pushpool ./blocknotify chmod ug+s ./blocknotify
and then in litecoin.conf: blocknotify='/opt/blocknotify'
|
|
|
|
ocminer (OP)
Legendary
Offline
Activity: 2688
Merit: 1240
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 12, 2013, 06:50:49 PM |
|
|
suprnova pools - reliable mining pools - #suprnova on freenet https://www.suprnova.cc - FOLLOW us @ Twitter ! twitter.com/SuprnovaPools
|
|
|
flound1129
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 26, 2013, 12:02:56 AM |
|
I tried it, can't get it to work. I'm currently hung up on the following error: Traceback (most recent call last): File "./eloipool.py", line 80, in <module> from bitcoin.txn import Txn File "/home/ltc/eloipool-litecoin/bitcoin/txn.py", line 146, in <module> _test() File "/home/ltc/eloipool-litecoin/bitcoin/txn.py", line 124, in _test assert t.txid == b"C\xeczW\x9fUa\xa4*~\x967\xadAVg'5\xa6X\xbe'R\x18\x18\x01\xf7#\xba3\x16\xd2" AssertionError
|
Multipool - Always mine the most profitable coin - Scrypt, X11 or SHA-256!
|
|
|
nearmiss
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
April 29, 2013, 02:59:30 PM |
|
I'm currently trying to get this implemented as well. I bypassed the failing tests for the moment, and the program seems to startup and listen for connections, but when trying to connect to the stratum port I get:
AttributeError: 'StratumServer' object has no attribute 'JobBytes'
Continuing to dig into it.
|
Profit-Switching Pool w/ Vardiff -> http://hashco.ws Optionally keep the alts we mine or auto-trade for BTC. In addition can be paid out in any of: 365, AC, BC, BTC, C2, CINNI, COMM, FAC, HBN, MINT, PMC, QRK, RDD, WC, XBC
|
|
|
costcoin
Newbie
Offline
Activity: 57
Merit: 0
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 23, 2013, 11:41:15 PM |
|
Someone found a solution which allows eloipool to work with litcoin? I can not believe that this is an impossible task!
|
|
|
|
Balthazar
Legendary
Offline
Activity: 3108
Merit: 1359
|
![](https://bitcointalk.org/Themes/custom1/images/post/xx.gif) |
August 24, 2013, 12:53:44 AM |
|
|
|
|
|
|