Pages:
Author

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

sr. member
Activity: 293
Merit: 250
by the way, I received the following error when making the dump (but it completed successfully):

2013-05-22 18:36:52-0300 [HTTPChannel,2,127.0.0.1] Wallet data not recognized: {'__type__': 'orderposnext', '__value__': '\xc1\x8b\x03\x00\x00\x00\x00\x00', '__key__': '\x0corderposnext'}
sr. member
Activity: 293
Merit: 250
Just created the dump with my wallet with "no transactions" (actually it now has 1 transaction as I moved back my coins), and I confirmed that it has only one transaction.

Copied all the text of the JSON dump and saved it to a text file and the text file size is 32MB (noting that I have about 70k addresses generated).

And using the wallet in the bitcoin-qt it is showing only one transaction too.

before deleting the transactions it contained about 230000 transactions (didn't made the dump with the wallet file with all transactions as I think it will take too much time as it took about 11 minutes with the wallet without the transactions).

Regards.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Yeah I forgot while doing it, I'll make this soon.

I never tried with such a passphrase. Try with replacing # with %23.
I'll look at that when I'm back home. I think it would just require to put an encodeURIComponent.

As for the small size drop, I don't know, it depends how many transactions your wallet contained. Compare the dumps before and after deletion to be sure there's no transaction left.
sr. member
Activity: 293
Merit: 250
hi man, tks for the update, it will for sure speed things a little, but here's a problem:

When making a request to delete a transaction, all the parameters are being passed through GET Method, and the GET method has some limits regarding the length of the URL (http://classicasp.aspfaq.com/forms/what-is-the-limit-on-querystring/get/url-parameters.html). This length depend on the server and also the client, for example, until and including Internet Explorer 8 the maximum URL length is 2.083 characters. So, if I have about 100000 transactions to delete, and lets suppose that I will be able to delete 500 transactions per request, taking the average of 11 seconds to complete each request in my wallet of 242MB, it will take about 36 minutes to complete the deletion. This is a great advance instead of waiting 12 days to delete the transactions one by one, but as I said before, using the "all" keyword it took less than 20 seconds. I still think that reading a file with the keys to delete will still be the best way.

Another problem, When I tried to merge two wallets, in one of then the password contained the character #, and I received an error. when I checked the URL being called, I saw that it stripped all the remaining characters including the character #, so I'm assuming that the problem is that the URL isn't being encoded.


One more question:
- After deleting all the transactions from the wallet, it dropped the file size by a few KB. is it normal? why the size didn't drop more?


And once again, tks for your great tool.





legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Hey guys
The fix for the bug that K1773R found and the BRules' request have been pushed to v2.0.7


CSV files import bug
Actually when I coded the CSV import, I did take into account the WIF keys. The bug came from the fact that False!=None....
When trying things, I also noticed that for the keys to be displayed correctly inside bitcoin-qt, you need to use the proper address version.
So the CSV files must now have this format:
Code:
5KkEy5BZxKi4ZN5n4MUGx1ABSsiGbtNz5hYLBuyaU8dV8iHkBur;label for the key;111

Note1: 111 is for testnet. 0 for Bitcoin. 52 for Namecoin. Etc...
Note2: if there is only two columns, version 0 (ie Bitcoin addresses) is implied, so it is backward compatible


Multiple deletions at once
In the 'key' (renamed 'keys') form, enter:
  • '1address1' to delete that only address (again, backward compatibility)
  • '1address1-1address2-1address3-etc...' to delete a list of addresses divided by '-'


BRules, please confirm whether this is faster
sr. member
Activity: 293
Merit: 250
I just created another testnet wallet and sent my bitcoins to it, after 2 confirmations I deleted all my transactions from my wallet using the keyword "all", it took less than 20 seconds to remove all transactions from my wallet, and it is usable again in the bitcoin-qt. So, reading a file with the transactions to remove should be enough to solve my problem. Looking foward for this feature.

Keep up the good work.
Tks again
sr. member
Activity: 293
Merit: 250

Can you delete all transactions or do you have some you want to keep?
The problem is that pywallet opens, reads, then writes into a new wallet the remaining data, for each deletion
If you need to keep some transactions, I'll write something q&d to read a file containing hashes and delete all the corresponding transactions inside it

I will need to keep unspent transactions and transactions made within an year. That would be great to have a way to fill a file with transactions to delete.

Tks in advance
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I will only delete old spent transactions, so, I won't need them anymore, I was worried that the bitcoind could stop working for some reason.
bitcoind will still work correctly

the only problem I'm seeing is that with my wallet of 200000 transactions, it's takin about 11 seconds to remove one transaction. I made a program to remove the transactions and in 3,5 hours it has deleted 1107 transactions. Do you know which part of the delete is causing this delay? Is there a way to remove a batch of transactions at once instead of one by one?
Can you delete all transactions or do you have some you want to keep?
The problem is that pywallet opens, reads, then writes into a new wallet the remaining data, for each deletion
If you need to keep some transactions, I'll write something q&d to read a file containing hashes and delete all the corresponding transactions inside it
sr. member
Activity: 293
Merit: 250
Yes you can but Bitcoin won't be able to use those transactions when you create a new payment and won't show them (obviously)
And no, no command line for this yet but if you need it I can add it

I will only delete old spent transactions, so, I won't need them anymore, I was worried that the bitcoind could stop working for some reason.

no need for command line as I already has the complete URL to delete the transactions and my program is already using it.

the only problem I'm seeing is that with my wallet of 200000 transactions, it's takin about 11 seconds to remove one transaction. I made a program to remove the transactions and in 3,5 hours it has deleted 1107 transactions. Do you know which part of the delete is causing this delay? Is there a way to remove a batch of transactions at once instead of one by one?
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
I was doing some stress test with my bitcoin on testnet and created about 200000 transactions and 70000 addresses, now my wallet file has about 240MB, now I only can open my bitcoind to manipulate my bitcoins, and bitcoind are using about 400MB of memory because of that.

My question: if I start a business that will use bitcoind to manipulate the bitcoins, Is it ok to use pywallet to remove old spent transactions from the wallet (obviously making a backup before)?

if ok, is there a way use the command line to remove the transactions or i'm only able to do this through the web interface?

tks in advance
Yes you can but Bitcoin won't be able to use those transactions when you create a new payment and won't show them (obviously)
And no, no command line for this yet but if you need it I can add it
sr. member
Activity: 293
Merit: 250
I was doing some stress test with my bitcoin on testnet and created about 200000 transactions and 70000 addresses, now my wallet file has about 240MB, now I only can open my bitcoind to manipulate my bitcoins, and bitcoind are using about 400MB of memory because of that.

My question: if I start a business that will use bitcoind to manipulate the bitcoins, Is it ok to use pywallet to remove old spent transactions from the wallet (obviously making a backup before)?

if ok, is there a way use the command line to remove the transactions or i'm only able to do this through the web interface?

tks in advance
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Yeah I procrastinated a lot about importing base58 private keys from a CSV file... I don't even know why because it's a letter of less than ten lines... And eventually I forgot about it.
I don't have my computer with me right now, I'll change this asap, ie tomorrow evening (or maybe a bit later...)
legendary
Activity: 1792
Merit: 1008
/dev/null
Code:
2013-05-17 21:39:29+0200 [HTTPChannel,1,127.0.0.1] Hexadecimal private keys must be 64 or 66 characters long (specified one is 51 characters long)
they start with a 5, so its a uncompressed one. i can send you some unused keys per PM if you want.

Given that error message, I'd try to convert your WIF privkey into hexadecimal, by using e.g. bitaddress, then feed the result to pywallet.
i know, still it should be able to handle normal ones Wink also the list is too big to convert it into hexadeicaml by hand.
legendary
Activity: 1974
Merit: 1029
Code:
2013-05-17 21:39:29+0200 [HTTPChannel,1,127.0.0.1] Hexadecimal private keys must be 64 or 66 characters long (specified one is 51 characters long)
they start with a 5, so its a uncompressed one. i can send you some unused keys per PM if you want.

Given that error message, I'd try to convert your WIF privkey into hexadecimal, by using e.g. bitaddress, then feed the result to pywallet.
legendary
Activity: 1792
Merit: 1008
/dev/null
finally i gave the csv import a try, unfortunately i couldnt enjoy the result:
Code:
2013-05-17 21:39:29+0200 [HTTPChannel,1,127.0.0.1] Hexadecimal private keys must be 64 or 66 characters long (specified one is 51 characters long)
they start with a 5, so its a uncompressed one. i can send you some unused keys per PM if you want.
legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
Doesn't work. I did the install.bat and hit yes/next/i agree on everything. i run pywallet.bat and I get an error.

C:\Users\Ssateneth>D:\pywallet\pywallet.py --web --port=8989
A mandatory option is missing

Usage: pywallet.py [options]
(it spams all the options after)

what am i doing wrong?
There is install.bat in the same directory, run it
If it doesn't work, try running update.bat then install.bat
Then report results
legendary
Activity: 1344
Merit: 1004
Doesn't work. I did the install.bat and hit yes/next/i agree on everything. i run pywallet.bat and I get an error.

C:\Users\Ssateneth>D:\pywallet\pywallet.py --web --port=8989
A mandatory option is missing

Usage: pywallet.py [options]
(it spams all the options after)

what am i doing wrong?
full member
Activity: 128
Merit: 100
So even after you put the correct passphrase in the passphrase tab you can't use your coins?

That is correct - I also carefully wrote the phrase out in an editor and cut and pasted it into the tab because the tab will accept anything and does not tell you if you have done it wrong.

I recommend that the wallet software check for encryption first thing after the user clicks localhost:8989 and demands a correct pass-phrase before proceeding.

legendary
Activity: 1176
Merit: 1280
May Bitcoin be touched by his Noodly Appendage
So even after you put the correct passphrase in the passphrase tab you can't use your coins?
full member
Activity: 128
Merit: 100
I also had trouble earlier importing the key as Satoshi left 5 and upper case s in the base58 code - a strange design flaw...
What do you mean? You mixed 5 and S? I didn't even realize  both were used

code_string = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

That just caused an error. I fixed that after I figured out what it was.

Thanks anyway - I guess I need to find another way to try this.
To try what?


Try and 1- import a paper wallet private key to my encrypted wallet.dat file, 2 - transfer some BTC from the paper wallet to another account, 3 - then transfer the remaining btc to another paper wallet - stuck at step 2



Pages:
Jump to: