Bitcoin Forum
November 04, 2024, 11:45:44 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Будущее базы данных цепи Bitcoin  (Read 4712 times)
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 05, 2013, 06:57:43 PM
 #1

Из официального документа Сатоши:

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 и скорость позиционирования головки. Твердотельные накопители конечно могут немного облегчить эту проблему, но не намного и не надолго. Если учитывать что Биткоин - это быстро растущая сеть, объем информации обещает экспоненциальный рост.
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
January 05, 2013, 07:40:13 PM
 #2

Простите за мой ламеризм, но нельзя ли так сделать, ну, мне для того что бы скачать фильм из торрента, вовсе не нужно что бы он полностью был у каждого сида. Часть с одного, часть с другого, по частям скачался весь.. Невыполнимо?

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

Спасибо.

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 05, 2013, 07:42:42 PM
 #3

Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

Напомни, чего я там обещал? Я еще не протрезвел после НГ  Grin
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
January 05, 2013, 07:47:14 PM
 #4

Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

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

Я писал в не помню уже раздел, что хотел научиться отправлять транзакции в "ручном режиме", желательно с использованием стандартного виндового клиента (если он не позволяет - линуксового), можно в ЛС, можно на разумную плату..

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 05, 2013, 07:50:40 PM
 #5

http://blockchain.info/pushtx

Тут можно в HEX запилить транзакцию на отправку. А вот как получить HEX сериализованной транзакции - сложнее Smiley
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 05, 2013, 08:26:28 PM
 #6

Теоретически можно сделать распределенную базу цепи по принципу схожему с 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  я же уже говорил - биток строго говоря не является распределенной системой,
а просто очень много копий одного центра.  (критерий - увеличение мощности с ростом числа узлов,
а в битке скорее наоборот растет от этого тока нагрузка на каждый узел)
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 06, 2013, 01:40:57 AM
 #7

Теоретически можно сделать распределенную базу цепи по принципу схожему с 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, где сам черт ногу сломит, прежде чем поймет ЧТО ЭТО - вы вот это называете, пардон, серьезным проектом?
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 06, 2013, 02:03:04 AM
 #8

Теоретически можно сделать распределенную базу цепи по принципу схожему с DHT с некоторыми допилами в сторону защиты от Sybill. Но никто пока не чешет задницу в этом направлении.

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

Я писал в не помню уже раздел, что хотел научиться отправлять транзакции в "ручном режиме", желательно с использованием стандартного виндового клиента (если он не позволяет - линуксового), можно в ЛС, можно на разумную плату..
http://dianna-project.org/forum/index.php?t=msg&goto=168&#msg_168
tvv
Legendary
*
Offline Offline

Activity: 1302
Merit: 1005


View Profile WWW
January 06, 2013, 07:10:46 AM
 #9

Вы вот этот сайт на 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
naima53
Hero Member
*****
Offline Offline

Activity: 616
Merit: 502



View Profile
January 06, 2013, 07:37:34 AM
 #10

Спасибо, интресно..  Undecided

Donate me) 16f6iWHHkVEnDReeBQPT9GwCNwUfPTXrp2
lucif
Sr. Member
****
Offline Offline

Activity: 462
Merit: 250


Clown prophet


View Profile
January 06, 2013, 10:27:36 AM
 #11

tvv: тебе ж там дело говорят - меньше слов, больше дела. Не надо дизайнов никаких. Надо просто доходчиво и просто объяснить людям что ты предлагаешь и чем твое предложение лучше существующих. Конкретно лично для меня - на твоем сайте просто бессвязный поток сознания.
awoland
Legendary
*
Offline Offline

Activity: 1498
Merit: 1021

Was mich nicht umbringt macht mich stärker [F.N.]


View Profile WWW
January 06, 2013, 03:06:16 PM
 #12

просто бессвязный поток сознания.
... не только на сайте, но и в первоисточнике

Was mich nicht umbringt macht mich stärker [F.N.]
anonymous_acc
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile
January 06, 2013, 03:45:09 PM
Last edit: January 06, 2013, 03:55:36 PM by anonymous_acc
 #13

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 года  (;

В этом году, если кривая не согнётся, будет доступна ОЗУ порядка терабайтов.

BTC: 1HRcwjxG2H5vSnNo5ZbGqMxRPFWJk6dwW9
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 06, 2013, 04:02:31 PM
 #14

Погляди ради интереса, ограничения памяти в различных изданиях Виндовс. Можно учитывать что мало кто покупает венду дальше чем Home Premium.

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

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

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

Опять же, я говорю не о свободном месте на диске, а о его способности производить последовательное и случайное массивное чтение и запись - лопатить гигабайты данных. Мы упремся в эту величину. Компы уже серъезно тупят при синхронизации.
anonymous_acc
Sr. Member
****
Offline Offline

Activity: 322
Merit: 250



View Profile
January 06, 2013, 06:35:12 PM
 #15

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

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

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

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

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

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

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

BTC: 1HRcwjxG2H5vSnNo5ZbGqMxRPFWJk6dwW9
pent (OP)
Hero Member
*****
Offline Offline

Activity: 490
Merit: 500



View Profile
January 06, 2013, 10:15:59 PM
 #16

Имел честь администрировать базу данных проекта из алекса топ-500. Имел честь организовывать цдн на отдачу 10 гигабит статики. Поверьте, мне знакомы возможности винчестеров. Когда индекс вырастает до 2-3 объемов оперативы, все алгоритмы кеширования сходят на гавно. Работает только шпиндель винтов, а у него возможности весьма ограничены.

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

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

А вот с винтами и памятью беда.
anatolikostis
Legendary
*
Offline Offline

Activity: 2026
Merit: 1005



View Profile
January 06, 2013, 10:16:35 PM
 #17

tvv: тебе ж там дело говорят - меньше слов, больше дела. Не надо дизайнов никаких. Надо просто доходчиво и просто объяснить людям что ты предлагаешь и чем твое предложение лучше существующих. Конкретно лично для меня - на твоем сайте просто бессвязный поток сознания.
У него на типо-серьезном-сайте еще почему-то оборудование стареет по закону Мура.  Cheesy
O01eg
Full Member
***
Offline Offline

Activity: 209
Merit: 100



View Profile WWW
January 07, 2013, 08:09:30 AM
 #18

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

Использовать другие алгоритмы, заточенные под внешние хранилища?

BC: 1LhZ2ooo1egD7wKT5pBmEhN6wpUExYek2H
"Социализм -- это экономическая политика толпы, масс, лишенных понимания природы экономической деятельности. Социалистическая теория есть результат их подхода к экономическим вопросам. Она создана и поддерживается теми, для кого экономическая жизнь враждебна, кто не понимает ее." Людвиг фон Мизес
"The rotter who simpers that he sees no difference between the power of the dollar and the power of the whip, ought to learn the difference on his own hide – as, I think, he will." Francisco d’Anconia
Grumlin
Legendary
*
Offline Offline

Activity: 2893
Merit: 1158



View Profile WWW
January 09, 2013, 06:03:19 PM
 #19

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


           ▄
         ▄███
         ▀████▄
       ▄  ▀████▄
      ███▄ ▀████▄
    ▄████   ▀████▄
   ▄████      ████▄
  ▄████        ████▄
 █████          █████
▀████▄          ▄████▀
  ▀████▄▄▄▄   ▄████▀
    ▀████▀  ▄████▀
LISK
       ▄▄▄▄▄▄▄
   ▄▄▀▀       ▀▀▄▄
  █               █ ▄
 █   █▀▄ ▀█▀ ▀█▀   █ ▀▄
 █   █▀▄  █   █    █  ▀▄
  █  ▀▀   ▀   ▀   █    █
▄▀ ▄▄           ▄▀    ▄▀
 ▀▀  ▀▀▄▄▄▄▄▄▄▀▀      ▀▄
        ▀▄▄      ▄▄▀▀▄▄▀
           ▀▀▀▀▀▀

                      ▄▄▄
  ▄█▄              ▄███████▄
  ▀████▄▄         ██████▀██████▀
    ▀▀▀████▄▄     ███████████▀
    ▀██▄███████▄▄███████████
     ▄▄▄▀██████████████████
      ▀████████████████████
▀█▄▄     ▀████████████████
  ▀████████████████▀█████
    ▀████████████▀▄▄███▀
       ▀▀██████████▀▀
           ▀▀▀▀▀

    ▄█▄            ▄█▄
   █████          █████
  ███████ ▄▄▄▄▄▄ ███████
 ▄██████████████████████▄
 ████████████████████████
██████████████████████████
██████▀▀          ▀▀██████
█████▀   ▄      ▄   ▀█████
 ████   ███    ███   ████
  ████   ▀      ▀   ████
   ▀████▄▄▄▄▄▄▄▄▄▄████▀
     ▀▀████████████▀▀

               ▄▄   ▄▄
              ▄▀ ▀▀█  █
             ▄▀     ▀▀
         ▄▄▄▄█▄
     ▄█▀▀▀▀▀▀▀▀▀▀█▄
 ▄▀▄▀              ▀▄▀▄
█  █   ▄█▄    ▄█▄   █  █
 ▀█    ▀█▀    ▀█▀    █▀
  █                  █
   █   ▀▄      ▄▀   █
    ▀▄   ▀▀▀▀▀▀   ▄▀
      ▀▀▄▄▄▄▄▄▄▄▀▀






   ▄▄████████████████▄▄
 ▄█████▀▀▀██████▀▀▀█████▄
▄████▀  ▀▀▀    ▀▀▀  ▀████▄
████▀                ▀████
███▀                  ▀███
███       ▄    ▄       ███
██▀      ███  ███      ▀██
██       ▀█▀  ▀█▀       ██
██▄     ▄        ▄     ▄██
▀██▄     ▀▀▄▄▄▄▀▀     ███▀
 ▀███▄▄▄▄▄▄████▄▄▄▄▄▄███▀
   ▀▀████████████████▀▀

   ▄▄███████████████▄▄
 ▄█████████████████████▄
▄██████████████▀▀███████▄
████████████▀▀    ███████
█████████▀▀   ▄   ███████
██████▀▀     █    ███████
████▀       █     ███████
█████▄▄   ▄█      ███████
████████ ██▄      ███████
▀████████ ▀▄███▄▄███████▀
 ▀█████████████████████▀
   ▀▀███████████████▀▀

   ▄▄████████████████████▄▄
 ▄██████████████████████████▄
▄████████████████████████████▄
██████████ ▀▀█████████████████
██████████     ▀▀█████████████
██████████         ▀▀█████████
██████████         ▄▄█████████
██████████     ▄▄█████████████
██████████ ▄▄█████████████████
▀████████████████████████████▀
 ▀██████████████████████████▀
   ▀▀████████████████████▀▀


  ▄▄███████████████▄▄
 █████████████████████
███████████████████████
███████████▀    ███████
██████████  ▄██████████
██████████  ███████████
████████      ▄████████
██████████  ███████████
██████████  ███████████
██████████  ███████████
 █████████████████████
  ▀▀███████████████▀▀
dawnkellr
Newbie
*
Offline Offline

Activity: 30
Merit: 0


View Profile
January 09, 2013, 07:24:23 PM
 #20

ssd на 4 гига?

Сколько вы там говорите пропускная способностью САТА3? Забудьте о ней. На рэндом позиционировании один сата винт без кеширования отдает 3 мегабайта в секунду. SCSI в 3-5 раз больше. И это не зависит от САТА2 или САТА3 или САС шины. А у большинства клиентов стоит именно один сата винт.
а SSD случайно не тестировали на Сата3???))))) я думаю они ваши сас диски в пух и прах потрут
Pages: [1] 2 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!