- Notifications
You must be signed in to change notification settings - Fork237
deepMiner webminer proxy (update for cryptoNight R)
License
deepwn/deepMiner
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- deepMiner (idea like coinhive.js) By evil7@deePwn
- Working on XMR(Monero) and ETN(Electroneum) personal wallet
- Eazy way mining in browsers & Nice payback than Ad-inject
- Goodbye Coinhive. You opened a new view for Web-Object + Blockchains.
- And All coins who follow
cryptoNight
/cryptoNight v7 & v8 / cryptoNight R
&& pool connect inJSONRPC2
- Some coins used cryptoNotehttps://cryptonote.org/coins/ (example: Monero / Electroneum /Sumokoin / Aeon ...)
- The whitebook:
cryptoNight.txt
andcryptoNight.md
. Come from:https://cryptonote.org/standards/ - Technology:https://cryptonote.org/inside/
Add some javascript and write like this :
<scriptsrc="https://your_domain.com/lib/deepMiner.min.js"></script><script>varminer=newdeepMiner.Init('miner_name');miner.start();</script>
As now say. we only can have 25H/s maybe in the browsers (i7-4GHz/16G-RAM) because the cryptonight R updated.
And that's why people called "hardless to mining" in browsers.
And it's why the Coinhive choose closed too.
But by the way. If you can have 100USER/24H always online or running a online vedio website with 5k or 1M users and staying over 1h?
Maybe you can get a nice payback more than 1$ every day. (25H/s/day/100Users = 1$ now).
So as you see. you can just do learn JS something with this repo. Or do another develping with it. Or do build a fee system more than Ad injection.
cd deepMiner&& npm install&& npm start
all wasm source files in cryptonight-wasm
server.js for srv side (webSocket<>tcpSocket)
web/lib/ |__ worker.js the worker to create hash job |__ deepMiner.js the main of all should add in web | (used `npm i -g minify` and running `minify deepMiner.js > deepMiner.min.js` if min file you need) |__ cryptonight.js/.wasm come from emcc building. if in dev you can checking and rebuilding from folder: cryptonight-wasm
curl https://raw.githubusercontent.com/deepwn/deepMiner/master/install.sh> install.shsudo sh install.sh
lib request:*nodejs
/*npm
/?nginx
useful pakages:forever
ssl support:https://certbot.eff.org/ /https://acme.sh/
OS tested on:ubuntu(debian)
- Not Support ASMJS in this master release
You can use events in your page, to handling the HTML with mining status.
<script> // Listen on events miner.on('found', function(){/* Hash found */}) miner.on('accepted', function(){/* Hash accepted */}) // Update stats once per second setInterval(function(){varhashesPerSecond=miner.getHashesPerSecond();vartotalHashes=miner.getTotalHashes();varacceptedHashes=miner.getAcceptedHashes();console.table({"hashesPerSecond":hashesPerSecond,"totalHashes":totalHashes,"acceptedHashes":acceptedHashes});// Output to HTML elements...}, 1000);</script>
new deepMiner.Init( [site, options] )
site : New a miner, that you can add a siteID / nameID or some string for Identify.
options : threads / throttle
E.g.:
varminer=newdeepMiner.Init(document.location.host,{autoThreads:true});miner.start();
.start( [mode] )
mode: deepMiner.IF_EXCLUSIVE_TAB / deepMiner.FORCE_EXCLUSIVE_TAB / deepMiner.FORCE_MULTI_TAB
E.g.:
miner.start(deepMiner.IF_EXCLUSIVE_TAB);
.stop( )
Stop mining and disconnect from the pool.
.isRunning( )
Returns true|false whether the miner is currently running: connected to the pool and has working threads.
.isMobile( )
Returns true|false whether the user is using a phone or tablet device. You can use this to only start the miner on laptops and PCs.
.hasWASMSupport( )
Returns true|false whether the Browser supports WebAssembly. If WASM is not supported, the miner will automatically use the slower asm.js version. Consider displaying a warning message to the user to update their browser.
.getNumThreads( )
Returns the current number of threads. Note that this will report the configured number of threads, even if the miner is not yet started.
.setNumThreads( numThreads )
Set the desired number of threads. Min: 1. Typically you shouldn't go any higher than maybe 8 or 16 threads even if your users have all new AMD Threadripper CPUs.
.getThrottle( )
Returns the current throttle value.
.setThrottle( throttle )
Set the fraction of time that threads should be idle. A value of 0 means no throttling (i.e. full speed), a value of 0.5 means that threads will stay idle 50% of the time, with 0.8 they will stay idle 80% of the time.
.getHashesPerSecond( )
Returns the total number of hashes per second for all threads combined. Note that each thread typically updates this only once per second.
.getTotalHashes( [interpolate] )
Returns the total number of hashes this miner has solved. Note that this number is typically updated only once per second.
.getAcceptedHashes( )
Returns the number of hashes that have been accepted by the pool. Also see the accepted event.
.on( event, callback(params) { } )
Specify a callback for an event.
event | description |
---|---|
optin | The user took action on the opt-in screen (AuthedMine only). The params.status is either "accepted" or "canceled". See below for an example. |
open | The connection to our mining pool was opened. Usually happens shortly afterminer.start() was called. |
authed | The miner successfully authed with the mining pool and the siteKey was verified. Usually happens right after open. In case the miner was constructed with CoinHive.Token, a token name was received from the pool. |
close | The connection to the pool was closed. Usually happens whenminer.stop() was called or the CoinHive.Token miner reached its goal. |
error | An error occured. In case of a connection error, the miner will automatically try to reconnect to the pool. |
job | A new mining job was received from the pool. |
found | A hash meeting the pool's was found and will be send to the pool. |
accepted | A hash that was sent to the pool was accepted. |
All sources in foldercryptonight-wasm.
You need installEmscripten first, and run./build.sh
to make this wasm file up.
thebuild.sh
will help you build it and copy the new one to./web/lib
.
Just cd to/srv/deepMiner
rungit pull
Don't forget backup yourconfig.json
at first.
Some VPS's can't find pool's IP. change your VPS's DNS will work.
SSL cert request default isTRUE
. So usecertbot
oracme.sh
to quick request a free cert.
Or you can just running in devepment version without nginx usingcd FILE_PATH && npm start
orforever start FILE_PATH/cluster.js
Choice another pool which you wanna using:https://github.com/timekelp/xmr-pool-choice or online websitehttp://www.moneropools.com/
MIThttps://raw.githubusercontent.com/deepwn/deepMiner/master/LICENSE
(I will add a dev donate session in next version or in the manager web view)
XMR41ynfGBUDbGJYYzz2jgSPG5mHrHJL4iMXEKh9EX6RfEiM9JuqHP66vuS2tRjYehJ3eRSt7FfoTdeVBfbvZ7Tesu1LKxioRU