Author

Topic: Про nBits объясните простыми словами, а? (Read 209 times)

legendary
Activity: 3556
Merit: 1100
Да. При условии, что лимит это позволит(дополнение Roll Eyes).

Что за лимит? Еще какую-то переменную нужно поправить?

Ага. Вот эту - https://github.com/neiros/---TTC---/blob/TTC-all-Lyra2REv2/src/chainparams.cpp#L35
member
Activity: 294
Merit: 11
Lord Shiva
Да. При условии, что лимит это позволит(дополнение Roll Eyes).

Что за лимит? Еще какую-то переменную нужно поправить?

**ну да, хэш меньше - нулей больше)) может случайно так совпасть, что первое совпадение будет не с 3-мя, а с 5-ю нулями, например.
legendary
Activity: 3556
Merit: 1100

То есть, я правильно понял, что если прописать block.nBits = 0x1f0fffff - то оно будет искать хэш с тремя лидирующими нулями (и меньше(хеш), т.е. и больше(нулей))?

Да. При условии, что лимит это позволит(дополнение Roll Eyes).
member
Activity: 294
Merit: 11
Lord Shiva
Я не заморачивался такими нюансами.
В debag.log подобной строчкой:
Code:
printf("=== 0x201fffff target: %s\n", CBigNum().SetCompact(0x201fffff).getuint256().GetHex().c_str());
вывел несколько вариантов:
Code:
=== 0x1f0fffff target: 000fffff00000000000000000000000000000000000000000000000000000000
и выбирал среди них подходящие.

То есть, я правильно понял, что если прописать block.nBits = 0x1f0fffff - то оно будет искать хэш с тремя лидирующими нулями (и меньше)?
legendary
Activity: 3556
Merit: 1100
Я не заморачивался такими нюансами.
В debag.log подобной строчкой:
Code:
printf("=== 0x201fffff target: %s\n", CBigNum().SetCompact(0x201fffff).getuint256().GetHex().c_str());
вывел несколько вариантов:
Code:
=== 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
и выбирал среди них подходящие.

Вот это тоже может понадобиться:
Code:
=== 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
member
Activity: 294
Merit: 11
Lord Shiva
То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
Сложность майнинга - это процесс управляемый и, если речь о Bitcoin, задаётся количеством нулевых старших битов хеша смайненного блока. Ровно в 10 раз, наверно, не получится снизить сложность, так как здесь двоичная математика. Можно снизить, например, в 8 раз, уменьшив число нулевых битов на 3.

Отлично!

...но как это сделать? Grin
legendary
Activity: 2618
Merit: 2304
То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
Сложность майнинга - это процесс управляемый и, если речь о Bitcoin, задаётся количеством нулевых старших битов хеша смайненного блока. Ровно в 10 раз, наверно, не получится снизить сложность, так как здесь двоичная математика. Можно снизить, например, в 8 раз, уменьшив число нулевых битов на 3.
member
Activity: 294
Merit: 11
Lord Shiva
Mastering Bitcoin
глава "Представление сложности"

Вау как круто!! Спасибище!! Я её всю прочту!!

//мне просто придется это сделать - я прочитал эту главу и снова ничего не понял Grin по ходу не хватает базовых знаний всей этой кухни.
legendary
Activity: 2317
Merit: 2318
Mastering Bitcoin
глава "Представление сложности"
member
Activity: 294
Merit: 11
Lord Shiva
Привет!

Может кто-нибудь простыми русскими словами объяснить про "сложность = 1.0", "block.nBits = 0x1d00ffff" и другие смежные вопросы?

Я читал Вики - ничего не понял Huh

То есть, например мне нужно снизить сложность вычислений от упомянутой 0x1d00ffff в 10 раз - это мне какое значение надо для block.nBits установить? И почему?
Jump to: