Giter Site home page Giter Site logo

jtgrassie / monero-pool Goto Github PK

View Code? Open in Web Editor NEW
334.0 28.0 119.0 1.01 MB

A Monero mining pool server written in C

License: BSD 3-Clause "New" or "Revised" License

Makefile 2.65% C++ 2.69% C 91.55% HTML 3.12%
monero-pool monero-mining monero xmr mining-pool

monero-pool's Introduction

monero-pool

A Monero mining pool server written in C.

Design decisions are focused on performance and efficiency, hence the use of libevent and LMDB. Currently it uses only two threads under normal operation (one for the stratum clients and one for the web UI clients). It gets away with this thanks to the efficiency of both LMDB and libevent (for the stratum clients) and some sensible proxying/caching being placed in front of the web UI.

Configuration is extremely flexible, now allowing for the pool to run in a variety of setups, such as highly available and redundant configurations. Discussed further below in: Interconnected pools.

This pool was the first pool to support RandomX and is currently the only pool which supports the RandomX fast/full-memory mode.

The single payout mechanism is PPLNS, which favors loyal pool miners, and there are no plans to add any other payout mechanisms or other coins. Work should stay focussed on performance, efficiency and stability.

The pool also supports an optional method of mining whereby miners select their own block template to mine on. Further information can be found in the document: Stratum mode self-select.

For testing, a reference mainnet pool can be found at monerop.com.

Compiling from source

Dependencies

The build system requires the Monero source tree to be cloned and compiled. Follow the instructions for compiling Monero, then export the following variable:

export MONERO_ROOT=/path/to/cloned/monero

Replacing the path appropriately.

Beyond the Monero dependencies, the following extra libraries are also required to build the pool:

  • liblmdb
  • libevent
  • json-c
  • uuid

As an example, on Ubuntu, these dependencies can be installed with the following command:

sudo apt-get install liblmdb-dev libevent-dev libjson-c-dev uuid-dev

Compile

After installing all the dependencies as described above, to compile the pool as a release build, run:

make release

The application will be built in build/release/.

Optionally you can compile a debug build by simply running:

make

Debug builds are output in build/debug/.

Configuration

During compilation, a copy of pool.conf is placed in the output build directory. Edit this file as you see fit. When running the pool, if a custom location is not set via the command-line parameter --config-file <file>, the pool will first look for this file in the same directory as the pool binary, then in the current users home directory. The configuration options should all be self explanatory.

There are also some command-line parameters which can be used to override some of these settings.

Block notification

The pool can optionally be started with the flag --block-notified (or set in the config file: block-notified = 1). This will prevent the pool from polling for new blocks (using a timer), and instead fetch a new block template when it receives a signal (specifically, SIGUSR1). The Monero daemon, monerod, has a feature whereby it can execute a command whenever a block as added to the chain, which can thus be used to generate the required signal.

E.g.

monerod ... --block-notify '/usr/bin/pkill -USR1 monero-pool'

Launching monerod like this instructs it to send the required signal, SIGUSR1, to the pool whenever a new block is added to the chain.

Using this mechanism has a significant benefit - your pool immediately knows when to fetch a new block template to send to your miners. You're essentially giving your miners a head-start over miners in pools which use polling (which is what currently all the other pool implementations do).

Interconnected pools

In some situations it's desirable to run multiple pool instances that behave as one. Some examples being:

  • When running a global public pool, it's desirable to offer extremely low-latency pool connections to geographically dispersed miners.
  • When running a private pool across multiple data centers, it's desirable to make use of the internal site-to-site network makeup.
  • Where there are multiple hosts available, it's desirable to offer extra redundancy.

To meet these needs, multiple instances of the pool can be run with each behaving either as an edge pool, an upstream pool, both (i.e. bridged) or a normal single pool.

Any pool that has an upstream pool configured does almost everything a normal pool does, with the exception that it offloads payout processing to its upstream pool, thus it relays validated shares and blocks to the upstream pool. In return, the upstream pool sends the combined pools stats, balance updates and handles the payout processing. Should an upstream become unreachable, the downstream pools continue as normal, then upon reconnection to the upstream, sends over the backlog of shares and blocks accumulated whilst the upstream was unreachable.

Configuration is fairly trivial. A pool that will allow downstream pools to connect to it, does so via the config file parameters trusted-listen, trusted-port and trusted-allowed. E.g.

trusted-listen = 10.0.0.1
trusted-port = 4244
trusted-allowed = 10.0.0.2,10.0.0.3

As share validation is performed on the edge pools, it's vitally important this trusted listener is secured. Ideally it's only bound to an internal / local network / private interface and specifying the IP addresses of the downstream pools allowed to connect to it (as in the example above). If the interface being bound to is already secured, the parameter trusted-allowed can be omitted.

Then the downstream pools (10.0.0.2 and 10.0.0.3 in the above example), need to include in their config files the parameters upstream-host and upstream-port. E.g.

upstream-host = 10.0.0.1
upstream-port = 4244

To create a bridged pool, use all five parameters discussed above. For example:

trusted-listen = 10.0.0.4
trusted-port = 4244
trusted-allowed = 10.0.0.5,10.0.0.6
upstream-host = 10.0.0.1
upstream-port = 4244

An example where bridging can be useful is for spanning network providers, e.g. using a global provider for the main pool hubs (the bridges) and local providers for edge pools within a territory.

Every pool, however configured, still needs RPC access to a Monero daemon. They can of course all be configured to use the same daemon, or for extra redundancy, make use of separate daemons. Downstream pools do not need RPC access to the pool's wallet, only the final upstream needs wallet access. If Stratum mode self-select is being offered, the pool wallet view key can be set in the downstream pool config files via the pool-view-key parameter, or by running a local view-only wallet RPC.

Running

Ensure you have your Monero daemon (monerod) and wallet RPC (monero-wallet-rpc) up and running with the correct host and port settings as defined in your pool config file.

It is highly recommended to run these on the same host as the pool server to avoid any network latency when their RPC methods are called.

Then simply cd build/[debug|release] and run ./monero-pool.

Command-line parameters

A few of the configuration options can be overridden via the following command-line parameters:

-c, --config-file <file>
-l, --log-file <file>
-b, --block-notified [0|1]
-d, --data-dir <dir>
-p, --pid-file <file>
-f, --forked [0|1]

Web UI

This project is not designed to be a one-stop solution for running a public pool; it is an highly efficient mining pool implementation. For a public pool, which typically entails having a fancy web UI, that part is down to you. There is howeveer a minimal web UI that gets served on the port specified in the config file. If you plan on running a public pool via this UI (or any other for that matter), it's advisable to use either Apache or Nginx as a proxy in front of this with some appropriate caching configured. The goal is to offload browser based traffic to something built for the task and allow the pool to focus on its primary function - serving miners.

If you intend to make changes to this minimal web UI, note that the HTML gets compiled into the pool binary. The single web page that gets served simply makes use of a JSON endpoint to populate the stats. Thus, a sensible option for your own web UI is to simply make use of that endpoint (for stats and balances), and keep your website completely separate, served by Apache or Nginx for example.

SSL

The pool has been tested behind both HAProxy and stunnel, so if you wish to provide SSL access to the pool, these are both good options and simple to setup. The reference pool makes use of HAProxy and port 4343 for SSL traffic.

The web UI, as mentioned above, should ideally be placed behind a caching proxy. Therefore SSL termination should be be configured there (i.e. in Apache/Nginx).

Help / Contact

If you need help setting up your own pool, you can find me (jtgrassie) on IRC in #monero-pool and many of the other Monero channels.

Supporting the project

This mining pool has no built-in developer donation (like other mining pool software has), so if you use it and want to donate, XMR donations to:

451ytzQg1vUVkuAW73VsQ72G96FUjASi4WNQse3v8ALfjiR5vLzGQ2hMUdYhG38Fi15eJ5FJ1ZL4EV1SFVi228muGX4f3SV

QR code

would be very much appreciated.

License

Please see the LICENSE file.

monero-pool's People

Contributors

contrem avatar gavinbarnard avatar jtgrassie avatar moneromooo-monero avatar trasherdk 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

monero-pool's Issues

Undefined Reference

Creating object file for src/xmr...
g++ -Wp,-MMD,build/debug/src/xmr.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wno-reorder -maes -fPIC -std=c++11 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include
-pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG
-c src/xmr.cpp -o build/debug/src/xmr.o
Creating object file for src/pool...
gcc -Wp,-MMD,build/debug/src/pool.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/pool.c -o build/debug/src/pool.o
Creating object file for src/forkoff...
gcc -Wp,-MMD,build/debug/src/forkoff.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/forkoff.c -o build/debug/src/forkoff.o
Creating object file for src/util...
gcc -Wp,-MMD,build/debug/src/util.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/util.c -o build/debug/src/util.o
Creating object file for src/growbag...
gcc -Wp,-MMD,build/debug/src/growbag.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/growbag.c -o build/debug/src/growbag.o
Creating object file for src/webui...
gcc -Wp,-MMD,build/debug/src/webui.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/webui.c -o build/debug/src/webui.o
Creating object file for src/bstack...
gcc -Wp,-MMD,build/debug/src/bstack.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c src/bstack.c -o build/debug/src/bstack.o
Creating object file for rxi/log/src/log...
gcc -Wp,-MMD,build/debug/rxi/log/src/log.dd -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g
-Isrc -Idata -Irxi/log/src -I/home/xmrig/monero/src -I/home/xmrig/monero/external -I/home/xmrig/monero/external/easylogging++ -I/home/xmrig/monero/contrib/epee/include -I/opt/local/include -I/usr/local/include -pthread -I/usr/include/json-c
-D_GNU_SOURCE -DAUTO_INITIALIZE_EASYLOGGINGPP -DLOG_USE_COLOR -DHAVE_RX -DDEBUG -c rxi/log/src/log.c -o build/debug/rxi/log/src/log.o
Creating object file for src/webui-embed...
xxd -i src/webui-embed.html | sed -e 's/src_//' -e 's/embed_//' > build/debug/src/webui-embed.c
gcc -W -Wall -Wno-unused-parameter -Wuninitialized -Wbad-function-cast -maes -fPIC -std=c99 -g -c build/debug/src/webui-embed.c -o build/debug/src/webui-embed.o
Linking build/debug/src/xmr.o...
g++ -o build/debug/monero-pool
build/debug/src/xmr.o build/debug/src/pool.o build/debug/src/forkoff.o build/debug/src/util.o build/debug/src/growbag.o build/debug/src/webui.o build/debug/src/bstack.o build/debug/rxi/log/src/log.o build/debug/src/webui-embed.o
-fPIC -pie /home/xmrig/monero/build/Linux/master/release/src/cryptonote_basic/libcryptonote_basic.a /home/xmrig/monero/build/Linux/master/release/src/crypto/libcncrypto.a /home/xmrig/monero/build/Linux/master/release/src/common/libcommon.a /home/xmrig/monero/build/Linux/master/release/src/ringct/libringct_basic.a /home/xmrig/monero/build/Linux/master/release/src/device/libdevice.a /home/xmrig/monero/build/Linux/master/release/contrib/epee/src/libepee.a /home/xmrig/monero/build/Linux/master/release/external/easylogging++/libeasylogging.a /home/xmrig/monero/build/Linux/master/release/src/libversion.a /home/xmrig/monero/build/Linux/master/release/external/randomx/librandomx.a
-llmdb -lpthread -lunbound -ldl -luuid -lboost_system -lboost_date_time -lboost_chrono -lboost_filesystem -lboost_thread -lboost_regex -lboost_serialization -lboost_program_options -lhidapi-libusb
-L/opt/local/lib/ -L/usr/local/lib
-levent_core -levent_pthreads -levent -levent_extra -ljson-c -lssl -lcrypto -lsodium
/home/xmrig/monero/build/Linux/master/release/src/device/libdevice.a(device_default.cpp.o): In function hw::core::device_default::derive_subaddress_public_key(crypto::public_key const&, crypto::key_derivation const&, unsigned long, crypto::public_key&)': device_default.cpp:(.text+0x119): undefined reference to monero_crypto_amd64_64_24k_generate_subaddress_public_key'
/home/xmrig/monero/build/Linux/master/release/src/device/libdevice.a(device_default.cpp.o): In function hw::core::device_default::generate_key_derivation(crypto::public_key const&, epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&, crypto::key_derivation&) [clone .localalias.363]': device_default.cpp:(.text+0x398): undefined reference to monero_crypto_amd64_64_24k_generate_key_derivation'
/home/xmrig/monero/build/Linux/master/release/src/device/libdevice.a(device_default.cpp.o): In function hw::core::device_default::encrypt_payment_id(crypto::hash8&, crypto::public_key const&, epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&)': device_default.cpp:(.text+0x7a1): undefined reference to monero_crypto_amd64_64_24k_generate_key_derivation'
/home/xmrig/monero/build/Linux/master/release/src/device/libdevice.a(device_default.cpp.o): In function hw::core::device_default::generate_output_ephemeral_keys(unsigned long, cryptonote::account_keys const&, crypto::public_key const&, epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&, cryptonote::tx_destination_entry const&, boost::optional<cryptonote::account_public_address> const&, unsigned long, bool const&, std::vector<epee::mlocked<tools::scrubbed<crypto::ec_scalar> >, std::allocator<epee::mlocked<tools::scrubbed<crypto::ec_scalar> > > > const&, std::vector<crypto::public_key, std::allocator<crypto::public_key> >&, std::vector<rct::key, std::allocator<rct::key> >&, crypto::public_key&)': device_default.cpp:(.text+0x5e25): undefined reference to monero_crypto_amd64_64_24k_generate_key_derivation'
device_default.cpp:(.text+0x60e1): undefined reference to `monero_crypto_amd64_64_24k_generate_key_derivation'
collect2: error: ld returned 1 exit status
Makefile:172: recipe for target 'monero-pool' failed
make: *** [monero-pool] Error 1

Any suggestions? Am on ubuntu 18.04

Bad block luck or misconfiguration on my end?

Hello,

Thank you for the work you have done on this pool. I am wondering if I am just experience a bout of bad luck or if I have misconfigured the pool.conf file. My pool is on txidpool.com:4232. I changed the RPC port to 18081 for mainnet and have left the other settings as is for the moment (Changing difficulty to 800k for my rig sizes). I pushed some of my farm through the pool to test share acceptance etc and everything looks fine on the backend but have not found a block yet. Can you shed some light on if it's just bad luck or if I am missing something?

[Question] Is there a api?

Hello! I want to submit my pool to sites like miningpoolstats.stream but not sure if there is a api in this pool

webui stopping

Hey,

it seems like webui stops working when "higher load" hitting the pool.
I added a 10 seconds wait before miner port opens, that gives me time to connect to webui because as soon as miners connect i'm not able to connect anymore.
Just receiving ERR_CONNECTION_RESET .

Is there another way to get data from pool ? Don't see any API in source .. but whats inspect-data binary ?

thanks

xmr-node-proxy

Is this pool support xmr-node-proxy from Snipa22 or forked xmr-node-proxy by MoneroOcean ?

Possible issue with my pool?

Trying to mine on a new pool I've set up and the miner keeps submitting bad shares because I THINK (?) the algo is not defaulting to rx/0.

My config for my xmr-node-proxy looks like this:

{
  "pools": [
    {
      "hostname": "192.168.1.8",
      "port": 4242,
      "ssl": false,
      "allowSelfSignedSSL": false,
      "share": 100,
      "username": "47LXHrn4rqrQ2f395s5gHsMLechiLvnpS9Gt5N6q45UyfA5RSHVdDHGTdviokJt93WXnUnWYHGELc7z7Wc6rbgUNCQ5X4wp",
      "password": "x",
      "keepAlive": true,
      "algo": "rx/0",
      "algo_perf": { "rx/0": 1, "rx/loki": 1 },
      "blob_type": "cryptonote",
      "default": true
    }
  ],
  "listeningPorts": [
    {
      "port": 8080,
      "ssl": false,
      "diff": 10000
    },
    {
      "port": 8443,
      "ssl": true,
      "diff": 10000
    },
    {
      "port": 3333,
      "ssl": false,
      "diff": 1000,
      "algo": "rx/0"
    },
    {
      "port": 1111,
      "ssl": false,
      "diff": 1
    }
  ],
  "bindAddress": "0.0.0.0",
  "developerShare": 1,
  "daemonAddress": "127.0.0.1:18081",
  "accessControl": {
    "enabled": false,
    "controlFile": "accessControl.json"
  },
  "httpEnable": false,
  "httpAddress": "127.0.0.1",
  "httpPort": "8081",
  "httpUser": "",
  "httpPass": "",
  "addressWorkerID": false,
  "minerInactivityTime": 120,
  "keepOfflineMiners": 0,
  "refreshTime": 30,
  "theme": "light",
  "coinSettings": {
    "xmr":{
      "minDiff": 1,
      "maxDiff": 10000000,
      "shareTargetTime": 30
    }
  }
}

and the pool errors are


05:54:30 TRACE src/pool.c:2383: Submission reserved values: 1061 26 1 1
05:54:30 DEBUG src/pool.c:2446: Invalid share
05:54:30 TRACE src/pool.c:2311: Client submitted nonce=66689, result=4131e3bc6769d2f0ed76d3e832e20d7fea03f012dbe4d01ef8192849d7341b00
05:54:30 TRACE src/pool.c:2383: Submission reserved values: 66689 26 1 1
05:54:30 DEBUG src/pool.c:2446: Invalid share
05:54:31 TRACE src/pool.c:2311: Client submitted nonce=67010, result=2278527ba293d4b97b7f759c5bb6161791033a09c91efca3ebda3f5ae3fa0f00
05:54:31 TRACE src/pool.c:2383: Submission reserved values: 67010 26 1 1
05:54:31 DEBUG src/pool.c:2446: Invalid share
05:54:32 TRACE src/pool.c:2311: Client submitted nonce=67227, result=d70e7a0a124abcc3f1abf54664d975d92e988511978eae385f8397d2e0950600
05:54:32 TRACE src/pool.c:2383: Submission reserved values: 67227 26 1 1
05:54:32 DEBUG src/pool.c:2446: Invalid share
05:54:32 INFO  src/pool.c:2572: Removing client. Too many bad shares.

I have attempted to connect to the dev pool and recieve the same error however. So perhaps an issue with xmr-node-proxy?

pool page

I noticed the pool page seems to be stuck or static. It appeared to be working at first but as I mine to the pool it notice it no longer updates.

monerop.com

more info on configure

hey JT great work! I've broken a block with 30mh

I was wondering about some further details on pool.conf

Can we get a breakdown of the settings? If you post I'll send you some xmr as a thanks

Ed

Error when running monero-pool binary

./monero-pool

./monero-pool: symbol lookup error: ./monero-pool: undefined symbol: ZN5boost13match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISB_EEEE12maybe_assignERKSF

Everything compiled fine, Ubuntu 18.04.1 LTS

Pool crash

At some point today, the pool crashed. Probably at 2019-12-18 04:30:57 (Copenhagen)
I have the core dump, if you should need it.

monero-pool (end-of-file)

2019-12-18 04:30:57 TRACE src/pool.c:1513: Got block template: 
{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "blockhashing_blob": "0c0cf1bae6ef052ed0244969f5a7d1dd396310ec90dd58daf3ea793970f0594bb34e403e16915800000000fa9adcad3f2ad7ade80a7d4fbafda0f8b3fbcfcfdc6dd6a4095b07d5a2a4399a01",
    "blocktemplate_blob": "0c0cf1bae6ef052ed0244969f5a7d1dd396310ec90dd58daf3ea793970f0594bb34e403e1691580000000002c3c57901ff87c57901cbe290e8ae3c0273891cf52fa0a0c4621f5ed1ec9ea2b9ac1fa61130267ad2ce06ac47295ad17234010af23c4cc6c0f5c62fb572cfbdd5dae6ca28a613edc6b01ea656adf80cd313d1021100000000000000000000000000000000000000",
    "difficulty": 115403197118,
    "difficulty_top64": 0,
    "expected_reward": 2074150711627,
    "height": 1991303,
    "next_seed_hash": "",
    "prev_hash": "2ed0244969f5a7d1dd396310ec90dd58daf3ea793970f0594bb34e403e169158",
    "reserved_offset": 128,
    "seed_hash": "9d4fe3c9677150caab858e022af03eee8ef2e12cb21afe94c837b4021a81d6ef",
    "seed_height": 1990656,
    "status": "OK",
    "untrusted": false,
    "wide_difficulty": "0x1ade910abe"
  }
}
2019-12-18 04:30:57 TRACE src/pool.c:838: Recycle block template at height: 1991299
2019-12-18 04:30:57 TRACE src/pool.c:1282: Variant: 6
2019-12-18 04:30:57 DEBUG src/pool.c:859: Client 1c855246cd8348479c5ac243c948d83b target now 131424
2019-12-18 04:30:57 TRACE src/pool.c:1146: Client job: {"jsonrpc":"2.0","method":"job","params":{"id":"1c855246cd8348479c5ac243c948d83b","job_id":"da93c500988f4857b00aee6978a6327b","target":"a87f0000","extra_nonce":"ec08000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""}}

2019-12-18 04:30:57 DEBUG src/pool.c:859: Client 89e94783cd3641739b76bdf1806b54b8 target now 50000
2019-12-18 04:30:57 TRACE src/pool.c:1146: Client job: {"jsonrpc":"2.0","method":"job","params":{"id":"89e94783cd3641739b76bdf1806b54b8","job_id":"4568f2fb9bc84fa49a5c6a5ed0448d90","target":"8b4f0100","extra_nonce":"ed08000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""}}

2019-12-18 04:30:57 DEBUG src/pool.c:859: Client d0613edf9e154eedb21761f0471aa6e2 target now 50000
2019-12-18 04:30:57 TRACE src/pool.c:1146: Client job: {"jsonrpc":"2.0","method":"job","params":{"id":"d0613edf9e154eedb21761f0471aa6e2","job_id":"0560b36062fd480b9072656d20fd5b13","target":"8b4f0100","extra_nonce":"ee08000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""}}

2019-12-18 04:30:57 DEBUG src/pool.c:859: Client e025f55e5083494cbd3adfc817f33524 target now 110429
2019-12-18 04:30:57 TRACE src/pool.c:1146: Client job: {"jsonrpc":"2.0","method":"job","params":{"id":"e025f55e5083494cbd3adfc817f33524","job_id":"af86250ff0fc441c8df44bfeeb3117e8","target":"ed970000","extra_nonce":"ef08000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""}}

Edit: remove unrelated monero-wallet-rpc (pool wallet) log stuff.

Nothing interesting in monerod log-file.

xmrig 5.3.1-dev

[2019-12-18 04:29:16.007]  cpu  accepted (1194/0) diff 50000 (22 ms)
[2019-12-18 04:29:36.632] speed 10s/60s/15m 1040.9 1045.8 941.9 H/s max 1175.8 H/s
[2019-12-18 04:30:06.668] speed 10s/60s/15m 1040.4 1043.2 939.6 H/s max 1175.8 H/s
[2019-12-18 04:30:20.261]  cpu  accepted (1195/0) diff 50000 (28 ms)
[2019-12-18 04:30:36.700] speed 10s/60s/15m 1046.3 1041.2 946.6 H/s max 1175.8 H/s
[2019-12-18 04:30:57.282] [localhost:8002] read error: "end of file"
[2019-12-18 04:30:57.282]  net  no active pools, stop mining
[2019-12-18 04:31:03.090] [localhost:8002] connect error: "connection refused"
[2019-12-18 04:31:06.736] speed 10s/60s/15m 481.5 1039.1 951.8 H/s max 1175.8 H/s
[2019-12-18 04:31:08.096] [localhost:8002] connect error: "connection refused"
[2019-12-18 04:31:13.098] [localhost:8002] connect error: "connection refused"
[2019-12-18 04:31:18.100] [localhost:8002] connect error: "connection refused"

Can I set the reserver_size 0?

I want to make a test to verify the submit from miner. If reserver_size is 0 ,so I can just send origin hash_blob to miner . And I can verify the result_hash from miner when only replacing the nonce. Right?

HTTP status code 401 for /json_rpc. Aborting

HTTP status code 401 for /json_rpc. Aborting.
Is there some problem with my "monero-pool"?

and in webui.c, miner_balance %.8f, my computer running for at least 20 hours, but it still shows 0. my computer 7.5-8KH/s

net no active pools, stop mining

some times show this error, why? how to resolve this problem, thanks

[2020-10-12 16:06:47.983] [86.42.64.199:4242] read error: "end of file"
[2020-10-12 16:06:47.983] net no active pools, stop mining

Invalid address network type

When I start a xmrig to connect to monero-pool as follow:
./xmrig -o 127.0.0.1:4242 -u 9y4V6rSRbXDhmoNQpCrDBQXFM25rqFBZYBq8RepazSLSBwsj5kRtuM9iCSuz3vs9KbfZhrQj1BKRxVCpyqii7pca3vJaNFs --coin=monero

There is an ERROR response: [127.0.0.1:4242] error: "Invalid address network type", code: -1

How to handle it? expect to hear your voice again.

how to run, always fail, did I missed something

16:36:24 INFO src/pool.c:4382: Starting pool on: 0.0.0.0:3333
16:36:24 DEBUG src/pool.c:488: Database (used/free): 8192/5368700928
16:36:24 INFO src/webui.c:182: Starting Web UI on 0.0.0.0:3334
16:36:24 INFO src/pool.c:4165: Starting trusted listener on: 0.0.0.0:6666
16:36:24 INFO src/pool.c:4177: Starting upstream connection to: 0.0.0.0:8888
16:36:24 INFO src/pool.c:2248: Fetching last block header
16:36:24 TRACE src/pool.c:1650: Payload: {"jsonrpc":"2.0","id":"0","method":"get_last_block_header"}
16:36:24 TRACE src/pool.c:1650: Payload: {"jsonrpc":"2.0","id":"0","method":"query_key","params":{"key_type":"view_key"}}
16:36:24 DEBUG src/pool.c:488: Database (used/free): 8192/5368700928
16:36:24 TRACE src/pool.c:2336: Sending message ping upstream
16:36:24 DEBUG src/pool.c:2679: Upstream connection error: 111
16:36:24 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:36:24 ERROR src/pool.c:1549: HTTP status code 0 for /json_rpc. Aborting.
16:36:24 ERROR src/pool.c:1549: HTTP status code 0 for /json_rpc. Aborting.
16:36:34 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:36:34 DEBUG src/pool.c:2679: Upstream connection error: 111
16:36:34 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:36:44 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:36:44 DEBUG src/pool.c:2679: Upstream connection error: 111
16:36:44 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:36:54 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:36:54 DEBUG src/pool.c:2679: Upstream connection error: 111
16:36:54 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:37:04 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:37:04 DEBUG src/pool.c:2679: Upstream connection error: 111
16:37:04 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:37:14 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:37:14 DEBUG src/pool.c:2679: Upstream connection error: 111
16:37:14 WARN src/pool.c:2697: No connection to upstream; retrying in 10s
16:37:24 INFO src/pool.c:2739: Reconnecting to upstream: 0.0.0.0:8888
16:37:24 DEBUG src/pool.c:2679: Upstream connection error: 111
16:37:24 WARN src/pool.c:2697: No connection to upstream; retrying in 10s

Question: Have I configured the pool correctly?

Hi, a few days ago I setting up my pool following the README.md guide.
Pool and Monero daemon run as expected. But I keep wondering have I configured my pool correctly?

monerod command:

monerod --rpc-bind-ip 127.0.0.1 --detach --prune-blockchain --block-notify '/usr/bin/pkill -USR1 monero-pool'

Monero Wallet CLI command:

monero-wallet-rpc --rpc-bind-port 18084 --password-file ~/wallet_pass --wallet-file pool_wallet --disable-rpc-login --trusted-daemon --detach

pool.conf :

...
rpc-host = 127.0.0.1
rpc-port = 18081
wallet-rpc-host = 127.0.0.1
wallet-rpc-port = 18084
rpc-timeout = 30
idle-timeout = 300
pool-wallet = 46dxxxxf <=  this is wallet address I bind on monero-wallet-rpc command above
pool-fee-wallet = 45xxxxV
...

This is the respond from Wallet RPC get_address method:

 curl http://127.0.0.1:18084/json_rpc -d '{"jsonrpc":"2.0","id":"0","method":"get_address","params":{"account_index":0,"address_index":[0]}}' -H 'Content-Type: application/json'
{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "address": "46dxxxxf",
    "addresses": [{
      "address": "46dxxxxf",
      "address_index": 0,
      "label": "Primary account",
      "used": false
    }]
  }
}

monerod status: not mining

Height: 2302897/2302897 (100.0%) on mainnet, not mining, net hash 2.10 GH/s, v14, 12(out)+74(in) connections, uptime 8d 2h 58m 58s

I found warning to set setup-background-mining 1 on monero-wallet-rpc.log

Background mining not enabled. Run "set setup-background-mining 1" in monero-wallet-cli to change.

Question:

  1. Do I need to set monerod and monero-wallet-cli to mining state?
  2. The monerod is listen on port 18080 (public), 18081 (localhost), 18082 (localhost). Do I need to open firewall port 18080 used by monerod publicly on my pool?

Thank you before.

All mined blocks are Orphaned

Since the most recent merges, it seems all mined block are orphaned.

$ grep 'MINED A BLOCK' data/testnet/logs/monero-pool.log 
2019-08-25 16:16:31 INFO  src/pool.c:2404: +++ MINED A BLOCK +++
2019-08-25 16:21:12 INFO  src/pool.c:2404: +++ MINED A BLOCK +++
2019-08-25 16:22:33 INFO  src/pool.c:2404: +++ MINED A BLOCK +++
2019-08-25 16:28:00 INFO  src/pool.c:2404: +++ MINED A BLOCK +++

Compared to:

$ grep 'Orphaned block' data/testnet/logs/monero-pool.log 
2019-08-25 16:16:31 DEBUG src/pool.c:759: Orphaned block at height 1285175
2019-08-25 16:18:37 DEBUG src/pool.c:759: Orphaned block at height 1285176
2019-08-25 16:18:39 DEBUG src/pool.c:759: Orphaned block at height 1285177
2019-08-25 16:21:12 DEBUG src/pool.c:759: Orphaned block at height 1285178
2019-08-25 16:27:09 DEBUG src/pool.c:759: Orphaned block at height 1285180

Miners connected

Hello, first of all, good job.
I just notice that the miners connected number is related of username and not amount of session opened on the pool. If I have two miners connected with the same wallet address, the pool will consider only one miner connected.

Did exist a way to display the number of clients connected to the pool instead of numbers based on wallet address ?

Feature request, allow miners to set static difficulty

Hi.
Some miners have requested this feature, adding their own static difficulty setting.
Maybe by adding the difficulty as password or extra user parameter which the pool will read on login.
It's one of "nice to have" features ;)

I love this software, it's up to date and I haven't had single problem with it. It just works.

Great work!

support for randomx ?

Hey,

first thanks for sharing your work to the community :)

As stated in title, is your pool supporting the upcoming randomx fork ?
If yes, is there something special to do after fork or will it switch automatically ?

Thanks

Compile on Slackware64 14.2 (libevent)

On Slackware x64 14.2, latest version of libevent is 2.0.22-stable

build commands

export MONERO_ROOT=/home/crypto/local/build/build-monero/monero-src-v0.14.0.2
export MONERO_BUILD_ROOT=$MONERO_ROOT/../build-monero-v0.14.0.2

make

Requested 'libevent >= 2.1' but version of libevent is 2.0.22-stable

Changing Makefile line 65 and 77
from "libevent >= 2.1" \
to "libevent >= 2.0" \
fixes that.

Does this break anything?

Signal problem with Monero v0.15.0.1

Hi, tried compiling this pool last summer and the signal was working fine. Now I compiled a release on Ubuntu 16 with the latest Monero v0.15.0.1 (of which you are also a contributor) and it is heaving problems with the signal. It just does not send the new block header to the connected rx clients. Could you please check? Or provide a compiled release binary to try? I also suspect it may be related to libevent library.

Thank you, Tim

Testnet - block submission

Running on testnet, some blocks get mined but the majority does not.

12:36:06 TRACE src/pool.c:2032: Checking hash against blobk difficulty: 30176, job difficulty: 75000
12:36:06 INFO src/pool.c:2037: +++ MINED A BLOCK +++
12:36:06 DEBUG src/pool.c:2081: Storing share with difficulty: 75000
12:36:06 WARN src/pool.c:1495: result not found
12:36:06 WARN src/pool.c:1496: status not found
12:36:06 WARN src/pool.c:1507: code not a json_type_object
12:36:06 WARN src/pool.c:1511: Error (-7) with block submission: Block not accepted
12:36:06 WARN src/pool.c:1515: Error submitting block: (null)

Build failed against Monero v0.17.1.3

Maybe I'm missing some dependency?

Is the libdevice related to hardware wallet and libhidapi?

The monero-pool source is in /path/to/staging-area/monero-pool/monero-pool-src/

Here's the output

g++ -o build/release/monero-pool \
  build/release/src/xmr.o build/release/src/pool.o build/release/src/forkoff.o \
  build/release/src/util.o \
  build/release/src/webui.o \
  build/release/src/bstack.o \
  build/release/rxi/log/src/log.o  \
  build/release/src/webui-embed.o \
  -fPIC -pie \
  /path/to/usr/lib64/libevent.a \
  /usr/lib64/liblmdb.a \
  /path/to/staging-area/monero/monero-build/src/cryptonote_basic/libcryptonote_basic.a \
  /path/to/staging-area/monero/monero-build/src/crypto/libcncrypto.a \
  /path/to/staging-area/monero/monero-build/src/common/libcommon.a \
  /path/to/staging-area/monero/monero-build/src/ringct/libringct_basic.a \
  /path/to/staging-area/monero/monero-build/src/device/libdevice.a \
  /path/to/staging-area/monero/monero-build/contrib/epee/src/libepee.a \
  /path/to/staging-area/monero/monero-build/external/easylogging++/libeasylogging.a \
  /path/to/staging-area/monero/monero-build/src/libversion.a \
  /path/to/staging-area/monero/monero-build/external/randomx/librandomx.a \
  -llmdb -lpthread -lunbound -ldl -luuid -lboost_system -lboost_date_time -lboost_chrono -lboost_filesystem -lboost_thread -lboost_regex -lboost_serialization -lboost_program_options \
  -L/opt/local/lib/ -L/usr/local/lib \
  -levent_core -levent_pthreads -levent -levent_extra -ljson-c -lssl -lcrypto -lsodium 
/path/to/staging-area/monero/monero-build/src/device/libdevice.a(device_default.cpp.o)
	: In function `crypto::wallet::generate_key_derivation(crypto::public_key const&, epee::mlocked<tools::scrubbed<crypto::ec_scalar> > const&, crypto::key_derivation&)':
	device_default.cpp:(.text._ZN6crypto6wallet23generate_key_derivationERKNS_10public_keyERKN4epee7mlockedIN5tools8scrubbedINS_9ec_scalarEEEEERNS_14key_derivationE[_ZN6crypto6wallet23generate_key_derivationERKNS_10public_keyERKN4epee7mlockedIN5tools8scrubbedINS_9ec_scalarEEEEERNS_14key_derivationE]+0x27): undefined reference to `monero_crypto_amd64_64_24k_generate_key_derivation'
/path/to/staging-area/monero/monero-build/src/device/libdevice.a(device_default.cpp.o)
	: In function `crypto::wallet::derive_subaddress_public_key(crypto::public_key const&, crypto::key_derivation const&, unsigned long, crypto::public_key&)':
	device_default.cpp:(.text._ZN6crypto6wallet28derive_subaddress_public_keyERKNS_10public_keyERKNS_14key_derivationEmRS1_[_ZN6crypto6wallet28derive_subaddress_public_keyERKNS_10public_keyERKNS_14key_derivationEmRS1_]+0x51): undefined reference to `monero_crypto_amd64_64_24k_generate_subaddress_public_key'
collect2: error: ld returned 1 exit status
Makefile:172: recipe for target 'monero-pool' failed
make: *** [monero-pool] Error 1
* Make release FAIL

HR in the pool

My rig is mining at 5.195 kH/s, but the stats page shows

Pool HR: | 0 H/s
Network HR: | 317.36 MH/s
Blocks found: | 0
Last block found: | None yet
Payment threshold: | 0.33
Pool fee: | 0.01
Pool port: | 4242
Miners connected: | 3
Your HR: | 593 H/s

Any idea why the HR in the pool is much lower?

Forked option

What is the forked option? Does that mean using forked processes to run the server? Is there any advantage to doing so? Any downside?

Round HR

What does it mean if my Round HR is 0? Am I doing something wrong?

broken payouts

After the found block (2.121xmr) pool doesnt payout correct monero sum.
I'm mining on pool with 2 wallets. using default pool.conf with payment treshhold 0.33xmr and 1% pool fee.

First wallet already received payout of 0.3367xmr
Second wallet have Balance due: 0.08395451
Rest coins (1.784xmr) are still on the pool wallet and are not paid.

monero-wallet-rpc log:
Screenshot_1

monero-wallet-cli:
Screenshot_2

upstream-host/port

Hi friend,
I have a question description as followed:
does the config filed: upstream-host/port apply for connecting to another monero pool which are running now, for example: supportXMR.com、xmrpool.net ....

CryptonightR Branch?

Is there an updated branch that also works with the current algorithm, cryptonightR, still? This seems to now just be for the upcoming randomX algo whic is cool, but was looking for the updated branch for just the current algo. Thank you

solo mining possibility

Hey,

do you have any plans to implement solo mining possibility ?
Or is it already possible to disable payouts and just mine to coinbase ?

Thanks

Makefile 161 recipe for target monero-pool failed

Hi,
First I wanted to thank you for you work adding the affinity option to the RandomX benchmark and also what looks to be the ultimate solo mining solution i have been looking for. I have a good number of servers and blades I have been mining Monero with since mid-2017 and after being laughed at for some time, I'm really looking forward to RandomX.

What I really want to do is create my own private pool for just my servers (all located at the same single physical location) and have just one wallet address that all 150 servers/blades solo mine to directly to the Monero blockchain.

I have successfully compiled Monero both 'master' and latest 'release-v0.15'. blockchain is now synchronized and my wallet opens ok. I was not sure if 'master' needed to be in it's own directory, so I compiled it a second time stand-alone in the 'xmr2' directory (please see attached screenshots for exact details). I get same error when attempting to build 'monero-pool'. I have also tried setting MONERO_ROOT =/root/xmr1/monero and MONERO_BUILD_ROOT=/root/xmr1/monero/build/Linux/master/release, but same error. Am I missing something obvious?

I would be happy to offer you some Monero to help me get things set up properly. Thank you for your time.

monero-pool_error_11-11-2019

monero-pool_systeminfo_11-11-2019

4 Miners

I have 4 machines mining but the webUI only shows 3? Are they all being counted as one since they are all at the same site?

image

XMRig - send buffer overflow

It seems that something is making xmrig (5.2.0) barf on a rather large block template.
Not sure if the pool is to blame, but I did see a 2407 chars block template, just as it happened.
On next block, xmrig connect again, and start submitting.

Is this the pool, monerod, or is it xmrig?

2019-12-15 06:56:13 TRACE src/pool.c:1513: Got block template: 
{
  "id": "0",
  "jsonrpc": "2.0",
  "result": {
    "blockhashing_blob": "0c0cfd95d7ef05abc04a5ef09e9a2e8de029be3cb360ac532b5e1c232bddede24ed3825727bc9a00000000eda6a9fb4068d343dbb721c59f74d08a88454fe57eedaf33e0e7ff2d996d35b722",
==> "blocktemplate_blob": "0c0cfd95d7ef05abc04a5ef09e9a2e8de029be3cb360ac532b5e1c232bddede24ed3825727bc9a000000000286b57901ffcab47901abb68cedd33c02b6f558ee3965856bd141d07eff80e006e98a2555075a842f9edcc01bc8d7172c340196b718c364db5b4b71dc44d2fc0793d801e78188260465d3e0cc94eb44c87cda021100000000000000000000000000000000000021e6ae34c3b9d871071d35df276321c28d4342ddc07981b88ef1e5a55dd463b97465d3999e215ea7130cd985b176b640e4579b41fe67bb9db427a958f24d31cef1774e51172a69353925121dc51dbc92350b0725f552b985f257020a9de348162380a1e6c488e0d4049a9b85e24433023ff02f6d1a83e116cd933ee97a7e591b917b67b0ff1e100ac93bc62219fd69d08d0082a80c0a6a6d8ec9d6279950676b61d487ea49360ec09e59348b13e67331e1c9800a3d454a4ef528655ceab9803b6a57ab4e4e7232b9eac34c6fda848bd13c1fad042a44a746b42ec1d0dc035e94772ae7f35022dcc8e0009c1ca1270a5b59d0cc56c90e7c0a96fe486a7834c2433799a4b9dc8578455542ad400a036c43a6445b91ebfbabec23e6b194bddd2dbafc97b70d3880c7d5e2600c5ccc6dd4a2295d08355466c6109720e820142525c851155abf97942acf3f336d0bbe1da25687a0371c9b4fcc9f0848944e66aedc55d97f8badc200351f07135eff8fb154f4ab2cbd5eb5c2d307fe03cb17c06add5486a6272511b893779b7befba05f62aa58a5a837abbcca87a939f2981d1bfa398392c9ca60ca6c2c036f116c78b21daa09baae8c9ab22b94dd96cdcd0e87aff0c8ced4c5ecc41569178f013d2da09d17fc854d2c4540a56ffb9738c029aff5728513f722d7b88b8da778fde9b0c61dfe685d1227c3557d60d972ac3aa0f1a72cfa309b23b07835a36882e06c5469d2a94dfd71f8bd1959f977ea0e08132c24b4ef17b6a416652f0262cc4e1680870a087165d95eef0611e74d9654bda1b60dd90e4fa75db920ae42ad6f81ddd20378b5d1ab1725bf33c68fa49915407a658047e866fa763ffe7216b90fc03f389b4b2540e5e6a9a30ba8e70de7df33ee1681b5f27a64880311f898ce0f44bcfd0f34edd75e30a24efbc129dc93032f41327f71882f4b86d0418d2fcf1e1dac80549b88b1c78a0cdf0a0fa37b426e48cd526c182892a0f8ba73f076cfffd59fa76dd45cf04ed9b65043c1fe3747a9a9838bc2099cb820064043e552b1b696660096984fe28e539cb95df9ee70783c431d2003b39d7b73e9aa78894cbcf85b2d961e78ad8be5aafe3cc1871a45397297140ff61eea1b0955d467d8b71726f82e68aab8fb5d0bece881b5caf87f91e65883c79974f3c0cc90d4c4d35f84dac4f18c5246a1171088923a33e2a79b4375614af5ccd159a5b5ff00ad24c0f1e07715c1dcf66e7bb1a32997235d3b93c3c580b63c56eec9a4e474637a5885a8f308a5e0c27b542eca50a67f8414afcce215d62f40db0f6182baecf9fc66501f2b9be150337df0f1c338395efdf1a9a5021abed39ae28f162570e8136883669a87cfaeff61548c0cbe77a0cd1b7d0af2fffec09f35b5faa311c3846d53ef534441d23c93cd78697def2ffc4bc357c201d654877d5bf632a04f7d23f4c595c835732f928df6df86c95ed1d2b4b0ec8093353587f3cb3f19e77",
    "difficulty": 112831541011,
    "difficulty_top64": 0,
    "expected_reward": 2084093238059,
    "height": 1989194,
    "next_seed_hash": "",
    "prev_hash": "abc04a5ef09e9a2e8de029be3cb360ac532b5e1c232bddede24ed3825727bc9a",
    "reserved_offset": 128,
    "seed_hash": "be68fd3de3de1e2ed52e3b8f6be5ef8c6565a88bd3d88c936425b63696b7eaeb",
    "seed_height": 1988608,
    "status": "OK",
    "untrusted": false,
    "wide_difficulty": "0x1a4548af13"
  }
}
2019-12-15 06:56:13 TRACE src/pool.c:838: Recycle block template at height: 1989190
2019-12-15 06:56:13 TRACE src/pool.c:1282: Variant: 6
2019-12-15 06:56:13 DEBUG src/pool.c:859: Client 3e1e20afc9de4db48d5c4e63476199f3 target now 161886
2019-12-15 06:56:13 TRACE src/pool.c:1146: Client job: {"jsonrpc":"2.0","method":"job","params":{"id":"3e1e20afc9de4db48d5c4e63476199f3","job_id":"14fb5abb0045492caca00f86e6a2a7d9","target":"a2670000","extra_nonce":"1c00000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""}}

2019-12-15 06:56:13 DEBUG src/pool.c:2602: Client disconnected. Removing.
2019-12-15 06:56:19 INFO  src/pool.c:2000: New client connected
2019-12-15 06:56:19 TRACE src/pool.c:2087: Client login for mode: self-select
2019-12-15 06:56:19 DEBUG src/pool.c:859: Client 3bad43a302654daaa75c4599e0947d59 target now 50000
2019-12-15 06:56:19 TRACE src/pool.c:1146: Client job: {"id":1,"jsonrpc":"2.0","error":null,"result":{"id":"3bad43a302654daaa75c4599e0947d59","job":{"job_id":"13cd81e1101d404182041af5b69cd8eb","target":"8b4f0100","extra_nonce":"1d00000081b4ba43", "pool_wallet":"44ch1jLCFmuHpsq6QMCWxMXMGbMdrEF9AHiMrzqBjPc5WyToE2eoXqEJZV7GpVMPxxCxBewpG9FCjY1riMccS6f8Fq6v5iV","seed_hash":"","next_seed_hash":""},"status":"OK"}}

2019-12-15 06:56:19 DEBUG src/pool.c:2602: Client disconnected. Removing.

xmrig (5.2.0)

[2019-12-15 06:52:23.630]  net  new job from localhost:8002 diff 161531 algo rx/0 height 1989193
[2019-12-15 06:52:48.484] speed 10s/60s/15m 1124.5 1133.2 1116.1 H/s max 1163.6 H/s
[2019-12-15 06:53:18.506] speed 10s/60s/15m 1156.1 1125.3 1115.6 H/s max 1163.6 H/s
[2019-12-15 06:53:48.527] speed 10s/60s/15m 1145.2 1131.3 1116.0 H/s max 1163.6 H/s
[2019-12-15 06:54:18.557] speed 10s/60s/15m 1148.7 1140.7 1115.8 H/s max 1163.6 H/s
[2019-12-15 06:54:48.587] speed 10s/60s/15m 1154.2 1144.0 1117.2 H/s max 1163.6 H/s
[2019-12-15 06:55:18.615] speed 10s/60s/15m 1117.7 1138.8 1119.4 H/s max 1163.6 H/s
[2019-12-15 06:55:19.214]  cpu  accepted (49/0) diff 161531 (34 ms)
[2019-12-15 06:55:48.649] speed 10s/60s/15m 1156.5 1137.5 1124.2 H/s max 1163.6 H/s
[2019-12-15 06:56:12.791]  cpu  accepted (50/0) diff 161531 (17 ms)

[2019-12-15 06:56:13.806] [localhost:8002] send failed: "send buffer overflow: 2766 > 2046"
[2019-12-15 06:56:13.806]  net  no active pools, stop mining
[2019-12-15 06:56:18.682] speed 10s/60s/15m 1127.0 1134.5 1128.4 H/s max 1163.6 H/s
[2019-12-15 06:56:19.508]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:19.544] [localhost:8002] send failed: "send buffer overflow: 2766 > 2046"
[2019-12-15 06:56:19.544]  net  no active pools, stop mining
[2019-12-15 06:56:25.511]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:25.529] [localhost:8002] send failed: "send buffer overflow: 2830 > 2046"
[2019-12-15 06:56:25.529]  net  no active pools, stop mining

[2019-12-15 06:56:31.514]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:31.521]  net  new job from localhost:8002 diff 50000 algo rx/0 height 1989195
[2019-12-15 06:56:44.928]  cpu  accepted (51/0) diff 50000 (37 ms)
[2019-12-15 06:56:45.781]  cpu  accepted (52/0) diff 50000 (15 ms)
[2019-12-15 06:56:48.734] speed 10s/60s/15m 1141.7 785.5 1110.2 H/s max 1163.6 H/s
[2019-12-15 06:52:23.630]  net  new job from localhost:8002 diff 161531 algo rx/0 height 1989193
[2019-12-15 06:52:48.484] speed 10s/60s/15m 1124.5 1133.2 1116.1 H/s max 1163.6 H/s
[2019-12-15 06:53:18.506] speed 10s/60s/15m 1156.1 1125.3 1115.6 H/s max 1163.6 H/s
[2019-12-15 06:53:48.527] speed 10s/60s/15m 1145.2 1131.3 1116.0 H/s max 1163.6 H/s
[2019-12-15 06:54:18.557] speed 10s/60s/15m 1148.7 1140.7 1115.8 H/s max 1163.6 H/s
[2019-12-15 06:54:48.587] speed 10s/60s/15m 1154.2 1144.0 1117.2 H/s max 1163.6 H/s
[2019-12-15 06:55:18.615] speed 10s/60s/15m 1117.7 1138.8 1119.4 H/s max 1163.6 H/s
[2019-12-15 06:55:19.214]  cpu  accepted (49/0) diff 161531 (34 ms)
[2019-12-15 06:55:48.649] speed 10s/60s/15m 1156.5 1137.5 1124.2 H/s max 1163.6 H/s
[2019-12-15 06:56:12.791]  cpu  accepted (50/0) diff 161531 (17 ms)

[2019-12-15 06:56:13.806] [localhost:8002] send failed: "send buffer overflow: 2766 > 2046"
[2019-12-15 06:56:13.806]  net  no active pools, stop mining
[2019-12-15 06:56:18.682] speed 10s/60s/15m 1127.0 1134.5 1128.4 H/s max 1163.6 H/s
[2019-12-15 06:56:19.508]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:19.544] [localhost:8002] send failed: "send buffer overflow: 2766 > 2046"
[2019-12-15 06:56:19.544]  net  no active pools, stop mining
[2019-12-15 06:56:25.511]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:25.529] [localhost:8002] send failed: "send buffer overflow: 2830 > 2046"
[2019-12-15 06:56:25.529]  net  no active pools, stop mining

[2019-12-15 06:56:31.514]  net  use pool localhost:8002  127.0.0.1
[2019-12-15 06:56:31.521]  net  new job from localhost:8002 diff 50000 algo rx/0 height 1989195
[2019-12-15 06:56:44.928]  cpu  accepted (51/0) diff 50000 (37 ms)
[2019-12-15 06:56:45.781]  cpu  accepted (52/0) diff 50000 (15 ms)
[2019-12-15 06:56:48.734] speed 10s/60s/15m 1141.7 785.5 1110.2 H/s max 1163.6 H/s

Pool need money + min_fee

I'm running monero-pool (testnet) with self-select, and using your version of xmrig to mine.

It looks like "autosave": true in config.json make xmrig overwrite/delete "self-select": "localhost:28081"

After mining quite a few blocks, I get the folowing on the screen:

2019-07-11 17:11:56.112     W Received money: 5.849361442658, with tx: <bb94ba724f0c8275b10bfd60d327171cc0d859ae72af72908bcf1124b94a4340>
2019-07-11 17:16:36.590  W Received money: 5.849327972407, with tx: <e793a8dbf55a9a495f0683bff460668e3c7fc89bdeb65984cf21b20ed1904e4e>
2019-07-11 17:17:34.862  W amount=5.850064362168, real_output=10, real_output_in_tx_index=0, indexes: 454820 497714 545135 546466 551740 554012 554582 554793 554799 555037 555221 
2019-07-11 17:17:34.862  W amount=5.850008571819, real_output=10, real_output_in_tx_index=0, indexes: 464904 507589 532583 537926 551396 552263 553770 554226 554478 554977 555226 
2019-07-11 17:17:34.862  W amount=5.849986255829, real_output=10, real_output_in_tx_index=0, indexes: 532156 549758 553175 553222 553331 553338 554585 554618 554964 555202 555228 
2019-07-11 17:17:34.895  W amount=5.850064362168, real_output=10, real_output_in_tx_index=0, indexes: 454820 497714 545135 546466 551740 554012 554582 554793 554799 555037 555221 
2019-07-11 17:17:34.895  W amount=5.850008571819, real_output=10, real_output_in_tx_index=0, indexes: 464904 507589 532583 537926 551396 552263 553770 554226 554478 554977 555226 
2019-07-11 17:17:34.895  W amount=5.849986255829, real_output=10, real_output_in_tx_index=0, indexes: 532156 549758 553175 553222 553331 553338 554585 554618 554964 555202 555228 
2019-07-11 17:17:34.945  W amount=5.850064362168, real_output=10, real_output_in_tx_index=0, indexes: 454820 497714 545135 546466 551740 554012 554582 554793 554799 555037 555221 
2019-07-11 17:17:34.945  W amount=5.850008571819, real_output=10, real_output_in_tx_index=0, indexes: 464904 507589 532583 537926 551396 552263 553770 554226 554478 554977 555226 
2019-07-11 17:17:34.945  W amount=5.849986255829, real_output=10, real_output_in_tx_index=0, indexes: 532156 549758 553175 553222 553331 553338 554585 554618 554964 555202 555228 
2019-07-11 17:17:35.331  W Received money: 5.849316815700, with tx: <ba529e20c83184c9ba843ab2375548c9ab611b553e715a76077a5c2959c51ff3>
2019-07-11 17:18:15.395  W Received money: 4.019315284214, with tx: <23cef739d0d14e559a280e43f75e705c1e038af3486cff445c0bdfa5574820e0>
2019-07-11 17:18:15.395  W Spent money: 5.850008571819, with tx: <23cef739d0d14e559a280e43f75e705c1e038af3486cff445c0bdfa5574820e0>
2019-07-11 17:18:15.395  W Spent money: 5.850064362168, with tx: <23cef739d0d14e559a280e43f75e705c1e038af3486cff445c0bdfa5574820e0>
2019-07-11 17:18:15.395  W Spent money: 5.849986255829, with tx: <23cef739d0d14e559a280e43f75e705c1e038af3486cff445c0bdfa5574820e0>
2019-07-11 17:26:16.375  W Received money: 5.849216406288, with tx: <64b97229063f64c7ea466591babff7589264c11a92d64100ff84b10f4e334ae9>
2019-07-11 17:27:05.985  E needed_money + min_fee > unlocked_balance_subtotal. THROW EXCEPTION: error::not_enough_unlocked_money
2019-07-11 17:28:56.715  W Received money: 5.849194093319, with tx: <fc1e818c1c9f44c79961c9704ef3c49e22d41d9f15deaa0383d5e3d903827c78>
2019-07-11 17:32:57.261  W Received money: 5.849182936867, with tx: <547d1d887ae281a645a1cde12eab185996ceb44a0d80a3faa379de0b982b77e2>
2019-07-11 17:33:37.337  W Received money: 5.849160624026, with tx: <dc87b8f18b9031548b4f2e52c2ea83ea19bbcc506bae39ec9d8914e9487e2aaf>
2019-07-11 17:34:37.431  W Received money: 5.849149467638, with tx: <c819d4babfd668498463409cfcc233db4d31467669b13604fa186d797249720a>
2019-07-11 17:35:17.527  W Received money: 5.849127154924, with tx: <a85baa018d85da1bc131ff030d2fae914049bd55c16a1a186349ec66bab32416>
2019-07-11 17:37:05.991  E needed_money + min_fee > unlocked_balance_subtotal. THROW EXCEPTION: error::not_enough_unlocked_money
2019-07-11 17:37:17.766  W Received money: 5.849104842296, with tx: <537b6140261e4377cfa8c9ef27cdf0dfd47eb231d1c360c149bc410425f79321>
2019-07-11 17:37:37.795  W Received money: 5.849093686014, with tx: <74c6fd02a8cefa27f82f58dcaeb97c07967bdf112e816a5d9bc9fb1f0d5b0fbc>
2019-07-11 17:39:18.098  W Received money: 5.849082529753, with tx: <e634d5786adc068f5ec47d66591abd472e1fb3a5a222325217584c88d1af996d>

This is because those blocks are waiting to validate, right?

I can't see if anything gets to the miner wallet because of:

[wallet 9zwQfv]: balance        
Currently selected account: [0] Primary account
Tag: (No tag assigned)
Balance: 0.000000000000, unlocked balance: 0.000000000000
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command
[wallet 9zwQfv]: refresh        
Starting refresh...
Enter password (output received): Enter password (output received): Enter password (output received): Enter password (output received): Error: refresh failed: unexpected error: proxy exception in refresh thread. Blocks received: 0
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command
Password needed (output received) - use the refresh command

I'm gonna leave it running overnight, and see how it looks in the morning.

image

CORS access header

When trying to access the api through web js for an explorer website, the CORS access header is missing. If possible, where can the header be implemented? If it is not implemented, is it possible to add it.

Thanks

75-100% timed out shares when surpassing 50 MH/s

Thanks for your previous replies. I run a rather large farm for RandomX and have noticed that the pool will start timing out a large portion of my shares once I surpass 50 MH/s or so. (I run 91 MH/s). It seems to work best when sitting between 20-30 MH/s. Any ideas?

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.