Title: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: somenick on March 12, 2013, 02:42:09 PM Моё частное мнение.
Говонокодеры наговнокодили так что они сами не понимают какие блоки должна нормально принимать их программа. Биткоин нуждается в нормальных клиентах и жёстко описанном протоколе, а не в том что есть сейчас, когда ВНЕЗАПНО появляются две ветки транзакций. Ждём полного раследования и подтвержения моих слов. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: rPman on March 12, 2013, 03:15:04 PM И кого винить? сатоши-дайс, за огромный объем микротранзакций (а я бы им памятник поставил, за то что благодаря им такие баги выявляют СЕЙЧАС а не через 10-20 лет) фирме Oracle, за то что их база berkleydb где то какой то лимит ввела, в который упирался клиент 0.7, или разработчиков bitcoin новой версии 0.8, которые умудрились сделать смену бакенда движка и добились уменьшения размера базы в разы и скорости первой загрузки так же в разы (часы а не недели)?
p.s. прежде чем вопить так дибильно, разберись сначала. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 12, 2013, 04:03:59 PM Еще учтите, что биткоин до сих пор в бете. И никто вам никаких гарантий не давал. Протокол описан вполне нормально. А вот говнокод там местами еще тот. Что такое "инкапсуляция" разработчики явно не слышали.
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Azrace on March 12, 2013, 04:51:43 PM Что такое "инкапсуляция" разработчики явно не слышали. а что это такое? Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 12, 2013, 05:15:51 PM Инкапсуляция (https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D0%B0%D0%BF%D1%81%D1%83%D0%BB%D1%8F%D1%86%D0%B8%D1%8F_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29)
Я, конечно, утрирую. Это просто то, что сразу бросается в глаза. Добавьте сюда неатомарные операции там, где они должны быть атомарными, куча магических чисел, разбросанных по коду и т.д. Впервые увидел этот код, когда захотел написать i2p-патч, первое желание - закрыть код и написать свой кошелек. Но одному писать такой большой проект слишком долго. Поэтому я все-таки разобрался с существующим кодом. В то же время читабельность кода на довольно высоком уровне, а это не мало. Да и попадаются нормально написанные места. Т.е. называть весь код говнокодом я бы не стал (я видел и похуже, даже в более серьезных проектах), но претензии к коду точно имеются. Думаю к версии 1.0 или хотя бы 2.0 будет выглядеть прилично. Ну а пока мы все с вами бета-тестеры. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: somenick on March 12, 2013, 07:03:30 PM Протокол описан вполне нормально. В протоколе должно быть чётко описано max колличество транзакций max кошельков и тд.И желательно тесты с этими значениями. Без такой очевидной вещи сеть не может существовать что очевидно. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: somenick on March 12, 2013, 07:04:36 PM p.s. прежде чем вопить так дибильно, разберись сначала. прежде чем защищать так дибильно разберись сначалаTitle: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 12, 2013, 07:29:48 PM Протокол описан вполне нормально. В протоколе должно быть чётко описано max колличество транзакций max кошельков и тд.И желательно тесты с этими значениями. Без такой очевидной вещи сеть не может существовать что очевидно. Если вы так считаете - опишите сами, опен сорс же. Если сами не можете - откройте тикет на гитхабе. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: somenick on March 12, 2013, 07:35:51 PM Если вы так считаете - опишите сами, опен сорс же. Если сами не можете - откройте тикет на гитхабе. а вы так не считаете ?тикет открывать, на изменение днк ? :D кстати вы же читали код, вам нравиться хеширование блока по УКАЗАТЕЛЮ на экземпляр блока CBlock? По моему это ахтунг. И там вся серелизация на этом построена. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Ivica on March 12, 2013, 07:55:58 PM Sell. ;)
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: rPman on March 13, 2013, 04:28:48 AM Случившееся вчера с сетью произошло с точностью по описанному ранее сценарию, в том, о чем твердят на каждом углу вики и форумов, в том, к чему готовили пользователей bitcoin с его самого рождения! Что неоднократно было протестировано на форках! Фундаментальная Вот пожалуйста, свершилось, есть даже упоминания об успешном использовании double spend (https://bitcointalk.org/index.php?topic=152348.0), и что? небо перевернулось, bitcoin умер, больше никто в криптовалюту никогда не поверит? Серьезному бизнесу на все это наплевать! Будет принято к сведению, выработаны дополнительные стратегии и страховки, либо просто будет повышен на еще один процент уровень риска при использовании bitcoin, все равно кому то этот инструмент окажется удобнее/выгоднее. p.s. по поводу говнокода, я же не спорю, но подумайте про сложность разработки проектов такого уровня: Quote Мастер автосервиса разговорился с клиентом: (М)астер: А вот вы где работаете? (К)лиент: Я кардиохирург, операции на сердце провожу М: Круто! и сколько платят? К: 20000$ за операцию... М: Ни фига себе!!! а ведь по сути мы с тобой одним и тем же занимаемся - движки перебираем. Только мне платят намного меньше! К: А хочешь как я получать? М: Есессно!!! Клиент заводит движок, открывает капот: -ПЕРЕБИРАЙ!!!! Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: naima53 on March 13, 2013, 09:48:56 AM Случившееся вчера с сетью произошло с точностью по описанному ранее сценарию, в том, о чем твердят на каждом углу вики и форумов, в том, к чему готовили пользователей bitcoin с его самого рождения! Что неоднократно было протестировано на форках! Фундаментальная Вот пожалуйста, свершилось, есть даже упоминания об успешном использовании double spend (https://bitcointalk.org/index.php?topic=152348.0), и что? небо перевернулось, bitcoin умер, больше никто в криптовалюту никогда не поверит? Серьезному бизнесу на все это наплевать! Будет принято к сведению, выработаны дополнительные стратегии и страховки, либо просто будет повышен на еще один процент уровень риска при использовании bitcoin, все равно кому то этот инструмент окажется удобнее/выгоднее. p.s. по поводу говнокода, я же не спорю, но подумайте про сложность разработки проектов такого уровня: Quote Мастер автосервиса разговорился с клиентом: (М)астер: А вот вы где работаете? (К)лиент: Я кардиохирург, операции на сердце провожу М: Круто! и сколько платят? К: 20000$ за операцию... М: Ни фига себе!!! а ведь по сути мы с тобой одним и тем же занимаемся - движки перебираем. Только мне платят намного меньше! К: А хочешь как я получать? М: Есессно!!! Клиент заводит движок, открывает капот: -ПЕРЕБИРАЙ!!!! Отдел мониторинга создать и вести просветельскую работу среди майнеров. Из нас кто на гильдию пересел в связи с инцидентом? Никто :( Да еще и куча народа на 50бтц сидит с их варварским движком, позволяющим вести 2-спенд (по словам Бальтазара, поправьте если это не так) Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 13, 2013, 11:33:21 AM а вы так не считаете ? Ситуация довольно проста.Есть описанный протокол. В нем нет ограничений на количество и размер транзакций. Все клиенты должны придерживаться этого протокола. Но выясняется, что в версии 0.7 было скрытое ограничение на количество транзакций в блоке, о котором даже не знали сами разработчики. Оно было связано с каким-то внутренним ограничением BDB. Налицо несоответствие протокола и клиента. Если бы это был сторонний клиент, все бы сказали: "сами виноваты, что пользовались клиентом, не соответствующим протоколу", но ведь это "официальный" клиент. Выхода ровно два: подогнать протокол под кривой клиент или пофиксить клиент. Вы предлагаете подогнать протокол. Думаю, найдутся люди, которые с вами не согласятся. Лично я против внесения в протокол каких-то магических констант и непонятных ограничений. Я считаю, что правильный путь - это пофиксить клиент, т.е. заставить всех обновится до 0.8. Кстати, Гэвин предлагал именно этот путь. http://bitcoinstats.com/irc/bitcoin-dev/logs/2013/03/12 (http://bitcoinstats.com/irc/bitcoin-dev/logs/2013/03/12) Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: somenick on March 13, 2013, 12:09:16 PM giv
вы считаете не нужны магичесие константы ? может тогда их нужно сделать большими ? и опять же проверить работоспособность. ограничение BDB ЭТО МЕГА ФЕЙЛ у них при любой ошибке, программа возвращала что блок не принят, а должен возвращать внутренюю ошибку в записью в лог об ошибке и отсылке разработчику письма об ошибке с пометкой срочно. ps остальным не отвечаю ибо некомпетентны Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 13, 2013, 01:18:19 PM Именно. Считаю, что в протоколе ограничения, не обусловненные какими-то фундаментальными причинами (например, разрядностью соответствующего поля), не нужны. Считаю, что ситуация, когда блок с 1700 (например) транзакциями верен, а с 1701 транзакией - нет, является бредовой. Клиент должен обрабатывать любое количество. Как он будет это делать - это уже работа программистов. И то, что они не справились - действительно фейл. Но фейл именно в клиенте, а не в протоколе. В конце концов, сатоши-клиент - не последняя инстанция, и в сети теоретически может быть куча разных клиентов, которые будут хранить свои данные, как им вздумается. Поэтому ставить какое-то ограничение на протокол только потому что 0.7 версия сатоши-клиента не может чего-то там обработать, т.к. кому-то было лень прочитать документацию на BDB во время проектирования - считаю глупостью. Надо фиксить баг и заставлять всех переходить на новый клиент, а старый выкинуть, как несоответствующий протоколу. А тесты - понятно, что нужны, в том числе и на соответствие протоколу. И понятно, что 0.7 не просто должна была отбросить этот блок, а кричать "ай-ай-ай не могу сохранить в базу, ахтунг!!! голактеко опасносте!!!!11!11".
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: A-Bolt on March 13, 2013, 02:29:14 PM Ситуация довольно проста. Есть описанный протокол. В нем нет ограничений на количество и размер транзакций. Все клиенты должны придерживаться этого протокола. А как тогда понимать фразу, которая сейчас висит в новостях: Mining on 0.8 is OK, but you should not increase the target block size from the default. ? Получается, что в клиенте версии 0.8 ограничение на размер блока есть, но владельцы пулов его увеличили ? Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: giv on March 13, 2013, 03:48:34 PM Оно задется опцией командной строки.
Code: "\n" + _("Block creation options:") + "\n" + Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: naima53 on March 13, 2013, 06:30:39 PM somenick я не хотел Вас оскорбить, согласившись с rPman в том, что действительно была ошибка и все ошибаются тем более что насколько я понял, кодируют "на перед и за бесплатно". :-\ Да, действительно фейл, самое противное что создатели заложили туда алерты, в моем понимании, у Гэвина (и у кого еще там глав-ключи) на стене должна в спальне красный фонарь закрутиться и заморгать :D когда половина клиентов отклонила блок и автоматом сработал алерт (они похоже его в ручную только разослать могут).
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Format.C^ on May 30, 2013, 05:06:43 AM Именно. Считаю, что в протоколе ограничения, не обусловненные какими-то фундаментальными причинами (например, разрядностью соответствующего поля), не нужны. Считаю, что ситуация, когда блок с 1700 (например) транзакциями верен, а с 1701 транзакией - нет, является бредовой. Клиент должен обрабатывать любое количество. Как он будет это делать - это уже работа программистов. И то, что они не справились - действительно фейл. Но фейл именно в клиенте, а не в протоколе. В конце концов, сатоши-клиент - не последняя инстанция, и в сети теоретически может быть куча разных клиентов, которые будут хранить свои данные, как им вздумается. Поэтому ставить какое-то ограничение на протокол только потому что 0.7 версия сатоши-клиента не может чего-то там обработать, т.к. кому-то было лень прочитать документацию на BDB во время проектирования - считаю глупостью. Надо фиксить баг и заставлять всех переходить на новый клиент, а старый выкинуть, как несоответствующий протоколу. А тесты - понятно, что нужны, в том числе и на соответствие протоколу. И понятно, что 0.7 не просто должна была отбросить этот блок, а кричать "ай-ай-ай не могу сохранить в базу, ахтунг!!! голактеко опасносте!!!!11!11". +100. Более добавить нечего.somenick, потрудитесь сначала разобраться в том потоке мыслей, которые Вы озвучиваете. Я тоже согласен, что "да, фейл!". Но, что катастрофического произошло? Вы еще спасибо Сатоши [Гэвину] должны сказать, что все произошло именно так, а не иначе...имхо. На всякий случай напомню, что их работу никто не оплачивал, и фрагменты "говнокода" в ней не исключены. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: arruah on May 30, 2013, 05:09:18 AM Называть говнокодом биткоин мягко говоря опрометчиво.
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Format.C^ on May 30, 2013, 06:14:07 AM arruah, что Вы, как вообще можно назвать Bitcoin говнокодом, даже и в мыслях не было, естесственно нет. Концепция Bitcoin - гениальна. Я говорил лишь о фрагментах "говнокода", которые есть в исходниках (https://github.com/bitcoin/bitcoin). Не верите - убедитесь сами.
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Balthazar on May 30, 2013, 12:54:32 PM Оно задется опцией командной строки. На самом деле, все немножко сложнее. Баг проявляется не всегда, а в момент reorganize. И связан он не с самим по себе bdb, а с его настройками при инициализации. Как известно, клиент вытаскивает транзакции из отклоненных блоков в memorypool. Так вот, происходил упор в лимит количества блокировок (lk_max_locks ) в случае, если в отклоняемой цепочке блоков содержалось достаточно транзакций для этого. Code: "\n" + _("Block creation options:") + "\n" + Фикс довольно прост в реализации: https://github.com/CryptoManiac/novacoin/commit/16e1262471dba899f3e9251b485abec219aec844 И на данный момент доступен для всех актуальных веток клиента. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Azrace on May 30, 2013, 09:09:19 PM Balthazar, вы вроде общаетесь в "высших кругах" http://bitcoinstats.com/irc/bitcoin-dev/logs/2013/05
что с этим: http://blockchain.info/ru/unconfirmed-transactions будут делать? если 2-3 мес назад висящий мегабайт пугал, то щас вообще жесть! Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Balthazar on May 30, 2013, 10:32:39 PM Насколько я знаю, пока ничего с этим делать не планируется. Более того, 0.8.2 ужесточает правила выбора транзакций, установленные по умолчанию.
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: arruah on May 31, 2013, 05:31:59 AM Насколько я знаю, пока ничего с этим делать не планируется. Более того, 0.8.2 ужесточает правила выбора транзакций, установленные по умолчанию. Насколько глупа моя мысль. Сделать пул который обрабатывает только транзакции с минимальным либо указанными без комиссии. Поможет ли это в быстрой обработки таких транзакций? Чисто теоретически. Чисто гипотетически. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Balthazar on May 31, 2013, 08:04:33 AM Никак не поможет, пул заддосят транзакциями по 0.00000001 бтц.
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: arruah on May 31, 2013, 09:10:22 AM А какой практический смысл ддосить пул?
Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: rPman on May 31, 2013, 07:26:40 PM А какой практический смысл ддосить пул? чтобы не выпендривался и не позволял клиентам экономить на комиссиях. Комиссии уже дают +1% к награде майнерам (а значит пулам, некоторые забирают ее себе, например PPS пулы в расчетах комиссии не учитывают по определению).p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату (абонентка та же) а те кто генерируют такие транзакции своим клиентам плюшки. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: vodz on June 01, 2013, 03:41:20 AM p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату Похоже, что эти всякие микроплатящие типа www.bitvisitor.com так давно работают :)Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: arruah on June 01, 2013, 05:37:32 AM А какой практический смысл ддосить пул? чтобы не выпендривался и не позволял клиентам экономить на комиссиях. Комиссии уже дают +1% к награде майнерам (а значит пулам, некоторые забирают ее себе, например PPS пулы в расчетах комиссии не учитывают по определению).p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату (абонентка та же) а те кто генерируют такие транзакции своим клиентам плюшки. Придут асики попробую чисто в академических целях на своем пуле сделаю. Title: Re: Мега фейл 10 марта с разделением версий 0.7 0.8 Post by: Balthazar on June 01, 2013, 03:43:23 PM Я думаю никто не будет на этом заморачиваться :) Попробуй выключить защиту от dust spam и увидишь, насколько неправ. |