Pages:
Author

Topic: Как проверить баланс 1000+ адресов? - page 2. (Read 1775 times)

legendary
Activity: 3108
Merit: 1358
Неожиданно всплыло желание попробовать в общем то очевидный способ
Запуск
bitcoin-qt.exe -keypool=150000000
выявил следующее
за 1.5 часа нагенерировалось около 1M ключей
объем wallet.dat на этот момент - 600 MБ
За счет NTFS сжатия реальный объем 370 MБ

итог - сабжевая задача должна решиться за ~10 дней  Wink
отпишусь по окончании эксперимента


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

sr. member
Activity: 1316
Merit: 420
KTO EC/\U HUKTO?
У коре есть параметр для дополнительного индексирования, то есть он в теории после этой индексации знает баланс на каждом кошельке который был в данных, не только о тех которые занесены в сам кошелек. Но вот если импортировать, то корка, начинает искать эти все транзакции, анализиирует блоки на входы и выходы, при это она даже пересчитывает хэи блоков, типа чтобы не было наеб.... Всё это занимает достаточное время, особенно учитывая что корка умеет работать только с одним потоком, многоядерность не используется.

Баланс не на кошельках, а на адресах. Ничего, кроме возможности отображения всей истории импортируемого адреса, не мешает перебирать только UTXO pool, в котором сегодня ~66 млн. непотраченных выходов.
member
Activity: 255
Merit: 27
У коре есть параметр для дополнительного индексирования, то есть он в теории после этой индексации знает баланс на каждом кошельке который был в данных, не только о тех которые занесены в сам кошелек. Но вот если импортировать, то корка, начинает искать эти все транзакции, анализиирует блоки на входы и выходы, при это она даже пересчитывает хэи блоков, типа чтобы не было наеб.... Всё это занимает достаточное время, особенно учитывая что корка умеет работать только с одним потоком, многоядерность не используется.
legendary
Activity: 2314
Merit: 2300
Стойте, а почему не попытаться просто импортировать все кошельки в wallet.dat? По идее, после этого клиент должен показывать весь баланс всего пула кошельков (но возможно я ошибаюсь).

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

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

Дык, Bitcoin Core не знает заранее были ли транзакции по конкретному импортируемому адресу. Поэтому по-умолчанию при импорте приватного ключа командой importprivkey происходит сканирование всего блокчейна, и только после этого становится понятно: были транзакции или нет. Другое дело, что если написать false в третьем параметре importprivkey, то сканирования не будет, и если до этого момента были транзакции, то не будет видно ни их самих ни их влияния на баланс.
legendary
Activity: 2058
Merit: 1256
⭐⭐⭐⭐⭐⭐
.  А когда кошель с транзакциями, то тогда приложение начинает проверять все транзакции, бегая по блокам ищя входы и выходы.
.
Насколько я знаю, коре кошель в любом случае "всё сам" проверяет, даже если в режиме "пруни" задействован (но это не точно). Так что дополнительного времени это не должно занять.
member
Activity: 255
Merit: 27
Вот именно. Тут главное слово что импортируются "пустые" кошельки.  А когда кошель с транзакциями, то тогда приложение начинает проверять все транзакции, бегая по блокам ищя входы и выходы. Есть конечно оптимизация, но некоторые кошельки даже по одному трудно импортировать, такие у которых под 10к транзакций.
Если кошели с небольшим кол-вом транзакция, то лучше уже в электрум импортировать.
legendary
Activity: 2058
Merit: 1256
⭐⭐⭐⭐⭐⭐
У меня есть миллионы созданных адресов, но сервисы по просмотру баланса работают только максимум на 50 адресов, а мне это надо делать пачками хотя бы по 1000. У кого какие идеи?
Стойте, а почему не попытаться просто импортировать все кошельки в wallet.dat? По идее, после этого клиент должен показывать весь баланс всего пула кошельков (но возможно я ошибаюсь). Посмотрите эту тему, там на какой-то странице описан способ с базой данных похожий на тот что в этой теме предложили.

Неожиданно всплыло желание попробовать в общем то очевидный способ
Запуск
bitcoin-qt.exe -keypool=150000000
выявил следующее
за 1.5 часа нагенерировалось около 1M ключей
объем wallet.dat на этот момент - 600 MБ
За счет NTFS сжатия реальный объем 370 MБ

итог - сабжевая задача должна решиться за ~10 дней  Wink
отпишусь по окончании эксперимента

https://bitcointalk.org/index.php?topic=331477.120

Просто так генерировать пустые кошели - это бред конечно, за тысячу лет ничего не найти, но если есть масса адресов с остаточными балансами - почему бы и нет. Только там возникнет другая проблема - как их потратить объединив в одну транзакцию, при этом не переплачивая за комиссии
sr. member
Activity: 939
Merit: 261
Data HDD Repair - Recovery of lost information

  Разработал функцию для подсчета баланса любого адреса, старый кошелек Биткоин,
мне понравилась скорость сканирования. Сегодня сделал изменения позволяющие сканировать блоки
на предмет всех транзакций по всем адресам. Тестировал сейчас на ноутбуке. За тридцать минут 92000
блоков про сканировано, 89500 адресов добавлено.. Работает в отдельном потоке, функционированию
кошелька практически не мешает. Информация о ходе тестирования берется из файла в рабочей папке,
удобно..



Как с Вами связаться?  Ваша программа может составить базу адресов по заданным критериям? Например базу всех бездействующих (зомби)  адресов с положит. балансом от 1 года и старше 8 лет ?  Либо нужен парсер сканить bitinfocharts но у них свои лимиты и сортировка неудобная (тупо 9900 топ рич адресов, посл адрес примерно 160 btc, дальше не показывает) и зомби только топ-100 (посл адрес на 600+ btc, больше нет).

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

newbie
Activity: 5
Merit: 0

  Разработал функцию для подсчета баланса любого адреса, старый кошелек Биткоин,
мне понравилась скорость сканирования. Сегодня сделал изменения позволяющие сканировать блоки
на предмет всех транзакций по всем адресам. Тестировал сейчас на ноутбуке. За тридцать минут 92000
блоков про сканировано, 89500 адресов добавлено.. Работает в отдельном потоке, функционированию
кошелька практически не мешает. Информация о ходе тестирования берется из файла в рабочей папке,
удобно..



Как с Вами связаться?  Ваша программа может составить базу адресов по заданным критериям? Например базу всех бездействующих (зомби)  адресов с положит. балансом от 1 года и старше 8 лет ?  Либо нужен парсер сканить bitinfocharts но у них свои лимиты и сортировка неудобная (тупо 9900 топ рич адресов, посл адрес примерно 160 btc, дальше не показывает) и зомби только топ-100 (посл адрес на 600+ btc, больше нет).
sr. member
Activity: 939
Merit: 261
Data HDD Repair - Recovery of lost information
 
  Разработал функцию для подсчета баланса любого адреса, старый кошелек Биткоин,
мне понравилась скорость сканирования. Сегодня сделал изменения позволяющие сканировать блоки
на предмет всех транзакций по всем адресам. Тестировал сейчас на ноутбуке. За тридцать минут 92000
блоков про сканировано, 89500 адресов добавлено.. Работает в отдельном потоке, функционированию
кошелька практически не мешает. Информация о ходе тестирования берется из файла в рабочей папке,
удобно..

jr. member
Activity: 37
Merit: 2
Нужно поднять свой узел сети и синхронизировать балансы с БД

У меня есть миллионы созданных адресов, но сервисы по просмотру баланса работают только максимум на 50 адресов, а мне это надо делать пачками хотя бы по 1000. У кого какие идеи?
legendary
Activity: 3108
Merit: 1358
Если нужно проверять именно балансы адресов, массово, то есть очень быстрое решение:

https://github.com/CPPAlliance/NuDB

Подсчитываются балансы для всех существующих адресов, пихаются в NuDB и оттуда потом можно проверять балансы со скоростями порядка 5-10 тысяч адресов в секунду, если процессор осилит. Особенностью движка является так же и то, что скорость его работы никак не зависит от размера базы. Ну а реляционные СУБД слишком громоздки именно для этой задачи, даже SQLite и то будет жестким тормозом.

P.S. Однако же, это не отменяет того, что задача по-прежнему остается бредовой.
newbie
Activity: 1
Merit: 0
Поднял ноду эфира и полную ноду биткоина со всеми транзакциями txindex, это вышло под 600 Гб
Также поднял реляционную базу и распарсил все транзакции эфира по контрактам итд, длилось это несколько месяцев, весит база под 700 Гб + парсится биткоин сейчас

Что можно делать?
API по поиску транзакций согласно адресу, токен трансферы согласно адресу и.т.д.

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

По деньгам это выходит около 120 евро в месяц за 1 сервер. По хорошему еще базу реплиуировать, а это + еще 60 евро.
+ Тестнет выходит порядка 60 евро.
Дорогое удовольствие для хобби
member
Activity: 255
Merit: 27
1. Метод. Подымается типа ABI с базой данных, и уже ищутся кошели в базе данных. При этом можно сделать что новые кошели, будут проверятся со старым списком.
Ну для этого нужно время, минимум 3-4 дня на выкачку и парсинг блокчайна. Плюс большие объмы винтов и желательно ssd быстрых и стабильных.
Скорость проверки будет достаточно большая.

2. Если нужны не совсем актуальные данные, а допустим срез за прошлый месяц. То тут легче. Есть срезы кошелей с балансом. К примеру за прошлый месяц там всего чуть больше 26 миллионов адресов с балансом. Скачиваем, делаем скрипт который загоняет все эти 26 лямов в память. А потом начинаем читать файлы с искомыми адресами. Там скорость ваааще зашкаливает. Единственное на тачке памяти хотя бы 16 гиг надо.
В теории можно и все ранее использованные кошельки загрузить, это что-то около 400 лямов адресов.

3. Есть бд, открытая но доступ платный. Правильно составленные запросы могут тоже быстро искать.
legendary
Activity: 2422
Merit: 1834
Crypto for the Crypto Throne!
Это если чисто проверка, а не брут форс как предполагал Иешуа

Почитайте сообщения топик стартера, именно этим он и занимается. vanitygen используют в том числе и для такой вот бредятины.

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

Найти клад с металлоискателем, тратить все деньги на лотерею или просирать в казино, встретить инопланетян, а потом доказать, что тебя не зондировали - тоже шансов мало, но люди активно продолжают этим заниматься.

Я имел ввиду, зачем помогать в такой херне, да еще и в разделе Кодеры.

ну клад с металлоискателем многие ищут довольно успешно, особенно на пляжах  Smiley Но суть примера понял.
hero member
Activity: 1330
Merit: 869
https://github.com/Blockchair/Blockchair.Support/blob/master/API.md
Quote
Since the introduction of our API more than two years ago it has been free to use in both non-commercial and commercial cases with a limit of 30 requests per minute.

И так всегда.
Сторонние АПИ подходят только для образовательных целей. Если нужно что-то рабочее делать - придется использовать собственную ноду.

~

Это если чисто проверка, а не брут форс как предполагал Иешуа

Почитайте сообщения топик стартера, именно этим он и занимается. vanitygen используют в том числе и для такой вот бредятины.

А я надеюсь, что никто не поможет. Такой чекер может быть нужен только говно-кладоискателям. Генерируешь ахулиард адресов с приватными ключами, а потом сидишь и проверяешь их чекером в надежде на то, что какой-нибудь кошелек будет с балансом, а потом у кого-то крипта пропадает. Вероятность ничтожно мала, но все же. На другом ресурсе за такое забанили бы, но это к сожалению не про этот форум.
Банить не за что, потому что подобные действия были бы полностью бессмысленны. Всех компьютеров мира не хватит, чтобы проверить приватные ключи для 2^160 возможных варианта адресов в разумные сроки, как ни оптимизируй.
Выделил красным.

Найти клад с металлоискателем, тратить все деньги на лотерею или просирать в казино, встретить инопланетян, а потом доказать, что тебя не зондировали - тоже шансов мало, но люди активно продолжают этим заниматься.

Я имел ввиду, зачем помогать в такой херне, да еще и в разделе Кодеры.
legendary
Activity: 2422
Merit: 1834
Crypto for the Crypto Throne!
https://github.com/Blockchair/Blockchair.Support/blob/master/API.md
Quote
Since the introduction of our API more than two years ago it has been free to use in both non-commercial and commercial cases with a limit of 30 requests per minute.

И так всегда.
Сторонние АПИ подходят только для образовательных целей. Если нужно что-то рабочее делать - придется использовать собственную ноду.

Мда, ну и бред однако, 30 запросов в минуту. Ну тогда конечно если не жмет место на диске, то очевидно что придется весь блокчейн качать. Но это если уж очень большие объемы адресов. Если как указано в ОП, 1000-10000 то с 30 запросов / мин, мы получим за 2 дня практически 3к проверенных адресов. А если клепать ботов которые будут условно проверять адреса по разбивке по блокам (к примеру все блоки <50 000 проверяет 1 бот, вторую часть второй и так далее) которые будут обращаться к разным апи, то может в принципе и получиться.

Это если чисто проверка, а не брут форс как предполагал Иешуа
newbie
Activity: 12
Merit: 3


Или использовать API какого нибудь blockchair. Биткоин нода синхронизируется дня два, если не на ССД, занимает 300гб места при этом. Запросы по API могут быть медленными, но зато не нужно тратиться на лишний винт да и 2 дня как ни крути это неплохая фора, я не знаю какая пропускная способность у апишек блокэксплореров, но думаю если хотя бы 100 запросов/сек то 48 часов это уже 17 миллионов с хвостиком проверенных адресов будет.

https://github.com/Blockchair/Blockchair.Support/blob/master/API.md
Quote
Since the introduction of our API more than two years ago it has been free to use in both non-commercial and commercial cases with a limit of 30 requests per minute.

И так всегда.
Сторонние АПИ подходят только для образовательных целей. Если нужно что-то рабочее делать - придется использовать собственную ноду.
legendary
Activity: 2422
Merit: 1834
Crypto for the Crypto Throne!
Единственный вариант - это поднимать свою ноду и писать свой софт по ковырянию во всём блокчейне.  

Верно. С таким количеством запросов разумнее скачать весь блокчейн Bitcoin и анализировать скрипты транзакций в нужном топикстартеру направлении. При этом ноду после скачивания всех блоков можно выключить.

Или использовать API какого нибудь blockchair. Биткоин нода синхронизируется дня два, если не на ССД, занимает 300гб места при этом. Запросы по API могут быть медленными, но зато не нужно тратиться на лишний винт да и 2 дня как ни крути это неплохая фора, я не знаю какая пропускная способность у апишек блокэксплореров, но думаю если хотя бы 100 запросов/сек то 48 часов это уже 17 миллионов с хвостиком проверенных адресов будет.
legendary
Activity: 2422
Merit: 2166
Задача сформулирована не полностью. Какие адреса Вам нужны?

Полагаю, что обычно по умолчанию в этом разделе подразумеваются адреса Bitcoin, если не задана другая криптовалюта.


Единственный вариант - это поднимать свою ноду и писать свой софт по ковырянию во всём блокчейне.  

Верно. С таким количеством запросов разумнее скачать весь блокчейн Bitcoin и анализировать скрипты транзакций в нужном топикстартеру направлении. При этом ноду после скачивания всех блоков можно выключить.

Однако, наверно, если очень нужно, то можно через контакты пообщаться с администратором какого-либо из блокчейн-эксплореров, который, разумеется, за определённую дополнительную плату согласится предоставлять данные по текущим балансам Bitcoin-кошельков большими BULK-пакетами через специальный API. Но нужно понимать, что в таком случае сетевой трафик может быть огромным.
Pages:
Jump to: