У меня где-то на жестком диске есть несколько копий старых кошельков, которые мне нужно проанализировать.
Моя идея состояла в том, чтобы импортировать их в blockchain.info, но для этого, по-видимому, вам нужно сбросить их с помощью pywallet.py, который является одним из худших программ, с которыми я недавно сталкивался.
Есть ли альтернатива?
Т.е. либо одно программное обеспечение, которое задает (через командную строку) полный путь к файлу , будет выгружать что-то, что может импортировать blockchain.info, либо что-то, что, по крайней мере, с учетом кошелька (опять же, полный путь через командную строку), выгружает все приватные ключи.
PS: это должно работать и для зашифрованных кошельков, запрашивая пароль либо во время выполнения (было бы лучше), либо в командной строке.
Это старый вопрос, но просто для того, чтобы сказать, что команда dumpwallet была добавлена в ядро биткойнов. Это даст вам все закрытые ключи в текстовом формате.
https://bitcointalk.org/index.php?topic=34028.180 Я также могу предоставить адрес электронной почты, если у вас нет учетной записи bitcointalk.
Ненавижу быть таким парнем, но вам стоит еще раз взглянуть на pywallet. Ваши проблемы могут быть связаны с pywallet Йорика, который давно не обновлялся. Существует улучшенный форк pywallet от JackJack.
Если вы уже сталкивались с этой версией, вы всегда можете попробовать веб-интерфейс, запустив: ./pywallet.py --web
и затем перейдя на localhost:8989/ в веб-браузере.
Однако вы запросили способ командной строки сделать это, что с pywallet jackjack будет выглядеть так:
./pywallet.py --dumpwallet --datadir=DATADIR --wallet=WALLETFILE --passphrase=PASSPHRASE
Возможно --passphrase
, этот вариант был проблемой, с которой вы столкнулись с pywallet, поскольку он необходим для работы с зашифрованными кошельками, но его нет в ридми _(не совсем уверен, почему это так).
В любом случае, pywallet действительно кажется вам лучшим выбором для того, что вы пытаетесь сделать. Если у вас возникли проблемы с его использованием, не стесняйтесь включать информацию об этих проблемах.
--wallet
и --datadir
не работают: они ожидают, что вы предоставите полный каталог данных, а у меня есть только файл wallet.dat. (и да, я использую версию ДжекДжека)./pywallet.py --dumpwallet --datadir=/mywalletfilefolder
папку mywallerfilefolder wallet.dat
. Возможно, проблема в шифровании? Какой результат вы получите, когда попробуете?wallet.dat
недостаточно.Кроме того, я не понимаю вашей проблемы с PyWaller, как предлагает Эяль, вы также можете использовать для этого стандартное программное обеспечение Биткойн, хотя этот метод займет немного больше времени.
Я предлагаю сделать следующее для каждого wallet.dat
файла, который у вас есть:
wallet.dat
файла.wallet.dat
в свой каталог биткойнов.Откройте терминал и запустите демон bitcoind:
bitcoind -daemon
Получите список всех адресов в кошельке:
bitcoind listaddressgroupings
Для каждого адреса, с которого вы хотите получить закрытый ключ, выгрузите его:
bitcoind dumpprivkey <bitcoinaddress>
Перед изменением файла wallet.dat остановите демон:
bitcoind stop
Это должно дать вам все необходимые закрытые ключи, и вы можете импортировать их в любой кошелек, какой захотите.
wallet.dat
, чего я стараюсь избегать в первую очередь. Обратите внимание, что он делает вид , что может указать путь, но на самом деле это не работает: ему нужен путь для всего .bitcoind
каталога, а у меня просто есть файл wallet.dat
.Как было предложено другим ответом. Вы можете использовать pywallet просто отлично. Поскольку вам требуется дамп многих кошельков и вам нужно решение CLI, то простой скрипт bash + pywallet подойдет как нельзя лучше.
Это никоим образом не проверено (т.е. резервное копирование всех задействованных кошельков), но должно работать нормально:
#!/bin/bash
echo "Enter directory with all the wallet *.dat files live:"
read walletdir
echo "Enter passphrases for all the encrypted wallets in directory:"
read passphrase
for i in $walletdir/*.dat; do
pywallet.py --dumpwallet --datadir=$walletdir --wallet=$i --passphrase=$passphrase
done
@echo off
set /p walletdir=Wallet directory?:
set /p passphrase=Passphrase?:
for /r %%i in (*) do pywallet.py --dumpwallet --datadir=%walletdir% --wallet=%%i --passphrase=%passphrase%
Кроме того, если вы хотите изолировать какую-либо информацию в самом дампе JSON, вы, безусловно, можете это сделать. Я не совсем уверен в ожидаемом результате, --dumpwallet
поскольку я не являюсь пользователем pywallet, но я считаю, что вы можете отредактировать код pywallet.py, чтобы изменить
print json.dumps(json_db, sort_keys=True, indent=4)
к
print "\n".join(private_keys)
В заключение, выполнение этих двух действий приведет к выводу длинного списка всех закрытых ключей ко всем адресам ко всем файлам кошелька.
wallet.dat
файл, если он не находится в каталоге с базой данных биткойнов.Запустите pywallet.py ДжекДжека:
$ python2.7 pywallet.py --dumpwallet --datadir=/tmp | \
grep addr | sort | uniq | awk -F'"' '{print $4}' > \
~/tmp/wallet_dump.txt
Получите балансы из отчетов по каждому адресу с помощью скрипта парсинга:
$ python3 addrep.py ~/tmp/wallet_dump.txt
пример результатов:
121a2C6kbqaPDrRDsbfZFNafcLBDZMum3p: 0 BTC
129oeaukHtXR8xiPqV8Mnb7p6hs9Ev3VwX: 0 BTC
12F9DRQRw2wmGrFUiZRQFk9cG2NtEBxYDv: 0 BTC
137wgZG4TSNw7Zqt4WrEHS7w2bgfeqXkkZ: 0 BTC
13PNjSy4b372f2jMVrHHLZnXXqgAArhwD8: 0 BTC
ссылки:
https://github.com/jackjack-jj/pywallet/blob/master/pywallet.py https://github.com/joshuaburkhart/pywallet/blob/master/addrep.py
Если кошельков меньше 10, просто скопируйте их в каталог конфигурации bitcoin-qt по одному и перенесите все биткойны в новый кошелек. Это займет у вас около 10 минут, чтобы сделать это.
кириан