Git Product home page Git Product logo

stratum-relay's Introduction

Stratum Relay

See the document stratum_relay.pdf to understand how it works.

The rest of documentation is in the code :)

It is designed for python3

WARNING: this is a proof-of-concept code in alpha state

Usage

strelay.py [-h] [-s POOL] [-t PORT] [-u USERNAME] [-a PASSWORD]
           [-l LISTEN] [-p LISTEN_PORT] [-c CONTROL] [-x CONTROL_PORT]
           [-o LOG] [-q] [-v VERBOSE]

optional arguments:
  -h, --help       show this help message and exit
  -s POOL          Hostname of stratum mining pool
  -t PORT          Port of stratum mining pool
  -u USERNAME      Username for stratum mining pool
  -a PASSWORD      Password for stratum mining pool
  -l LISTEN        IP to listen for incomming connections (miners)
  -p LISTEN_PORT   Port to listen on for incoming connections
  -c CONTROL       IP to listen for incomming control remote management
  -x CONTROL_PORT  Control port to listen for orders
  -o LOG           File to store logs
  -q               Enable quite mode, no stdout output
  -v VERBOSE       Verbose level from 0 to 4

Example:

python3 strelay.py -s anyscryptpool.foo -t 3333 -u 1BaE7aavLF17jj618QKYFc5x6NGxk7uBkC -a x -l 0.0.0.0 -p 3334 -c 127.0.0.1 -x 4444

The relay will listen on port 3334 until some miner connects. Then it will open a new connection with the origin pool.

You can use netcat or telnet to query statistics or control the relay on port 127.0.0.1:4444

Contact

Created and currently maintained by p4u p4u(at)dabax.net

Donation

BTC: 1BaE7aavLF17jj618QKYFc5x6NGxk7uBkC

Thanks ;)

stratum-relay's People

Contributors

barrystyle avatar kkkrackpot avatar p4u avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

stratum-relay's Issues

Ignores user/pass parameters during setpool query.

on one console:
python3 strelay.py -v 4
on another:
echo '{ "query":"setpool", "host":"pool.com", "port":"3333" }' | nc 127.0.0.1 2222

pointing a miner at :3333 on the machine functions as expected, using the default username of '14MQUGn97dFYHGxXwaHqoCX175b9fwYUMo' and password of 'd=1024'

however:
echo '{ "query":"setpool", "host":"pool.com", "port":"3333", "user":"username", "pass":"x" }' | nc 127.0.0.1 2222
and all variations of user, username, pass, passw etc - does not change the default username or password.

used this software extensively some time back, am i just missing something stupid? :)

extranonce subscribe implementation

Is it possible to implement extranonce subscribe suitable for nicehash? I have miners that don't support it and I am searching for a way to do that. May be filtering packets will do the work.

controlling the relay

hi, ive tried to communicate with the releay server over port 4444 as configured, but i cannot figure out what exactly the server expects, ive tried with jsonrpcclient but recieve {'error': 1}

example used:

getinfo()); echo "[/div]"; ?>

[ and ] used instead of html tag start/end

socket.error: [Errno 110] Connection timed out

[1420777421][error][pxy87488] pool is not responding, closing connections
[1420777422][warning][pxy87488] closing proxy
[1420777424][debug][proxy] removing proxy 140625070906960
Traceback (most recent call last):
File "strelay.py", line 139, in
pool = pool_connection.connect()
File "/home/apache/connection.py", line 20, in connect
self.conn.connect((self.ip, self.port))
socket.error: [Errno 110] Connection timed out

at long a connection with the pool close with an error

Trouble connecting through Autolykos2_AMD_Miner

Not sure this is an error or a duh, facepalm moment on my part.
Attempting to connect to herominers with the ergo Autolykos V2 miner in the title

Running arch linux with a modified version of
https://github.com/mhssamadani/Autolykos2_AMD_Miner
My version is located at
https://github.com/image28/Autolykos-cl-probability

Results
[2021-08-25 13:38:49][info][listener] waiting for new connections on 127.0.0.1:4444
[2021-08-25 13:38:49][info][listener] waiting for new connections on 0.0.0.0:3334
[2021-08-25 13:38:52][info][pxy00096] setting initial pool authorization to *****/***
[2021-08-25 13:38:52][info][listener] waiting for new connections on 0.0.0.0:3334
[2021-08-25 13:38:53][error][mng00096] cannot decode HTTP/1.1 200 OK
[2021-08-25 13:38:53][error][mng00096] HTTP/1.1 200 OK
Content-Type: text/plain
Content-Length: 20

stratum time is at least 58s in the future

ccminer connected via relay says like:

stratum time is at least 58s in the future

Without the relay everything seems Ok.
Besides, I have an NTP client running, so my system time should synchronize.

Hashrate

Hello @p4u
tell me please, how i can get hashrate of worker?

i know, i can call
echo '{ "query":"getshares" }' | nc 127.0.0.1 4444
but it return only shares, i don't know how convert shares to hashrate )

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.