|
![]() |
# 1 |
Сообщения: 840
цитировать ответ |
![]()
Взлом Биткоин адресов.
500 Биткоинов взломаны в "мозговом кошельке" с паролем "bitcoin is awesome" Адрес кошелька: 14NWDXkQwcGN1Pd9fboL8npVynD5SfyJAE Приватный ключ: 5J64pq77XjeacCezwmAr2V1s7snvvJkuAz8sENxw7xCkikceV6e подробнее... Всем кто хочет заработать Биткоины без вложений - рекомендую сайт http://bitcoin-zarabotat.ru Berkeley Database 4.8 не доступен даже больше от "текущий" источники (менеджеры пакетов и т.д.). Это устарело и заменено. Debian даже отходя от BDB все вместе и в скором времени перестанет иметь * любой * BDB пакет. Тем не менее, Bitcoind полагается на него для формата для портативного кошелька. Это бумажник только "портативный" тех пор, пока bdb4.8 доступен; это уже невозможно построить клиент, который принимает стандартный кошелек без охоты через архивы для пыльного старого кода. Мы можем перейти на новую версию (5.3) - я могу построить что легко. Но я, вероятно, не будет иметь возможность построить его через два года. Или мы можем иметь источник Bitcoin взять на себя ответственность своего собственного формата бумажника и пригвоздить его вниз, чтобы устранить зависимость. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 2 |
Сообщения: 2366
цитировать ответ |
![]()
Получил 1806 Биткоинов
Реальная история. Изменение нашей собственной Append только формат был предварительный план в течение длительного времени. BDB не приемлем идти вперед по многим причинам, и мы уже устранили его для нужд, не кошелек. Нарушение совместимости бумажника неудобно, хотя так что не нужно спешить в нее.
Ваши опасения по поводу "неготовность" Однако это мне не интересно. Программное обеспечение Викимедиа, и мы можем просто упаковать и связать его сам, и, вероятно, придется как часть бумажника импортирующего инструмента в обозримом будущем. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 3 |
Сообщения: 840
цитировать ответ |
![]() эх. Это требование сборки, что становится трудно удовлетворить. Я думал, что я укажу его.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 4 |
Сообщения: 812
цитировать ответ |
![]() Версия 4.8 не является обязательным требованием, просто рекомендация. Вы можете использовать более новые версии BDB пропускания --with-несовместимого-BDB для настройки.
Основная причина, это не рекомендуется, потому что это нарушает совместимость с предварительно построенным исполняемыми файлами. Если вы строите из источника, который вы можете не заботиться. Но даже если вы делаете, это тривиально, чтобы преобразовать ваш кошелек обратно в 4,8 кошельке, если вы застряли с 5.1 или 5.3 один. Используйте BDB инструменты (пакеты db4.8-Util db5.1-Util на Ubuntu): Код: db5.1_dump wallet.dat.db5 | db4.8_load wallet.dat.db4 |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 5 |
Сообщения: 840
цитировать ответ |
![]() О, хорошо. Я не видел БД утилиты.
Я думал, что я строю из источника, не будет в состоянии использовать свой существующий кошелек, и загрузка скомпилированных программ, а не по этой причине. Спасибо за указание, что один из. Но, тривиальные преобразования или нет, это все еще только то, что доступно в этом месяце. Или в этом году. А в следующей версии и следующий, и следующий. Это просто плохая практика, чтобы полагаться на внешние утилиты, чей формат сохранения изменений непредсказуемо, когда мы говорим о заботе о том, что деньги людей остается доступным для них. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 6 |
Сообщения: 812
цитировать ответ |
![]() А в следующей версии и следующий, и следующий. Это просто плохая практика, чтобы полагаться на внешние утилиты, чей формат сохранения изменений непредсказуемо, когда мы говорим о заботе о том, что деньги людей остается доступным для них. Вы проповедуете хор там.я бы сказал "поцарапать зуд" вот как открытыми работы источника. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 7 |
Сообщения: 666
цитировать ответ |
![]() если есть какой-либо удаленный план, чтобы перейти на новый формат, это хорошая идея, чтобы включить эти изменения рано, и уже мигрирует.
так что если вы когда-нибудь уронить BDB полностью из стандартного дистрибутива, вы можете сказать, бумажники v0.XX или более поздней версии не требуется миграция. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 8 |
Сообщения: 1204
цитировать ответ |
![]() Не строить свою собственную базу данных. Вы получите это неправильно. Это действительно, очень трудно построить надежную систему базы данных.
SQLite является хорошим вариантом для бумажника. Это бесплатно, это один-файловая система, она не требует установок, если встроенной в программу, она имеет хорошую репутацию, он очень широко используется, он может оправиться от аварии, и производительность чтения хорошо. Это не является хорошим выбор для системы с большим количеством одновременных обновлений, поэтому он не используется в больших объемах серверных систем, но и для однопользовательского бумажника, она должна быть тонкой. Кроме того, если код бумажника использует SQL, большие сайты могут пересмотреть бумажник использовать другие базы данных SQL, которые могут понадобиться в больших объемах сайт. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 9 |
Сообщения: 840
цитировать ответ |
![]() Не строить свою собственную базу данных. Вы получите это неправильно. Это действительно, очень трудно построить надежную систему базы данных. Я согласен с вами, это действительно трудно. Я знаю, что это. Но, я думаю, что база данных является излишеством здесь. Множество вещей, бумажник должен следить на самом деле довольно просто. И конкатенирующего только шаблон хороший надежный способ его достижения, и гораздо проще (менее подвержены ошибкам), чем полная база данных. С базой данных, вы усложнять дело очень по индексации и ввода данных в середине других данных. Единственное, что выходит за рамки голых возможностей файловой системы здесь многопоточный доступ. Вы действительно не хотите, чтобы зафиксировать на что-то, как медленно, как доступ к файлам, но вы совершенно не можете позволить несколько потоков одновременно иметь доступ на запись. Но вам не нужен полный на базу данных, чтобы решить эту проблему. Что вам нужно, это «слушатель», который запускает потоки, которые могут говорить на тему приложений, пытающихся сделать сделку, и передает их обратно к слушателю. Слушатель отслеживать нескольких запросов от нескольких детей, но она будет иметь исключительный (последовательный) доступ для записи, флеш-буфера, считана, чтобы убедиться, что это правильно произошло, и сообщить, какой бы ни дочерний процесс, который передал ему, что сделку, сделало ли это или нет. Слушатель (и его дочерние потоки) никогда не должен видеть открытый текст в privkey, поэтому требования к безопасности являются управляемыми. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 10 |
Сообщения: 1204
цитировать ответ |
![]() Не строить свою собственную базу данных. Вы получите это неправильно. Это действительно, очень трудно построить надежную систему базы данных. Я согласен с вами, это действительно трудно. Я знаю, что это. Но, я думаю, что база данных является излишеством здесь. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 11 |
Сообщения: 812
цитировать ответ |
![]() Многие люди считают, что при проектировании хранилища данных. Но они считают, что нужно сбросить / восстановления способности или возможности аудита, или они хотят, чтобы генерировать отчеты из данных. С реальной базе данных, даже SQLite, вы можете делать все, что от пользовательского интерфейса или API. Если у вас есть свой собственный формат файлов, кто-то должен изменить низкий уровень кода, с риском сломать его. Кроме того, все серьезные базы данных обрабатывать такие вещи, как восстановление базы данных после сбоя. Если вы просто добавление в файл, вы можете получить обратно усеченный файл или последнюю страницу хлама после перезагрузки. Реальные базы данных могут оправиться от таких ситуаций. Но делает "Реальные базы данных" включают SQLite здесь? Есть ли SQLite дает никаких гарантий в случае внезапных перезагрузок? По крайней мере, с дописывания только файлом (и регулярной синхронизацией), вы можете быть уверены, что только запись о последней активности до перезагрузки будет потеряна, а не какая-то структура управления в середине сломала и сделала это невозможно разобрать цельное файл.В любом случае: из-за стабильности формата файла мы не хотим, внешнюю зависимость для базы данных больше. Опираясь на внешней базе данных уже вызвал один затянувшееся крушение поезда, как вы можете видеть в этом самом потоке. Конечно, вложение SQLite было бы возможно, в отличие от LevelDB это только один (очень большой) файл C, но это было бы стоит, только если эта база данных будет хороший матч для кошелька, а не приблизит нас из одной канавы в другой. Лично я бы предпочел простой формат бумажника, который полностью под нашим контролем. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 12 |
Сообщений: 82
цитировать ответ |
![]() Но делает "Реальные базы данных" включают SQLite здесь? Есть ли SQLite дает никаких гарантий в случае внезапных перезагрузок? По крайней мере, с дописывания только файлом (и регулярной синхронизацией), вы можете быть уверены, что только запись о последней активности до перезагрузки будет потеряна, а не какая-то структура управления в середине сломала и сделала это невозможно разобрать цельное файл. Транзакционный. Атомный совершает. ACID. Да, SQLite хорошо работает со сбоями питания. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 13 |
Сообщения: 840
цитировать ответ |
![]() В любом случае: из-за стабильности формата файла мы не хотим, внешнюю зависимость для базы данных больше. Опираясь на внешней базе данных уже вызвал один затянувшееся крушение поезда, как вы можете видеть в этом самом потоке. Конечно, вложение SQLite было бы возможно, в отличие от LevelDB это только один (очень большой) файл C, но это было бы стоит, только если эта база данных будет хороший матч для кошелька, а не приблизит нас из одной канавы в другой. Лично я бы предпочел простой формат бумажника, который полностью под нашим контролем. +1, все три очка. Сложность и безопасность очень трудно смешивать, а что-то столь же сложным, как связь с внешней базой данных является хорошо надвигающихся бедствий. Встраивание конкретной версия SQLite была бы приемлемой - было бы получить весь необходимый код в проект и под строгим контролем, по крайней мере, - но я согласен, что проще сохранить формат, тем легче для аудита и исправление ошибок в коде который читает / записывает его. И Append только шаблон очень прост и делает достижение целостности транзакций. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 14 |
Сообщения: 812
цитировать ответ |
![]() Транзакционный. Атомный совершает. ACID. Обратите внимание, что BerkelyDB имеет то же модное слово лото, но терпит неудачу в уродливых отношениях иногда, когда процесс внезапно прекращаются.Это может иметь больше смысла ссылку на SQLITE страницы: https://www.sqlite.org/howtocorrupt.html . котировка "SQLite база данных обладает высокой устойчивостью к коррупции. Если сбой приложения, или сбой операционной системы, или даже сбой питания возникает в середине транзакции, частично написана сделка должна быть автоматически откат в следующий раз, файл базы данных, доступ." Они утверждают, что довольно устойчивы к этому. Ото я сомневаюсь, что есть какое-либо волшебство происходит. Это в значительной степени то же самое с дописывания только файл, который синхронизируется регулярно и игнорирует неполные записи в конце.Если вы беспокоитесь о потере данных это более насущное, чтобы перейти к детерминированным кошелькам. По крайней мере, нет временных рамок, в которых клавиши могут «исчезнуть», они всегда могут быть сгенерированы снова. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 15 |
Сообщения: 840
цитировать ответ |
![]() Даже если мы считаем, что нам нужны полноценные на базу данных для живых кошельков, мы должны как минимум сохранить сериализованный файла (таблицы CSV с зашифрованными отдельными значениями, например), которые могут быть написаны любой версией Bitcoin и прочитаны любым другими , Пользуясь тем, что в качестве файла бумажника, мы могли бы обновить или изменить базу данных фонового без нарушения совместимости бумажника.
|
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 16 |
Сообщения: 476
цитировать ответ |
![]() почему бы не определить конкретную базу данных для Bitcoin, чтобы уменьшить blockchain?
Я считаю, что BerkeleyDB сэкономить много метаданных для его собственной работы / функции, которые, возможно, нам не нужны их вообще. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 17 |
Сообщения: 2366
цитировать ответ |
![]() почему бы не определить конкретную базу данных для Bitcoin, чтобы уменьшить blockchain? BDB _только_ используется для бумажника. Сама blockchain хранится в качестве исходных блоков.Я считаю, что BerkeleyDB сэкономить много метаданных для его собственной работы / функции, которые, возможно, нам не нужны их вообще. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 18 |
Сообщения: 3
цитировать ответ |
![]() Лично я предпочел бы видеть движение к чему-то стандарту, а также. Поддержание некоторого собственный формата глупо, если библиотеки не использовать этот формат будет освобожден, а также.
BDB не будет работать на неопределенный срок, очевидно. Острые края уже роются при попытке разделить кошелек между процессами, или когда количество сделок в кошельке становится большим. Конкатенирующий только файл является хорошей идеей, но не позволяет хорошо бы иметь такие вещи, как удаление / архивирование старых транзакций. В нынешнем формате это уже желательно, так как кошелек получает очень медленно с десятками или сотнями тысяч транзакций в нем. Доступны три кошелька крючки неоптимальные для поддержания синхронизации с внешней базой данных, благодаря использованию TXID лет в уведомлении и поведении во время цепной вилки и повторной синхронизации. Наблюдение за Транзакции, которые достигают определенного уровня подтверждения требует опроса (растущий, замедляя) бумажник, как только вы получили начальный уровень подтверждения 1 уведомление, и вы должны проверить, что все ранее записанные транзакции по-прежнему в силе. ИМХО как «новичок» до Bitcoin вещи, но разработчик с опытом несколько десятилетий в разработке программного обеспечения, то «что нужно сделать», чтобы абстрагировать функциональность хранения бумажника в рамках клиента, и позволяет пользователю решить во время сборки, что бэкенд использовать. Если бумажник необходимо только Append (), получить (счет), и так далее, это не мешает использовать более продвинутый бэкенд, чтобы удовлетворить эти вызовы через уровень абстракции. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 19 |
Сообщения: 812
цитировать ответ |
![]() Даже если мы считаем, что нам нужны полноценные на базу данных для живых кошельков, мы должны как минимум сохранить сериализованный файла (таблицы CSV с зашифрованными отдельными значениями, например), которые могут быть написаны любой версией Bitcoin и прочитаны любым другими , Пользуясь тем, что в качестве файла бумажника, мы могли бы обновить или изменить базу данных фонового без нарушения совместимости бумажника. Это уже существует. См dumpwallet / importwallet в 0.9.0 RPC,. |
![]() ![]() |
![]() ![]() ![]() |
![]() |
# 20 |
Сообщения: 812
цитировать ответ |
![]() FYI Я создал проблему для этого. Пожалуйста, помогите ее реализации
https://github.com/bitcoin/bitcoin/issues/3971 |
![]() ![]() |
![]() ![]() ![]() |