1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-10 06:48:05 +00:00
Commit Graph

798 Commits

Author SHA1 Message Date
elbandi
4ad62b9a78 Allow disable extranonce subscribe 2014-04-24 15:44:33 +02:00
phm
0001517ac0 Merge branch 'marucoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-04-15 19:43:30 +02:00
phm
67cf41a50c Added support for MaruCoin 2014-04-15 00:20:05 +02:00
Noel Maersk
3c3a58475e ui+api: ask for pool name/description/algorithm when adding pool from NCurses/API.
Closes #116.

This is trivial and shouldn't be so hard: it required modifying
functions in both sgminer.c (for NCurses stuff) and api.c. There is
much code repetition, since the NCurses interface is hard-coded in.
Removing it would simplify things greatly.
2014-04-11 15:06:36 +03:00
Bllacky
942c6714fa Update miner.h
Variable declaration. VS seems to like size_t instead of int for certain variables.
2014-04-10 18:39:38 +03:00
Noel Maersk
3ddf6baad9 core: rename default_algorithm to opt_algorithm.
... So it's easier to find when refactoring the configuration system
later on.
2014-04-07 22:09:05 +03:00
Noel Maersk
0793c96074 Merge remote-tracking branch 'mrbrdo/poolalgo' into poolalgo
Conflicts (resolved):
	ocl.h
	sgminer.c
2014-04-07 22:05:33 +03:00
Noel Maersk
b6218e20c1 config: rename --pool-priority to --priority, --coin to --description.
There are now get_current_pool() and current_pool(), which is confusing.
Moved them closer together, so it's at least obvious.
2014-04-07 21:14:17 +03:00
phm
769c9f8036 Merge branch 'twecoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
	sph/Makefile.am
2014-04-05 17:41:42 +02:00
phm
474091c426 Added support for Twecoin 2014-04-05 17:27:59 +02:00
Noel Maersk
cc735db550 misc: don't violate reserved identifier naming convention.
Closes https://github.com/veox/sgminer/issues/177
2014-04-03 19:12:35 +03:00
Jan Berdajs
c2131df6aa add support for setting algorithm/nfactor for each pool separately, and fix bugged OpenCL thread cleanup (thread shutdown) 2014-03-31 21:05:20 +02:00
phm
a683f935a4 Merge branch 'sifcoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-03-31 17:06:16 +02:00
phm
0f88162c39 Added support for Sifcoin 2014-03-31 17:02:06 +02:00
troky
bcb78ed91b Added --coin pool parameter. 2014-03-26 11:10:41 +01:00
Martin Danielsen
01b3f70b63 A new --no-client-reconnect command that disables the 'client.reconnect' function.
It looks like there's an exploit that abuses said command, but it is still not clear exactly how.

There's also an additional message when the reconnect happens: "WARNING: POTENTIAL CLIENT.EXPLOIT!", but it requires you to be actively monitoring your log to catch it, and in which case you already get a "Reconnect requested from Pool 0 to 127.0.0.1" message.

Note that disabling 'client.reconnect' might affect some pools that rely on the feature, like pools that you lease your rig to.

Oh and this is dry-coded. :)
2014-03-24 15:12:40 +02:00
phm
983eae1142 Merge branch 'groestlcoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-03-22 23:58:10 +01:00
phm
764d8706b4 Added support for GroestlCoin. 2014-03-22 23:50:21 +01:00
phm
a0c0975bb8 Merge branch 'animecoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-03-20 18:36:28 +01:00
phm
35744a86c2 Merge branch 'inkcoin'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-03-20 17:52:31 +01:00
Noel Maersk
87801c2578 opencl: rename cgpu_info->kname to cgpu_info->kernelname. 2014-03-17 21:57:00 +02:00
Noel Maersk
3787f47155 misc: add comment on what cgpu_info->{,k}name are. 2014-03-17 21:57:00 +02:00
Noel Maersk
c9ccf551d7 opencl: remove cl_kernels structure definition and mention.
No longer used.

TODO: check if clState would benefit from having kernel name.
2014-03-17 21:57:00 +02:00
Noel Maersk
1333ed576d core: simplify kernel selection code.
WIP!

Use a string instead of a state-machine-ey kernel selection mechanism
where kernel names have to be predefined. This should allow just dropping
new kernels into dir `kernel` without bloating the code in three other
places.

Is in dire need of a cleanup, function parameter check, edge case check -
all the usual testing.

In particular, checking these definitions/keywords:

* enum cl_kernels
* kname
* [c]gpu[s]->kernel (and similar)
* memory cleanup after strdup()?..
* chosen_kernel
* queue_scrypt_kernel
* strbuf
* initCl
2014-03-17 21:56:43 +02:00
phm
e260e79ab2 Added support for FugueCoin 2014-03-17 19:25:43 +01:00
troky
49aef7100f Reverting "poolname" to "name". 2014-03-15 19:08:24 +02:00
Noel Maersk
8079d054d6 Merge branch 'nfactor'
Conflicts (resolved):
	Makefile.am
	winbuild/sgminer.vcxproj.filters
2014-03-14 17:46:54 +02:00
Noel Maersk
c6a27709f8 core: use global algorithm structure instead of opt_nfactor.
Also squashed:

config: add log messages to set_algo() and set_nfactor().

algorithm: use set_algorithm_nfactor() when setting default nfactor in set_algorithm().

Otherwise algorithm->n defaults to 0.

P.S. Did I already mention how this could have been C++?..
2014-03-07 02:27:06 +02:00
Noel Maersk
92b7770212 config: add --algorithm option and documentation.
Doc in `doc/configuration.md` (has to be started sometime, no?).

Configuration function has to be lamely-named set_algo(), because
set_algorithm() is already declared in algorithm.h (prevent namespace
conflict).

algorithm has to be added as global variable due to the way the
callback is done (by CCAN/opt, which in itself is nice).

This can be cleaned up significantly by (at least) introducing a
global configuration struct, but there is no reason to do it now
just for this - better a wholesale manana.
2014-03-07 02:27:00 +02:00
phm
66f508d01f Added support for AnimeCoin 2014-03-05 18:00:30 +01:00
phm
8fe1b860c5 Added support for MyriadCoin groestl algorithm. 2014-03-01 09:33:32 +01:00
Noel Maersk
8e4fb3c554 pool: abstract get_pool_name()
The introduction of get_pool_name() warrants a separate function
so opt_incognito does not litter everywhere.
2014-02-28 22:15:39 +02:00
phm
3e89fb950f Merge branch 'quark'
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	miner.h
	ocl.c
	sgminer.c
2014-02-23 18:56:05 +01:00
Teemu Suikki
73bb1504e9 Scrypt-nfactor support!
Added new configuration parameter "nfactor", which defaults to 10 (normal scrypt).
Use 11 for vertcoin.

Kernels modified accordingly.
2014-02-23 04:44:17 +02:00
phm
65336dc616 Corrected order of kernel identifiers. 2014-02-22 21:26:41 +01:00
phm
d9fc7ccb4e Added support for QubitCoin 2014-02-22 19:21:05 +01:00
phm
c336a8399a Added support for INKcoin. 2014-02-22 16:58:00 +01:00
phm
089bfddc9b Merge branch 'quark' into inkcoin
Conflicts:
	Makefile.am
	configure.ac
	driver-opencl.c
	ocl.c
	sgminer.c
2014-02-22 16:56:59 +01:00
Noel Maersk
44aed3570e Merge branch 'build-msvs2010-upd' into build-msvs2010-merge
Test in separate branch before merging into master.

Conflicts (resolved):
	api.c
	util.c
