В настоящее время, если я bitcoind работает на 20 машин, или 20 bitcoind, работающие на той же машине (VPS, например), каждый из них нужно загружать и хранить 2 ГБ blockchain, общая 40 Гб дискового пространства используется и много трафика впустую, чтобы загрузить его 20 раз.
Код:
Ls -alh .bitcoin / BLK *
-RW ------- 1 neofutur neofutur 1.1G 2012-03-21 00:36 .bitcoin / blk0001.dat
-RW ------- 1 neofutur neofutur 401М 2012-03-21 00:36 .bitcoin / blkindex.dat
-RW ------- 1 neofutur neofutur 1.1G 2012-03-21 00:36 .bitcoin / blk0001.dat
-RW ------- 1 neofutur neofutur 401М 2012-03-21 00:36 .bitcoin / blkindex.dat
Проблема та же для поставщика VPS, как bitvps, хостинг Bitcoin пользователей, 2 Гб blockchain X 20 делает много VPS дискового пространства и пропускной способности впустую без всякой причины.
Кроме того, первоначальный blockchain загрузка занимает часы, часто более чем на один полный день. , ,
Кроме того, его почти невозможно использовать bitcoind на небольшом устройстве, как EeePC (4 Гб дискового пространства), телефоном, raspberrypi. , ,
Я думаю, что самый простой способ сделать это лучше было бы иметь "только для чтения" blockchain, один из bitcoind записывает его, а другие только использовать его только для чтения, чтобы проверить сделки.
На самом деле bitcoind не в состоянии использовать только для чтения blockchain, которые могут быть записаны и обновляется 1 bitcoind, и используется всеми другими bitcoinds на том же сервере (в случае VPS) или установлен только для чтения как SSHFS или другой защищенной сети файловая система.
Я думал, что это может быть простым и легко взломать bitcoind, чтобы это (я пробовал некрасиво отладку https://github.com/neofutur/bitcoin только найти его на самом деле не так просто)
Итак, я начинаю баунти для тех, кто может производить рабочий патч или вилку bitcoind, позволяя это "обмен blockchain" особенность, что позволяет поставщику услуг, чтобы быть его собственный поставщик blockchain и сэкономить много дискового пространства и пропускной способности.
Так же "только для чтения blockchain" это просто идея, один из способов его реализации, что, кажется, простой способ имхо, но вы можете также обеспечить лучший способ сделать это. , ,
другой (лучше) способ решения проблемы, от gmaxwell:
Как я уже указывал раньше на IRC, это не способ добиться того, чего вы хотите. "одна запись много читать" blockchain не может быть достигнут с помощью простого patch- было бы принять либо значительные и опасные переписывают BDB или опасные переписывают Bitcoin использовать что-то обычай вместо BDB. Даже если кому-то удалось вытащить меня сомнителен мы принять его вверх по течению.
Вместо этого, как представляется, в целом согласились, что мы хотим разделить blockchain и wallet-, чтобы вы могли иметь один доверенный blockchain и N бумажники (GUI или CLI / RPC) говорить с ним по сети.
Вместо этого, как представляется, в целом согласились, что мы хотим разделить blockchain и wallet-, чтобы вы могли иметь один доверенный blockchain и N бумажники (GUI или CLI / RPC) говорить с ним по сети.
Пластырь или вилка будет обеспечивать возможность как "--readonly" в bitcoind начала.
патч должен быть запрос мерзавец тянуть на GitHub и быть достаточно чистым, чтобы иметь шанс быть принятым вверх по течению.
внедренное решение должно строить и работать на Linux.
Я начинаю Баунти с 5 BTC, и я знаю, что другие будут добавлять BTCS скоро
Не стесняйтесь спрашивать подробности здесь или на # Bitcoin-хостинг канала: http://gw.gd/irc
Читайте также:
http://bitcoin.stackexchange.com/questions/3199/read-only-blockchain-in-bitcoind-patch-ideas
http://bitcoin.stackexchange.com/questions/2584/is-reclaiming-disk-space-already-implemented-how-effective-will-it-be
Некоторые подсказки?
Bluematt иметь хорошее начало:
Код:
< BlueMatt> neofutur: сделано: принять https://github.com/TheBlueMatt/bitcoin/tree/cblockstore и изменить https://github.com/TheBlueMatt/bitcoin/blob/cblockstore/src/blockstore.h#L127 вернуться ложным
полезные ссылки из weex:
Оказывается, разработчики обсуждали это, хотя щедрость, как это, вероятно, единственный способ, чтобы получить код, написанный. Смотрите пост Майка Хирн здесь:
Еще одна причина для этого проекта произойдет (связь примерно в соответствующих случаях обсуждения есть):
Еще одна причина для этого проекта произойдет (связь примерно в соответствующих случаях обсуждения есть):
Rebroad имеют хорошее представление о том, чтобы сделать его более безопасным для клиента:
Код:
(20:32) < rebroad> neofutur, вещь ... каждый отдельный bitcoind будет хотеть, чтобы восстановить старую базу данных, если централизованный изменяются таким образом, что они не любят ...
(20:33) < rebroad> neofutur, поэтому в идеале она будет храниться в двух местах, находящихся в собственности 2 отдельных партий, где пользователи этого может быть уверены, что они могут восстановить старые версии
(20:33) < rebroad> (По крайней мере 2)
(20:33) < rebroad> neofutur, поэтому в идеале она будет храниться в двух местах, находящихся в собственности 2 отдельных партий, где пользователи этого может быть уверены, что они могут восстановить старые версии
(20:33) < rebroad> (По крайней мере 2)
Возможная проблема:
Код:
(21:21) < Люк-младший> neofutur: rebroad: проблема вы столкнетесь в том, что BLK файлы не идентичны по Bitcoin экземпляров клиента
(21:21) < rebroad> Лука-младший, они могли быть хоть в какой-то теоретический узел, который не был написан еще?
(21:22) < rebroad> Лука-младший, с одним файлом на блок
(21:22) < Люк-младший> triptyl: вы дали какой-либо мысли делать это, не нарушая старых клиентов?
(21:22) < Люк-младший> rebroad: возможно
(21:22) < gmaxwell> triptyl: лучше было бы назвать "ослепил" а не анонимным.
(21:23) < rebroad> Лука-младший, я думаю, что это стоило бы адаптировать Bitcoin {d, -qt}, чтобы блоки должны храниться таким образом, чтобы они были более VPS дружественных
(21:21) < rebroad> Лука-младший, они могли быть хоть в какой-то теоретический узел, который не был написан еще?
(21:22) < rebroad> Лука-младший, с одним файлом на блок
(21:22) < Люк-младший> triptyl: вы дали какой-либо мысли делать это, не нарушая старых клиентов?
(21:22) < Люк-младший> rebroad: возможно
(21:22) < gmaxwell> triptyl: лучше было бы назвать "ослепил" а не анонимным.
(21:23) < rebroad> Лука-младший, я думаю, что это стоило бы адаптировать Bitcoin {d, -qt}, чтобы блоки должны храниться таким образом, чтобы они были более VPS дружественных
weex предлагает, другой способ ее реализации:
Код:
Как человек, который любил использовать BitcoinSpinner немного, почему бы не латать bitcoind поэтому поддерживает прямые вызовы через BCCAPI (http://code.google.com/p/bccapi/) или протокол он использует?
PS: У меня нет никаких проблем с переопределение Баунти цели, моя идея только для чтения blockchain, возможно, это плохая идея, и мы могли бы нуждаться в какой-то сетевой протокол и blockchain сервер, позволяет сказать, что все комментарии приветствуются, и цель щедрости может измениться, blockchain сервер, вероятно, лучше, но я думал, что это будет хороший простой / легкий первый шаг, чтобы начать с только для чтения blockchain
Текущий Баунти: 15 BTC
+5 из Raccon BTC при некоторых условиях (см его комментарий ниже: ):
+10 от rapeghost
+5 для weex