Title: Исходники bitcoin Post by: somenick on May 11, 2012, 05:25:49 AM Это так круто брать хеш ? :o
Я уже боюсь дальше читать ) Кто считает что это нормальный способ, и этот способ не зависит от архитектуры компьютера ? Code: #define BEGIN(a) ((char*)&(a)) Code: inline uint256 Hash(const T1 pbegin, const T1 pend) Title: Re: Исходники bitcoin Post by: LZ on May 11, 2012, 08:13:55 PM Главное, чтобы работало. 8)
Title: Re: Исходники bitcoin Post by: SHawk on May 12, 2012, 07:18:01 AM меня в этой конструкции только отсутствие pragma pack смущает. Но все так пишут и это, обычно, работает.
Написане кода - всегда компромис :) Title: Re: Исходники bitcoin Post by: rPman on May 12, 2012, 07:57:22 AM хм, а как это собирается на x86_64 платформе О_о, я имею в виду int
p.s. не ожидал, как минимум прагма и __int32 должны были стоять. Title: Re: Исходники bitcoin Post by: somenick on May 12, 2012, 06:57:06 PM здесь вообще зависимость от little-endian и big-endian
Title: Re: Исходники bitcoin Post by: SHawk on May 12, 2012, 07:44:36 PM здесь вообще зависимость от little-endian и big-endian если на это закладываться, то как минимум, нужно бы еще декларацию uint256 приводить. В ней, наверняка, эта зависимость тоже есть и исправлением приведенного кода она не обойдется... да и ХЭШ(&int) в little-endian и big-endian по-любому разный будет, не нужно так много строк кода приводить для того, чтобы это показать... Title: Re: Исходники bitcoin Post by: Balthazar on May 12, 2012, 11:09:22 PM Вышеприведенный код работает нормально на большинстве платформ, потому что размер структуры 80 байт ( кратно 2 и 8 ) . Со структурой других размеров (81 байт, к примеру) данный код уже неработоспособен без #pragma pack(push, 1) ... #pragma pack(pop). Но структура не может иметь размер, отличный от 80 байт, потому что заголовок блока всегда имеет размер 80 байт, это требование протокола, поэтому можно не думать о выравнивании.
Title: Re: Исходники bitcoin Post by: somenick on May 12, 2012, 11:56:01 PM вывод код гавно ) (тему можно закрывать :) )
Title: Re: Исходники bitcoin Post by: Balthazar on May 13, 2012, 12:02:59 AM вывод код гавно ) (тему можно закрывать :) ) Если бы автор сделал что-то ценное и полезное для сообщества, его выводы имели бы какой-то вес. А называть говном проект, тыкая в фрагменты кода в нем, много ума-времени-сил не надо. Тему можно закрывать. :)Title: Re: Исходники bitcoin Post by: somenick on May 13, 2012, 03:12:17 AM вывод код гавно ) (тему можно закрывать :) ) Если бы автор сделал что-то ценное и полезное для сообщества, его выводы имели бы какой-то вес. А называть говном проект, тыкая в фрагменты кода в нем, много ума-времени-сил не надо. Тему можно закрывать. :)а что вас задело ? моё высказывание ? ) Как будто это ваш код ) И что вы так привязываетесь к моей личности, я же не поносю вас говном ), хотя мог бы ), потому как вы ВООБЩЕ ничего не сделали, да ещё пытаетесь что то другим сказать. Я хотябы взял исходники почитал, и выявил очевидные программиские промашки, и выкладываю свои находки для других людей. Если вам это не интересно... никто вас сюда заходить не заставляет. И вообще когда то была статья что что якобы биткоин написан качественным программистом. Так что то это не очень то подтвержается. Title: Re: Исходники bitcoin Post by: ArsenShnurkov on May 13, 2012, 05:16:18 AM Я хотябы взял исходники почитал, и выявил очевидные программиские промашки, и выкладываю свои находки для других людей. Мне нравится, пиши еще. И вообще когда то была статья что что якобы биткоин написан качественным программистом. Так что то это не очень то подтвержается. И это хорошо, а то итак параноя замучала (https://bitcointalk.org/index.php?topic=78598.0)... Title: Re: Исходники bitcoin Post by: LZ on May 13, 2012, 03:57:47 PM Bitcoin написан гением, а гениальность, в отличие от качества, не измеряется.
Так что неважно качественный или некачественный программист. Он - гений! а что вас задело ? моё высказывание ? ) Меня вот задевает. Код работает, а Вы вдруг называете чем-то нехорошим. >:(Title: Re: Исходники bitcoin Post by: Balthazar on May 13, 2012, 08:50:54 PM Да просто на любое критическое высказывание в подобной форме всегда возникает закономерный вопрос "а кто вы, собственно, вообще такой?". И дело тут не в том, задело или не задело.
Title: Re: Исходники bitcoin Post by: ArsenShnurkov on May 13, 2012, 09:48:02 PM https://bitcointalk.org/index.php?topic=81651.0
Title: Re: Исходники bitcoin Post by: SHawk on May 14, 2012, 04:05:40 PM вывод код гавно ) (тему можно закрывать :) ) Давайте сделаем так: Вы предлагаете (здесь) свою реализацию кода, так сказать, чтобы критика была конструктивной. А потом, если захотите, сможете ее (свою реализацию) сами прокомментировать... :) Title: Re: Исходники bitcoin Post by: Balthazar on May 14, 2012, 04:43:30 PM Вы предлагаете (здесь) свою реализацию кода, так сказать, чтобы критика была конструктивной. Причем, полностью совместимую с протоколом. ::)Title: Re: Исходники bitcoin Post by: somenick on May 15, 2012, 06:05:09 PM даю на_водку
Code: byte* Hash(CBlock& block) вообще я не собираюсь исправлять чужие баги. желание было и есть понять СМЫСЛ. и как я уже писал, для меня не является сложностью написать свой клиент, зная алгоритм. Title: Re: Исходники bitcoin Post by: rPman on May 15, 2012, 06:26:48 PM вообще я не собираюсь исправлять чужие баги. А если за плату?желание было и есть понять СМЫСЛ. и как я уже писал, для меня не является сложностью написать свой клиент, зная алгоритм. Во сколько можно оценить исправление алгоритма хеширования? В том числе ту часть, из-за которой (как утверждают некоторые на форуме) текущая реализация официального клиента очень медленно обрабатывает загружаемые блоки (в т.ч. при первой загрузке), даже если загрузка происходит с соседней машины в локальной сети. Title: Re: Исходники bitcoin Post by: N.Z. on May 15, 2012, 06:51:35 PM Quote В том числе ту часть, из-за которой (как утверждают некоторые на форуме) текущая реализация официального клиента очень медленно обрабатывает загружаемые блоки (в т.ч. при первой загрузке), даже если загрузка происходит с соседней машины в локальной сети. Вроде бы это исправляли недавно, не? И по словам тех же некоторых стало все значительно быстрее. Уже не помню тему на форуме, но вроде бы в официально-релизной за 0.6.0 или 0.6.1Title: Re: Исходники bitcoin Post by: SHawk on May 15, 2012, 07:10:24 PM даю на_водку Code: byte* Hash(CBlock& block) вообще я не собираюсь исправлять чужие баги. желание было и есть понять СМЫСЛ. и как я уже писал, для меня не является сложностью написать свой клиент, зная алгоритм. Чет на водку не хватает... Можно подробней? Меня гложут сильные сомнения, что с такой наводкой код ровно так же остается зависимым от порядка байт в слове. Ага? Title: Re: Исходники bitcoin Post by: Balthazar on May 15, 2012, 09:28:38 PM Тоже дам на_водку. Демон bitcoind собирается и корректно работает на SPARC и MIPSEL, проверялось экспериментально в том числе и мной, еще на версии 0.3.24. Так же, в официальном репозитории дебиана есть пакеты под IA64, ARM и PowerPC, причем накладываемые при сборке под эти архитектуры патчи минималистичны и даже близко не относятся к затронутым в этой теме фрагментам кода. Вот такая страшная тайна. :D
Title: Re: Исходники bitcoin Post by: ArsenShnurkov on May 16, 2012, 04:07:09 AM накладываемые при сборке под эти архитектуры патчи что/кто мешает принять эти патчи в основной код? Title: Re: Исходники bitcoin Post by: Balthazar on May 16, 2012, 05:54:50 AM Это debian-специфичные доделки скриптов сборки. У них в дистрибутиве нет почти программ, которые они не патчили просто, традиция такая.
Title: Re: Исходники bitcoin Post by: somenick on May 17, 2012, 09:59:31 AM вообще я не собираюсь исправлять чужие баги. А если за плату?желание было и есть понять СМЫСЛ. и как я уже писал, для меня не является сложностью написать свой клиент, зная алгоритм. Во сколько можно оценить исправление алгоритма хеширования? В том числе ту часть, из-за которой (как утверждают некоторые на форуме) текущая реализация официального клиента очень медленно обрабатывает загружаемые блоки (в т.ч. при первой загрузке), даже если загрузка происходит с соседней машины в локальной сети. Можно и за плату, но час работы у меня дорогой. bitcoind мне не интересно писать, интересно написать с нуля, используя нормальну базу данных. У меня есть основная работа. И времени мало. Так что я по маленьку буду разбираться в алгоритме, и когда-нибудь может что-то родится. Писаться если и будет то на java. Title: Re: Исходники bitcoin Post by: Balthazar on May 30, 2012, 09:15:39 PM BitcoinJ за вас уже гугл изобрел. ::) А еще изобрели Bitcoin#, правда он недоделан.
Title: Re: Исходники bitcoin Post by: rPman on May 31, 2012, 08:07:08 AM Изучаю гитхаб и некоторые уже закрытые пулреквесты, какие там вкусности...
* https://github.com/bitcoin/bitcoin/pull/841 - rpc gettransaction для любых транзакций, а не только из кошелька (закрыт), жаль еще не работает для пула неподтвержденных транзакций (я бы разделил разными командами), нереально полезное изменение (блин там кода кот наплакал... не могли раньше сделать, а я дурак думал там сложно) теперь с помощью только rpc на запущенном клиенте можно анализировать базу: 1. ключом указать приложение, автоматически запускаемое при появлении нового блока -blocknotify 2. с помощью getinfo узнаем последний блок 3. с попомощью getblockhash узнаем хеш блока по индексу (кстати -blocknotify в параметрах запуска приложения может указать хеш нового блока) 4. с помощью getblock получаем краткую информацию по блоку и список хешей транзакций 5. с помщью gettransaction получаем информацию по любой транзакции!!! Теперь приложение, анализирующее блокчейн не требует утилиты или abe и занимает всего одну страничку кода (даже меньше), все это в реальном времени, без перезапуска и остановки клиента (у меня был вариант с созданием снапшота lvm для диска, на котором размещен блокчейн, все лучше чем останавливать офф клиент или хранить две базы блоков рядом) p.s. пока есть недостаток, нужно самостоятельно парсить "scriptSig" и "scriptPubKey" (в чистом виде не показаны адреса) * https://github.com/bitcoin/bitcoin/pull/1386 - запуск комманд при появлении транзакций в соответствии с условием (еще открыт) * https://github.com/bitcoin/bitcoin/pull/1174 - поддержка tor (bitcoin как нода сети) (еще открыт но я так понимаю уже работает), странно что для i2p нет аналогичного реквеста * https://github.com/bitcoin/bitcoin/pull/570 - возможность узнать до отсылки и даже принудительно указать свою комиссию на транзакцию (открыт), даже без принудительного указания я считаю очень полезная вещь (мне бы хватило возможности указать допустимые границы для комиссии, и если она их превышает - выдавать error вместо создания транзакции) ... p.s. есть желающие/способные перевести мой issue (https://github.com/bitcoin/bitcoin/issues/1402) в статус реквеста? Я думаю это очень полезное и удобное нововведение, не требующее серьезного кодинга: Quote Разделение wallet.dat на две части - приватные ключи и остальное wallet.dat слишком часто обновляется, имеет неоправданно большой размер, это создает неудобства при его обслуживании и резервном копировании. 1. wallet-private.dat: часть с секретными ключами должна содержать только ту информацию, достаточную чтобы обеспечить полный доступ к бумажнику, на данный момент это может быть только список адресов в виде пар их открытого и закрытого ключей. 2. wallet-cache.dat: остальная информация (метки, комментарии, кэша транзакций и т.д.) должна быть перемещена в другой файл. Наиболее важная информация из этого может быть восстановлена из blockchain и предыдущего файла с ключами с помощью ключа командной строки -rescan p.s. Также можно добавить два дополнительных ключа командной строки для указания различных мест хранения этих файлов (я думаю, что wallet-private.dat может находиться на съемном диске, а, например, в будущем, на других устройств с доступом по API, подобно клиенту Электрум) Title: Re: Исходники bitcoin Post by: Ivelon on December 14, 2013, 01:32:52 PM Ищу специалиста по биткоин для консалтинга и разработки. Пишите в личку или в скайп.
|