Pull to refresh

Comments 121

«В худшем случае, скажем, 50% мощности вычисления хэшей уходят из сети из-за убыточности. Это значит, что мы начинаем майнить блоки каждые 20 минут вместо 10 минут. Но сейчас блоки заполняются уже на 70%. Если среднее время подтверждения опускается до 20 минут, то блоки будут заполняться на 140%, то есть начинают накапливаться в очереди.
В Bitcoin есть механизм для регулирования сложности подтверждений (proof-of-work), когда меняется мощность сети. Это происходит каждые 2016 блоков, что занимает обычно около двух недель. Но мы майним блоки каждые 20 минут, так что потребуется четыре недели.»

Не претендую на роль аналитика, но мне кажется «большие» майнеры не отключат свои фермы моментально, даже при условии отрицательного майнинга. Просто потому что они майнят на будущее(само собой тратя часть на текущие расходы) и многие из них(с их же слов, из нескольких видео-интервью про их фермы) хранят довольно большие суммы в биткоинах в надежде на повышение курса.
Им нужно оплачивать расходы на электроэнергию, охлаждение и обслуживание (а кое кто может оплачивать оборудование в лизинг), и делать это приходится зачастую не в bitcoin, т.е. необходимо продавать часть (а сейчас это заметная часть).

Форма их спекуляций не важна, купили ли они монеты и сложили в долгий ящик или майнят, постепенно накапливая эту сумму.
Совершенно верно. Все почему-то думают, что если в какой-то момент себестоимость майнинга перекроет убыток, то майнинг прекратится. Откуда взялась эта потолочная цифра в 230 долларов за майнинг 1 биткоин. Цена почти год держалась ниже этого уровня и ничего.
Я, например, в свое время майнил и при цене в 2 доллара за биткоин, и с тех пор до сих пор остались какие-то пару биток.
Манинг сам себя регулирует, в случае изменения одного из параметров, система саморегулируется. При падении прибыли от майнинга, с рынка уходят слабые и неэффективные майнеры, а на уменьшение предложения, рынок реагирует спросом и увеличением цены, что добалансирует систему.
Что же касается блоков, то и тут по моему мнению все прекрасно балансируется теми механизмами, что заложены в протокол. А именно приоритетностью транзакций, когда транзакции с большей комиссией идут первыми. Это заставит отправителей корректировать размер комиссии в зависимости от загруженности сети (как сейчас делает это стандартный клиент), а также консолидировать несколько платежей в один, для экономии. Майнеры же в свою очередь, получат дополнительный профит в виде доходов от комиссий и все счастливы. Ну кроме тех, кто пытается расшатать лодку и взять контроль над протоколом в свои руки.

Может стоит добавить голосование к статье? Интересно посмотреть на мнение сообщества Geektimes в голосовании приверженности к внедрению системы сегрегированного свидетельства или к увеличению размера блока с 1 МБ до 2 МБ.
Я думаю врядли эти результаты будут что-то отображать. Тут очень мало людей понимают о чем собственно речь и почему нельзя поменять какую-то константу с 1мб на 8мб, ведь больше лучше чем меньше.

UFO just landed and posted this here
Банкиры ждать не будут (время — деньги), а просто забьют на биткойн. И восстановить доверие к сети будет трудно, потому что нет никаких гарантий, что через некоторое время авторы bitcoin опять не пойдут на принцип насчёт ещё одного улучшения и опять приведут к огромным убыткам из-за простоя.

Но на него налетели банкиры, журналисты, разные бездельники и уже построили на нём целый свой мирок.

Вообще-то именно за счёт них сегодня bitcoin стоит 400 с лишним долларов, а не несколько центов. За счёт пиара в СМИ и многомиллионных инвестиций. А ещё за счёт простых пользователей. Так вот — большинству пользователей тоже нафиг не нужна система, в которой транзакции проходят 2 недели.

Вы действительно хотите, что лучше пусть bitcoin будет идеальным, зато им будут пользоваться только разработчики и несколько упоротых фанатиков? Почему бы тогда не сделать форк? "Для нормальных людей" с увеличенным размером блока и быстрыми транзакциями и "для упоротых фанатиков" с маленькими блоками и недельным ожиданием подтверждений (хотя нет, проблема сама решиться из-за низкой популярности упадёт количество транзакций).
Так уже полно малопопулярных криптовалют, по большей части форков с некоторыми изменёнными алгоритмами. И оригинальный биткоин среди них чуть ли не наименее живучий, хотя бы потому, что его довольно быстро перестало быть выгодно майнить на любой кофеварке (даже пулы позиции сдают). Вся идеология полетела в тартарары и биткоин превращается из свободной децентрализованной валюты в бесцельное просаживание колоссальных вычислительных и энергетических ресурсов несколькими финансовыми воротилами. Just as planned?
по плану да, фазу централизации криптовалюты должны пройти
Пулам самим не выгодно собирать у себя большие мощности. Новости типа "Пул ХХХ имеет более 51% мощности сети!!!1один" очень хорошо курс просаживают, что весьма не косвенно влияет на их прибыль.
Хотя тут можно хитрее поступать, например формально независимые пулы могут быть аффилированными.
А оскорблять команду разработчиков было обязательно? Даже в этой статье были отсылки на IQ, незрелость и т.п. Я думаю, правильно они игнорируют этого напыщенного болвана с его Classic. Безотносительно качеств того или иного решения.
Игнорировать хорошее решение из-за личной неприязни к его автору (пусть даже обоснованной) — как раз таки признак незрелости и детскости. Тонуть, отказываясь от спасательного круга, только потому что тот, кто его кинул, оскорбил тебя — идиотизм. Как ни крути.
Почему вы так уверены, что решение хорошее? И разработчики classic гении, а core отсталые консерваторы?
"Гении" из bitcoin xt предлагали 8-и мегабайтные блоки прямо здесь и сейчас, когда в этом нет совершенно ни какой необходимости.
За прошлый год при размере блока в 1 мб прирост был около 15-20 гб, если бы пошли на поводу у "гениев", этот прирост был бы 150 гб, что заставило бы людей массово перескочить с основного клиента на легкие кошельки похоронив всю децентрализацию.
При этом скорость транзакций бы ни как не изменилась. Даже сейчас, когда сеть ддосят мелкими транзами, основные платежи идут с той же скоростью, ну разве что раньше платил комиссию 0,0001 btc, а сейчас 0.000011 .
Решение не обязательно хорошее, но оно и предлагается как временное. Увеличить размер блока, а затем уже не спеша придумывать и тестировать более хорошее решение. А это решение самое хорошее в краткосрочной перспективе, другие же имеют проблемы в ней, хоть и неплохи в долгосрочной.
А зачем оно нужно это временное решение? Проблема сильно надумана ив ней больше политики, чем смысла. Ни кто не мешает сейчас искать консенсусного решения.
Говорят, что уже сейчас транзакции без комиссии не проходят. А между прочим это позиционировалось как одна из фишек bitcoin.
Уже отвечал ниже, транзакции без комиссии и 6 лет назад проходили с большим трудом. Сейчас же средний размер комиссии 1-3 цента за перевод, из-за ддос аттаки устроенной "доброжелателями" комиссию приходится ставить чуть больше.
В протокол заложено то, что комиссии — это главная статья доходов майнеров после того, как генерация иссякнет. Так что никакие нулевые транзакции не есть главным преимуществом биткоина.
А почему вы боитесь прироста в 150ГБ в год? Сколько сейчас стоит винт на 2ТБ? Действительно ли это не подъёмно дорого для пользователей? Вам же SSD для хранения цепочки не нужен :)
Вы не пробовали работать с текущей базой блоков и транзакций? Я пробовал, увлекательное занятие я вам скажу. Вся база с индексами в postgres занимает около 300 гб. Развернуться с такой базой на 500гб SSD-шке довольно тяжко.
Базы входов и выходов по 300 млн записей (с blob-ами) каждая.
Увеличение размера блока, не повлечет пропорционального увеличения числа транзакций, однако если сейчас из-за растущих комиссий сервисам, работающим с биткоином, приходится думать, как сократить количество платежей. В случае же безразмерных блоков, база засрется мелкими бесполезными транзакциями и с ней невозможно будет работать.
Пример, вот есть такое казино satosidice. раньше оно работало так, тебе дается адрес, засылаешь на него некотороые число битков (обычно ставки копеечные типо 0,00001 btc), делаешь ставку 0-50 или от 50-100, потом выпадает число, если оно в вашем интервале, вы получаете свою ставку в двойном размере, если не в вашем, ты вы в пролете. Каждая выигрышная ставка добавляла в блокчейн 2 транзакции, проигрышная одну.
Если в тот момент бы вы взглянули на блокчейн, там 80% транз были на satosidice. Комиссии были или копеечные или вообще пустые, что привело к тому, что адски засрали базу и некоторые даже требовали внести адреса этого казино в блок в самом клиенте, а кое кто даже запилил такой билд в репы какого-то дистрибутива.
Сейчас принцип у того же казино иной. Пополняем баланс и делаем хоть миллион ставок, пока не выиграем достаточно или не проиграем все. Дальше выводим. Это здравое решение.
Если сейчас бездумно увеличить размер блока, через пару лет база распухнет так, что работать с ней станет нереально вообще.

Как можно винить технологию в том что она дает вам возможности, из-за которых вам тяжело их же использовать, и требовать! чтобы эти возможности были вообще убраны! У вас с логикой все нормально?

DICE-сайты дали возможность заранее провести стресс-тесты blockchain-технологии, пока цена ошибки не высока (всего то результатом был форк сети и 10к$ потери компании okpay).

Примите как данность, если криптовалюта хочет идти в массы, она просто обязана уметь работать с потоком транзакций на пару порядков выше чем тот объем на котором лично вы споткнулись.

p.s. переносить всю базу blockchain в sql-engine — это классическая ошибка, эффективнее добавить необходимые индексы в уже существующую базу, код открыт, инструментарий не сложный (модифицировать клиент, чтобы он сохранял на диске больше информации, подготавливая необходимые вам индексы на лету)
А кто сказал, что сеть должна подстраиваться под сервисы, а не наоборот? Как по мне все тут должно развиваться гармонично.
Ни кто вам ничего не обязан. Если вам не подходит технология, используйте другую. Есть множество форков, где и транзакции идут быстрее и много других полезных фич.

Имеющийся средства для работы с базой очень медлительны по сравнению с sql решениями, которые позволяют провести оптимизации средствами движков, за счет чего скорость работы возрастает в десятки раз. Говорю по собственному опыту, пришлось принимать участие в проекте, было изучено множество вариантов, все не sql-ные решения сильно страдают из-за быстродействия.
Сегодня ночью винт с блокчейном сделал BzBzBzBzBzzzzzz в процессе очередного речека. У меня теперь ещё 500GB причин бояться прироста 150ГБ в год.
Формально не нужен, но на практике SSD уже становится что называется must have. На обычном HDD все операции (прежде всего синхронизация и проверка новых блоков, так же проверка и ретрансляция транзакций "на лету" когда клиент онлайн) становятся чудовищно медленными, бутылочное горлышко в этом случае определенно диск даже на тощем интернет канале и слабом CPU.
А по 100 ГБ на SSD отдавать это жестко и очередь резко урезает круг кому это доступно/согласен на такое (в результате продолжаем наблюдать сокращение количества полных нод в сети, при том что общее кол-во пользователей и совершаемых полезных транзакций продолжает наоборот расти).

Промежуточный вариант был бы допилить полный клиент до штатной возможности размещать базу данных в 2х разных дисках — основную базу данных (она не очень большая — 1.5 Гб примерно на данный момент и растет не слишком быстро) на SSD, а полный блокчейн(уже 66 ГБ) — на HDD.
Но пока выбор либо либо: либо HDD (место не проблема, но все слишком медленно и чем дальше тем медленней становится) либо SSD (скорость не проблема, но вот место которого нужно все больше и больше — проблема, а если увечить существенно размер блоков эта проблема начнет расти еще намного быстрее)
Как вариант, можно такое провернуть с electrum-ом. Код сервера под питон в opensource, можно запустить собственный сервер электрума и обращаться к нему из стандартного электрумовского кошелька, который, кстати, есть уже и под мобилы.
Установка очень простая. По моему есть даже докер сборка, так что развернуть такой сервер у себя можно в пару кликов. Самого простого вдсника за 3-5 долларов, должно хватить.
Хотя, можно пользоваться и чужими серверами, ни какого риска, что монету уведет владелец сервера нету, с сервера запрашиваются лишь балансы для нужных адресов и происходит трансляция подписанной транзакции в сеть. Извлечь из нее информацию о публичных адресах совершенно невозможно.
electrum сервер требует полную ноду bitcoin (txindex=1) и рядом создает и обновляет онлайн еще sql базу, так что боюсь 5$ уже не обойдешься.

p.s. hdd с ssd кешем идеально подходят для задачи хранения блокчейна, так как основные транзакции крутятся в локальных временных рамках (если построить график возраста транзакций, то это будет классическая 1/x, много молодых и мало старых)
По данным (blockchain.info/charts/transaction-fees) сборы комиссий в сутки выросли за последний год с 15 btc до 50-77 btc.
В пересчете на 1 транзакцию это составляет 400$/btc * 70 / 270 000 транзакций в сутки = 0.10$, то есть 10 центов за транзакцию.

Не исключено, что спрос на переводы в биткойн будет продолжать расти, а при сохранении емкости в 300 тыс транзакций в сутки, единственный выход будет в росте стоимости транзакций по ставкам аукциона и никто не знает, на каком уровне этот рост спроса остановится — 10 центов, 1 доллар или 10 долларов за транзакцию.
Почему вы берете кратковременный пик в 70 бит.
Среднее значение последнего года в районе 20-30 бит, что равно 3-4 центам, сейчас, когда сеть ддосят комиссия чуть выросла, до 6-7 центов. Но ддосерам эта аттака обходится в 5-7 тыс долл в сутки. Посомтрим. надолго ли их хватит.
Мне последние несколько месяцев постоянно приходится принимать/отправлять небольшие платежи. Пользуюсь стандартным core клиентом и его алгоритмом расчета комиссии. В начале года средняя комиссия для моей транзакции с 1 входом и 1 выходом была меньше 0,0001 btc (как раз где-то 2-3 цента). Сейчас чуть больше 0,0001, в среднем 0,000011-0,000014. Не припомню случая, чтобы транзакция не попала в первый блок.
Вот в других клиентах все сделано через Ж. Например с электрумом часто попадал в пролет, расчет комиссии у него кривой, часто ставит очень мало и приходится ждать. Blockchain по дефолту тоже ставит низкую комиссию. Так что сейчас, на время ддоса, не мешало бы поставить максимальный приоритет

Застревать платежи могут из-за непонимания механизма биткоина. Если ставить фиксированный размер транзакции, она может долго не попадать в блок, т.к. вы можете не знать количества входов, а соответственно и размера получившейся транзакции.
Для сети не важно, какая сумма в транзакции, но важно сколько входов она расходует. Например, если вы получали много мелких переводов а потом все разом решили переслать на один адрес, выставив фиксированную комиссию, приоритет вашей транзакции будет очень низким и она может не попасть ни в один блок достаточно продолжительное время.
Вот я сейчас прикинул на стандартном кошельке. Для 100 входов (например 100 приходов по 0,001 btc) придется раскошелится на 0,01 btc, чтобы гарантированно попасть в первый блок. Если для такой транзакции поставить комиссию в 10 раз ниже (0,0001 btc), тогда она гарантированно подтвердится в течении 25 блоков. Хотя может и быстрее. Сейчас смотрю, в блокчейне полно блоков с нулевой транзакцией и кучей входов, так что вполне возможно что транза уйдет с первого блока.

Кратковременный пик был 77 биткойнов, не 70.

Вы говорите, что идёт ДДоС, хотя строго утверждать это нельзя. В прошлом LiveJournal и многие сайты списывали свои системные проблемы на несуществующие атаки хакеров. Это очень удобная позиция.

Если взять среднее за 7 или 30 дней, то рост расходов на транзакции более плавный и больше похож на рост спроса, а не какие-то там атаки плохих ребят.

Но странно, что всего за 7 тыс долларов в сутки, такие компании как Visa/MasterCard, ФБР, альткойны Etherium, и другие заинтересованные лица могут заблокировать супер проект дешевых переводов для бедных стран.
То есть какие-то 7 тыс долларов в сутки позволяют заблокировать проект с капитализацией в 7 млрд долларов? Если это так, то капитализация этой штуки явно завышена.

Почему я вообще должен знать, что сейчас идет DDoS? Последний раз моя транзакция с комсой около 11 тыс сатоши за килобайт зависла на 4 дня. Это был экономный вариант, который мне предложили автоматически. Хотя я рассчитывал на несколько часов, не более, 4 дня намного выше моих ожиданий.

То есть получается Биткойн уже не для микроплатежей и за кофе им не заплатишь. А раз этим нельзя расплачиваться по мелочам, то нафига и кому он нужен? Обменники забанить и всё, конец проекту.

По поводу ддоса, взгляните на график заполненности MemPool (это пул транзакций, которые не попали в блок и стоят в очереди).


Смотрим на синий график, на несколько дней (сразу после конференции Bitcoin Roundtable 2016/02/28) число транзакций возрасло в несколько раз, а потом опять вернулось на прежний уровень. Совпадение?

Вот еще более интересный график, на неделю число транзакций возрастает в 50 раз! А потом возвращается на прежний уровень


Какое событие этому предшествовало? Парой недель ранее анонсирован Bitcoin XT, первая версия выкидыша Classic. Опять совпадение?

Вот картина с начала 2015 года:


Пики — это ддос, в остальное время сеть не загружена даже на половину кое-кто пытается таким способом захватить контроль за сетью под видом благих намерений.

Число транзакций растет плавно и прогнозируемо


даже при таких темпах роста необходимости увеличения размера блока не будет еще пару лет, так что все разговоры о том, что это надо делать СРОЧНО не более чем манипуляции.

P.S. графики отсюда https://statoshi.info/dashboard/db/transactions

Для того, чтобы платить за дешевый кофе, можно ставить минимальную комиссию, продавец продаст вам кофе и с 0 подтверждений, деньги поступят чуть позже, что не есть проблема. Да и сейчас полно решений, которые позволяют так работать без риска для обоих.

Вы что не понимаете что децентрализованные системы мгновенно не обновляются! Сейчас у нас есть целых пара лет на то чтобы решить эту проблему! через пару лет будет поздно!
На неделю число транзакций выросло в 50 раз — это был стресс тест (200 тыс транзакций в мемпуле), который позволил понять, что собственно DDoS вовсе не создает отказ в обслуживании в прямом смысле слова, однако резко повышает стоимость транзакций, что и есть проблема.

А Ваш первый график умалчивает главное — что общее число транзакций около 270 тыс в день, а размер пула в потолке около 30 тыс. Даже близко не стресс тест, который был в сентябре 2015, и занял в 10 раз больше пула.

То есть если в конце месяца в будний день мы имеем спрос в 300 тыс транзакций, а в день сгенерировалось чуть меньше блоков вместо средних 144, и емкость около 270 тыс, то мы имеем дефицит в 30 тыс, которые и идут в мемпул и копятся там. А если еще есть движение цены, то это еще добавляет 20-50 тыс транзакций.

Идея-то в том, что скорее всего спрос на транзакции неэластичен — то есть многие будут переводить и по 50 центов. И вот тут то начинается проблема, что отдельные бедные страны и мелкие платежи за кофе будут постепенно отсеяны.

Конец марта 2016 опять попадает на будний день, и вроде майнеры не вводят новые мощности, получается, что якобы «DDoS», который на самом деле просто спрос в 300 тыс транзакций, будет повторяться.
Так эти 270 тыс. транзакций в день как раз уже ВКЛЮЧАЮТ в себя целенаправленный спам/DDOS (та часть доса/спама которая была в итоге включена в блоки, с учетом отсеянных их было больше 300 тыс в сутки). А нормальное количество транзакций сейчас порядка 200-220 тыс в сутки: https://blockchain.info/ru/charts/n-transactions?showDataPoints=true&timespan=60days&daysAverageString=1&scale=0&address=

Так что "просто спрос в 300 тыс." в ближайшее время маловероятен. Хотя постепенно такой момент и приближается плавно. Разработчики об этом в курсе, но рассчитывают к этому времени реализовать более плотную "упаковку" транзакций в блоки — чтобы при сохранении того же объема (1 Мб) укладывать больше транзакций. Как резервный вариант если с этим что-то не заладится (или вдруг спрос и активность использования неожиданно быстро увеличиваться начнут) держат увеличение блока до 2 Мб.

30 тыс. неподтвержденных транзакций в мемпуле в этот раз вообще не было. Это кол-во использованных входов в неподтвержденных транзакциях(синий график) — тут был значительный скачок, т.к. спамеры пытались долбить сеть (забить место в блоках) "тяжелыми" (т.е. объемными — в байтах) транзакциями. Само кол-во транзакцию ожидающих подтверждения(красный график) оставалось достаточно стабильным и не превышало 7 тысяч. С учетом того что порядка половины содержимого мемпула это обычно "мусор" который там сидит часами и днями не потому что нет места в блоке, а потому что большинство майнеров просто не хотят их включать и того что в 1 блок выходящий в среднем каждые 10 минут помещается порядка 2-2,5 тысяч типовых (не раздутых специально) транзакций это вполне нормальная рабочая ситуация ни на что особо не повлиявшая. Кроме волны набросов в СМИ исходящих видимо из того же источника кто и непосредственно СПАМ/DDOS заказывал.

Личные наблюдения это подтверждают — никаких задержек и необходимости увеличивать комиссию относительно той что использовал в прошлом году я не заметил, хотя парочку отправлял в этот период — одна попала в 1й же найденный сетью блок, другая во 2й. Комиссию ставил в 3к сатоши (т.е. чуть больше 1 цента).
Если поизучать статистику за 5 лет по транзакциям, то можно увидеть, что спрос на транзакции неравномерен.

То есть максимум/минимум числа транзакций в день в течении месяца попадает в интервал [1.50; 1.84] для половины месяцев, остальные выпрыгивают из этого интервала.

То есть, если минимум за месяц был 100 тыс транзакций в день, то можно ожидать, что максимум будет 150 тыс, или даже 184 тысячи.

Так вот январский минимим где-то 123 тысячи, а февральский 168 тысяч. Значит в пике должно быть 168*1.84 = 309 тыс. Если бы спрос в феврале был небольшой, то был бы хотя бы один день на прежних 120 тысячах, но такого дня не случилось. Поэтому либо это настоящий неравномерный спрос, либо кто-то тратит деньги на постоянный многомесячный показушный спрос, На самом деле второе равносильно первому, так как если кто-то делает что-то целый месяц, то он этого хочет и может, а раз может, то сможет и три месяца и год, то есть лучше считать DDoS будет всегда и это просто такой спрос.

Моя последняя транзакция 3 килобайта 33к сатоши (13 центов, 9 рублей) зависла на 4 дня и я не думаю, что индивидуальный опыт является хорошим аргументом, есть же статистика по общим сборам. Тот же Statoshi.info 27 февраля показывает пик в 111к сатоши (40 центов) за килобайт для включения в ближайшие 2 блока.

UFO just landed and posted this here
Так это же очередная реинкарнация обиженых Хирна (Херна) и Гевина с их Bitcoin XT (теперь Bitcoin Classic). Разве что попросили одного из сочувствующих от своего имени опубликовать, чтобы своим именем как красной тряпкой не отсвечивать.
N-й по счету наброс. Было бы странно ожидать в нем чего-то другого.
А точно с биткоином все так плохо? Со стороны выглядит, как попытка под шумок «отжать» полномочия у команды разработчиков.

1. Дискредитируете старую команду, как упертых консерваторов, мешающих прогрессу.
2. Вводите в команду толпы школо..., т.е. я хотел сказать, новых проактивных разработчиков со свежими идеями.
3. Когда работа новой команды окончательно впадает в ступор из-за разноголосицы мнений, пишете еще одну статью, где обосновываете необходимость «немного повысить» порог вхождения для новых разработчиков.
4. Вычищаете большинство старой команды, «проактивных разработчиков».
5.…
6. Profit!
На самом деле так и есть. Это просто попытка взятия контроля над протоколом.
Закончится это все может очень плохо, например майнеры, в свою очередь могут предложить свои "улучшения", им пофигу на размер блока, однако им, например, будет интересно отодвинуть уполовинивание на пару лет, да и чо уж там, можно и максимальное число биткоинов увеличить. Это ведь такая же константа в протоколе, как и размер блока.
Сайдченерам будет выгодно напихать в блокчейн кучу левой инфы, что еще больше раздует и без того раздутую базу.
И т.д.… В конце концов будет куча говнофорков с копеечной ценой и низкой мощностью.
Ничего, щас zcash (ZeroCash протокол) подростает, если почистить его от болячки перемайна (10% майнинга идут в фонд) будет хорошей заменой ;)
UFO just landed and posted this here
Для решения этих проблем давно используются офлайн сервисы и безблокчейновские кошельки. Проблема в том, что запущенный полный клиент представляет из себя рабочую ноду сети, если больше людей будут переползать с них на легкие кошельки (а это непременно произойдет в случае увеличения числа блоков), то количество таких нод уменьшится, децентрализация снизится, а это плохо.
UFO just landed and posted this here
По поводу загрузки блокчейна, к сожалению только загрузив всю историю в совокупности ожидания подтверждений транзакции можно гарантировать что 'монеты не поддельные'.
Для обывателя существуют облегченные кошельки, например electrum, но при их использовании пользователю приходится доверять серверу (но все спорные ситуации проверяются а сервер можно поменять в любой момент)
UFO just landed and posted this here
До меня не сразу дошло, вы не понимаете, проблема не загрузки данных из сети, там все очень оптимально работает — сейчас большее время во время загрузки блоков тратится на их проверку (и кстати, пишут что речь идет о 5-6 часах на современных компьютерах, так как процесс оптимизирован для многопоточности).

Если что вам никто не мешает загрузить на свой компьютер уже проверенные вашим другом блоки, просто скопировав файлы.

p.s. Одно время эти файлы даже выкладывались на официальном bitcoin.org, в т.ч. торент файлом но сейчас я не нашел их там.

UFO just landed and posted this here
Старые данные можно не проверять, заменив их на проверку хеш-кода. А текущие данные (например, за последние 3 месяца) проверять.
с чем их проверять? от куда брать хешкод?

Главная идея blockchain состоит в том что в нем записана история каждой монеты, сгенерированной и потраченной каждым пользователем. Именно проверку на соответствии дебит-кредит и корректность подписи и проводит клиент во время загрузки блоков (и при каждом запуске так же перепроверяет последние 200 кажется блоков). Мы не можем так просто взять, и не загружать историю старых монет, потому что тогда нам не будет понятно, верно ли их информация о них записана в блоках, которые нам отдали другие компьютеры по сети, которые по определению не надежны.

p.s. если я верно понимаю, уже существует механизм (кстати включен по умолчанию), позволяющий не хранить всю информацию о монетах на диске на клиентах, а только хеши и часть информации (в теории позволит уменьшить размер базы в несколько раз или даже логарифм от первоначального размера) но загрузить и проверить первоначально эти блоки из сети все равно придется.
UFO just landed and posted this here
Если делать такой механизм, он должен быть строго добровольным. Кто хочет хранить всю цепочку, тот хранит, кто не хочет — хранит какую-то её часть (скажем, транзакции старее 5 лет едва ли меня заинтересуют). В конце концов, когда-нибудь сети всё равно придётся научиться забывать старые транзакции, винты не резиновые.
UFO just landed and posted this here
Это не неизбежно
При 8GB в год, это 864 гигабайта через сто лет
Я верю в 1Tb RAM через сто лет на захудалой машине
8 Гб в год чего? Оперативной памяти? Так ее потребление особо не растет от количества транзакций накопившихся в истории (т.к. нет никакой надобности их все одновременно хранить в оперативке). В предыдущей версии релиза хорошенько перетряхнули код в плане оптимизаций использования памяти и пару косвенных утечек пофиксили — так использование оперативки вообще наоборот снизилось несмотря на рост потока транзакций. И из-за оперативки как раз особо никто не переживает в плане масштабирования.

А пот под 50 ГБ в год отъедаемого места на SSD — вот это уже сильно напрягает. Если на 100 лет замахиваться — 5 TБ SSD диск отдельно только под биткоин понадобится. Это вообще без учета увеличения блока(который рано или поздно все-таки увеличат) и кол-ва пользователей и их транзакций, т.е. если биткоин и дальше останется (застрянет) как нишевое решение для гиков т.е. сохранение примерно текущего уровня. Если предполагать дальнейшее развитие и рост популярности, хотя бы с текущими (не особо серьезными темпами) — то требования на таком отрезке времени вырастают не меньше чем на порядок.

Так что никаких реальных альтернатив начать "забывать" самые старые транзакции на каком-то этапе и перехода к 2х уровневой организации работы нет.
2х уровневая это как обычные межбанковские банковские платежи и SWIFT работают сейчас как 1й уровень и карточные платежные системы (VISA/MC) и электронные интернет платежки (PayPal, Webmoney, Яндек-Деньги и т.д.) реализуют 2й уровень, которым и пользуется большинство клиентов для повседневных целей, а к 1му обращаются только в особых случаях — для крупнейших транзакций или когда нет другого подходящего метода оплаты/перевода средств.

Оригинальный биткоин почему-то упорно пытаются натянуть как сову на глобус как прямую замену 2го уровня, минуя 1й. Хотя он по своим свойствам и принципиальным ограничениям для этого очень плохо подходит — в частности по скорости обработки транзакции карточки или интернет платежки он в принципе догнать не может. Зато 1й базовый уровень поверх которого строится вся остальная финансовая система способен заменять без проблем.

8 гигабайт в год. На эту цифру растёт размер блокчейна. Сейчас. При текущем размере блока в 1 мегабайт.

1 уровень. Вы верно заметили. Именно на нём место биткоина. Долгое время подтверждения и удорожание комиссии его туда и ведут. В будущем за пиццу никто не станет расплачиваться битками.

2 уровень. Это форки. Один (а один ли?) из них займёт место мелочи для повседневного пользования. С секундным подтверждением и без необходимости носить с собой весь блокчейн. Лично я плюсую за DASH (в прошлом DarkCoin) в нём уже есть моментальные подтверждения.
Именно сейчас при текущем размере блока в 1 МБ он растет намного быстрее. Даже с учетом того что реальный средний размер еще 1 МБ не достиг, а составляет где-то порядка 800 кб мы имеем 0,8x6x24x365 = 42048 МБ прироста базы данных в год.
На самом деле даже больше, т.к. мощность сети продолжает расти, так что блоки в среднем находятся чуть чаще чем запланированные 1 раз в 10 минут / 6 в час. И есть "оверхеад" хранения — на диске база данных занимает несколько больше места чем чистый объем транзакций в блоках — примерно на 15% больше.
В результате сейчас в данный конкретный момент (конец 2015го — начало 2016 г) темпы роста как раз уже подобрались к 50 ГБ/год. Когда дело дойдет до максимально полного заполнения 1 Мб блоков будет уже что-то около 60 ГБ в год.

А 8 ГБ это видимо если просто текущий объем (66 ГБ) поделить на все время существование сети (~7.5 лет)?
Ну это в полностью некорректная оценка — просто потому что первые годы, когда биткоином никто особо не пользовался база данных почти не росла, а реальные размеры блоков были в десяток-другой килобайт при том же лимите в 1 МБ. Тогда никто с ростом объема особо и не заморачивался, это обсуждалось только как теоретическая проблема в отдаленном будущем. И только последний год-полтора(будущее оказалось совсем не столь отдаленным) это вылилось в реальные проблемы — когда темпы роста объемов резко увеличились и при этом одновременно скорости обычных HDD стало уже не хватать для полноценной работы.
Получился двойной удар — рост объемов ускоряется, а от могущих предложить большой объем и низкую цену HDD приходится отказываться в пользу гораздо менее емких и более дорогих SSD. Что в свою очередь и спровоцировало "идеологическую войну" сторонников и противников простого увеличения лимита на размера блока.
Ой. Пересчитал и стало страшно. SSD кончится через пол года? Да я просто в ужасе.

После этого желающие увеличить размер блока и вовсе кажутся сумасшедшими.
В результате ни кто не будет хранить кроме гиков-энтузиастов, а это сильно ударит по деценттрализации.
Хотя, я верю, что решения есть. Как вариант зашить текущие балансы в код и отбросить все хвосты. Но это какое-то очень дикое решение, по сути кому-то в руки доверить миллиарды. Надеюсь ни кто на такое не решится.
Это никак не ударит по децентрализации, ибо я не предлагаю ничего обрабатывать на выделенном железе. Я предлагаю p2p-базу снэпшотов балансов за различные даты, любой снэпшот можно выкачать, а все последующие блоки хранить уже локально.
Откуда выкачать? Чо уж, можно тогда сделать онлайн базу с балансами и апи к ней. И привет централизация. Вы будете доверять такой базе?
Откуда Вы выкачиваете блоки сейчас и почему доверяете этим непроверенным узлам? Вот я и предлагаю аналогичную текущему блокчейну бд, которая будет хранить лишь набор снимков. Своеобразный индекс.
Я сначала неправильно вас понял. Согласен, это решение, при чем с кучей дополнительных бонусов. По сути так можно хранить любые данные.
В принципе и готовые-то решения есть, тот же ipfs, осталось добавить какую-то систему проверки подлинности и это может стать решением.
UFO just landed and posted this here
Еще раз, откуда брать хеши? у нас есть только наша p2p сеть в которой честные и могут быть не честные клиенты.

Если слепо доверять то можно получить вместо настоящей ветки — поддельную, вы даже будете видеть подтверждения транзакций (если злоумышленник будет обладать ресурсами для майнинга или просто подготовит такой блокчейн лично для вас чтобы сложность там была маленькая), а если при загрузке делать проверку с нуля то даже если вы получите ветку от злоумышленника она будет отброшена потому что вы получите вместе с ней и настоящую ветку блоков.
Например оттуда же как текущие уже реализованные "чек-поинты". Т.е. вписывать их прямо в код клиента при выходе очередной его версии. Сама база при этом хранится и скачивается p2p — а чтобы убедиться что скачено именно то, что нужно, т.е. реальная и актуальная версия базы данных и не подсунутый группой "злодейских" нод левак просто вычисляем ее хэш и сверяем с жестко зашитым в коде образцом.

В результате "слепков" базы будет столько же сколько версий клиента — с состояниями на дату перед выходом соответствующих версий. Пользователь при этом может выбрать последнюю (самую свежую) или любую из предыдущих на выбор и начать синхронизацию с одной из этих точек. Ну либо включить Hardcore Mode и обработать весь блокчейн с момента запуска сети в 2009м году самостоятельно не используя никаких слепков.

Центральная точка и вопрос доверия? Ну так скачивая готовое ПО клиента (или даже беря исходный код и компилируя его самостоятельно) все сейчас тоже в любом случае вынуждены этой центральной точкой контролируемой небольшой группой разработчиков пользоваться и ей доверять — т.к. в код который ты сам у себя добровольно запускаешь и который имеет доступ к приватным ключам и к интернету можно поместить вообще все что угодно и произвести любые действия.

Естественно как и прочий исходный код это должно быть в полностью отрытом виде и с отслеживанием всех вносимых изменений до последнего символа через механизмы типа GitHub, чтобы не только слепо доверять, но и любой желающий мог это все проверить. Но в этом плане никакого отличия от текущей ситуации нет.

P.S.
Создание "слепка" должно идти по строго детерминированному алгоритму, чтобы любой желающий таким заняться мог взять полный блокчейн, задать точку отсечения (# блока на котором нужно остановится) и обработав все транзакции до указанного блока включительно и получить идентичный слепок с совпадающим хэшем.
Вы кажется не понимаете что такое хеш и о хешах чего идет речь.
Еще раз, на пальцах, блок это просто список транзакций вида — отсюда отняли сюда прибавили (плюс еще по мелочи, например решение, которое нашел майнер, майня этот блок), хеш это sha256 от этого блока в виде набора байт.

Вы не можете заранее узнать этот хеш! это ключевая идея blockchain, поиском этого хеша занимается майнер (задача у него стоит такая, так изменить блок, там меняется 1 число, чтобы хеш был 'красивым' с определенным количеством нулевых бит), но зато вы можете проверить без проблем, что да, этот хеш соответствует текущей сложности сети (точнее той на момент которой создан блок).

Вы не можете эти хеши куда то записать заранее, где то хранить и в какие то чекпоинты записывать.

Вся гениальная идея этих вычислений (Proof of work, доказательство работы) в том чтобы сделать механизм который бы позволил решить, какому именно майнеру мы будем доверять на конкретный момент времени,… майнеры не могут заранее это сделать, они трудятся в поте лица и решают задачу, кто решил — тот и пишет блок в базу (на самом деле он ее просто рассылает в сеть точно так же как предыдущие а клиенты проверяют и себе рисуют)
Кажется не понимаете / не прочитали о чем я (и другие коментаторы выше) вообще писали. Речь о быстрой начальной синхронизации(при 1м запуске новой ноды/кошелька) и возможности не хранить всю предыдущую историю (весь блокчейн) до определенной (на выбор пользователя) даты, но при этом не переходить на "тонкие" клиенты полагающиеся на добросовестность других (полноценных) нод.
Хэши всех уже найденных блоков вошедших в главную цепочку известны и их можно заранее записать. Как и хэш компактной базы данных представляющей собой итоговой результат "проводки" всех транзакций содержащихся в этих блоках. И дать клиенту скачать клиенту уже только эту готовую компактную базу, а не все исходные блоки на основе которых она строилась.

А все новые генерируемые майнерами блоки, которые будут найдены после выпуска подобного "слепка" дальше обрабатываются по старинке.
Кто и главное как будет решать, какие хеши верные?!
Вы хотите чтобы кто то доверенный делал слепок, подготавливал или как то помечал блоки чтоб они принадлежат слепку и им можно доверять?

Выше уже писали что последние версии имеют ключ чтобы не хранить блоки (хранятся последние X мегабайт, указанных в опции, индекс и список ненулевых адресов), но загрузить и проверить с нуля все равно приходится.
Кто угодно может сделать слепок и опубликовать его хэш, но логично чтобы это периодически делали текущие разработчики Core клиента которым на конкретном этапе развития доверяет сеть (используя публикуемое ими ПО и протоколы), а остальные желающие только с целью проверки их корректности и того что разработчикам все еще можно доверять в этом плане.

Главное что нужно сделать — это чтобы разработчики написали код генерации такой базы-слепка. Который будет частью оригинального клиента — в нем большая часть необходимого кода и так уже есть, дописать не так много нужно (по сути текущий клиент такую базу сейчас и так уже ведет, только динамическую — обновляемую с получением каждого нового блока, все что нужно это только создать 2ю ее статическую копию с состоянием на определенный момент и возможность скачивать/сидировать ее по сети, а не только строить локально на базе полной цепочки блоков).
С использованием этого кода любой желающий может запустить генерацию компактной базы-слепка указав только 1 параметр: номер блока на котором алгоритму следует остановится (естественно номер должен быть в прошлом — один из уже найденных и включенных в цепочку блоков на момент запуска алгоритма). Причем не важно кто и когда это делает: при условии что использовался оригинальный блокчейн из текущей наиболее длинной цепочки и не было вмешательства в программный код на выходе для конкретного блока указанного в качестве опорной точки получается только одно возможное состояние такой базы с одним конкретным хэшем. Т.е. имеем жесткое соответствие № блока — хэш. Причем это НЕ хэш этого конкретного блока — это хэш базы данных включающей результаты обработки всех транзакций от блока №0 (генезис) и до этого указанного №. В некотором роде хэш всей цепочки, хотя и формируется по другому.

Чтобы не разводить бардак с кучей подобных слепков (для каждого увеличения цепочки на 1 блок теоретически можно создать свою версию) это имеет смысл делать только периодически — например на каждый десятитысячный блок (~ раз в 2 месяца).
Лучше всего если это будет делать сами разработчики совместив это с выходом новых версий оригинального клиента. Примерно по такой схеме:

  1. Допустим на 3 июля 2016 запланирован выход 13й версии core клиента. Т.е. его публикация (сам он уже к этому моменту дописан и какое-то время тестируется самими разработчиками и альфатестерами)
  2. Кто-то из разработчиков запускает генерацию такой базы данных-слепка по состоянию скажем на 1 июля 2016 указав соответствующий номер блока, допустим к тому времени это будет блок №420 000. По завершении он получает копию мини-базы и ее хэш. Вычисленный хэш вписывает в соответствующем месте исходного кода, а сам становится 1м сидом этой базы (хотя этап с сидированием и не обязательный — главное вычислить и вписать хэш).
  3. 3 июля официально (для публики) выходит версия 13 клиента, в которой среди прочего в исходном коде есть жестко прописанный хэш минибазы v.1 (или v.13) представляющей собой компактное представление первых 420 000 блоков оригинальной цепочки.
  4. Начиная с 3го июля любой желающий пользователь или компания у кого есть ноды с полной копией блокчейна может запустить генерацию такого же слепка указав в качестве параметра только № = 420 000. И получить такую же копию мини-базы и ее хэш. После чего может при желании его опубликовать (где угодно — на своем корпоративном сайте, на биткоин форуме, на реддит, тут на ГТ/хабре и т.д.) в стиле — да, все ОК для базы по 420 000 блоков хэш = "хххххххххх" (совпадает с прописанном в исходных кодах версии 13 клиента). Ну либо же наоборот запустить волну паники — если хэши вдруг не совпали "а царь не настоящий!" что означает что разработчики либо как минимум ошиблись либо задумали что-то недоброе и доверять им до прояснения ситуации нельзя. Так же любой проделавший такое становится сидом распространяющим этот слепок дальше по сети.
  5. После этого любой обычный новый пользователь (или старый, но запускающий новую ноду на новом железе или восстанавливающий данные после сбоя и утери/повреждения данных) скачивая и устанавливая 13ю версию клиента скажем 15 июля имеет на выбор:
    • Качать и проверять весь блокчейн, т.е. ~ 75-80 ГБ загрузки данных по сети (примерно столько к тому моменту будет) и сутки-другие непрерывной работы машины под большой нагрузкой (включая порядка ~16 000 ГБ операций чтения/записи с диска очень мелкими блоками). Да, занимаемое место можно урезать и все 80 ГБ потом на диске не хранить, но скачать их все все-равно придется как минимум один раз и пару дней на проверку потратить тоже придется даже если включена опция удаления старых блоков.
    • Выбрать старт со слепка соответствующего блоку 420 000 если его не интересует предыдущая история чужих транзакций ранее этой даты. Скачать очень быстро ~ 1.5 Гб слепка, т.к. его не нужно парсить то все зависит только от скорости интернет канала. На быстром это займет буквально минут 10(как скачивание торрента на 1.5 ГБ) и проверить его хэш (еще 1-2 минуты) на предмет того что он совпадает с вписанным в исходном коде(так же можно и вручную дополнительно свериться с интузиастами уже делавшими полную синхронизацию самостоятельно — в зависимости от степени параноидальности и объема используемых в биткоинах средств). В результате за считанные десяток-другой минут имеем клиент синхронизированный с сетью до 420 000 блока включительно. Дальше остается загрузить и уже самостоятельно проверить блоки только после № 420 000 — т.е. в данном случае за последние 2 недели которые прошли после генерации слепка. Параллельно такая нода когда находится в сети так же становится одним из сидов распространяющих этот слепок. В случае повреждения данных (текущей рабочей БД) клиенту так же не нужно перекачивать и заново перепроверять все 75ГБ и тратить на это пару суток как происходит сейчас с клиентами использующими опцию по удалению старых блоков. В этом случае будет происходить быстрый откат назад на блок 420 000 и повторное скачивание и проверка блоков найденных только после этой точки.
  6. При выходе следующий версии скажем v. 13.1 в сентябре 2016 создается еще слепок скажем по блоку 430 000 включительно. И любой устанавливающий потом версию 13.1 имеет на выбор варианта начать с все с начала (0 блока), с последней точки (блока 430 000) или любой из предыдущих (в данный случае 1 вариант с 420 000 блокам) — в зависимости от того сколько он может позволить выделить ресурсов (места на диске и времени на обработку при начальной синхронизации) и степени желания участвовать в поддержании сети, точнее уровня доступности полной истории транзакций для всех желающих. В распространении мини-базы он в любом случае участвует.
С самого начала я с вами несогласен… вы хотите еще больше привязать блокчейн к разработчикам, у нас уже есть мега проблема из-за того что разработчики не могут решить простую задачу (одни финансово заинтересованы, другие идеологически...).

p.s. ладно, допустим, но вы понимаете, что доверять разработчикам сейчас, пусть они будут ангелами во плоти, встроив это доверие в код, автоматически распространит это доверие на следующее поколение лет через 50, вы считаете что им так же можно будет доверять?
Биткоин тем и хорош, что изначально самомаштабируем.

И Mad__Max не совсем обезумел и верные вещи говорит.
Но верно это всё для форка.

Идеалогия биткойна слишком ценна сама по себе, чтобы в ней, что-то менять.

DASH кстати в версии 12.2 обещает увеличить блок до 2 мегабайт. Они теперь первые кандидаты на технологию предложенную Mad__Max`ом. Ещё в неё (технологию слепков) можно запилить суперноды, которые будут хранить весь блокчейн, регулярно его считать и как и майнеры получать немножко комиссии. Вообще и майнеры сами могли бы взять на себя роль хранителей, это бы произвело новую волну в среде асиков, но открывает новый вектор атак.
Упс. DASH оказывается ещё летом прошлого года включил поддержку супернод с вознаграждением.

https://www.dash.org/ru/news/category/%D0%BD%D0%BE%D0%B2%D0%BE%D1%81%D1%82%D0%B8-%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8-ru/
p.s. если я верно понимаю, уже существует механизм (кстати включен по умолчанию), позволяющий не хранить всю информацию о монетах на диске на клиентах, а только хеши и часть информации (в теории позволит уменьшить размер базы в несколько раз или даже логарифм от первоначального размера) но загрузить и проверить первоначально эти блоки из сети все равно придется.

Механизм существует, но НЕ включен по умолчанию. И он еще до конца не доделан — в принципе уже работает и можно при желании активировать, но реализация еще не полноценная с точки зрения работы сети — для всех остальных такой урезанный клиент будет аналогичен "легким" кошелькам которые ни за что не отвечают и в децентрализации и повышении надежности/устойчивости сети не помогают. Хотя и будет более надежен для владельца чем легкие кошельки т.к. не нужно кому-то стороннему доверять — все проверяется по полной программе самостоятельно как и в полноценном кошельке.

И информация о каждой монете по прежнему хранится. Перестает в этом случае храниться информация о всех предыдущих транзакциях проведенных с этой монетой — только последнее ее состояние и последний ее владелец.
В результате если какая-то монетка за свою жизнь скажем побывала в 100 кошельках (не обязательно даже разных — просто пересылалась/участвовала в обороте 100 раз), то в полном варианте будет храниться 100 записей, а в неполном только 1.

Реальная разница (на практике) на данный момент составляет где-то ~65 ГБ полной истории против ~1.4 ГБ описания состояниях всех существующих монет (+ ХХХ последних блоков — по выбору, но не менее 0.6 ГБ).
По умолчанию блокчейн пара десятков гигабайт но команды вида getrawtransaction не работают для чужих транзакций, чтобы это заработало необходимо перегрузить всю базу включив опцию в конфиге txindex=1 и это так уже как минимум полтора года!
Разве не это является тем самым механизмом оптимизации хранения?
Нет. По умолчанию блокчейн уже не "пару десятков" а почти 70 ГБ.

А txindex=1 это указание какие транзакции из полного блокчейна, который в любом случае грузится и проверяется полностью включать в индексы для быстрого прямого (без повторного "перекапывания" всего блокчейна в поиске нужной) доступа для команд типа getrawtransaction. По умолчанию для чужих транзакций это выключено и индекс очень компактный — у меня сейчас он всего ~50 Мб (0.05 ГБ). С полной индексацией (txindex=1) не знаю сколько добавится — не пробовал.
Грузить (через интерент с других полных нод) при активации не нужно — клиент будет лишь локальную копию на диске заново всю перепроверять и переиндексировать.

А возможность не хранить полную копию блокчейна реализовали только чуть больше полугода назад, с выходом 11й версии Core клиента. Регулируется через опцию -prune=N, где N объем в мегабайтах — какой кусок блокчейна(самых последних блоков) оставлять хранить на диске. Более старые автоматически удаляются. Но база данных по всем монетам (всех существующим "входам") при этом остается полной, так что клиент все входящие транзакции и новые загружаемые блоки может проверять самостоятельно — не полагаясь/не доверяя сторонним нодам в этом плане.

Спасибо, я значит меня тогда ввели в заблуждение а я не проверил, думал что уменьшение объема не эффективно
Старые данные нельзя не проверять, т.к. вы сейчас можете потратить биткоин, полученный год назад (информация о нем находится в блоке годичной давности)
Есть SPV-клиенты (так, в частности, работает большинство мобильных), но это не 100% надежное решение
Не помню чтобы выкладывались именно "проверенные" блоки — выкладывались просто блоки, чтобы их по биткоин протоколу не приходилось клиенту качать(что в старых версиях было медленно) и ноды не напрягать кучами запросов, а скачать одним файлом и быстро, а клиент прочитает уже с диска.
Но проверять блоки — хэши, криптографические подписи, отсутствие двойных трат и т.д включая всю историю каждой монетки все-равно должен был клиент полностью сам.

Сейчас перестали выкладывать видимо в связи с тем, что начиная с 10й версии Core клиента в нем реализовали параллельную многопоточную внеочередную загрузку блоков с множества пиров одновременно (прямо как в p2p торрентах с разбиением файлов на множество блоков и независимой скачкой каждого без соблюдения порядка их следования). И непосредственно загрузка(скачивание) по сети теперь идут быстро — нет смысла ускорять то, что и так уже быстро и эффективно работает — в этом отношении последние биткоин клиенты уже не особо уступают торрент клиентам.

А вот насчет проверки — проверяет как обычно клиент все самостоятельно. И не смотря на действительно реализованную многопочность этого процесса, это занимает уже не часы а порядка суток на мощном компе(4-8 ядер/потоков и прилично оперативки) включая хороший SSD на котором нужно будет выделить 70-100 Гб свободного места под это дело.
Без SSD (на обычном HDD, где не жалко 100 ГБ отдать) это рискует занять неделю непрерывной работы.
На P4 и обычном винте пересчёт занимает уйму времени, больше недели. О чём думают желающие увеличить блок — для меня загадка. Возможно ни один из них не пробовал ставить клиент Bitcoin Core, или у многих есть лишний SSD под блокчейн‽
Вы дальше додумайте пожалуйста,… размер блока напрямую ограничивает количество транзакций в секунду, а это в свою очередь определяет, для кого будет работать весь блокчейн — только для крупных клиентов (например работодатель, скупивший разработчиков Core, ратующий за создание сайдчейна для микротранзакций а клиринговые операции отправлять в bitcoin с хорошей комиссией) или для обычных людей (которых миллиарды и потребуется на пару порядков увеличить лимит транзакций)
Извините. Задам вам один вопрос.
У вас уже стоит Bitcoin Core? Вы им пользовались?
Конечно же, у меня полная нода работает уже несколько лет, хотя и не используется (т.е. стоит исключительно для сбора данных) и будет работать до тех пор, пока у меня будут в наличии ресурсы для ее поддержания (даже готов потратиться на апгрейд железа при необходимости, правда в меру своих скромных возможностей).

Мало того, самое смешное, bitcoin xt я не смог использовать так как вылетают ошибки при полной загрузки блоков с нуля (а скопировать имеющийся не могу из-за различий в архитектуре машин), а то и она бы была запущена.

Только вы путаете, все призывы выбрать тот или иной путь не к пользователям а к майнерам! именно их мнение решающее, все остальные — не имеют значения. Мало того, выбор обычных майнеров — выбор пула майнинга, который будет способен восполнить их затраты, а это автоматически переносит вопрос выбора форка даже не за самими майнерами а за владельцами пулов майнинга!

И это, очень большая проблема! Потому что верный путь (расширение лимита размера блока), к сожалению, им (больше майнерам чем пулам) не выгоден, ведь это потребует как минимум апгрейда их оборудования в будущем (заранее).
Тогда вам настоятельно рекомендую с нуля его поставить. Последние два года для сети стали настоящим бумом. Загрузка предыдущих блоков происходит сравнительно быстро. Но как только остаётся загрузить последние два года, процесс замирает. И это блок ещё не стабильно целиком заполнен.
У меня клиент крашится с ошибкой. Само собой я выделяю ssd-шник для этой задачи и машину с 16гб оперативки и не самым последним процессором.
Странно. У меня он только на 32 бит ОС любит иногда падать при массовой загрузке/синхронизации. Разрабы в курсе(на форуме с ними переписывался вместе с несколькими другими ползователями заметившими аналогичные проблемы) — он где-то на 32бит ограничения на выделение памяти/адресации натыкается (хотя в момент вылета реально задейсвованных объем оперативки даже до 2 Гб не дотягивает судя по мониторингу ОС), но исправлять не желают т.к. 32 бит по их мнению уже совсем устелили и скоро никто их использовать не будет.

А вот на 64 бит никаких проблем кроме того что ОЧЕНЬ МЕДЛЕННО. Причем последний год-полтора истории синхронизируются дольше чем вся предыдущая вместе взятая.
Причем замена P4 на более современный и мощный проц не сильно поможет. Действительно (во много раз) поможет только либо размещение на SSD либо танцы с бубном с временным переносом (на время начальной синхронизации) основной базы данных на RAM-диск (сторонними методами — сам клиент такого не умеет) и возвращением обратно после.
Новый i7 справляется с задачей за пару дней, на p4 больше недели. А RAM диск на over64Gb это сильно
На RAM диск достаточно базу данных непотраченных входов (UTXO) перенести и индексы. Сейчас это около 1.5 ГБ, вполне по зубам RAM диску даже на не слишком навернутой машине.
Именно к ним идет огромное количество обращений на чтение и запись мелкими порциями (обычно меньше 1 кб на операцию) и по случайным(хаотическим) адресам — от чего классические HDD просто помирают под такой нагрузкой, проводя большую часть времени не за чтением/записью, а поиском нужного участка во всю треща головками и тормозя работу всего остального.

А основной блокчейн (сейчас 66 ГБ) пишется и читается намного менее интенсивно и при этом довольно большими кусками — обычно целыми блоками за раз, т.е. чуть меньше 1 Мб на операцию сейчас. С такой нагрузкой HDD без проблем справляется и сможет справляться еще долго, в т.ч. при разумном увеличении размера блока.
Как вы и сказали, умер HDD. Теперь на SSD блокчейн.
Если блок не увеличат, ещё три года сможет на нём пробыть. А потом есть настройка, чтобы только частые данные на нём хранить?
В принципе уже есть, чуть про это тут писал: https://geektimes.ru/post/272190/#comment_9078068

Но пока еще не допилено до конца — клиент перешедший на такой режим работы, перестает участвовать в децентрализации и поддержании устойчивости сети. В частности с него не могут качать блоки другие клиенты.
Т.е. с точки зрения сети такой клиент аналогичен "легким" ни за что не отвечающим кошелькам которые уже давно существуют.
Но со стороны владельца в плане безопасности он эквивалентен полной ноде. Разве что в случае повреждения базы данных (одного из файлов или побитой структуры индексов что иногда случается например при аварийном отрубании питания или зависании) клиенту придется полностью весь блокчейн заново с нуля перекачивать, включая даже тот кусок что локально еще хранился. Тогда как действительно полная нода просто запускает сканирование и переиндексацию локальной копии. В прочем на этот случай проще наверно хранить бекап такого урезанного блокчейна.
  • длительное время формирование блока уменьшает шанс на осиротевшие блоки и даже цепочки осиротевших блоков, когда внезапно окажется что китайская ферма намайнила 5 блоков, но из за низкой скорости аплоада решила не включать ваши транзакции в блок, а ваша транзакция осевшая в 3 блока назад с подачи нормального майнера, оказалась осиротевшей может и поймёте что слишком больашя скорость блоков тоже плохо.
  • редкий перерасчёт сложности позволяет делать прогноз доходности.
  • нет честного алгоритма, сделай тяжёлый скрипт с кучей разновидностью вместо китайских датацентров сетью будут рулить ботнеты чёрных хакеров.
  • маленький размер блока ограничивает разростание блокчейна при флуде транзакциями без комиссий.
  • в блочейне блоки держатся друг за друга, потмоу он и блокчейн, в противном случае нельзя отследить происхождение монеты и они могут быть фальшивыми, это уже вопрос доверия
UFO just landed and posted this here
да, это так, но чисто алгоритмически старые данные можно было бы закешировать и проверять хеш-кодами. Так везде в программах делается.

не помню в каком коине этот вопрос решили, но решение элегантно — суперблок — в нём содержатся только содержимое кошельков без транзакций, скачивать можно до него, по сути получается ограничение времени хранения транзакций, что даже повысит анонимность, есть и другие решения как блокчейн в блокчейне(решает ещё и первый вопрос) и тп,
и вообще почти каждый вопрос решён так или иначе в альтернативных коинах, но они уже никому не интересны, биткоин задумывался для людей, а в результате стал объектом инвестиции, просто так его уже никто не бросит и не переделает потому что срашно потерять инвестиции.
Есть коины без пулов, есть механизмы гарантов сделки внутри блокчейна, но кто их будет раскручивать если на этом не может срубить бабла?
PS просто надо смириться биткоин должен умереть чтобы его место заняла нормальная крипта с блекджеком и децентрализацией
UFO just landed and posted this here
Если кто не знал, транзакции без комиссии уже в прошлом (да, Bitcoin уже не тот). Майнеры просто их отбрасывают как бесполезные, предпочитая транзакции с ненулевой комиссией. Всего один пул (Eligius) сейчас майнит транзакции без комиссии и очередь к нему уже занимает в среднем шесть часов. Так что если будете платить через BitPay, добавьте хотя бы 0.0001 BTC сверху, иначе инвойс гарантировано сгорит и придется разбирать кейс с неуплатой (а всё это, как правило, решается не в вашу пользу, хорошо ещё что только пару дней потеряете на разборки, так ещё и поимеете всяких проблем с курсом и просроченными купонами).
Т.е. то, что раньше было ключевым преимуществом (транзакции без комиссии), сейчас выродилось в специфический случай с исчезающе малыми шансами на выживание, см. https://en.bitcoin.it/wiki/Free_transaction_relay_policy
Транзакции без сборов всегда были рисковыми и могли застрять надолго, так что редко их кто когда использовал.
Это преимущество биткоина не в том, что транзакции полностью бесплатны, а в том, что они очень низкие, по сравнению с другими платежными системами.
Враньё, не были они рисковыми, они были абсюлютно равноправными при соблюдении правил про размер транзакций и даже высокоприоритетными, в зависимости от возраста монет. Года до 2014 уж точно.
Равноправными-то равноправными, но даже в далеком 2010 году, транза без комиссии вполне могла застрять на несколько часов, это факт, так что всегда рекомендовалось ставить хотя бы какую комиссию.
UFO just landed and posted this here
Курс вырос, что ж сделаешь. В ближайшем времени вообще эти сборы должны полностью заменить майнерам доход от генерации, так что нулевые комиссии никогда не рассматривались как идеологически верные.
Размер комиссии вообще не входит в формулу приоритета.

Чтобы послать деньги без комиссии, нужно соблюсти три условия (см. https://en.bitcoin.it/wiki/Transaction_fees)

1) размер транзакции в байтах, size_in_bytes < 10000
2) каждый источник и сама пересылаемая сумма (input_value_in_base_units) >= 0.01 BTC (10000 base units)
3) приоритет транзакции, priority = sum(input_value_in_base_units * input_age)/size_in_bytes >= 57600000

Официальная комиссия в вики — 0.0001 BTC за килобайт, нужна только если какое-то из этих условий нарушено.

Но так было раньше. Сейчас даже сам Сатоши свои 50 монет из генезис-блока без комисии не сможет никому отправить, если Eligius уйдёт в оффлайн. Остальные майнеры сейчас отбрасывают все zero fee транзакции, потому что это им невыгодно. Поправьте, если ошибаюсь. Я просто на собственном опыте убедился — отправляю монеты старее поповской собаки, которые раньше бы со свистом улетели в первом же блоке и они идут по 6-12 часов.
В частности, например Balthazar писал, что он подтверждал только свои транзакции и транзакции с комиссией. Типа, меньше размер блока — быстрее пройдет по сети. Из-за таких майнеров вся система и катится прямиком в ад.
Тут получается, что нужно бороться не за размер блока, а за более жёсткий стандарт блока, чтобы, блоки таких горе майнеров отвергались.
как? каким должно быть условие?
Например в блоке должено быть выделено место под транзакции без комиссии, в блок должны включаться неподтвержденные транзакции при их наличии, а не так как сейчас: "ой у нас маленький аплоад давайте вообще ничерта нафиг не влючать в блок, и уж тем более не халявщиков".

Сейчас всё проще. При одновременном нахождении хэша для двух блоков, принимается блок, в котором больше транзакций. Поэтому блок сначала набивается транзакциями с комиссией, а потом уже без. Так что откидывать транзакции без комиссии при малой нагрузке сети невыгодно. А при высокой нагрузке сети в блоки попадают транзакции с наибольшей комиссией. Так и задумано.
задумано одно а будет так как решит обладатели 51+% мощностей, а это китайцы. у которых как раз проблемы с аплоадом.Соответственно им ни блоки по 2 мб нафиг не нужны ни транзакции без комиссии.
Вот вы как разработчик красиво рисуете это условие в коде, а майнер спокойно правит исходники и убирает его, оставляя свою логику… как вы их заставите так не делать? Вы не можете сделать логику у остальных клиентов такой, чтобы они не принимали блоки от таких майнеров!

вся сложность децентрализованного программирования — вы должны сформировать условие таким, чтобы решения большинства, к которому нет доверия, следили за честностью всех.
Хороший вопрос, тут просто возникнет форк, допустим если тотже элегиус(или как его там) и биржи сговорятся то китайским майнерам только плакать останется, они или примут условия игры или будут считать альтернативную ветку без возможности вывести её в нал. да у них по факту будет 51+% мощности, но если блок не будет соответствовать стандарту полновесный кошелёк его не примет в свою цепочку. хотя наверное закончится как в прошлый раз неугодных за ддосят.
причем тут форк, ведь блоки таких майнеров будут соответствовать валидным блокам блокчейна.
С чего это они будут соответствовать? сейчас условием включения в цепочку является правильная подпись, добавить условие по содержанию блока и оно тоже станет критерием включения,
Форк это не только другой коин но и альтернативная цепочка блоков внутри одного коина.
Опечатался, читать "size_in_bytes < 1000", т.е. до килобайта. Но для типичной транзакции с одним input и двумя output получается всего 258 байт.
UFO just landed and posted this here
UFO just landed and posted this here
Угу, банковский перевод, особенно международный, несколько рабочих дней идти может. Еще и с двойными конвертациями.
В криптовалютах вообще нет понятия международного перевода. Там все равно себе на другой адрес шлешь или на другой материк.
и транзакции мгновенные, но в целях безопасности рекомендуется ждать подтверждения.
Вот транзы с 0 комиссией:
AntPool
https://blockchain.info/tx/f7a5f22a0a7ce6e3b2a18c3f467a04e734909650ce01eb0757848ae608b797fb

btcc pool (с кучей входов)
https://blockchain.info/tx/5e7f19720e515086b0808df8d911955695a832bf31b7df48137bf35520f35fca

Это из последних 5 блоков. 2 пула принимают zero fee, да и то, я пробежался вручную по нескольким транзакциям. Уверен, что их намного больше.
Да, действительно, погуглил, AntPool тоже позиционирует себя как zero fee pool, и то, первая транзакция моталась как минимум 1ч 10м от попадания в сеть до попадания в блок, вторая вообще сильно нестандартная (12 кб без комиссии), мб она от самого пула и как-то связана с этой новостью — Chinese bitcoin conglomerate BTCC has announced a new blockchain service that prioritises bitcoin transaction confirmations for BTCC customers
Вообще транзакции без комиссий довольно многие пулы принимают. Но обычно место для них в блоке четко ограничено — на уровне порядка 50 кб на блок, а остальное забивают платными транзакциями в порядке убывания удельной (на 1 кб объема) комиссии.
Беспокоит, что авторы инициативы предлагают не решить проблему, а отсрочить её. А ещё не платить майнерам. И вообще выставляют особенность сети проблемой которую нужно срочно решать. Странно всё это
Брайан Армстронг — легенда в области криптовалют ☺

А ещё в его интересах, чтобы core кошелёк не запускался у обычных людей. Ведь тогда его замечательным агрегатором, хранящим ключики от биткоинов 3500000 пользователей, смогут воспользоваться ещё больше людей. А он потом честное слово эти ключики не станет пользовать в своих целях, а тем более кулхакерам не протеряет через очередной хитрый зиродей.

Всё это ИМХО лулзов ради, не воспринимайте серьёзно пожалуйста
☺ В заголовке обнаружена ошибка! Двоеточие вместо буквы — У.
(тонкий намёк на то, что Bitcoin`у не нужно увеличивать блок)
Ого. Я даже не обратил внимания, что он CEO Coinbase. Эта паразитическая система дискредитирует идею виртуальной наличности как таковой (Coinbase, по факту, на 100% владеет вашими деньгами).

Sign up to leave a comment.

Articles