This software is considered legacy and not maintained anymore, please use Foxy-Miner instead!
GNU GPLv3 (see LICENSE)
A Proof of Capacity proxy which supports solo and pool mining upstreams
License: GNU General Public License v3.0
GNU GPLv3 (see LICENSE)
I recently installed the latest version of foxy-proxy, and every couple seconds I get this error:
Error: connect ECONNREFUSED :::443 at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1141:16) { errno: 'ECONNREFUSED', code: 'ECONNREFUSED', syscall: 'connect', address: '::', port: 443 }
Everything seems to be working fine as far as i can tell, so i'm curious about what this error is and what is causing it. I have my config.yaml below.
config.yaml.txt (it's a .txt file because github doesn't support uploading .yaml files)
The ability to have the passphrase for burst solo in the proxy for all miners connected to a specific upstream is great, but it would also be nice to have the option to mine solo with the traditional way of having the passphrase in the miner config only.
JS max safe integer is equivalent to about 8PB, so usage of BN is required for larger miner capacities.
Is your feature request related to a problem? Please describe.
It is very frustrating not being able to see plotter id for each miner pointed at the proxy and not being able to see the total capacity for the group of miners with the same plotter id.
Describe the solution you'd like
Adding a BURST/BHD plotter ID with relevant hyperlink to explorer in front of each miner and sorting the list by groups of the same plotter ID with total capacity right below each group of same id miners would solve this. Then total capacity of all grouped miners at the bottom of the entire list would be reflected.
Describe alternatives you've considered
Currently using a spreadsheet to keep track of capacities and miners ids and have to update manually. not a good alternative.
Additional context
Add any other context or screenshots about the feature request here.
![feature]
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
With frequent updates to the proxy it would be beneficial to show in the GUI the current version being run, the new version (if any available) available, and perhaps a change log displaying what changes are available and if its worth upgrading.
Describe the solution you'd like
A clear and concise description of what you want to happen.
Place this information in the footer or in the more vertical options / hamburger menu.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Modify current notification of "New Version" to include "Current Version"
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
My scavenger miners are set to a URL like http://[ip]:[port], but when i updated Foxy-Proxy they stopped working. It turns out that now it's set up like http://[ip]:[port]/[proxyname]. This is useful when you only want to connect to certain proxies, but I only have one proxy, so now it's inconvenient to change the url of every Scavenger node.
Describe the solution you'd like
I'd like for there to be an option in the config where, if enabled, it will go back to the old http://[ip]:[port] url if it detects that there is only one proxy enabled.
Describe alternatives you've considered
I've considered switching back to Archon, but that wouldn't allow for a socket.io connection to FoxyPool.
Additional context
none
Is your feature request related to a problem? Please describe.
Not able to view dynamic targetDL used with submitProbability (especially while using "sendTargetDL")
Describe the solution you'd like
Add a line for target DL under the difficulty on the webui of the proxy.
If its not there auto add it for convenience
Is your feature request related to a problem? Please describe.
Enhancement Request - Make the upstream name in the UI clickable with a URL that points to the pool your mining similar to how you implemented in the Foxy Dashboard.
Describe the solution you'd like
You could use the 'url' configuration option to populate the upstream name URL.
Docker image includes .git dir, which it should not
Describe the solution you'd like
The status indicators for the miners in the Webui are helpful, but it would be nice to get emails and/or SMS messages if a miner is offline or has not submitted dealdines recently.
Describe alternatives you've considered
Swatchdog to monitor logs files.
For multi version updates it is usefull to show the aggregated changelog of all versions in between.
The Last Blocks won card's url for BlockHeight defaults to BHD (https://www.btchd.org/explorer/block/xxxxxx) regardless of the chain that is being mined. Burst wins on Foxy-Pool are incorrectly pointing to the BHD explorer.
Issue found on 1.26.0
THIS>
"you could write an enhancement issue on github to add a config option to pass through the miners minerName"
;)
Is your feature request related to a problem? Please describe.
Not really a problem, just an enhancement
Describe the solution you'd like
possibility to let it scan the walletUrl for historical blocks won... maybe a startupflag, so it doesn't always runs each launch.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.
Is your feature request related to a problem? Please describe.
Currently there is no way to see how long a round has been ongoing before the first deadline was received by the pool. It would be helpful to see how long it took for first deadline to be received on a certain upstream. The more chains being mined make this information more relevant to see.
Describe the solution you'd like
Add a new row in each proxy upstream that displays "First dl received after xx s" or even better: "First dl: xx s (xx s average round)" with average round being tied to historicalRoundsToKeep.
Only problem I see with using historicalRoundsToKeep is if the round passes without a deadline what value would you use for an average?
add an enhancement so that when you edit the config.yaml it auto updates/restarts the proxy, on windows
`npm WARN deprecated [email protected]: Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (debug-js/debug#797)
npm WARN deprecated [email protected]: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN deprecated [email protected]: request has been deprecated, see request/request#3142
npm WARN deprecated [email protected]: this library is no longer supported
/usr/bin/bhd-burst-proxy -> /usr/lib/node_modules/foxy-proxy/main.js
/usr/bin/foxy-proxy -> /usr/lib/node_modules/foxy-proxy/main.js
[email protected] install /usr/lib/node_modules/foxy-proxy/node_modules/sqlite3
node-pre-gyp install --fallback-to-build
node-pre-gyp WARN Using request for node-pre-gyp https download
node-pre-gyp WARN Pre-built binaries not installable for [email protected] and [email protected] (node-v83 ABI, glibc) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error EACCES: permission denied, mkdir '/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding'
gyp WARN EACCES current user ("nobody") does not have permission to access the dev dir "/root/.cache/node-gyp/14.16.1"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/.node-gyp"
gyp WARN install got an error, rolling back install
gyp WARN install got an error, rolling back install
gyp ERR! configure error
gyp ERR! stack Error: EACCES: permission denied, mkdir '/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/.node-gyp'
gyp ERR! System Linux 5.4.0-70-generic
gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node" "--module_name=node_sqlite3" "--module_path=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=3" "--node_napi_label=napi-v3"
gyp ERR! cwd /usr/lib/node_modules/foxy-proxy/node_modules/sqlite3
gyp ERR! node -v v14.16.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64 --napi_version=7 --node_abi_napi=napi --napi_build_version=3 --node_napi_label=napi-v3' (1)
node-pre-gyp ERR! stack at ChildProcess. (/usr/lib/node_modules/foxy-proxy/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
node-pre-gyp ERR! stack at ChildProcess.emit (events.js:315:20)
node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1048:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
node-pre-gyp ERR! System Linux 5.4.0-70-generic
node-pre-gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/foxy-proxy/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /usr/lib/node_modules/foxy-proxy/node_modules/sqlite3
node-pre-gyp ERR! node -v v14.16.1
node-pre-gyp ERR! node-pre-gyp -v v0.11.0
node-pre-gyp ERR! not ok
Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64/node_sqlite3.node --module_name=node_sqlite3 --module_path=/usr/lib/node_modules/foxy-proxy/node_modules/sqlite3/lib/binding/napi-v3-linux-x64 --napi_version=7 --node_abi_napi=napi --napi_build_version=3 --node_napi_label=napi-v3' (1)
npm WARN notsup Unsupported engine for [email protected]: wanted: {"node":"^10.12 || ^12"} (current: {"node":"14.16.1","npm":"6.14.12"})
npm WARN notsup Not compatible with your version of node/npm: [email protected]
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: node-pre-gyp install --fallback-to-build
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! /root/.npm/_logs/2021-04-08T10_43_20_458Z-debug.log
`
Is your feature request related to a problem? Please describe.
Display which Foxy Miner is scanning in a dashboard like view. Currently details are available via SSH sessions but not via the web GUI.
Describe the solution you'd like
Details with a progress bar showing live stats ingested from Foxy Miner.
Every 24hrs, it opens this link https://youtu.be/tbazGVrbN-g
Update the logo to a stripper fox
Rename it to poxy foxy
NemesisSVK said to colour code the living crap out of it
Is your feature request related to a problem? Please describe.
No. Would like to see foxy-proxy send solo miners an email when they win a block for selected coins in addition to miner is down event.
A proxy-option for each coin to skip every nth block to reduce stress on hardware while multimining
Describe the solution you'd like
Aside the "update Foxy Proxy" a "reload Config" button.
Giving me the opportunity to reload the config without restarting the proxy itself (including that the states are kept in place, to avoid double scans for the same block)
Describe alternatives you've considered
restarting by hand, but that doesnt keep the state and does double scans for the same block
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
Error: Please install sqlite3 package manually
at ConnectionManager._loadDialectModule (/usr/local/lib/node_modules/foxy-proxy/node_modules/sequelize/lib/dialects/abstract/connection-manager.js:81:15)
at new ConnectionManager (/usr/local/lib/node_modules/foxy-proxy/node_modules/sequelize/lib/dialects/sqlite/connection-manager.js:24:21)
at new SqliteDialect (/usr/local/lib/node_modules/foxy-proxy/node_modules/sequelize/lib/dialects/sqlite/index.js:15:30)
at new Sequelize (/usr/local/lib/node_modules/foxy-proxy/node_modules/sequelize/lib/sequelize.js:340:20)
at init (/usr/local/lib/node_modules/foxy-proxy/models/index.js:40:21)
at module.exports (/usr/local/lib/node_modules/foxy-proxy/models/index.js:75:5)
at /usr/local/lib/node_modules/foxy-proxy/app.js:104:9
at Object.<anonymous> (/usr/local/lib/node_modules/foxy-proxy/app.js:278:3)
at Module._compile (internal/modules/cjs/loader.js:778:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
2020-08-03 14:31:46.052 [ERROR] | Error: Please install sqlite3 package manually
Steps to reproduce:
Fresh Lubuntu 20.04 Install
apt install npm
npm i -g foxy-proxy
foxy-proxy
Manually installing sqlite3 does not solve the problem.
I am able to use foxy-proxy fine if I use the github installation instructions, however.
Is your feature request related to a problem? Please describe.
bhd.hpool.com recently has posted an announcement: https://bhd.hpool.com/news/5cc1a87c5333e70348d65d74 where they warn about a required change in supported mining software. It's a bit hard to understand what they say exactly, but it looks like they will be rejecting incompatible clients and proxies and will require using their own specific proxy. Since the english version of the text is a bit hard to grasp, I tried the chinese version and google-translate, here's the result:
Notice about Hpool's BHD mining agent software: In order to optimize the data collection effect of the mining pool and take into account the revenue of different capacity mining machines, hpool has launched a mining agent software, and the agent software is used together with the mining software. Welcome everyone. Go to the download experience and give your valuable feedback. During the experience period, hpool will still adopt the answer that does not use hpool official agent software; after the expiration period, hpool will only adopt the answer using hpool official agent software, and the experience period is tentatively set to 4.25 - 5.8
They plan to activate new rules on May 8th (the end of 'experience period'). They already require use of their own miner, so it seems possible that this will be extended to proxies as well. On https://bhd.hpool.com/download they have posted a modified blago miner and a new piece called "x-proxy".
I have played a bit with that and it seems that when I connect the newest blago miner (190301) either directly, or via their x-proxy, it is always seen by the pool as 0.0TB capacity. That's because their modified blago sends some extra headers along with normal requests. From what I've seen, these are, at least:
X-Miner: Blago v1.170997_AVX2
X-Capacity: 1154
X-ClientIP: 127.0.0.1
X-Minername: quetzalcoatl
X-Account: abcdef01-2345-6789-abcd-ef0123456789
X-Miner is hardcoded to the .exe name, X-Capacity is just the total plot files in GB, X-ClientIP is obvious I suppose we could just hardwire it to 127.0.0.1, X-Minername and X-Account are read from configuration file and passed through. I don't know if they verify X-Miner name, so it probably would need to be configurable.
Plain blago miner doesn't send them and has no options for configuring this data. Without those headers, hpool doesn't seem to fully respect the miner. Since those headers are quite simple, the proxy seems a nice place to inject them on the fly.
Describe the solution you'd like
I'd like to be able to configure the content of those headers via config yaml file and I'd like bhd-burst-proxy to send those header for me, as they are given in the config file, regardless of what miners connected to the proxy are sending.
Describe alternatives you've considered
Once the rules are changed, I don't see any alternatives other than giving up on bhd-burst-proxy and switching to their modified blago and their x-proxy. I really don't want to do that, but right now I don't see any other way, since no other mining software has any options to send those headers.
In live mode less than half my screen is used - would like to configure more than the last 12 lines of the log being displayed.
Optional PID exclusion from upstreams
Useful for replotting to disc while only using one mining instance
When can you increase the boom agent mining that supports B3pool onepool?
With the advent of new coins to multi-mine, I would like to suggest UI variations to support fitting it all on the screen, without requiring the user to reduce their browser's zoom.
Ideally, we would still be able to get additional information, maybe through hovering or a popup modal.
A compact mode that shows the following:
You would still have the main scanner box:
It would be nice to have the scanner box in a fix position, maybe top left?
Using a large number of datapoints results in sluggish historical netdiff chart performance. It would make sense to autoscale the netdiff chart so it uses max eg 1000 datapoints at all times
With all these shitcoins coming out, it would be great if a very basic app was made that outputs a valid config.yaml
The app asks you what coin, what pool address and so forth, and has a color hex wheel for the rainbows
Describe the solution you'd like
Replace the pie chart with a line graph or stacked bar graph that shows rounds completed / historicalRoundsToKeep, rounds won, and full rounds completed before the round ends. This would give a nice visual representation of how miner(s) are performing on multi coin mining setups. This would also be a nice way to add additional metrics to the proxy UI without needing to tie up additional space.
Check whether sequelize supports this, and if so use it for historical stats
Show appropriate error messages here
Useful for multi proxy, single upstream setups
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.