Pages:
Author

Topic: Pywallet 2.2: manage your wallet [Update required] - page 24. (Read 208240 times)

full member
Activity: 128
Merit: 100
I don't see what can happen
If the passphrase is bad or if pywallet incorrectly imported the private key, bitcoin-qt will say "corrupt wallet"
But if it doesn't say that and if you rescanned I don't see where could be the problem
Could you post a screenshot of the error?
What does the debug.log say?

Ok - job done but what actually worked was this -

I deleted the wallet.dat and let bitcoin-qt make a new one

I imported the key with pywallet and turned pywallet off

I ran bitcoin-qt -rescan this time - didn't do that last time thanks for reminding me.

After the rescan it came up with the paper wallet balance and I sent the BTC.

I turned off bitcoin-qt and zipped the wallet with crypto and restored the original wallet.

This is a workaround...
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I don't see what can happen
If the passphrase is bad or if pywallet incorrectly imported the private key, bitcoin-qt will say "corrupt wallet"
But if it doesn't say that and if you rescanned I don't see where could be the problem
Could you post a screenshot of the error?
What does the debug.log say?
full member
Activity: 128
Merit: 100
The ecdsa warning is not a problem

Delete the keys you added
Close pywallet then run it again without the --passphrase option
Put the passphrase in the web interface (one of the tab is named "passphrase")
Then import your keys again and try


For the record it's exactly the kind of things that make me think I need to rebuild pywallet in a coherent way...

Same problem. I also tried deleting the wallet.dat file (I have a backup) and letting Bitcoin-qt build a new one and importing the key into it with no passphrase at all.

It works but bitcoin-qt reports a zero balance. When I restore the backup I can import the key and get the paper wallet balance restored, but same signing problem.

legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
The ecdsa warning is not a problem

Delete the keys you added
Close pywallet then run it again without the --passphrase option
Put the passphrase in the web interface (one of the tab is named "passphrase")
Then import your keys again and try


For the record it's exactly the kind of things that make me think I need to rebuild pywallet in a coherent way...
full member
Activity: 128
Merit: 100
I did a git pull to get the latest version of pywallet.

I started pywallet with the --web and --passphrase=gargar option.

I copied the private key of the paper wallet to a cvs file like this

5gargargar;label

The import from a cvs function worked fine - the account balance shows up in bitcoin-qt 8.3 - but I get a 'transaction creation failed' error when I try to send the coins in the account.

The bitcoin client was not running when I did the import.

One thing - pywallet complained that ecdsa was not installed, but it didn't throw any errors when I imported the key. Is that important?

Please get back to me on this...

I forgot to add I did the start the bitcoin client from the terminal with the -rescan trick and the -keypool=150 trick, then tried to send again. No joy.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I fixed an old bug I never noticed
By the way, even after the end of pywallet development I will still fix bugs one could find


I just started to code pywallet's little brother
Codename: NPW Grin
For now I'm coding an advanced dump: it will include filters
I'll regularly publish pre-alpha versions on github if some are interested
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
WalletGenie
WalletMender
WalletMinder
FixMyWallet
KeyMinder
WalletGenius
WalletEditor
WalletSurgeon
I like them all actually
No love at first sight though

pywallet-ng
As far as I understand 'ng', wouldn't it mean that pywallet isn't developped anymore? (it will be true for my fork but not for the original pywallet)

PryWallet
Why not, but why the R?

JackWallet.
I'm not that egocentric Grin


Thanks everybody, keep them coming Smiley
hero member
Activity: 994
Merit: 507
WalletSurgeon!  Grin
legendary
Activity: 3416
Merit: 1912
The Concierge of Crypto
WalletEditor.

Or JackWallet.
legendary
Activity: 1974
Merit: 1029
pywallet-ng Tongue.
full member
Activity: 194
Merit: 100
As the new version will have nothing to do with the current code I think I'd better change the name... It's kinda sad as I find the name "pywallet" quite catchy and I've been using it for more than 2 years now!
...
Moreover I'm bad at finding good names, so I'd like to know if anyone here has ideas

I suck worse, but maybe if I throw a few out there, it'll spark other ideas:

    WalletGenie
    WalletMender
    WalletMinder
    FixMyWallet
    KeyMinder
    WalletGenius

I'm SURE there are others.  I love pywallet too, but i agree that it's been through a few changes.  And besides, having "py" in the name kinda ties it to Python.  Hmmm... one more suggestion:

    PryWallet

There.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
As the new version will have nothing to do with the current code I think I'd better change the name... It's kinda sad as I find the name "pywallet" quite catchy and I've been using it for more than 2 years now!
But well...
  • I can't name a pre-alpha software like something that is mature for 2+ years
  • 3 different programs (Joric's original software, my curent fork and my future work) with the same name is rather unfriendly...

Moreover I'm bad at finding good names, so I'd like to know if anyone here has ideas
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I'm trying to recover a devcoin wallet that was overwritten during a moment of carelessness. I'm real new to Python but have got pywallet running in the CMD line in Windows (64 bit Windows 7) and am at the options menu.

I'm getting a couple errors - 'ecdsa' package is not installed, and 'A mandatory option is missing'. Also am not getting http://localhost:8989/ to display, am seeing 'neterror connection failure' in one of my security addon pop ups in my browser window.

ecdsa not being installed is not an issue
The mandatory option missing means you didn't tell pywallet what to do
If you want the web interface, you must do
Code:
python pywallet.py --web
If you want to recover wallets (impossible with the web interface), you must do
Code:
python pywallet.py --recover ...
The exact syntax is here: https://bitcointalksearch.org/topic/m.2794856


Just wanted to confirm that it will work recovering overwritten dvc keys? And have figured to set path to destination folder, but unsure on how to configure command (with path), and how to get web interface working. Any direction appreciated, even if I cant recover, it's always good to learn something new.
I confirm it will recover them, if they still are physically present on your disk
As I wrote above, the syntax is
Code:
python pywallet.py --recover --recov_device c: --recov_size 30Gio --recov_outputdir c:\recoveredwalletsfolder
This will create a huge wallet.dat in c:\recoveredwalletsfolder
It will contain all the keys it could find on your disk, whatever the altcoin you were using them with
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Thanks for the input, it's really appreciated
I won't have my dev environment with me until next week, I'll integrate this as soon as possible

Does it possible to use "pywallet --recover" with option "--otherversion", how to make it work?

Have two broken wallet.dat on two pc, with some pennies, --otherversion=55/56/57, pywallet do not want to dump them, said "Error in dump page".
Maybe someone knew another way to recover private keys for broken wallets?

Thanks.

Just use it without otherversion, the wallet format is exactly the same for all altcoins
Also AFAIK pywallet is the easier (only?) way to recover broken/deleted wallets
member
Activity: 60
Merit: 10
Does it possible to use "pywallet --recover" with option "--otherversion", how to make it work?

Have two broken wallet.dat on two pc, with some pennies, --otherversion=55/56/57, pywallet do not want to dump them, said "Error in dump page".
Maybe someone knew another way to recover private keys for broken wallets?

Thanks.
sr. member
Activity: 321
Merit: 250
Here's the essence of the present deletion algo:

Quote
for i,keydel in enumerate(kd):
   for (key, value) in db.items():
                ...
      if keydel == public_key_to_bc_address(kds.read_bytes(kds.read_compact_size())):
         db.delete(key)

The problem is that pywallet is looping over the entire database for every single entry.  Apparently it does this because it needs to calculate the bitcoin address for the public key stored in the wallet, to compare against the address to be deleted.    This grinds to a near halt when trying to delete lots of keys from a very large wallet.

Suggested improvement:

1) Iterate through all the DB keys just once at the beginning and store, keyed by the bitcoin address, eg:
: .  ( Could use a python dictionary for this if a small number of items, but should use a new BDB database if a large number of items to avoid swapping. )

2) Iterate through the addresses requested to be deleted.  For each, just lookup the address to find the key, and if found delete it.

This way, we have created an index, so there is no longer any need for a nested loop.

Proposed algo:

Quote
db_map = new BDB
for (key, value) in db.items():
        ...
   db_map.store( public_key_to_bc_address(kds.read_bytes(kds.read_compact_size())), key )

for i,keydel in enumerate(kd):
   key = db_map.get( keydel )
   if key:
      db.delete(key)
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Yes it's kinda exciting!
The problem is that the system is emulated and sadly not fully coded so I can't be sure of anything. It seems pretty straight forward so far.
I'll contact slush soon to address this.


2.1.0 pushed btw
legendary
Activity: 1792
Merit: 1008
/dev/null
they've send u a trezor unit? nice! hows the protocol?
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I guess everything's ok, the official 2.1.0 with working watchonly-cloning and recoveries will be pushed soon.

Also, great news I received a great piece of work

legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Thank you dserrano5, thank you the third guy who donated to the pywallet address, and thanks to anybody who ever donated to my address Wink

The two features I've been testing in the last version seems to work now.
They are:
  • Creating a watch-only clone of a wallet
  • Deleted wallets recovery (encrypted+unencrypted wallet, on Linux+Windows)

That would be nice if some people can confirm they work. Even if you can test only one.

Last version: 2.1.0b13



Creating a watch-only clone of a wallet

Short version:
Backup your wallet
Then
Code:
python pywallet_2.1.0b13.py --clone_watchonly_from /path/to/wallet/wallet.dat --clone_watchonly_to /path/to/clone/wallet.watching.dat

Long version:
DeathAndTaxes' thread: https://bitcointalksearch.org/topic/watching-wallet-workaround-for-bitcoind-requires-pywallet-beta-257891



Deleted wallets recovery (encrypted+unencrypted wallet, on Linux+Windows)

Pywallet will go through these steps:
 1. read every byte on the disk to look for keys (sloooooooooow, ~600Mo/min)
 2. create a partial file (in outputdir) so that if you forgot a passphrase but remember it later you don't have to go through step 1 again
 3. test all the passphrases for the most possible (encrypted private key / encryption parameters) pairs
 4. if there are some private keys still not decrypted, YOU chose whether or not you want to test all passphrase with all encryption parameters with all undecrypted private keys

Note that recov_size must be higher than the size of recov_device and that recov_outputdir must exist

Usage examples for Linux and Windows:
Code:
python pywallet_2.1.0b13.py --recover --recov_device /dev/sda --recov_size 30Gio --recov_outputdir /home/jackjack
Code:
python pywallet_2.1.0b13.py --recover --recov_device c: --recov_size 30Gio --recov_outputdir c:\recoveredwalletsfolder

Usable units:
Code:
ko kio kB kiB Mo Mio MB MiB Go Gio GB GiB

PS: to use a partial recovery file, the command is the following (notice --recov_device):
Code:
python pywallet_2.1.0b13.py --recover --recov_device=PartialRecoveryFile:./pywallet_partial_recovery_1374430501.dat --recov_outputdir c:\recoveredwalletsfolder --recov_size 30Gio
Pages:
Jump to: