GPU assisted Proof of Capacity (PoC) Miner for Burstcoin (BURST)
- edit 'jminer.properties' with text editor to configure miner
- ensure java8 (64bit) and openCL driver/sdk is installed
- execute 'java -jar -d64 -XX:+UseG1GC burstcoin-jminer-0.4.x-RELEASE.jar' or run the .bat/.sh file
'-d64' to ensure 64bit java (remove for 32bit) '-XX:+UseG1GC' to free memory after round finished.
The miner is configured in a text-file named 'jminer.properties'. This file has to be in the miner directory (same folder as '*.jar' file)
To get started, use one of the following examples. The min. required settings for the different mining-modes.
uses all deadlines below a given target per block to calculate shares.
devPool=true plotPaths=D:/,C:/,E:/plots,F:/plots numericAccountId=<YOUR NUMERIC ACCOUNT ID> poolServer=http://pool.com:port
uses only the best deadline per block to calculate shares.
plotPaths=D:/,C:/,E:/plots,F:/plots numericAccountId=<YOUR NUMERIC ACCOUNT ID> poolServer=http://pool.com:port
plotPaths=D:/,C:/,E:/plots,F:/plots poolMining=false passPhrase=<YOUR PASS PHRASE>
List of all properties
your 'jminer.properties' hasn't got to contain all properties listed here, most of them are optinal or there is a fallback/default value for it.
list of plot paths separated with , e.g. D:/,C:/,E:/plots,F:/plots (in one line) the miner will treat every path as 'physical' drive and use one thread for it
optional 'true' will check 'plotPaths' for changed plot files on every round 'false' will check only on start/restart if you are moving/creating plot-files while mining, it could be disabled
optional ... list all plotFiles on start. If walletServer/soloServer is configured, it will show mined blocks and drive seeks/chunks of plotfile, too.
'true' for pool mining, 'false' for solo mining. ensure to configure the chosen mining-mode below. For solo-mining you need to set
Ensure you already setup reward assignment http://localhost:8125/rewardassignment.html
numericAccountId (required for pool)
first number in all plot-files
poolServer (required for pool)
format is inclusive protocol and port e.g. 'http://pool.com:8125'
define local or online wallet, to receive and show last winner! if empty, winner feature will be just disabled. format is inclusive protocol and port e.g. 'http://localhost:8125' online use e.g. 'https://wallet.burst-team.us:8125'
number of retries to get winner from walletServer
time to wait until next retry to get winner from walletServer
'true' for using devPools (V1 or V2), 'false' or empty if not on using devPool please read NOTICE in description of 'chunkPartNonces'
how often the miner tries to commit shares to devPool not needed for other pools.
NOTICE: 'devPool' wants all deadlines below a given target, this miner will only deliver one deadline per chunkPart, so it can happen, that not all shares can be delivered i suggest using lower 'chunkPartNonces' e.g. 160000 ... (1 result per 160000 nonces) play with that on same block to test if you get more shares with lower 'chunkPartNonces'.
WARN! soloServer should be http://localhost:8125 or http://127.0.0.1:8125 Solo means you send your PASS on commit results!
DO NOT try to use a online wallet or pool as Server!
passPhrase (required for solo)
secretPhrase/password of solo mining burst-account
min. deadline to be committed.
The miner uses openCL for most of the mining calculations, ensure it is setup correctly. Instructions can be found e.g. here (thanks cryo): https://github.com/bhamon/gpuPlotGenerator/blob/master/README.md You could also use that instruction to find your platformId and deviceId if needed. Since version 0.4.4 all available platforms and devices are listed on startup.
id of openCL platform on your system. one platform may have multiple devices, the miner currently uses just one (in general not the bottleneck)
specifies the device used by OCLCecker, can be your first GPU, in most cases it will not be 100% used. (depends on capacity)
interval of asking wallet/pool for mining info (in ms), to check for new block
increase the 'connectionTimeout' on network problems. this timeout is used for all network requests. if you use pool or online-wallet, the 12 sec. default may cause timeout on committing nonces or getting mining info etc.
setting 'debug' to true will log additional information of the mining process, that are not related to mining, but to miner internals.
setting 'writeLogFile' to 'true' will write all logs from console to a file, too. the name of that file can be specified by 'logFilePath'.
path (filename and optional directory, relative to miner location)
defines how often the mining progress is shown per round thats the 'xx% done ...' info.
switch between decimal units (true): TB/GB/MB (divided by 1000), or binary units (false) TiB/GiB/MiB (divided by 1024) - https://en.wikipedia.org/wiki/Byte
set this to 'true' to show info about every drive on finish reading it, this is useful to find the slow ones ... can help to optimize your setup.
e.g. you see in logs, that 'drive-c' and 'drive-d' slow down this mining setup:
read 'C:/data/drive-a' (3TB 958GB) in '28s 444ms' read 'C:/data/drive-b' (3TB 932GB) in '29s 114ms' read 'C:/data/drive-c' (3TB 996GB) in '35s 390ms' read 'C:/data/drive-d' (3TB 996GB) in '35s 685ms'
Miner Memory Usage
staggerSize defines number of nonces per chunk. the miner will split chunks in smaller pieces called chunkParts. this makes sense, to save memory and optimize speed. in the best case chunkPart#1 will be checked before chunkPart#2 is completely read ... depending on the power of your GPU. if staggersize is smaller than chunkPartNonces, staggersize will be used. e.g. play with +/- 160000 steps
NOTICE: for 'devPool': only one result per chunkPart will be committed, without 'optDevPool' (witch is not implemented, yet) consider using low chunkPartNonces size, to commit more. (guess, there will not be multiple dl below target in small chunkPart)
normally '0' means, the miner takes one thread per drive (plotPath) this is recommend. choosing a other number of 'readerThreads' can be useful on memory issues. For example, if you mine on 4 drives (plotPaths), you can reduce the memory usage by setting 'readerThreads=2', this will reduce mining speed but save memory.