Author

Topic: Мега фейл 10 марта с разделением версий 0.7 0.8 (Read 3246 times)

legendary
Activity: 3108
Merit: 1359
Я думаю никто не будет на этом заморачиваться Smiley
Попробуй выключить защиту от dust spam и увидишь, насколько неправ.
legendary
Activity: 1357
Merit: 1004
А какой практический смысл ддосить пул?
чтобы не выпендривался и не позволял клиентам экономить на комиссиях. Комиссии уже дают +1% к награде майнерам (а значит пулам, некоторые забирают ее себе, например PPS пулы в расчетах комиссии не учитывают по определению).

p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату (абонентка та же) а те кто генерируют такие транзакции своим клиентам плюшки.
Я думаю никто не будет на этом заморачиваться Smiley
Придут асики попробую чисто в академических целях на своем пуле сделаю.
sr. member
Activity: 254
Merit: 250
p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату
Похоже, что эти всякие микроплатящие типа  www.bitvisitor.com так давно работают Smiley
legendary
Activity: 1120
Merit: 1069
А какой практический смысл ддосить пул?
чтобы не выпендривался и не позволял клиентам экономить на комиссиях. Комиссии уже дают +1% к награде майнерам (а значит пулам, некоторые забирают ее себе, например PPS пулы в расчетах комиссии не учитывают по определению).

p.s. ожидаю в будущем появления дополнительной услуги пулов майнинга - вы даете им id транзакции а они ее проводят без комиссии, за отдельную плату (абонентка та же) а те кто генерируют такие транзакции своим клиентам плюшки.
legendary
Activity: 1357
Merit: 1004
А какой практический смысл ддосить пул?
legendary
Activity: 3108
Merit: 1359
Никак не поможет, пул заддосят транзакциями по 0.00000001 бтц.
legendary
Activity: 1357
Merit: 1004
Насколько я знаю, пока ничего с этим делать не планируется. Более того, 0.8.2 ужесточает правила выбора транзакций, установленные по умолчанию.
Насколько глупа моя мысль.
Сделать пул который обрабатывает только транзакции с минимальным либо указанными без комиссии. Поможет ли это в быстрой обработки таких транзакций? Чисто теоретически. Чисто гипотетически.
legendary
Activity: 3108
Merit: 1359
Насколько я знаю, пока ничего с этим делать не планируется. Более того, 0.8.2 ужесточает правила выбора транзакций, установленные по умолчанию.
legendary
Activity: 1218
Merit: 1004
Balthazar,  вы вроде общаетесь в "высших кругах" http://bitcoinstats.com/irc/bitcoin-dev/logs/2013/05
что с этим:
http://blockchain.info/ru/unconfirmed-transactions
будут делать?
если 2-3 мес назад висящий мегабайт пугал, то щас вообще жесть!
legendary
Activity: 3108
Merit: 1359
Оно задется опцией командной строки.
Code:
       "\n" + _("Block creation options:") + "\n" +
        "  -blockminsize=      "   + _("Set minimum block size in bytes (default: 0)") + "\n" +
        "  -blockmaxsize=      "   + _("Set maximum block size in bytes (default: 250000)") + "\n" +
        "  -blockprioritysize= "   + _("Set maximum size of high-priority/low-fee transactions in bytes (default: 27000)") + "\n" +
Эта опция нужна для размера генерируемого именно этим кошельком блока. Вполне логично, что майнеры сами могут решать какие блоки им генерировать. Но если они уже сгенерировали блок, и он соответствует всем правилам, то остальные кошельки обязаны его принять, независимо от их настроек. А кошелек версии 0.7 отбросил правильный блок, просто потому что не смог записать его в базу.
На самом деле, все немножко сложнее. Баг проявляется не всегда, а в момент reorganize. И связан он не с самим по себе bdb, а с его настройками при инициализации. Как известно, клиент вытаскивает транзакции из отклоненных блоков в memorypool. Так вот, происходил упор в лимит количества блокировок (lk_max_locks ) в случае, если в отклоняемой цепочке блоков содержалось достаточно транзакций для этого.

Фикс довольно прост в реализации:

https://github.com/CryptoManiac/novacoin/commit/16e1262471dba899f3e9251b485abec219aec844

И на данный момент доступен для всех актуальных веток клиента.
hero member
Activity: 714
Merit: 500
arruah, что Вы, как вообще можно назвать Bitcoin говнокодом, даже и в мыслях не было, естесственно нет. Концепция Bitcoin - гениальна. Я говорил лишь о фрагментах "говнокода", которые есть в исходниках. Не верите - убедитесь сами.
legendary
Activity: 1357
Merit: 1004
Называть говнокодом биткоин мягко говоря опрометчиво.
hero member
Activity: 714
Merit: 500
hero member
Activity: 616
Merit: 502
somenick я не хотел Вас оскорбить, согласившись с rPman в том, что действительно была ошибка и все ошибаются тем более что насколько я понял, кодируют "на перед и за бесплатно".  Undecided Да, действительно фейл, самое противное что создатели заложили туда алерты, в моем понимании, у Гэвина (и у кого еще там глав-ключи) на стене должна в спальне красный фонарь закрутиться и заморгать  Cheesy когда половина клиентов отклонила блок и автоматом сработал алерт (они похоже его в ручную только разослать могут).
giv
sr. member
Activity: 254
Merit: 251
Оно задется опцией командной строки.
Code:
        "\n" + _("Block creation options:") + "\n" +
        "  -blockminsize=      "   + _("Set minimum block size in bytes (default: 0)") + "\n" +
        "  -blockmaxsize=      "   + _("Set maximum block size in bytes (default: 250000)") + "\n" +
        "  -blockprioritysize= "   + _("Set maximum size of high-priority/low-fee transactions in bytes (default: 27000)") + "\n" +
Эта опция нужна для размера генерируемого именно этим кошельком блока. Вполне логично, что майнеры сами могут решать какие блоки им генерировать. Но если они уже сгенерировали блок, и он соответствует всем правилам, то остальные кошельки обязаны его принять, независимо от их настроек. А кошелек версии 0.7 отбросил правильный блок, просто потому что не смог записать его в базу.
legendary
Activity: 2317
Merit: 2318
Ситуация довольно проста.
Есть описанный протокол. В нем нет ограничений на количество и размер транзакций. Все клиенты должны придерживаться этого протокола.

А как тогда понимать фразу, которая сейчас висит в новостях:
Mining on 0.8 is OK, but you should not increase the target block size from the default.   ?

Получается, что в клиенте версии 0.8 ограничение на размер блока есть, но владельцы пулов его увеличили ?
giv
sr. member
Activity: 254
Merit: 251
Именно. Считаю, что в протоколе ограничения, не обусловненные какими-то фундаментальными причинами (например, разрядностью соответствующего поля), не нужны. Считаю, что ситуация, когда блок с 1700 (например) транзакциями верен, а с 1701 транзакией - нет, является бредовой. Клиент должен обрабатывать любое количество. Как он будет это делать - это уже работа программистов. И то, что они не справились - действительно фейл. Но фейл именно в клиенте, а не в протоколе. В конце концов, сатоши-клиент - не последняя инстанция, и в сети теоретически может быть куча разных клиентов, которые будут хранить свои данные, как им вздумается. Поэтому ставить какое-то ограничение на протокол только потому что 0.7 версия сатоши-клиента не может чего-то там обработать, т.к. кому-то было лень прочитать документацию на BDB во время проектирования - считаю глупостью. Надо фиксить баг и заставлять всех переходить на новый клиент, а старый выкинуть, как несоответствующий протоколу. А тесты - понятно, что нужны, в том числе и на соответствие протоколу. И понятно, что 0.7 не просто должна была отбросить этот блок, а кричать "ай-ай-ай не могу сохранить в базу, ахтунг!!! голактеко опасносте!!!!11!11".
legendary
Activity: 1286
Merit: 1004
giv
вы считаете не нужны магичесие константы ?
может тогда их нужно сделать большими ? и опять же проверить работоспособность.

ограничение BDB
ЭТО МЕГА ФЕЙЛ
у них при любой ошибке, программа возвращала что блок не принят, а должен возвращать внутренюю ошибку в записью в лог об ошибке и отсылке разработчику письма об ошибке с пометкой срочно.

ps остальным не отвечаю ибо некомпетентны
giv
sr. member
Activity: 254
Merit: 251
а вы так не считаете ?
Ситуация довольно проста.
Есть описанный протокол. В нем нет ограничений на количество и размер транзакций. Все клиенты должны придерживаться этого протокола. Но выясняется, что в версии 0.7 было скрытое ограничение на количество транзакций в блоке, о котором даже не знали сами разработчики. Оно было связано с каким-то внутренним ограничением BDB. Налицо несоответствие протокола и клиента. Если бы это был сторонний клиент, все бы сказали: "сами виноваты, что пользовались клиентом, не соответствующим протоколу", но ведь это "официальный" клиент. Выхода ровно два: подогнать протокол под кривой клиент или пофиксить клиент. Вы предлагаете подогнать протокол. Думаю, найдутся люди, которые с вами не согласятся. Лично я против внесения в протокол каких-то магических констант и непонятных ограничений. Я считаю, что правильный путь - это пофиксить клиент, т.е. заставить всех обновится до 0.8. Кстати, Гэвин предлагал именно этот путь. http://bitcoinstats.com/irc/bitcoin-dev/logs/2013/03/12
hero member
Activity: 616
Merit: 502
legendary
Activity: 1120
Merit: 1069
Неуважаемый somenick, вы никогда не делали ошибок? вы никогда не делали ошибок в том, в чем вы ничего и не гарантировали, в том, за что вам даже не заплатили, то есть в деле 'на интерес'? в том, что никто никогда до вас не делал, где вы первопроходец?..

Случившееся вчера с сетью произошло с точностью по описанному ранее сценарию, в том, о чем твердят на каждом углу вики и форумов, в том, к чему готовили пользователей bitcoin с его самого рождения! Что неоднократно было протестировано на форках! Фундаментальная уязвимость особенность проекта - возможность одномоментно сосуществовать двум или более ветвям и опасность double spend. И конечно же, по всем заветам закона Мерфи, произошло подобное именно так, как не ожидали, но судя по тому что проблема была обнаружена в считанные часы, за этим есть кому следить.

Вот пожалуйста, свершилось, есть даже упоминания об успешном использовании double spend, и что? небо перевернулось, bitcoin умер, больше никто в криптовалюту никогда не поверит?

Серьезному бизнесу на все это наплевать! Будет принято к сведению, выработаны дополнительные стратегии и страховки, либо просто будет повышен на еще один процент уровень риска при использовании bitcoin, все равно кому то этот инструмент окажется удобнее/выгоднее.

p.s. по поводу говнокода, я же не спорю, но подумайте про сложность разработки проектов такого уровня:
Quote
Мастер автосервиса разговорился с клиентом:
(М)астер: А вот вы где работаете?
(К)лиент: Я кардиохирург, операции на сердце провожу
М: Круто! и сколько платят?
К: 20000$ за операцию...
М: Ни фига себе!!! а ведь по сути мы с тобой одним и тем же занимаемся - движки перебираем. Только мне платят намного меньше!
К: А хочешь как я получать?
М: Есессно!!!
Клиент заводит движок, открывает капот:
-ПЕРЕБИРАЙ!!!!
full member
Activity: 218
Merit: 100
Firstbits: 19e3fc
legendary
Activity: 1286
Merit: 1004
Если вы так считаете - опишите сами, опен сорс же. Если сами не можете - откройте тикет на гитхабе.
а вы так не считаете ?
тикет открывать, на изменение днк ?  Cheesy

кстати вы же читали код, вам нравиться хеширование блока по УКАЗАТЕЛЮ на экземпляр блока CBlock? По моему это ахтунг.
И там вся серелизация на этом построена.
giv
sr. member
Activity: 254
Merit: 251
Протокол описан вполне нормально.
В протоколе должно быть чётко описано max колличество транзакций max кошельков  и тд.
И желательно тесты с этими значениями. Без такой очевидной вещи сеть не может существовать что очевидно.


Если вы так считаете - опишите сами, опен сорс же. Если сами не можете - откройте тикет на гитхабе.
legendary
Activity: 1286
Merit: 1004
p.s. прежде чем вопить так дибильно, разберись сначала.
прежде чем защищать так дибильно разберись сначала
legendary
Activity: 1286
Merit: 1004
Протокол описан вполне нормально.
В протоколе должно быть чётко описано max колличество транзакций max кошельков  и тд.
И желательно тесты с этими значениями. Без такой очевидной вещи сеть не может существовать что очевидно.
giv
sr. member
Activity: 254
Merit: 251
Инкапсуляция

Я, конечно, утрирую. Это просто то, что сразу бросается в глаза. Добавьте сюда неатомарные операции там, где они должны быть атомарными, куча магических чисел, разбросанных по коду и т.д. Впервые увидел этот код, когда захотел написать i2p-патч, первое желание - закрыть код и написать свой кошелек. Но одному писать такой большой проект слишком долго. Поэтому я все-таки разобрался с существующим кодом. В то же время читабельность кода на довольно высоком уровне, а это не мало. Да и попадаются нормально написанные места. Т.е. называть весь код говнокодом я бы не стал (я видел и похуже, даже в более серьезных проектах), но претензии к коду точно имеются. Думаю к версии 1.0 или хотя бы 2.0 будет выглядеть прилично. Ну а пока мы все с вами бета-тестеры.
legendary
Activity: 1218
Merit: 1004
Что такое "инкапсуляция" разработчики явно не слышали.

а что это такое?
giv
sr. member
Activity: 254
Merit: 251
Еще учтите, что биткоин до сих пор в бете. И никто вам никаких гарантий не давал. Протокол описан вполне нормально. А вот говнокод там местами еще тот. Что такое "инкапсуляция" разработчики явно не слышали.
legendary
Activity: 1120
Merit: 1069
И кого винить? сатоши-дайс, за огромный объем микротранзакций (а я бы им памятник поставил, за то что благодаря им такие баги выявляют СЕЙЧАС а не через 10-20 лет) фирме Oracle, за то что их база berkleydb где то какой то лимит ввела, в который упирался клиент 0.7, или разработчиков bitcoin новой версии 0.8, которые умудрились сделать смену бакенда движка и добились уменьшения размера базы в разы и скорости первой загрузки так же в разы (часы а не недели)?
p.s. прежде чем вопить так дибильно, разберись сначала.
legendary
Activity: 1286
Merit: 1004
Моё частное мнение.
Говонокодеры наговнокодили так что они сами не понимают какие блоки должна нормально принимать их программа.
Биткоин нуждается в нормальных клиентах и жёстко описанном протоколе, а не в том что есть сейчас, когда ВНЕЗАПНО появляются две ветки транзакций.
Ждём полного раследования и подтвержения моих слов.
Jump to: