Uživatelské nástroje

Nástroje pro tento web


troubleshooting:crypto_upg

Toto je starší verze dokumentu!


git update xmr-stak a xmrig-proxy

Incorrect algorithm

  • oficiální xmr-stak TRTL netěží přes moji xmrig-proxy, protože:
>> {"method":"submit","params":{"id":"8aa1d53d-4307-43a1-83d7-3423aa23c9c5", "job_id":"565206028590910470","nonce":"68130047", "result":"200d35d1c3a9f24bebffe04f43cf53262c215239c0ee756c3fc06d6aaf090100", "algo":"cryptonight_lite"},"id":1}
<< {"id":1,"jsonrpc":"2.0","error":{"code":-1,"message":"Incorrect algorithm"}}
  • prostě miner hlasí, že používá cryptonight_lite, ale proxy očekává jiný
  • na proxy mám nastaveno algo na cryptonight-lite, variant -1
Long name Short name Base algorithm Variant Notes
cryptonight-lite cn-lite cn-lite -1 Autodetect works only for Aeon.
cryptonight-lite/0 cn-lite/0 cn-lite 0 Original/old CryptoNight-Lite.
XMR-Stak name XMRig Short name
cryptonight_lite cn-lite/0
cryptonight_lite_v7 cn-lite/1
  • z tabulky plyne, že bych měl proxy nastavit variantu 0, aby to fungovalo s xmr-stak
  • ve skutečnosti je problém ale v xmr-stak, protože hlasí starý alg
  • opravil jsem v xmr-stak

Poznámky

  • fix jsem provedl v xmrstak/jconf.cpp definice mincí
    • všude u řádků s fork version 255 jsem zkopíroval algoroot do algo
/* BARI note:
 *   userpool/devpool is coinDescription
 *   devpool is selected when oWork.iPoolId set to 0
 *   coinDescription is {algo, algo_root, fork_version}
 *   algo is when version >= fork_version (after fork), algo_root is < fork_version (before fork)
 *   fork_version 255u is max value => algoroot selected all the time?? but... submit work is always algo!!!
 *   I HAVE FIXED WRONG LINES WITH FORK VERSION 255 IN USERPOOL
 *
 *   xmrig-proxy algo table:
 *     https://github.com/xmrig/xmrig-proxy/blob/dev/doc/STRATUM_EXT.md#11-miner-defined-algorithms-list
 *     xmrig-proxy/src/common/crypto/Algorithm.cpp
 */
 
xmrstak::coin_selection coins[] = {
	// name, userpool, devpool, default_pool_suggestion
	{ "alloy",               {cryptonight_alloy, cryptonight_alloy, 0u},   {cryptonight_alloy, cryptonight_alloy, 0u},   nullptr},
	{ "aeon7",               {cryptonight_aeon, cryptonight_lite, 7u},     {cryptonight_aeon, cryptonight_lite, 7u},     nullptr},
	{ "bbscoin",             {cryptonight_monero, cryptonight, 3u},        {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "croat",               {cryptonight_monero, cryptonight, 255u},      {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "cryptonight",         {cryptonight, cryptonight, 255u},      {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "cryptonight_masari",  {cryptonight_masari, cryptonight_masari, 255u}, {cryptonight_monero, cryptonight_monero, 0u},nullptr },
	{ "cryptonight_haven",   {cryptonight_haven, cryptonight_haven, 255u}, {cryptonight_heavy, cryptonight_heavy, 0u},   nullptr },
	{ "cryptonight_heavy",   {cryptonight_heavy, cryptonight_heavy, 0u},   {cryptonight_heavy, cryptonight_heavy, 0u},   nullptr },
	{ "cryptonight_lite",    {cryptonight_lite, cryptonight_lite, 255u},   {cryptonight_aeon, cryptonight_lite, 7u},     nullptr },
	{ "cryptonight_lite_v7", {cryptonight_aeon, cryptonight_aeon, 255u},   {cryptonight_aeon, cryptonight_lite, 7u},     nullptr },
	{ "cryptonight_lite_v7_xor", {cryptonight_ipbc, cryptonight_ipbc, 255u}, {cryptonight_aeon, cryptonight_aeon, 255u}, nullptr },
	{ "cryptonight_v7",      {cryptonight_monero, cryptonight_monero, 0u}, {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "cryptonight_v7_stellite", {cryptonight_stellite, cryptonight_stellite, 255u}, {cryptonight_monero, cryptonight_monero, 255u}, nullptr },
	{ "edollar",             {cryptonight_monero, cryptonight, 255u},      {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "electroneum",         {cryptonight, cryptonight, 255u},      {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "graft",               {cryptonight_monero, cryptonight, 8u},        {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "haven",               {cryptonight_haven, cryptonight_heavy, 3u},   {cryptonight_heavy, cryptonight_heavy, 0u},   nullptr },
	{ "intense",             {cryptonight_monero, cryptonight, 4u},        {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "ipbc",                {cryptonight_ipbc, cryptonight_ipbc, 255u},   {cryptonight_aeon, cryptonight_aeon, 255u},     nullptr },
	{ "karbo",               {cryptonight, cryptonight, 255u},      {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "masari",              {cryptonight_masari, cryptonight_monero, 7u},   {cryptonight_monero, cryptonight_monero, 0u},nullptr },
	{ "monero7",             {cryptonight_monero, cryptonight_monero, 0u}, {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "stellite",            {cryptonight_stellite, cryptonight_monero, 4u}, {cryptonight_monero, cryptonight_monero, 0u}, nullptr },
	{ "sumokoin",            {cryptonight_heavy, cryptonight_heavy, 0u},   {cryptonight_heavy, cryptonight_heavy, 0u},   nullptr },
	{ "turtlecoin",          {cryptonight_aeon, cryptonight_aeon, 255u},   {cryptonight_aeon, cryptonight_lite, 7u},     nullptr }
};
  • v xmrstak/net/jpsock.cpp je definice funkce cmd_submit obsahující přepis alg na aliasy použité v submit
  • reportuje se vždycky algo bez ohledu na verzi forku
 		switch(algo)
		{
		case cryptonight:
			algo_name = "cryptonight";
			break;
		case cryptonight_lite:
			algo_name = "cryptonight_lite";
			break;
		case cryptonight_monero:
			algo_name = "cryptonight_v7";
			break;
		case cryptonight_aeon:
			algo_name = "cryptonight_lite_v7";
			break;
		case cryptonight_stellite:
			algo_name = "cryptonight_v7_stellite";
			break;
		case cryptonight_alloy:
			algo_name = "cryptonight-alloy";
			break;
		case cryptonight_ipbc:
			algo_name = "cryptonight_lite_v7_xor";
			break;
		case cryptonight_heavy:
			algo_name = "cryptonight_heavy";
			break;
		case cryptonight_haven:
			algo_name = "cryptonight_haven";
			break;
		case cryptonight_masari:
			algo_name = "cryptonight_masari";
			break;
		default:
			algo_name = "unknown";
			break;
		}
  • xmrig-proxy parametr algo má podle zdrojáku Algorithm.cpp Algorithm::ParseAlgorithm hodnoty
cryptonight
cryptonight-lite
cryptonight-light
cryptonight-heavy
  • když na proxy nastavím algo cryptonight, pak
    • variant -1 - oficiaální xmr-stak nejede, dřívější xmr-stak-trtl jedou, fixnutá verze nejede
    • variant 0 - oficiaální xmr-stak jede, dřívější xmr-stak-trtl nejedou, fixnutá verze nejede
    • variant 1 - oficiaální xmr-stak nejede, dřívější xmr-stak-trtl nejedou, fixnutá verze jede

nejradsi bych uplne zrusil tu kontrolu alg na proxy.. to dela vic skody nez uzitku kruci :D

TODO

  • porovnej vykon noveho cnl1 a trtl na 8c8k… rekl bych, ze je tam polovicni :D viz screen v pictures
  • přidat do xmr-stak bittube v2

UPX segfault

  • druhý problém je s UPX (komprimací binárky)
  • když ho aplikuji na binarku, tak po spusteni haze segfault :(
  • neexistuje novější verze než kterou mám v systému
 upx -V
upx 3.94
UCL data compression library 1.03
zlib data compression library 1.2.11
LZMA SDK version 4.43
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2017 Laszlo Molnar
Copyright (C) 2000-2017 John F. Reiser
Copyright (C) 2002-2017 Jens Medoch
Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
Copyright (C) 1999-2006 Igor Pavlov
UPX comes with ABSOLUTELY NO WARRANTY; for details type 'upx -L'.
  • zjistil jsem, že když použiji fast compression, tak to segfault neháže
troubleshooting/crypto_upg.1530885835.txt.gz · Poslední úprava: (upraveno mimo DokuWiki)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki