Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
aiostratum_proxy
is a Stratum Protocol proxy (ie cryptocurrency/mining) built using Python3. It was built to be a modern, code-concise, extensible, and fast replacement for existing aging Stratum Protocol proxy solutions & implementations.
asyncio
using async
/await
syntax)I built this on my own time, outside of my day job. If you find this mining proxy useful, donate to help continue development. I value my time.
Installation is simple:
pip install aiostratum-proxy
However, for an isolated and more robust installation, you should consider using Python virtual environments:
# this will create a directory 'containing' the Python3 virtual environment
python3 -m venv aiostratum_proxy
cd aiostratum_proxy
# this will install the aiostratum-proxy package
bin/pip install aiostratum-proxy
# verify the installation by checking the package version
bin/aiostratum-proxy --version
Installation creates a new command-line shortcut called aiostratum-proxy
; it has built-in command-line help, just run:
bin/aiostratum-proxy --help
A config file is needed for the proxy to run; you can generate one:
bin/aiostratum-proxy --generate-config > proxy-config.yaml
Open and edit the generated proxy-config.yaml
in a text editor. The config file's syntax is YAML (here's a good guide to YAML).
To run aiostratum-proxy
, pass it your edited config file:
bin/aiostratum-proxy --config proxy-config.yaml
aiostratum-proxy
was designed to be modular and extensible when it comes to coin and algorithm support. This is done via miner+pool protocol module pairs (more on this below).
Current support includes:
aiostratum_proxy.protocols.equihash.EquihashWorkerProtocol
aiostratum_proxy.protocols.equihash.EquihashPoolProtocol
aiostratum_proxy.protocols.stratum.StratumWorkerProtocol
aiostratum_proxy.protocols.stratum.StratumPoolProtocol
As you can see, it is possible for a protocol implementation (ie. both the worker & pool sides) to support multiple coins, assuming they share some common ancestry or have heavily borrowed technical decisions.
The terms 'Stratum' and 'Stratum Protocol' are used broadly (perhaps too much so) in the cryptocurrency ecosystem. The concept behind the Stratum protocol started with the specific desire to improve the efficiency of Bitcoin mining pools.
In time, the rise of altcoins demanded a similar approach to managing the communications between miners and pools. For whatever reason, most altcoins have tweaked the original Stratum spec to their needs, borrowing and learning from prior mistakes.
To add support for a new coin or algorithm, there are two options:
BasePoolProtocol
(to handle connections to pools) and BaseWorkerProtocol
(to handle incoming miner connections)For example, if you were implementing Monero support:
PYTHONPATH
to use it within your proxy YAML config fileaiostratum_proxy
! If so, you would place the new module alongside the existing Equihash implementation at aiostratum_proxy.protocols.monero
Community involvement is appreciated. Code review, pull requests for bug fixes & new protocols, reporting issues, spreading the word - all appreciated.
Community feedback on the following is appreciated.
mining.set_extranonce
supportPROXY
protocol supportFAQs
Python3 asyncio stratum protocol mining proxy
We found that aiostratum-proxy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.