Может кто-то пожалуйста указать мне на функцию вознаграждения блока в исходном коде? Существует некоторая дискуссия перестает ли вознаграждение существовать на 2040 или 2140 (списки в Википедии 2140).
благодаря
|
13 декабря 2012, 2:47:31 PM | # 1 |
Сообщения: 924
цитировать ответ |
Re: Где функция вознаграждения блока?
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Может кто-то пожалуйста указать мне на функцию вознаграждения блока в исходном коде? Существует некоторая дискуссия перестает ли вознаграждение существовать на 2040 или 2140 (списки в Википедии 2140).
благодаря |
13 декабря 2012, 3:04:15 PM | # 2 |
Сообщения: 2002
цитировать ответ |
Re: Где функция вознаграждения блока?
Получил 1806 Биткоинов
Реальная история. Я не уверен, что именно там, где в коде он обрабатывается, но протокол и математика довольно ясно и просто:
Начнем с дотацией 50 BTC (представленной на выходе в виде целого числа 5000000000) Каждые 210000 блоков сократить субсидию пополам (обрабатывается путем выполнения побитового сдвига вправо на целом значении вознаграждения начального блока) Это побитовое смещение вправо ставит блок субсидию на 0 в блоке 6,930,000 Есть в среднем около 6 блоков в час. 6 блоков в час, умноженному на 24 часа в сутки, умноженный на 365,25 дней в году дает нам около 52596 блоков в год. номер блок 6930000 делится на 52596 блоков в год говорит нам блок субсидия прекратит свое существование около 131 лет после того, как блок 0 был создан. Блок 0 был создан в 2009 году 2009 + 131 = 2140 Похоже, Википедия прав. Почему вы думаете, что это будет 2040? |
13 декабря 2012, 3:22:37 PM | # 3 |
Сообщения: 2002
цитировать ответ |
Re: Где функция вознаграждения блока?
Похоже, вы можете увидеть код здесь:
https://github.com/bitcoin/bitcoin/blob/v0.7.1/src/main.cpp котировка int64 статический GetBlockValue (интермедиат nHeight, int64 nFees) { Int64 nSubsidy = 50 * МОНЕТКА; // Субсидия разрезают пополам каждые 210000 блоков, которые будут происходить примерно каждые 4 года nSubsidy >>= (NHeight / 210000); вернуться nSubsidy + nFees; } |
14 декабря 2012, 12:56:33 PM | # 4 |
Сообщения: 670
цитировать ответ |
Re: Где функция вознаграждения блока?
Похоже, вы можете увидеть код здесь: Как я уже указывал ранее, это дрянной код. После nHeight составляет около 13,23 миллиона долларов (по общему признанию поодаль) этот код имеет неопределенное поведение правого сдвига. Необходимо условное, такие какhttps://github.com/bitcoin/bitcoin/blob/v0.7.1/src/main.cpp котировка int64 статический GetBlockValue (интермедиат nHeight, int64 nFees) { Int64 nSubsidy = 50 * МОНЕТКА; // Субсидия разрезают пополам каждые 210000 блоков, которые будут происходить примерно каждые 4 года nSubsidy >>= (NHeight / 210000); вернуться nSubsidy + nFees; } если (nHeight / 210K >= 63) nSubsidy = 0; еще nSubsidy >>= (NHeight / 210K); Почему код написан с nFees, nHeight и nSubsidy как знаковые целые числа, поскольку они могут только когда-либо быть неотрицательным, также является слабым и источником ошибок ИМО. |
14 декабря 2012, 1:01:24 PM | # 5 |
Сообщения: 1246
цитировать ответ |
Re: Где функция вознаграждения блока?
Похоже, вы можете увидеть код здесь: Как я уже указывал ранее, это дрянной код. После nHeight составляет около 13,23 миллиона долларов (по общему признанию поодаль) этот код имеет неопределенное поведение правого сдвига. Необходимо условное, такие какhttps://github.com/bitcoin/bitcoin/blob/v0.7.1/src/main.cpp котировка int64 статический GetBlockValue (интермедиат nHeight, int64 nFees) { Int64 nSubsidy = 50 * МОНЕТКА; // Субсидия разрезают пополам каждые 210000 блоков, которые будут происходить примерно каждые 4 года nSubsidy >>= (NHeight / 210000); вернуться nSubsidy + nFees; } если (nHeight / 210K >= 63) nSubsidy = 0; еще nSubsidy >>= (NHeight / 210K); Почему код написан с nFees, nHeight и nSubsidy как знаковые целые числа, поскольку они могут только когда-либо быть неотрицательным, также является слабым и источником ошибок ИМО. |
14 декабря 2012, 1:45:08 PM | # 6 |
Сообщения: 836
цитировать ответ |
Re: Где функция вознаграждения блока?
позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
|
14 декабря 2012, 2:26:23 PM | # 7 |
Сообщения: 2366
цитировать ответ |
Re: Где функция вознаграждения блока?
позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова. Вы имеете в виду 246 лет, верно? |
14 декабря 2012, 5:55:30 PM | # 8 |
Сообщения: 836
цитировать ответ |
Re: Где функция вознаграждения блока?
позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова. Вы имеете в виду 246 лет, верно?Код: Н [Потолок [Log2 [25 * 100000000]] * 210000 * 10/60/24/365] Это будет 50 BTC снова nHeight переливается примерно 40853 лет.127,854 Код: N [(2 ^ 31 - 1 - 212190) * 10/60/24/365] Сдвиг с отрицательными числами будут в дальнейшем возрастать по экспоненте награду блок и уничтожить экономику в гиперинфляцию.40853,7 Давайте делать что-то против него в этом столетии! |
14 декабря 2012, 6:28:58 PM | # 9 |
Сообщения: 836
цитировать ответ |
Re: Где функция вознаграждения блока?
КСТАТИ ожидаемая дата первого 0 поощрений блока 5 сентября 2140
Код: DatePlus [{2012, 12, 14}, (2 * 210000 - 212196 + Потолок [Log2 [12.5 * 100000000]] * 210000) * 10/60/24] {2140, 9, 5, 10} |
14 декабря 2012, 7:13:01 PM | # 10 |
Сообщения: 2002
цитировать ответ |
Re: Где функция вознаграждения блока?
. . . После nHeight около 13,23 миллиона человек. , , этот код имеет неопределенное поведение правого сдвига. , , Перед тем, как начать беспокоиться о совершенствовании кода, который не будет проблемой для более чем 130 лет, мы можем иметь дело с первым более актуальной проблемой хранения блока штампа времени, как UNIX время эпохи в 4 байта целого числа без знака? Если я не ошибаюсь, этот штамп времени будет пролонгировать только в 93 лет на 2106-02-07! |
15 декабря 2012, 1:01:18 AM | # 11 |
Сообщения: 2366
цитировать ответ |
Re: Где функция вознаграждения блока?
позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова. Вы имеете в виду 246 лет, верно?Это еще 246 лет до того, как сдвиг становится неопределенным (я в основном с просьбой подтвердить, что вы не ожидаете использовать int32 или UInt32 держать Bitcoin значения ...). |
15 декабря 2012, 7:03:33 AM | # 12 |
Сообщения: 836
цитировать ответ |
Re: Где функция вознаграждения блока?
позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова. Вы имеете в виду 246 лет, верно?Это еще 246 лет до того, как сдвиг становится неопределенным (я в основном с просьбой подтвердить, что вы не ожидаете использовать int32 или UInt32 держать Bitcoin значения ...). Так как никогда не будет больше, чем 2099999997690000 satoshis, поэтому 51 бит будет достаточно, чтобы держать их, даже если бы они решили собрать в одном месте. Я предлагаю несколько больше на своих местах, так что они могут соответствовать свободно и чувствовать, что я угрозу их с уважением. |
15 декабря 2012, 5:54:42 PM | # 13 |
Сообщения: 2366
цитировать ответ |
Re: Где функция вознаграждения блока?
Вы бы объяснить 246? Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других). |
15 декабря 2012, 7:40:19 PM | # 14 |
Сообщения: 836
цитировать ответ |
Re: Где функция вознаграждения блока?
Вы бы объяснить 246? Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других).Звучит захватывающе, давайте оставим все, как есть, я хочу видеть, что это происходит тогда. |
15 декабря 2012, 9:40:14 PM | # 15 |
Сообщения: 1246
цитировать ответ |
Re: Где функция вознаграждения блока?
Вы бы объяснить 246? Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других).Звучит захватывающе, давайте оставим все, как есть, я хочу видеть, что это происходит тогда. |