2014-02-22 17:05:07 +02:00
phm
e92d5ebf6e Added support for InkCoin 2014-02-22 12:46:46 +01:00
phm
60a0e00243 Added support for quarkcoin difficulty calculation. 2014-02-22 11:04:06 +01:00
phm
a17ec112f6 Added support for Quark mining. 2014-02-21 15:45:29 +01:00
phm
9585d2a8e6 Added support for DarkCoin kernel. Modified stats display to handle low difficulty values. 2014-02-19 23:06:29 +01:00
Con Kolivas
90cc93c6cc Add the ability to display a hexadecimal 32 bit unsigned integer to the API. 2014-02-16 14:42:30 +02:00
Con Kolivas
95ac0c4356 Export the flush_queue function for use by drivers. 2014-02-16 14:41:02 +02:00
ckolivas
8592226ad2 Add a get and queue helper work function. 2014-02-16 14:37:16 +02:00
Con Kolivas
011512561a Add a call to a driver specific zero stats function when zero stats is called to allow each driver to reset its own stats as well if desired. 2014-02-16 14:24:06 +02:00
Con Kolivas
c31de2601b Store when the last getwork was retrieved and display it in the API summary. 2014-02-16 14:14:40 +02:00
ckolivas
d1e2bfaf7f Make submit_tested_work return a bool about whether it meets the work target or not. 2014-02-16 14:10:31 +02:00
ckolivas
a58ef1b8c7 Provide a helper function for determining dev runtime and use it in the hashmeters used. 2014-02-16 14:09:51 +02:00
Con Kolivas
cc2aa215a8 Clear pool work on a stratum reconnect message. 2014-02-16 13:57:20 +02:00
Kano
b6c6ec5c83 api add data type AVG float 3 decimal 2014-02-16 13:49:26 +02:00
Noel Maersk
a1724e34e5 api: add missing extern declaration (for consistency). 2014-02-13 12:30:59 +02:00
Noel Maersk
c09a5b4406 core: remove num_processors (unused). 2014-02-08 15:41:31 +02:00
Markus Peloquin
bf8e37ce19 Support building in cygwin.
Revised the compiler platform macros. Building goes like
$ AMDAPPSDKROOT= CPPFLAGS=-I/usr/include/ncurses ./configure
2014-02-07 22:31:40 -08:00
Noel Maersk
dff7876b7a Merge branch 'master' into build-msvs2010-upd 2014-02-07 21:45:26 +02:00
Noel Maersk
23eb242a5f kernel: make psw usable, reorder cases alphabetically.
Closes https://github.com/veox/sgminer/issues/30
2014-02-01 16:01:37 +02:00
Brandon Tuomela
bda1070259 kernel: add psw kernel. 2014-02-01 15:51:03 +02:00
Noel Maersk
b97a641ed9 Merge branch 'master' into build-msvs2010-upd
Conflicts (resolved):
	sgminer.c
2014-02-01 00:25:56 +02:00
Perry Huang
8bd980dbbd Add API_KHS endpoint.
Fix multiplying before double cast.

Add endpoint to response.

Fix API response function.

Fix var name.

Add KHS to API summary.
2014-01-31 02:57:23 -06:00
Sanjin Trošelj
7ac101f365 VS2010 build: Prepare miner.h
Cherry-picked by veox.
2014-01-28 00:22:19 +02:00
Noel Maersk
64fc8324b8 pools: initial implementation of pool state machines.
moved enable_pool(), disable_pool() and other functions related to
state. These could probably be factored out altogether.

Pool state default is now "enabled" - it was previosly "disabled",
but there was an unconditional function call to enable all pools
in main() previously. It was factored out by joe's earlier commits,
so not visible in this one.
2014-01-27 02:28:58 +02:00
Noel Maersk
1ebcb07302 Merge branch 'master' into pools 2014-01-27 00:54:16 +02:00
Noel Maersk
cae071b837 Merge branch 'kernels' 2014-01-27 00:48:25 +02:00
Noel Maersk
e269656959 Merge branch 'pools-joe' 2014-01-26 23:57:18 +02:00
Noel Maersk
048c82b9b2 pools: rename 'pool->enabled' to 'pool->state'. 2014-01-26 20:02:00 +02:00
Noel Maersk
22b78e91f6 tui: Refactor status line printing.
Default pool name is now URL and port instead of "Pool N" (which
is confusing).

Status line displays user-defined name.
2014-01-26 19:44:39 +02:00
Noel Maersk
6417bcce61 Merge remote-tracking branch 'joe/pool_options' into pools 2014-01-26 16:51:38 +02:00
Joe4782
b1eb2ab8f8 Implemented the 'remove-pool' config option for json file pools 2014-01-26 01:26:00 +00:00
Joe4782
1d81196238 Added a 'disable-pool' option to the json configuration, to allow pools to be started up disabled 2014-01-25 20:33:45 +00:00
Martin Danielsen
d11df698d1 --rawintensity option, by request of Dead2.
This setting allows to set the GPU intensity value directly without any modifiers, it does not
get any more raw than this! Look at the xintensity description raw for examples of regular
intensity values. You can also set this value through the ncurses interface by pressing:
G -> A -> select device id -> enter value.

Minor xintensity code cleanup as well.

Conflicts:
	driver-opencl.c
	miner.h
	sgminer.c
2014-01-22 18:24:43 +02:00
Noel Maersk
5f326d64f5 kernel: allow choosing Alexey Karimov's kernels.
Am I the only one who gets a segfault?..
2014-01-21 10:36:55 +02:00
Noel Maersk
7950c10374 kernel: integrate Zuikkis' kernel, selectable with --kernel=zuikkis.
Kernel ckolivas is still the default. Needs documentation, too.

https://github.com/veox/sgminer/issues/4
2014-01-20 23:38:39 +02:00
Noel Maersk
9d1db95a28 misc: move scrypt130511.cl kernel file to kernel/ckolivas.cl
Prepare for more kernels. :)

Get rid of the kernel date, since this fudges up commit history.

Named after Con Kolivas, the most recent committer.
2014-01-20 16:04:43 +02:00
Noel Maersk
99fa25c27f core: don't use magic numbers to set xintensity. 2014-01-19 20:06:55 +02:00
Martin Danielsen
7aeae40af2 EXPERIMENTAL: A new way of setting intensity; introducing xintensity!
All of this is credited to ArGee of RGMiner, he did the initial ground work for this setting.

This new setting allows for a much finer grained intensity setting and also opens up for dual gpu threads on devices not previously able to. Note: make sure to use lower thread-concurrency values when you increase cpu threads.

Intensity is currently used to spawn GPU threads as a simple 2^value setting.
  I:13 =    8192 threads
  I:15 =   32768 threads
  I:17 =  131072 threads
  I:18 =  262144 threads
  I:19 =  524288 threads
  I:20 = 1048576 threads
Notice how the higher settings increase thread count tremendously.

Now enter the xintensity setting (Yes, I am a genius with my naming convention!).
It is simply a shader multiplier, obviously based on the amount of shaders you got on a card, this should allow the same value to scale with different card models.
   6970 with 1536 shaders: xI:64 = 98304 threads
R9 280X with 2048 shaders: xI:64 = 131072 threads
 R9 290 with 2560 shaders: xI:64 = 180224 threads
R9 290X with 2816 shaders: xI:64 = 163840 threads

   6970 with 1536 shaders: xI:300 = 460800 threads
R9 280X with 2048 shaders: xI:300 = 614400 threads
 R9 290 with 2560 shaders: xI:300 = 768000 threads
R9 290X with 2816 shaders: xI:300 = 844800 threads

It's now much easier to control thread intensity and it potentially allows for a uniform way of setting the intensity on your system. I'm very interested in constructive feedback, as I do not have access to a lot of different card models.

This change has been tested on 6970, R9 290, R9 290X - all with equal or a little better speeds than regular intensity setting after a little tuning, but your mileage may vary. Don't fret it, if this doesn't work for you, the regular intensity setting is still available.

Conflicts:
	driver-opencl.c
	sgminer.c
2014-01-18 21:11:31 +02:00
Martin Danielsen
d7e469bd76 Stratum servers can now be named.
The names will be used throughout the display in the program, when not set "Pool 1" will
simply be used instead. The names are not exposed through API yet, it's on my TODO list.

Use "poolname" like this:

	{
		"poolname" : "Example pool",
		"url" : "stratum+tcp://example.com:8080",
		"user" : "y",
		"pass" : "x"
	},

Conflicts:
	sgminer.c
	util.c
2014-01-18 21:05:26 +02:00
Noel Maersk
b16a05aa0e core: lower maximum intensity to 31.
Intensity determines the number of threads started, is an unsigned int and
is used as (1 << intensity), so anything over 31 is meaningless.
2014-01-17 16:00:20 +02:00
Noel Maersk
50066cf3c7 misc: Replace all remaining instances of 'cgminer' with 'sgminer'.
sed again.
2014-01-15 16:36:48 +02:00
Con Kolivas
350fe7f135 Minimise risk of nonce2 overflow with small nonce2 lengths by always encoding the work little endian, and increasing the maximum size of nonce2 to 8 bytes. 2014-01-15 14:31:28 +02:00
Con Kolivas
05d69bf75c Provide a function to discard queued work based on age. (NOTE: may be unused) 2014-01-15 13:25:30 +02:00
Con Kolivas
9ed6c3b1b5 Provide a function for setting the work ntime. 2014-01-15 12:49:48 +02:00
Noel Maersk
e4680ab627 core: allow changing TCP keepalive packet idle time using tcp-keepalive command-line option or config-file option.
This may be useful in certain scenarios. However, server load from keepalive
is increased 6-fold if code is hard-changed from 30 to 5. So, provide it as
an option instead, and use the previous value as a default (30).

Explanation from

015c064396

Kevin's middlecoin fix, CURL TCP keepalive constants lowered:

CURLOPT_TCP_KEEPIDLE from 45 to 5 and CURLOPT_TCP_KEEPINTVL from 30 to
5. Before it'd trigger a keepalive packet after 45 seconds of connection
idle time and then again every 30 seconds. Now it triggers a keepalive
packet after 5 seconds of connection idle time and then again every 5
seconds.

It makes the client more resilient against coin switching pools or just
pools with connection issues in general. It will however add a tiny bit
pressure to the pool server; but a TCP keepalive probe is only about
60-80 bytes, so I don't think it is an issue.
2014-01-12 19:45:31 +02:00
Noel Maersk
744e819117 Remove last references to opt_nogpu. 2014-01-11 20:51:54 +02:00
Benjamin Herrenschmidt
f44d2fc57f adl: Fix query of default fan speed
This fixes a crash of the AMD driver when quitting as we were trying
to apply what basically is an uninitialized value.

Adds additional code to cope with a failure to retrieve just in case
we hit another problem like that in the future.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2013-12-22 12:58:34 +11:00
Noel Maersk
199cb10e18 HAVE_OPENCL is mandatory, remove checks form code an build system. 2013-12-05 20:49:18 +02:00
Noel Maersk
16730ed90e Reinstitute MAX_INTENSITY=42, but this time with a note in SCRYPT-README. 2013-12-03 21:14:25 +02:00
Noel Maersk
d062a6086d Revert MAX_INTENSITY increase.
Tested with new Catalyst drivers and AMD APP SDK. This is silly and breaks
things.
2013-12-03 20:51:08 +02:00
Noel Maersk
533f16aeb1 Increase MAX_INTENSITY to 42.
Untested, since I do not have the hardware that supports such high a setting.

Requested by yellowz06 on Litecoin Forum:
https://forum.litecoin.net/index.php/topic,6925.msg54952.html#msg54952
2013-11-27 14:08:27 +02:00
Noel Maersk
664fc33b0c Remove code for Bitcoin GPU kernel execution. 2013-11-24 22:16:16 +02:00
Noel Maersk
323af83fdb Remove define-clauses for USE_SCRYPT. 2013-11-24 19:52:14 +02:00
Noel Maersk
95586f72f0 Squash-merge branch dead-end with unnecessary check removals. 2013-11-24 16:18:10 +02:00
Con Kolivas
f4cf0939a2 Add a wr_trylock wrapper for pthread rw lock write trylock. 2013-11-05 08:36:54 +11:00
Con Kolivas
8e1ec8bd43 Store how many work items are worked on per pool. 2013-11-03 00:52:15 +11:00
Con Kolivas
ab1e9404a7 Make each pool store its on reference for what the most current block is and fine tune management of block change in shared pool failover strategies using the information. 2013-11-03 00:47:43 +11:00
Con Kolivas
448b1fae64 Rationalise use of current_hash to a single hex string the length of the previous block and display only the first non zero hex chars of the block in the status window. 2013-11-02 22:25:45 +11:00
Con Kolivas
6e63eebfe1 Add missing endian swap functions for 64bits. 2013-11-02 12:41:20 +11:00
Con Kolivas
759bd39f17 Avoid the extra generation of a byte flipped hash2 in struct work and directly use the LE work hash. 2013-11-02 11:07:44 +11:00
Con Kolivas
61297399de Provide a copy_work_noffset function for copying a work struct but changing its ntime. 2013-11-01 23:38:59 +11:00
Con Kolivas
ac5b12e1a0 Allow arbitrary diffs to be tested against nonces via a test_nonce_diff function. 2013-10-31 17:15:42 +11:00