1. скачал клиента с биткойн.орг и запустил под убунтой. Галочки "generate coins" не стояло, но он начал считать блоки (по крайней мере циферка внизу увеличивается) а так же писать что-то на диск, в результате hdd шуршит головками постоянно. Насколько я понял, для просчета блоков требуются вычислительные ресурсы, а не "дисковые". Почему же клиент шуршит винчестером? под виндой он себя так не ведет. Говнокод?
В конечном итоге я решил, что лучше выключить клиента совсем, а то убьет мне винт. Под виндой подобного эффекта не наблюдалось.
Клиент должен сначала скачать имеющиеся блоки, что он и делает при первом запуске. Плюс индексирует их. Отсюда нагрузка на винт. Потом она прекращается.
Кстати, винт программно убить практически нереально.
2. Якобы судя по форуму, можно считать только платные транзакции, а клиент такой фишки не имеет, то есть, считает все подряд. Правильно?
Да. Причём задействует только центральный процессор. Для генерации с использованием GPU нужны отдельные программы.
3. Вот все говорят что коины хранятся в файле кошельков. А где этот файл? клиент кучу логов нагенерил разных, а кошелек - это только wallet.dat? То есть, остальные файлы бэкапить необязательно?
Да. В остальных файлах - скачанные блоки, индексы, логи и т.п. А это всё дело наживное, главное же - приватные ключи ваших транзакций в wallet.dat. В винде ищите это в Documents and Settings/%USERNAME%/AppData/bitcoin, в линухах - .bitcoin в домашнем каталоге юзера
4. я вижу слабое место в системе - для того чтобы п2п коннект состоялся, нужно знать айпи хоть одного пира в системе. Это не проблема, если клиент долго работал - тогда он знает айпишники, с которыми работал. А если человек выкачивает клиента с сайта, то там как правило нет адресов пира, и (насколько удалось понять из исходников), ему просто неуоткуда взять адрес пира, кроме как из irc канала. irc падает - и в системе не смогут появляться новые участники.
Во-первых, можно соединиться вручную. Где-то есть список bootstrap-узлов.
Во-вторых, ведутся работы на тему bootstrap-а по DNS.
UPD: залез в исходник, уточнил. Первым делом оно пытается слазить в IRC и там опубликовать свой адрес и взять несколько чужих. Если не получилось - пользуется DNS. Если и с этим облом - есть вшитый массив айпишников. Так что в свежих версиях всё нормально с этим, насколько может быть нормально в p2p-сети.
5. насколько понял, бонус в 50 бтц получает клиент, сгенеривший блок. я запустил клиента он за несколько сек нагенерил тысячи блоков, а бонуса нет
Это наводит на мысль, что блоки бывают двух типов - за которые есть начисления в 50 бтц, и за которые нету. Почему я должен заниматься генерацией тех блоков, за которые не дают бтц?
Он не нагенерил, а скачал из сети.
6. пишут, что после каждых каждых 210 000 блоков вознаграждение уменьшается в 2 раза. Но ведь вознаграждение начисляет клиент сам себе? Значит, можно в исходниках недельку покопаться и подкрутить, чтобы начисляло за раз не 50 бтц, а больше. почему так никто не делает?
Потому что такие блоки не будут приниматься остальными узлами как правильные.
7. что будет, если два клиента посчитают один и тот же блок? Они же каждый начислят себе одни и те же бтц, и получится дублирование? Как потом определить чьи это биткойны?
Во-первых, они не могут посчитать один и тот же блок, так как адреса для начисления 50BTC разные по определению.
Во-вторых, цепочка блоков не ветвится. Если посчитано несколько блоков на базе предыдущего, они некоторое время могут существовать параллельно, но когда на базе одного из таких блоков будет посчитан ещё один, более короткая ветка будет отброшена. Один из дублирующихся блоков таким образом становится недействительным. Поэтому, кстати, существует такой параметр транзакции, как количество подтверждений, так сказать её "возраст" в блоках.
8. как вообще биткоины представляются? Если они делятся до 8го знака после запятой, то это получается, что каждый 0.00000001 биткойн имеет свой айдишник, защищенный контрольной суммой? Или защищен весь кошелек? Но если суммой защищен весь кошелек, то
Нет, подписываются транзакции. При передаче монет транзакция или собирается из более мелких, либо режется более крупная.
9. если транзакции валидность моих кошельков хранятся на компах у клиентов, то ведь получается, что со временем данных будет все больше и больше, а поскольку местона винчестере не резиновое, данные будут периодически стираться, и может возникнуть ситуация (если долго не пользовал систему), что все данные про меня будут забыты? И что в этом случае будет? Или система не даст воспользоваться кошельком, или можно будет подкрутить свой кошелек и накинуть ему еще чуток коинов
Стираться ничего не будет. Для уменьшения размера БД будет применятся Merkle Tree, нечто вроде TTH.
Подкрутить не выйдет: "накинуть койнов" можно только из какой-либо транзакции. Если транзакция не существует, не существует и койнов. Проверить же наличие заявленной транзакции элементарно.
10. можно ведь создать сеть, например из 50 компов, на которые "эмулируют" клиентов, и занимаются лишь тем, что подтверждают, что клиент ААА имеет БББ коинов. коннекты клиента БББ можно сделать контролируемыми, чтобы коннектился только в ААА и к тому, которому хочет проплатить. И все! Имеем бесконечный кошелек.
Наверное, это настолько хитрая схема, что даже я ничего не понял. Что значит - "подтверждают"? Кто кому платит, какие коннекты и зачем контролировать - ни фига не понял. Изложите поподробнее, если ответы на предыдущие вопросы ещё не сделали его бессмысленным.