Вернуться   Биткоин Форум > - Помощь начинающим
16 января 2012, 1:16:09 PM   # 1
 
 
Сообщения: 965
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

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


Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru
Здравствуй!

Извините за мой плохой Englisch, но это не мой родной язык, так как я из Германии.

Я прочитал о концепции Bitcoin некоторого время назад и уже установил шахтер на моей Radeon 5850. Работает назад, но я хотел бы получить небольшой шахтер собирается на мою ежедневное кодировании машины, которая имеет GeForce 7. Так что я получил меня BrookGPU, получил некоторые демонстрационные приложения собираются и хотят, чтобы написать код для него.

Так как у меня не так много понятия о том, весь процесс добычи, я думал, что я должен начать с очень простой демо-приложение, называется хэш-код и изменить его, чтобы сделать что-то полезное. Поэтому я портировал его на cc65 компилятора и запустить его на Vice (а c64 эмулятор) просто поразвлечься с ним и понимать код и т.д.

Моя нынешняя проблема заключается в трудности <знак равно> хэш сравнения. Я написал функцию декодирования для сложности в соответствии с записью Wiki:

Код:
/ **
 * Decode цели в 256 битном междунар. См запись цели в Bitcoin вики для деталей.
 * /
недействительный decodeDifficulty (uint8 * TargetArray, целевая uint32) {
  uint32 смещения = ((цель >> 24) - 3) << 3;
  INT Bitshift = смещение & 7;
  INT currentByte = смещение >> 3;
  uint32 targetBits = целевая & (UInt32) 0x00FFFFFF;

  если (targetBits & 0x00800000) = (uint32) 0xff000000;
    bzero (TargetArray, SizeOf (uint8) * currentByte); // Пустое все ниже битовую
    MemSet ( &TargetArray [currentByte + 4], 0xff, SizeOf (uint8) * (SHA256_DIGEST_LENGTH - 4 - currentByte)); // Заполнить биты над битовым с 1 для расширения знака
  еще {
    bzero (TargetArray, SizeOf (uint8) * SHA256_DIGEST_LENGTH); // пустой целевой массив
  }

  TargetArray [currentByte ++] = (Uint8) (targetBits & 0xff);
  targetBits >>= 8;
  TargetArray [currentByte ++] = (Uint8) (targetBits & 0xff);
  targetBits >>= 8;
  TargetArray [currentByte ++] = (Uint8) (targetBits & 0xff);
  targetBits >>= 8;
  TargetArray [currentByte] = (Uint8) (targetBits & 0xff);
}

и функции сравнения для 32 байт целых чисел:

Код:
/ **
 * Сравните 2 256 бит целочисленных значений.
 *
 * @return значения > 0, если hash1 > hash2, значение < 0, если hash1 < hash2 и 0, если они равны.
 * /
INT compareHash (uint8 * hash1, uint8 * hash2) {
  uint8 msb1, msb2;
  INT currentByte;
  INT byteDifference;

  // Проверяет, если оба числа имеют одинаковый знак ..
  msb1 = hash1 [SHA256_DIGEST_LENGTH - 1] & 0х80;
  msb2 = hash2 [SHA256_DIGEST_LENGTH - 1] & 0х80;

  если (msb1! = msb2) {// Оба числа отличаются знаком
    вернуться msb1? -1: 1;
  }
 
  // Мы должны сравнивать побайтно ... 🙁
  для (currentByte = SHA256_DIGEST_LENGTH - 1; currentByte >= 0; --currentByte) {

    byteDifference = hash1 [currentByte] - hash2 [currentByte]; // Вычислить разность текущего bytes-.

    если (byteDifference) {// Если байты различаются.
      вернуться byteDifference; // просто вернуть разницу.
    }
  }

  возвращать 0; // оба Интс равны.
}

, но что произойдет, если хэш больше чем 0x8000 .... => отрицательна? Это меньше в моем текущем коде, так что это будет решение, которое не так, как я его понимаю. Так что я должен сравнения абс (хэш) < трудность?

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


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


16 января 2012, 2:22:10 PM   # 2
 
 
Сообщения: 702
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Получил 1806 Биткоинов
Реальная история.





Теперь вы смотрите на 32 байтовое целое число, как если бы это знаковое целое, но это должно быть беззнаковое 32 байт целое.
pieppiep сейчас офлайн Пожаловаться на pieppiep   Ответить с цитированием Мультицитирование сообщения от pieppiep Быстрый ответ на сообщение pieppiep

16 января 2012, 5:19:38 PM   # 3
 
 
Сообщения: 965
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Большое спасибо за Ваш комментарий. У меня был возможность отрицательной трудности в моем коде, потому что вики сказали, что это знаковое значение. С практической точки зрения, отрицательная трудность не имеет особого смысла, так что я буду исправить мой код.

Еще раз спасибо за ваш ответ,
Andreas
daybyter сейчас офлайн Пожаловаться на daybyter   Ответить с цитированием Мультицитирование сообщения от daybyter Быстрый ответ на сообщение daybyter

16 января 2012, 6:53:48 PM   # 4
 
 
Сообщения: 965
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Текущий код доступен здесь:

http://www.forum64.de/wbb3/board25-coder-unter-sich/board308-programmieren/board29-cross-development/45342-bitcoin-mining-auf-dem-c64/#post579246

На данный момент, это просто хак, чтобы получить что-то происходит. Код sha256 представляет собой смесь некоторых реализаций, найти на различном месте сети. Некоторые из них от Christophe Devine, но я не мог использовать оптимизированный код с развернутыми петлями из-за ограничения памяти. Makefile не делает никакой реальной оптимизации скорости все же, так как я хотел код должен быть оптимизирован для размера, а не скорость. Сетевая часть полностью пока не хватает, но я сомневаюсь, что это имеет смысл запросить фактические блоки, так как Breadbox просто слишком медленно для продуктивной работы (100 в 274 одноразовых номерах секунд в данный момент).

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

17 января 2012, 8:42:45 PM   # 5
 
 
Сообщения: 203
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Поскольку хэши объявлены как uint8, вы должны увидеть его как беззнаковое, так нет, они никогда не будут отрицательными.
codymanix сейчас офлайн Пожаловаться на codymanix   Ответить с цитированием Мультицитирование сообщения от codymanix Быстрый ответ на сообщение codymanix

21 января 2012, 9:23:00 PM   # 6
 
 
Сообщения: 965
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Поскольку хэши объявлены как uint8, вы должны увидеть его как беззнаковое, так нет, они никогда не будут отрицательными.


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

21 января 2012, 9:27:40 PM   # 7
 
 
Сообщения: 702
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Вы собираетесь добывать биткойны на Commodore 64 ??
Как круто! 
pieppiep сейчас офлайн Пожаловаться на pieppiep   Ответить с цитированием Мультицитирование сообщения от pieppiep Быстрый ответ на сообщение pieppiep

22 января 2012, 1:53:59 PM   # 8
 
 
Сообщения: 965
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Э-э .... не очень ...

Я просто написать код и хочу сохранить его портативным, поэтому компилировать его для c64 является хорошим тестом.

Проблема заключается в плохой работе старого Breadbox. Он вычисляет около 2 хэшей в секунду на данный момент ...

Может быть, c64 кластер будет решение ...

Но точно такой же код без каких-либо модификаций, 32-разрядные оптимизации, многопоточность и т.д. вычисляет около 2000000 хэшируются на моем Ahtlon 840 3,2 ГГц.

Моя текущая целевая платформа дешевые графические процессоры. Старые NVidia карты и такие. Может быть, время простоя таких машин может быть использовано для низкого пула производительности, или так ...

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

22 января 2012, 2:50:58 PM   # 9
 
 
Сообщения: 173
Цитировать по имени
цитировать ответ
по умолчанию Re: новичок хочет понять концепцию добычи Bitcoin

Может быть, c64 кластер будет решение ...

Может быть, если вы получаете все C64 когда-либо проданным в кластере .. 
xqus сейчас офлайн Пожаловаться на xqus   Ответить с цитированием Мультицитирование сообщения от xqus Быстрый ответ на сообщение xqus



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

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

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

3HmAQ9FkRFk6HZGuwExYxL62y7C1B9MwPW