Many Coins (OP)
Member
Offline
Activity: 280
Merit: 11
Lord Shiva
|
|
February 17, 2018, 10:10:24 PM |
|
Привет! Может кто-нибудь простыми русскими словами объяснить про "сложность = 1.0", "block.nBits = 0x1d00ffff" и другие смежные вопросы? Я читал Вики - ничего не понял То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
|
|
|
|
|
Many Coins (OP)
Member
Offline
Activity: 280
Merit: 11
Lord Shiva
|
|
February 18, 2018, 07:37:18 AM Last edit: February 18, 2018, 08:02:24 AM by Many Coins |
|
Вау как круто!! Спасибище!! Я её всю прочту!! //мне просто придется это сделать - я прочитал эту главу и снова ничего не понял по ходу не хватает базовых знаний всей этой кухни.
|
|
|
|
Coin-1
Legendary
Offline
Activity: 2604
Merit: 2277
|
|
February 19, 2018, 02:52:05 PM |
|
То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
Сложность майнинга - это процесс управляемый и, если речь о Bitcoin, задаётся количеством нулевых старших битов хеша смайненного блока. Ровно в 10 раз, наверно, не получится снизить сложность, так как здесь двоичная математика. Можно снизить, например, в 8 раз, уменьшив число нулевых битов на 3.
|
|
|
|
Many Coins (OP)
Member
Offline
Activity: 280
Merit: 11
Lord Shiva
|
|
February 19, 2018, 03:57:49 PM |
|
То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
Сложность майнинга - это процесс управляемый и, если речь о Bitcoin, задаётся количеством нулевых старших битов хеша смайненного блока. Ровно в 10 раз, наверно, не получится снизить сложность, так как здесь двоичная математика. Можно снизить, например, в 8 раз, уменьшив число нулевых битов на 3. Отлично! ...но как это сделать?
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
February 19, 2018, 04:07:27 PM |
|
Я не заморачивался такими нюансами. В debag.log подобной строчкой: printf("=== 0x201fffff target: %s\n", CBigNum().SetCompact(0x201fffff).getuint256().GetHex().c_str()); вывел несколько вариантов: === 0x1f0fffff target: 000fffff00000000000000000000000000000000000000000000000000000000 === 0x1e0fffff target: 00000fffff000000000000000000000000000000000000000000000000000000 === 0x1d0fffff target: 0000000fffff0000000000000000000000000000000000000000000000000000 === 0x1c0fffff target: 000000000fffff00000000000000000000000000000000000000000000000000 === 0x1b0fffff target: 00000000000fffff000000000000000000000000000000000000000000000000 === 0x1a0fffff target: 0000000000000fffff0000000000000000000000000000000000000000000000 === 0x190fffff target: 000000000000000fffff00000000000000000000000000000000000000000000 === 0x180fffff target: 00000000000000000fffff000000000000000000000000000000000000000000 === 0x170fffff target: 0000000000000000000fffff0000000000000000000000000000000000000000 === 0x160fffff target: 000000000000000000000fffff00000000000000000000000000000000000000 === 0x150fffff target: 00000000000000000000000fffff000000000000000000000000000000000000 === 0x140fffff target: 0000000000000000000000000fffff0000000000000000000000000000000000 === 0x130fffff target: 000000000000000000000000000fffff00000000000000000000000000000000 === 0x120fffff target: 00000000000000000000000000000fffff000000000000000000000000000000 === 0x110fffff target: 0000000000000000000000000000000fffff0000000000000000000000000000 === 0x100fffff target: 000000000000000000000000000000000fffff00000000000000000000000000
=== 0x1e00ffff target: 000000ffff000000000000000000000000000000000000000000000000000000 === 0x1e000fff target: 0000000fff000000000000000000000000000000000000000000000000000000 и выбирал среди них подходящие. Вот это тоже может понадобиться: === CBigNum(~uint256(0) >> 10): 003fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 16): 0000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 20): 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 21): 000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 22): 000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 23): 000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 24): 000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 25): 0000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 26): 0000003fffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 27): 0000001fffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 28): 0000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 29): 00000007ffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 30): 00000003ffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 31): 00000001ffffffffffffffffffffffffffffffffffffffffffffffffffffffff === CBigNum(~uint256(0) >> 32): 00000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffff
|
|
|
|
Many Coins (OP)
Member
Offline
Activity: 280
Merit: 11
Lord Shiva
|
|
February 19, 2018, 07:31:04 PM |
|
Я не заморачивался такими нюансами. В debag.log подобной строчкой: printf("=== 0x201fffff target: %s\n", CBigNum().SetCompact(0x201fffff).getuint256().GetHex().c_str()); вывел несколько вариантов: === 0x1f0fffff target: 000fffff00000000000000000000000000000000000000000000000000000000
и выбирал среди них подходящие. То есть, я правильно понял, что если прописать block.nBits = 0x1f0fffff - то оно будет искать хэш с тремя лидирующими нулями (и меньше)?
|
|
|
|
neiros
Legendary
Offline
Activity: 3556
Merit: 1100
|
|
February 20, 2018, 06:33:01 AM Last edit: February 20, 2018, 07:24:09 AM by neiros |
|
То есть, я правильно понял, что если прописать block.nBits = 0x1f0fffff - то оно будет искать хэш с тремя лидирующими нулями (и меньше(хеш), т.е. и больше(нулей))?
Да. При условии, что лимит это позволит(дополнение ).
|
|
|
|
Many Coins (OP)
Member
Offline
Activity: 280
Merit: 11
Lord Shiva
|
|
February 20, 2018, 11:07:57 AM |
|
Да. При условии, что лимит это позволит(дополнение ). Что за лимит? Еще какую-то переменную нужно поправить? **ну да, хэш меньше - нулей больше)) может случайно так совпасть, что первое совпадение будет не с 3-мя, а с 5-ю нулями, например.
|
|
|
|
|
|