• XSS.stack #1 – первый литературный журнал от юзеров форума

прочее Массовый мультичекер криптовалют.

PR1SM-NSA

(L2) cache
Забанен
Регистрация
23.10.2019
Сообщения
309
Реакции
379
Гарант сделки
1
Пожалуйста, обратите внимание, что пользователь заблокирован
Чекер написан на Python (для работы требуется версия 3.6 и выше)
Поддерживает массовый чек следующих криптовалют Bitcoin, BitcoinCash, Bitcoin SV, Litecoin, Dash, Dogecoin

Для запуска нужно перейти в папку с чекером в повершелле и выполнить
python wallet_compare.py -f1 файл_со_списком_адресов_с_балансами -f2 ваш_файл_с_любым_количеством_адресов. (каждый адрес с новой строки)

В архиве следующие файлы
wallet_compare.py - сам чекер

blockchair_bitcoin_addresses_and_balance_LATEST.tsv - все адреса с балансами Bitcoin
blockchair_bitcoin-cash_addresses_latest.tsv - все адреса с балансами BitcoinCash
blockchair_bitcoin-sv_addresses_latest.tsv - все адреса с балансами Bitcoin SV
blockchair_dash_addresses_latest.tsv - все адреса с балансами DASH
blockchair_dogecoin_addresses_latest.tsv - все адреса с балансами Dogecoin
blockchair_litecoin_addresses_latest.tsv - все адреса с балансами Litecoin

Лучше обновлять все эти файлы перед проверкой.

Скачать актуальный первый файл можно отсюда на нормальной скорости

Все остальные можно скачать отсюда (ограничение по скорости и максимум можно скачивать только 1 файл за раз)
gz.blockchair.com

Файлы по урлам обновляются 1-2 раза в день.

run.sh - скрипт bash нужен для массового чека всех поддерживаемых криптовалют.
Пользователи винды его могут так же использовать переименовав в run.bat
Если создать тексовики с названиями BCH.txt, BSV.txt, BTC.txt, DASH.txt, DOGE.txt, LTC.txt и положить в них адреса от соответствующих криптовалют то скрипт чекнет все за раз.


Пароль xss.pro

Donate
Bitcoin bc1qphw8hltvwp6gqn6rx3rwgtuzxrcar6ap50rcqr
ETH 0x1C3136Ad67718Ebb6B235e159db761c5d657d0cf
 
Пожалуйста, обратите внимание, что пользователь заблокирован
наверное как то ставить фул ноду рипла https://habr.com/ru/post/446024/ и потом уже изучая маны их софта выдернуть все адреса с балансами в текстовик. Больше думаю никак.
 
Вот например есть API по XRP: https://docs.xrpscan.com/api-doc.html
Например: https://api.xrpscan.com/api/v1/account/r3v9UXcZrgh62SoGdmqmJ9WiaCmsbsTbRz отдаст JSON, где xrpBalance - как раз актуальный баланс

JSON:
{
"sequence" : 7,
"xrpBalance" : 23.016109,
"ownerCount" : 0,
"previousAffectingTransactionID" : 2C9865CF017255256698D703AAB1B33CF9EC540540EA1F4E0A483DFCC143D109,
"previousAffectingTransactionLedgerVersion" : 62911139,
"settings" : -{
},
"account" : r3v9UXcZrgh62SoGdmqmJ9WiaCmsbsTbRz,
"parent" : razLtrbzXVXYvViLqUKLh8YenGLJid9ZTW,
"initial_balance" : 50,
"inception" : 2020-04-15T02:49:52.000Z,
"ledger_index" : 54799968,
"tx_hash" : 24B7314E8662DC1FB1598578D58ED6829F5DBA184B8456B71F94B6AC166AFCD6,
"accountName" : ,
"parentName" : -{
"name" : Stake,
"desc" : 2,
"account" : razLtrbzXVXYvViLqUKLh8YenGLJid9ZTW,
"domain" : stake.com,
"twitter" : Stake,
"verified" : true
}
}
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Всех приветствую. Попробовал прогнать пару адрессов DODGE по общей базе их адрессов , все Ок, софт отработал. Теперь пробую прогнать 500 адрессов биткоина по их базе адрессов и выбивает такую ошибку.
Python:
\wallet_checker>python wallet_compare.py -f1 blockchair_bitcoin_addresses_latest.tsv -f2 bitcoin.txt
Start insert 1st file in tmp DB...
Traceback (most recent call last):
  File "wallet_compare.py", line 38, in <module>
    cur.executemany('INSERT into tmp values(?,?)',part)  # тут вылетает ошибка, попробовать завтра проигнорировать
MemoryError
Оперативка этим процессом постепенно доходит до 2ГБ загруженности и софт ложится, хотя у меня памяти 8ГБ. Читал в гугле, что у python 32bit якобы лимит 4ГБ памяти, но дело не в этом, у меня вылетает на отметке именно 2ГБ. Буду благодарен за советы, если кто нибудь знает как умеренно разбить нагрузку софта.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Можно перезалив?
wallet_compare.py

Код:
import sqlite3
import argparse
from datetime import datetime as dt

IN_FILE1='./f1.txt'
IN_FILE2='./f2.txt'

CREATE_TBL="CREATE TABLE tmp (addr VARCHAR(100) PRIMARY KEY NOT NULL UNIQUE ON CONFLICT IGNORE, amount VARCHAR(50))"
if __name__=="__main__":
    parser = argparse.ArgumentParser()
    #parser.add_argument('-t', default=10, type=int)
    parser.add_argument('-f1', default=IN_FILE1)
    parser.add_argument('-f2', default=IN_FILE2)
    args = parser.parse_args()

    IN_FILE1=args.f1
    IN_FILE2=args.f2

    con = sqlite3.connect("file::memory:?cache=shared", uri=True,detect_types=sqlite3.PARSE_DECLTYPES)
    cur = con.cursor()
    cur.execute(CREATE_TBL)
    start_dt=dt.now()
    print('Start insert 1st file in tmp DB...')
    i=0
    with open(IN_FILE1,'r',encoding='utf-8') as f1:
        part=[]
        for line in f1:
            i+=1
            try:
                addr,amount=line.split()
                addr=addr.strip()
                amount=amount.strip()
            except:
                continue
            #amount=line.split(' ')[-1].strip()
            part.append((addr,amount))
            if len(part)==1000000:
                cur.executemany('INSERT into tmp values(?,?)',part)
                print(i)
                part=[]

        if len(part)>0:
            cur.executemany('INSERT into tmp values(?,?)',part)
    res=con.execute('select count(*) from tmp ').fetchone()[0]

    print('Insert %d DONE. '%res,dt.now()-start_dt)

    print('Check 2nd file...')
    i=0
    with open(IN_FILE2,'r',encoding='utf-8') as f2:
        for line in f2:
            addr=line.strip()
            res=con.execute('select * from tmp where addr=?',(addr,)).fetchone()
            if res is not None:
                print('\t'.join(res))
                i+=1
    print('Total found=',i)
    print('Time: ',dt.now()-start_dt)
    con.close()
 
Кто-нибудь пробовал? У меня ничего не находит. Файл с балансами на 15 КК адресов, файл для проверки на 13 К адресов. В первый файл закинул пару адресов из второго.
Для профилактики менял в строке файлы местами.

Код:
(base) D:\Python-WebServer>python wallet_compare.py -f1 btcaddress.txt -f2 addresses_1207.txt
Start insert 1st file in tmp DB...
Insert 0 DONE.  0:00:19.245651
Check 2nd file...
Total found= 0
Time:  0:00:19.309864

(base) D:\Python-WebServer>python wallet_compare.py -f1 addresses_1207.txt -f2 btcaddress.txt
Start insert 1st file in tmp DB...
Insert 0 DONE.  0:00:00.019058
Check 2nd file...
Total found= 0
Time:  0:01:18.767005
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх