Author

Topic: Будущее базы данных цепи Bitcoin (Read 4726 times)

hero member
Activity: 749
Merit: 502

Quote
Вариант 2. Просто. Делаем транзакцию с выходом без адреса.

Получается, что смысл в миксер-сервисах теряется?

Не просто.Как сделать подобную транзакцию?(гайд фор нубс)

Если это фукция будет не очевидна, то почти наверняка, очень скоро появятся миксер-сервисы работающие по такому принципу (Только для этого разумеется вначале нужно будет перевести деньги миксеру). В итоге будет снова произведена подмена понятий аноимности и контроля над монетами.

Гладко пишите, и раз тема обудущем развития,то так же хотелось бы услышать ваше мнение (хотя бы в виде короткой статьи) о p2p бирже,миксере и возможно о p2p пуле.
Если это технически реализуемо, мне не понятно, почему это не реализовано.
newbie
Activity: 30
Merit: 0
чтобы на диске сохранить только хэш01 (на картинке), необходимо удалить хэш0 и хэш1, для этого обе транзакции тр0 и тр1 должны быть потрачены?
sr. member
Activity: 322
Merit: 250
https://50btc.com/ru/article/bitcoin_p2p_electonic_cash_system

Quote
Как только последняя транзакция в монете-цепочке окажется внутри достаточно старого блока, все предшествующие ей транзакции в цепочке могут быть удалены в целях очистки дискового пространства. Чтобы хэш блока остался неизменным, все транзакции в блоке хранятся в виде хэш-дерева Меркла [7][2][5] и лишь его корень включается в хэш блока. Размер старых блоков может быть уменьшен за счет удаления ненужных ветвей этого дерева, хранить промежуточные хэши необязательно.



Quote
Заголовок пустого блока будет составлять около 80 байт. Из расчета скорости генерации блока раз в десять минут получаем 80*6*24*365=4.2 Мб в год. Для среднестатистического (на 2008 год) компьютера с 2 Гб оперативной памяти с учетом закона Мура, предсказывающего рост в 1.2 Гб в год, хранение данных не будет проблемой, даже если все заголовки блоков будут находиться в памяти.
newbie
Activity: 30
Merit: 0
ssd на 4 гига?

Сколько вы там говорите пропускная способностью САТА3? Забудьте о ней. На рэндом позиционировании один сата винт без кеширования отдает 3 мегабайта в секунду. SCSI в 3-5 раз больше. И это не зависит от САТА2 или САТА3 или САС шины. А у большинства клиентов стоит именно один сата винт.
а SSD случайно не тестировали на Сата3???))))) я думаю они ваши сас диски в пух и прах потрут
legendary
Activity: 2893
Merit: 1158
Сколько вы там говорите пропускная способностью САТА3? Забудьте о ней. На рэндом позиционировании один сата винт без кеширования отдает 3 мегабайта в секунду. SCSI в 3-5 раз больше. И это не зависит от САТА2 или САТА3 или САС шины. А у большинства клиентов стоит именно один сата винт.
а SSD случайно не тестировали на Сата3???))))) я думаю они ваши сас диски в пух и прах потрут
full member
Activity: 209
Merit: 100
Опять же, я говорю не о свободном месте на диске, а о его способности производить последовательное и случайное массивное чтение и запись - лопатить гигабайты данных. Мы упремся в эту величину. Компы уже серъезно тупят при синхронизации.

Использовать другие алгоритмы, заточенные под внешние хранилища?
legendary
Activity: 2026
Merit: 1005
tvv: тебе ж там дело говорят - меньше слов, больше дела. Не надо дизайнов никаких. Надо просто доходчиво и просто объяснить людям что ты предлагаешь и чем твое предложение лучше существующих. Конкретно лично для меня - на твоем сайте просто бессвязный поток сознания.
У него на типо-серьезном-сайте еще почему-то оборудование стареет по закону Мура.  Cheesy
hero member
Activity: 490
Merit: 500
Имел честь администрировать базу данных проекта из алекса топ-500. Имел честь организовывать цдн на отдачу 10 гигабит статики. Поверьте, мне знакомы возможности винчестеров. Когда индекс вырастает до 2-3 объемов оперативы, все алгоритмы кеширования сходят на гавно. Работает только шпиндель винтов, а у него возможности весьма ограничены.

Сколько вы там говорите пропускная способностью САТА3? Забудьте о ней. На рэндом позиционировании один сата винт без кеширования отдает 3 мегабайта в секунду. SCSI в 3-5 раз больше. И это не зависит от САТА2 или САТА3 или САС шины. А у большинства клиентов стоит именно один сата винт.

Проблема в том, что каждая нода биткоин выполняет одну и ту же работу: прием, проверка, хранение и бродкаст сообщений. То есть каждый клиент на себе тянет фактически всю нагрузку сети, исключая майнинг и TCP стек. Последний, к счастью, размазывается по сети.

А вот с винтами и памятью беда.
sr. member
Activity: 322
Merit: 250
Quote
Но как только индекс начинает превышать объем ОЗУ, особенно, в 2-5 раз, то все методы кеширования данных оказываются бесполезны. И тогда при поиске ключа, комп начинает лопатить очень много гигабайт данных на винте. А ведь клиенту при получении транзакции надо найти все предыдущие аутпуты, а при получении нового блока - повторить тоже самое для всех транзакций блока. Я уж молчу про процесс синхронизации.

Мое мнение - в недалеком будущем, ванильный клиент Bitcoin выйдет за рамки возможностей стационарного домашнего/офисного ПК. Главный боттлнек - пропускная способность шины SATA и скорость позиционирования головки. Твердотельные накопители конечно могут немного облегчить эту проблему, но не намного и не надолго. Если учитывать что Биткоин - это быстро растущая сеть, объем информации обещает экспоненциальный рост.

Индекс всегда будет медленее рости, чем производительность игровых ПК.

Для быстродействия дисковых массивов существует такая вещь как RAID.
Кстати SATA 3 в два раза быстрее, чем SATA 2.

Картина такая же, как с оперативной памятью.

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

Но в случае приминения биткоина в промышленных масштабах автоматизации транспорта денег на всей планете, то, я думаю, Вы правы, обычным смертным всю базу не потянуть.
hero member
Activity: 490
Merit: 500
Погляди ради интереса, ограничения памяти в различных изданиях Виндовс. Можно учитывать что мало кто покупает венду дальше чем Home Premium.

Я про серванты не говорю. У самого стоит 128 гиг оперативы.

Я говорю про обычные десктопы обычных людей.

Кстати, производительность шпиндельных дисков никак не подчиняется закону Мура. Их как разработали IDE и SCSI, такими они в принципе и остались. позиционирование головки никуда не денешь. Здесь может спасти SSD конечно, но его производительность тоже вероятно застрянет на начальном уровне.

Опять же, я говорю не о свободном месте на диске, а о его способности производить последовательное и случайное массивное чтение и запись - лопатить гигабайты данных. Мы упремся в эту величину. Компы уже серъезно тупят при синхронизации.
sr. member
Activity: 322
Merit: 250
2pent:
Quote
1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.
1.2 Гб в год - рост индекса.
По Муру, рост производительности *2 в 1.5 лет.

32Гб Озу было проблемой достать в 2005,
в 2010 - это уже не проблема, умолчим про 32 процесорные 8u серванты, на которых это скорее всего сейчас крутится..
128Гб Озу в 2015 будет обычным делом для офисного игрового ПК.

Сейчас 2013, 6Гб в Озу, какие проблемы?
2014 - 7.2 Гб
2015 - 8.4 Гб
..
2020 - 14.4 Гб
..
2025 - 20.4 Гб
..
2030 - 26.4 Гб
..
2035 - 32.4 Гб - Оверфлоу для ПК 2010 года  (;

В этом году, если кривая не согнётся, будет доступна ОЗУ порядка терабайтов.
legendary
Activity: 1498
Merit: 1021
Was mich nicht umbringt macht mich stärker [F.N.]
просто бессвязный поток сознания.
... не только на сайте, но и в первоисточнике
sr. member
Activity: 462
Merit: 250
Clown prophet
tvv: тебе ж там дело говорят - меньше слов, больше дела. Не надо дизайнов никаких. Надо просто доходчиво и просто объяснить людям что ты предлагаешь и чем твое предложение лучше существующих. Конкретно лично для меня - на твоем сайте просто бессвязный поток сознания.
tvv
legendary
Activity: 1302
Merit: 1005
Вы вот этот сайт на sites.google.com, где сам черт ногу сломит, прежде чем поймет ЧТО ЭТО - вы вот это называете, пардон, серьезным проектом?

вы про сайт(SEO - веб-мусор и накрутку поисковиков), или про сам проект?

Если про сайт и веб-мусор - то да, я знаю что для серьезного бизнеса и серьезных
проектов бесплатный сайт на google sites лучше, чем сайт за миллион заказанный в каком-нить
агентстве веб-мусорщиков.   Почему?   Долго объяснять почему - причин много...
(боюсь веб-мусорщикам не понять - у моих ресурсов эффективность до 30-40% и выше,
причем это не просто CTR, а уже готовый улов тех кто нужен, например специалистов и директоров...)

И лучше он не только потому что гугль фактически дает хороших фильтрованных клиентов - а еще
и потому, что серьезные люди(вроде меня Wink ) при работе в броузере держат одну руку на ^W,
и очень не любят когда сайт не успевает загрузиться за то время пока я успеваю нажать на кнопку...
(cps на клавиатуре у меня стоит 20 симв/сек - причем я всегда попадаю точно до символа,
печатать быстрее чем говорю еще в школе умел, с тех пор за 20 лет работы с компом наверно еще чему-то научился...)

Ну это так между нами - по секрету как программист программисту Wink
(конечно средний директор кто не работал 20 лет на компютере работает чуть медленнее,
но в целом отношение к дизайну веб-сайтов у народа такое-же.  Про админов помолчу - сами знаете
что у них даже графических оболочек на домашнем компе под юниксом не стоит...)


Так что делайте люди крутой дизайн сайтов(реклама) - этим вы очень сильно облегчаете умным людям
работу по фильтрации мусора в сети.

Vladimir
PS  кстати веб-мусорщики уже допрыгались - будем с ними теперь системно бороться
http://project.megarulez.ru/forums/showthread.php?t=19047
hero member
Activity: 490
Merit: 500
Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

Напомни, чего я там обещал? Я еще не протрезвел после НГ  Grin
Да, в дополнении, я имел в виду, что часть будет один проверять - часть другой, в целом - все всё проверят, конечно, я не имел в виду тупое скачивание, не в этом проблема, понимаю..

Я писал в не помню уже раздел, что хотел научиться отправлять транзакции в "ручном режиме", желательно с использованием стандартного виндового клиента (если он не позволяет - линуксового), можно в ЛС, можно на разумную плату..
http://dianna-project.org/forum/index.php?t=msg&goto=168&#msg_168
hero member
Activity: 490
Merit: 500
Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

в биткойне может и нет(да и зачем - эта пустышка только тем и хороша что очень проста),
но в более серьезных проектах (по кр мере я Wink ) об этом серьезно думаем...

http://sites.google.com/site/crucurrency/home/tmp
http://sites.google.com/site/crucurrency/faq/faq1
http://sites.google.com/site/crucurrency/donate

PS  я же уже говорил - биток строго говоря не является распределенной системой,
а просто очень много копий одного центра.  (критерий - увеличение мощности с ростом числа узлов,
а в битке скорее наоборот растет от этого тока нагрузка на каждый узел)

Вы вот этот сайт на sites.google.com, где сам черт ногу сломит, прежде чем поймет ЧТО ЭТО - вы вот это называете, пардон, серьезным проектом?
tvv
legendary
Activity: 1302
Merit: 1005
Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

в биткойне может и нет(да и зачем - эта пустышка только тем и хороша что очень проста),
но в более серьезных проектах (по кр мере я Wink ) об этом серьезно думаем...

http://sites.google.com/site/crucurrency/home/tmp
http://sites.google.com/site/crucurrency/faq/faq1
http://sites.google.com/site/crucurrency/donate

PS  я же уже говорил - биток строго говоря не является распределенной системой,
а просто очень много копий одного центра.  (критерий - увеличение мощности с ростом числа узлов,
а в битке скорее наоборот растет от этого тока нагрузка на каждый узел)
hero member
Activity: 490
Merit: 500
http://blockchain.info/pushtx

Тут можно в HEX запилить транзакцию на отправку. А вот как получить HEX сериализованной транзакции - сложнее Smiley
hero member
Activity: 616
Merit: 502
Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

Напомни, чего я там обещал? Я еще не протрезвел после НГ  Grin
Да, в дополнении, я имел в виду, что часть будет один проверять - часть другой, в целом - все всё проверят, конечно, я не имел в виду тупое скачивание, не в этом проблема, понимаю..

Я писал в не помню уже раздел, что хотел научиться отправлять транзакции в "ручном режиме", желательно с использованием стандартного виндового клиента (если он не позволяет - линуксового), можно в ЛС, можно на разумную плату..
hero member
Activity: 490
Merit: 500
Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

Напомни, чего я там обещал? Я еще не протрезвел после НГ  Grin
hero member
Activity: 616
Merit: 502
Простите за мой ламеризм, но нельзя ли так сделать, ну, мне для того что бы скачать фильм из торрента, вовсе не нужно что бы он полностью был у каждого сида. Часть с одного, часть с другого, по частям скачался весь.. Невыполнимо?

П\с. Будет обещанная статья о "сырой" транзакции, как делать?

Спасибо.
hero member
Activity: 490
Merit: 500
Из официального документа Сатоши:

Quote
Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [7][2][5], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored.

A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.

Как известно, в блоке львиную долю места занимает тело блока.

То есть, типа не обязательно хранить тела блоков все время. Для того, чтобы стереть тело блока с диска, достаточно, чтобы выстроилась некая большая цепь над ним.

Но хидеры хранить обязательно. Однако здесь есть проблема.

Во-первых, кто то обязательно должен хранить всю цепь - хоть убей. Для разрешения угрозы форков цепи, дабы возможно было проследить историю каждой монетки вплоть до ее генерации. То есть, часть сети, обязательно должна хранить вот эту почти экспоненциально растущую базу: http://blockchain.info/ru/charts/blocks-size

Во-вторых, полная цепь с телами блоков - это железная защита каждого клиента. Пока она есть у него локально, он может отличить правду от лжи, получаемую из сети. Текущая сеть состоит преимущественно из ванильных клиентов, хранящих полную цепь локально. И если в сети кто то балуется и начинает слать левые транзакции, этот индивидум жестко банится сетью ванильных клиентов.

Если на клиенте не будет полной цепи - он будет гораздо более уязвим к Sybill и DoS атакам злых анонимусов. Ну представьте себе клиента только с хидерами. Он получает новую транзакцию из сети. Как ему проверить предыдущие Ouput'ы этой транзакции, если их просто нет? А если он не может проверить, он не может знать, верна ли транзакция или нет. Но по протоколу он обязан сохранить ее. Получается, его можно просто завалить левыми транзами. А если он еще их и брокастнет, то ванильные клиенты его жестко побанят.

Другими словами, клиент только с хидерами блоков - вещь весьма стремная.

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

А что насчет фулл клиентов с полноценной базой? А Сатоши в оф документе ничего не говорил о проблемах полной базы.

А ведь они уже есть и выходят за рамки использования ванильного клиента на среднестатистическом пользовательском ПК.

Я кое что знаю о высоких нагрузках. В частности, о высоких нагрузках на базу данных. И эта история не про нехватку места, а про нехватку пропускной способности шины винта.

Пока индекс помещается в размер ОЗУ - проблем особо нет. Или беркли-бекенд его кеширует, или буфера OS. В любом случае, поиск по такому индексу не является проблемой.

Но как только индекс начинает превышать объем ОЗУ, особенно, в 2-5 раз, то все методы кеширования данных оказываются бесполезны. И тогда при поиске ключа, комп начинает лопатить очень много гигабайт данных на винте. А ведь клиенту при получении транзакции надо найти все предыдущие аутпуты, а при получении нового блока - повторить тоже самое для всех транзакций блока. Я уж молчу про процесс синхронизации.

Мое мнение - в недалеком будущем, ванильный клиент Bitcoin выйдет за рамки возможностей стационарного домашнего/офисного ПК. Главный боттлнек - пропускная способность шины SATA и скорость позиционирования головки. Твердотельные накопители конечно могут немного облегчить эту проблему, но не намного и не надолго. Если учитывать что Биткоин - это быстро растущая сеть, объем информации обещает экспоненциальный рост.
Jump to: