Вернуться   Биткоин Форум > Разработка и Техническое Обсуждение
13 декабря 2012, 2:47:31 PM   # 1
 
 
Сообщения: 924
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome"
Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE
Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e
подробнее...


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Может кто-то пожалуйста указать мне на функцию вознаграждения блока в исходном коде? Существует некоторая дискуссия перестает ли вознаграждение существовать на 2040 или 2140 (списки в Википедии 2140).

благодаря
misterbigg сейчас офлайн Пожаловаться на misterbigg   Ответить с цитированием Мультицитирование сообщения от misterbigg Быстрый ответ на сообщение misterbigg


Как заработать Биткоины?
Без вложений. Не майнинг.


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?
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

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;
}
DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

14 декабря 2012, 12:56:33 PM   # 4
 
 
Сообщения: 670
Цитировать по имени
цитировать ответ
по умолчанию 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;
}
Как я уже указывал ранее, это дрянной код. После nHeight составляет около 13,23 миллиона долларов (по общему признанию поодаль) этот код имеет неопределенное поведение правого сдвига. Необходимо условное, такие как

  если (nHeight / 210K >= 63)
    nSubsidy = 0;
  еще
    nSubsidy >>= (NHeight / 210K);

Почему код написан с nFees, nHeight и nSubsidy как знаковые целые числа, поскольку они могут только когда-либо быть неотрицательным, также является слабым и источником ошибок ИМО.
Зеведей сейчас офлайн Пожаловаться на Зеведях   Ответить с цитированием Мультицитирование сообщения от Зеведей Быстрый ответ на сообщение Зеведея

14 декабря 2012, 1:01:24 PM   # 5
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию 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;
}
Как я уже указывал ранее, это дрянной код. После nHeight составляет около 13,23 миллиона долларов (по общему признанию поодаль) этот код имеет неопределенное поведение правого сдвига. Необходимо условное, такие как

  если (nHeight / 210K >= 63)
    nSubsidy = 0;
  еще
    nSubsidy >>= (NHeight / 210K);

Почему код написан с nFees, nHeight и nSubsidy как знаковые целые числа, поскольку они могут только когда-либо быть неотрицательным, также является слабым и источником ошибок ИМО.
Я уверен, что вы видели эта проблема с помощью целых чисел без знака.
dree12 сейчас офлайн Пожаловаться на dree12   Ответить с цитированием Мультицитирование сообщения от dree12 Быстрый ответ на сообщение dree12

14 декабря 2012, 1:45:08 PM   # 6
 
 
Сообщения: 836
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
Grau сейчас офлайн Пожаловаться на Грау   Ответить с цитированием Мультицитирование сообщения от Grau Быстрый ответ на сообщение Grau

14 декабря 2012, 2:26:23 PM   # 7
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
Вы имеете в виду 246 лет, верно?
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

14 декабря 2012, 5:55:30 PM   # 8
 
 
Сообщения: 836
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
Вы имеете в виду 246 лет, верно?
награда блока будет 0 в годах:
Код:
Н [Потолок [Log2 [25 * 100000000]] * 210000 * 10/60/24/365]
127,854
Это будет 50 BTC снова nHeight переливается примерно 40853 лет.
Код:
N [(2 ^ 31 - 1 - 212190) * 10/60/24/365]
40853,7
Сдвиг с отрицательными числами будут в дальнейшем возрастать по экспоненте награду блок и уничтожить экономику в гиперинфляцию.

Давайте делать что-то против него в этом столетии!
Grau сейчас офлайн Пожаловаться на Грау   Ответить с цитированием Мультицитирование сообщения от Grau Быстрый ответ на сообщение Grau

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}
Grau сейчас офлайн Пожаловаться на Грау   Ответить с цитированием Мультицитирование сообщения от Grau Быстрый ответ на сообщение Grau

14 декабря 2012, 7:13:01 PM   # 10
 
 
Сообщения: 2002
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

. . . После nHeight около 13,23 миллиона человек. , , этот код имеет неопределенное поведение правого сдвига. , ,

Перед тем, как начать беспокоиться о совершенствовании кода, который не будет проблемой для более чем 130 лет, мы можем иметь дело с первым более актуальной проблемой хранения блока штампа времени, как UNIX время эпохи в 4 байта целого числа без знака? Если я не ошибаюсь, этот штамп времени будет пролонгировать только в 93 лет на 2106-02-07!

DannyHamilton сейчас офлайн Пожаловаться на DannyHamilton   Ответить с цитированием Мультицитирование сообщения от DannyHamilton Быстрый ответ на сообщение DannyHamilton

15 декабря 2012, 1:01:18 AM   # 11
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
Вы имеете в виду 246 лет, верно?

Это еще 246 лет до того, как сдвиг становится неопределенным (я в основном с просьбой подтвердить, что вы не ожидаете использовать int32 или UInt32 держать Bitcoin значения ...).
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

15 декабря 2012, 7:03:33 AM   # 12
 
 
Сообщения: 836
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

позволяет исправить это в течение ближайших 127 лет, в противном случае мы будем иметь 50 блоков BTC снова.
Вы имеете в виду 246 лет, верно?

Это еще 246 лет до того, как сдвиг становится неопределенным (я в основном с просьбой подтвердить, что вы не ожидаете использовать int32 или UInt32 держать Bitcoin значения ...).
Вы бы объяснить 246?

Так как никогда не будет больше, чем 2099999997690000 satoshis, поэтому 51 бит будет достаточно, чтобы держать их, даже если бы они решили собрать в одном месте.

Я предлагаю несколько больше на своих местах, так что они могут соответствовать свободно и чувствовать, что я угрозу их с уважением.
Grau сейчас офлайн Пожаловаться на Грау   Ответить с цитированием Мультицитирование сообщения от Grau Быстрый ответ на сообщение Grau

15 декабря 2012, 5:54:42 PM   # 13
 
 
Сообщения: 2366
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

Вы бы объяснить 246?
Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других).
gmaxwell сейчас офлайн Пожаловаться на gmaxwell   Ответить с цитированием Мультицитирование сообщения от gmaxwell Быстрый ответ на сообщение gmaxwell

15 декабря 2012, 7:40:19 PM   # 14
 
 
Сообщения: 836
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

Вы бы объяснить 246?
Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других).

Звучит захватывающе, давайте оставим все, как есть, я хочу видеть, что это происходит тогда.
Grau сейчас офлайн Пожаловаться на Грау   Ответить с цитированием Мультицитирование сообщения от Grau Быстрый ответ на сообщение Grau

15 декабря 2012, 9:40:14 PM   # 15
 
 
Сообщения: 1246
Цитировать по имени
цитировать ответ
по умолчанию Re: Где функция вознаграждения блока?

Вы бы объяснить 246?
Потому что это грубо, когда (ну, пару лет назад) сдвиг будет идти от 63 до 64 лет и становятся неопределенными. (См стандарт, "Поведение не определено, если правый операнд отрицателен или больше или равно длине в битах продвигаемого левого операнда."). До тех пор ее просто выводит ноль, который является разумным и ожидаемое поведение, после того, как то компилятор разрешается закончить вселенную (но более вероятно, он будет возвращать 0 в некоторых системах и 50 BTC на других).

Звучит захватывающе, давайте оставим все, как есть, я хочу видеть, что это происходит тогда.
Я сомневаюсь, что Bitcoin будет вокруг тогда. Я сомневаюсь, что компьютеры будут вокруг тогда. Черт возьми, я сомневаюсь, что люди, как мы их знаем, будет вокруг них. С силой приходит ответственность, и с почти бесконечным человечеством сила достижения я сомневаюсь, что мы достаточно ответственны.
dree12 сейчас офлайн Пожаловаться на dree12   Ответить с цитированием Мультицитирование сообщения от dree12 Быстрый ответ на сообщение dree12



Как заработать Биткоины?

Bitcoin Wallet * Portefeuille Bitcoin * Monedero Bitcoin * Carteira Bitcoin * Portafoglio Bitcoin * Bitcoin Cüzdan * 比特币钱包

bitcoin-zarabotat.ru
Почта для связи: bitcoin-zarabotat.ru@yandex.ru

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW