Перейти к публикации
Minherc

Вопрос по майнингу биткоин - NONCE

Рекомендованные сообщения

Добрый вечер!

 

Есть вопрос к специалистам по майнингу:

 

у современных майнеров скорость перебора хешей 13 тера хешей в секунду (asic s9) т.е. 13 х 1 000 000 000 000 000  хешей в секунду 

значение nonce меняется в перделах от 0 до 

4 238 458 157

 

посмотрел последние 400 блоков

 

получается что 1 asic S9  меньше чем за 1 секунду найдет требуемый блок подобрав нужный nonce

 

почему так не происходит на практике?

где собака порылась ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

потому что для нахождения правильного хеша важен не только nonce. Да, пул даёт задания с низкой сложностью и учитывает найденные шары для выплаты награды, но если диапазон nonce кончился, а хеш>цели, то пул меняет соль и высылает новое задание.

Изменено пользователем vvvb1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
2 минуты назад, vvvb1 сказал:

потому что переберается не только nonce. Если диапазон кончился, а хеш>цели, то пул меняет соль и высылает новое задание.

не совсем понял что за "соль"

в блоке есть следуюшие данные:

[strippedsize]
[weight] [height] [version] [versionHex] [merkleroot] [time] [mediantime] [nonce] [bits] [difficulty] [chainwork] [previousblockhash]

[nextblockhash]

 

какой из них соль?

при чем тут пул ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

соль в криптографии это строка-модификатор хешфункции, которая не меняет исходные данные, но влияет на получаемый хеш. В данном случае к соли относятся поля nonce, nbits, ntime. Пул при том, что майнит майнер не блок, а те задания которые ему даёт пул и уже ПО пула проверяет является ли найденная шара хешем блока или надо дальше задания раздавать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Пул здесь не причем, я могу результат отправлять напрямую в сеть, для этого мне нужна только следующая информация из последнего блока для которого не найден хеш (SHA256) код PHP

 $version = littleEndian(1);
  $prevBlockHash = SwapOrder('00000000000008a3a41b85b8b29ad444def299fee21793cd8b9e567eab02cd81');
  $rootHash = SwapOrder('2b12fcf1b09288fcaff797d71e950e71ae42b91e8bdb2304758dfcffc2b620e3');
  $time = littleEndian(1305998791);
  $bits = littleEndian(440711666); 
  $nonce = littleEndian(2504433986);
function bitka($version , $prevBlockHash , $rootHash , $time , $bits , $nonce)
  {
	  $header_hex = $version . $prevBlockHash . $rootHash . $time . $bits . $nonce;
	  //dump($header_hex,"header_hex");
	  //convert from hex to binary 
	  $header_bin  = hex2bin($header_hex);
	  //hash it then convert from hex to binary 
	  //dump($header_bin,"header_bin");
	  $pass1 = hex2bin(hash('sha256', $header_bin ));
	  //Hash it for the seconded time
	  //dump(bin2hex($pass1),"pass1");
	  $pass2 = hash('sha256', $pass1);
	  //dump($pass2,"pass2");
	  //fix the order
	  $FinalHash = SwapOrder($pass2);
	 // dump($pass2,"pass2 swap");
  	return $FinalHash;
  }
 

 здесь нет никакой "соли"

 

в данном примере не хватает только значения сложности и проверки

 

при nonce = 2504433986, данный блок проходил POW (блок очень древний)

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вы похоже тему для спора создали. Ещё раз: можете хеш хоть на бумажке искать и отправлять в сеть, однако сеть примет не любой хеш, а определенный, удовлетворяющий текущей сложности сети. Перебрали весь диапазон nonce, но шех не подходит - меняем, на единицу nbits или time и начинаем расчёты заново.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

дело не в споре, а в правильном алгоритме

можете кинуть пруф ссыль что можно менять bit  и time ?

 

update: bits не менялось последние 400 блоков (

180091c1

)

 

значит его нельзя менять ?

 

Изменено пользователем Minherc

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 04.01.2018 в 19:16, Minherc сказал:

получается что 1 asic S9  меньше чем за 1 секунду найдет требуемый блок подобрав нужный nonce

 

Или не найдёт. Можно перебрать весь nonce, но так и не найти хеш, удовлетворяющий текущей сложности. Тогда придётся увеличить параметр time на 1 (то есть, на одну секунду) и снова с нуля перебирать nonce. Но ASIC-и считают так быстро, что для нахождения блока пришлось бы слишком часто инкрементировать time и он бы перестал отображать реальное время нахождения блока.

 

Поэтому решили расширить nonce параметром ExtraNonce. Но в заголовке блока места для лишнего параметра нет, поэтому ExtraNonce запихивают в scriptSig coinbase-транзакции.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Да, спасибо, уже разобрался.

 

Цитата

The Extra Nonce Solution

Since 2012, bitcoin mining has evolved to resolve a fundamental limitation in the structure of the block header. In the early days of bitcoin, a miner could find a block by iterating through the nonce until the resulting hash was below the target. As difficulty increased, miners often cycled through all 4 billion values of the nonce without finding a block. However, this was easily resolved by updating the block timestamp to account for the elapsed time. Because the timestamp is part of the header, the change would allow miners to iterate through the values of the nonce again with different results. Once mining hardware exceeded 4 GH/sec, however, this approach became increasingly difficult because the nonce values were exhausted in less than a second. As ASIC mining equipment started pushing and then exceeding the TH/sec hash rate, the mining software needed more space for nonce values in order to find valid blocks. The timestamp could be stretched a bit, but moving it too far into the future would cause the block to become invalid. A new source of "change" was needed in the block header. The solution was to use the coinbase transaction as a source of extra nonce values. Because the coinbase script can store between 2 and 100 bytes of data, miners started using that space as extra nonce space, allowing them to explore a much larger range of block header values to find valid blocks. The coinbase transaction is included in the merkle tree, which means that any change in the coinbase script causes the merkle root to change. Eight bytes of extra nonce, plus the 4 bytes of "standard" nonce allow miners to explore a total 296 (8 followed by 28 zeros) possibilities per second without having to modify the timestamp. If, in the future, miners could run through all these possibilities, they could then modify the timestamp. There is also more space in the coinbase script for future expansion of the extra nonce space.

 

вся подробная инфа тут кому надо http://chimera.labs.oreilly.com/books/1234000001802/ch08.html#_bitcoin_economics_and_currency_creation

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
29 минут назад, Tertrarij сказал:

Ищем майнеров для долгосрочного сотрудничества!

Зачем вы их ищете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

×