Сколько адресов можно надежно обрабатывать в одном кошельке?

Я работаю над проектом, который может в конечном итоге генерировать несколько сотен (или даже больше) биткойн-адресов в день. Насколько я понимаю, теоретически нет ограничений на количество биткойн-адресов в кошельке, но я боюсь столкнуться с проблемами масштабируемости с биткойнами в долгосрочной перспективе.

Значительно ли увеличится использование ОЗУ или ЦП? Есть ли известное ограничение на количество адресов?

Примечание. Вероятно, 60-80% этих адресов никогда не получат никаких транзакций. Не знаю, имеет ли это значение.

Ответы (2)

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

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

Будущий выпуск клиента Bitcoin.org решит эту проблему, переключившись с BDB на LevelDB. Кроме того, в будущем выпуске планируется «сверхсокращение», которое также уменьшит требования к хранилищу.

Между тем, InstaWallet — это одна из служб, которая смогла найти решение, смягчившее проблему. Они могли бы предложить некоторые предложения.

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

Таким образом, для любого разумного количества адресов Биткойн должен хорошо масштабироваться. Как правило, размер wallet.dat невелик по сравнению с объемом оперативной памяти даже на недорогих машинах, поэтому это не должно быть большой проблемой.