Author

Topic: Armory - Discussion Thread - page 187. (Read 521855 times)

hero member
Activity: 742
Merit: 500
June 18, 2012, 01:51:32 AM
EDIT2:  Let's compromise -- can you send me your Makefile with the modifications you would recommend?  At the moment I'd just be taking a shot in the dark, because I don't fully understand the variability of the environments you are in.  But I'll see what you're trying to do and I'll accommodate Smiley
I had been using "git stash", then "git pull", then "git stash apply"

I put up a pull request on github awhile ago.  You can see the simple changes I made there.  I give you full right to license that code however you want if that is still a concern for you.

https://github.com/etotheipi/BitcoinArmory/pull/3

Mostly it's just sticking "$(DEPSDIR)" wherever you have "/usr"

It also has a little check to set the $DEPSDIR with brew if it detects a mac.

This works for me on master and tablesorter, but I'm not having luck with blkchainagain.  I'll try more tomorrow and also test out the binaries on ubuntu.
sr. member
Activity: 294
Merit: 250
Bitcoin today is what the internet was in 1998.
June 18, 2012, 12:38:06 AM
Oh, one more thing, I'm not sure if this is intentional or not but the Armory process closes completely when I close the main Armory window, rather than minimizing to the system tray.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 17, 2012, 11:38:45 PM
What branch should I checkout? blkchainagain? It looks like master is still .77

I am looking at line 29 of cppForSwig/Makefile, and it has "libpython2.6.a" in it.  Is this how you meant to do it? shouldn't this be dynamic based on the installed version or something?

When I run "make swig", it (expectedly) errors out with:
Code:
g++ -shared -lpthread  UniversalTimer.o BinaryData.o FileDataPtr.o BtcUtils.o BlockObj.o BlockUtils.o EncryptionUtils.o libcryptopp.a libpython2.6.a CppBlockUtils_wrap.o -o ../_CppBlockUtils.so
i686-apple-darwin11-llvm-g++-4.2: libpython2.6.a: No such file or directory
make: *** [swig] Error 1

I do have libpython2.7.a in "/usr/local/lib/python2.7/config/libpython2.7.a"  What is the proper way to put that in the Makefile?

Also, it would be really nice if the dependency directory was easy to change.  Something like a variable at the top of the file just like in the Satoshi client Makefile.  I'm always having to edit the Armory Makefile to change the paths to "/usr/local/include" for my Mac.

Ahh.  I was getting sick of compiling four different versions of Armory because of issues with the python versions.  So, I modified the makefile to statically compile it in so that the python-version on the user's computer would no longer matter.  Thus I won't have to split out different versions for python2.6 and python2.7 systems anymore.  

I didn't really want to do this, but I've also had so many complaints/crashes due to it, and python is small enough, that static compiling makes sense.  I see it doesn't come without consequences, though...

I'm really bad with makefiles, if you didn't notice.  However, it changes very rarely.  So you should be able to modify the Makefile once, and "git pull" the changes without overwriting it.  I suspect you're doing a fresh checkout everytime, but if you pull instead, it will merge the new version with the Makefile changes you've made.  It keeps the changes even when you switch between branches.

EDIT:  On that note I just tested the .deb compiled on my 10.04 machine on 12.04 -- it previously didn't work due to this python-version issue, but now it does!  I'm keeping it! 

EDIT2:  Let's compromise -- can you send me your Makefile with the modifications you would recommend?  At the moment I'd just be taking a shot in the dark, because I don't fully understand the variability of the environments you are in.  But I'll see what you're trying to do and I'll accommodate Smiley
hero member
Activity: 742
Merit: 500
June 17, 2012, 11:30:40 PM
What branch should I checkout? blkchainagain? It looks like master is still .77

I am looking at line 29 of cppForSwig/Makefile, and it has "libpython2.6.a" in it.  Is this how you meant to do it? shouldn't this be dynamic based on the installed version or something?

When I run "make swig", it (expectedly) errors out with:
Code:
g++ -shared -lpthread  UniversalTimer.o BinaryData.o FileDataPtr.o BtcUtils.o BlockObj.o BlockUtils.o EncryptionUtils.o libcryptopp.a libpython2.6.a CppBlockUtils_wrap.o -o ../_CppBlockUtils.so
i686-apple-darwin11-llvm-g++-4.2: libpython2.6.a: No such file or directory
make: *** [swig] Error 1

I do have libpython2.7.a in "/usr/local/lib/python2.7/config/libpython2.7.a"  What is the proper way to put that in the Makefile?

Also, it would be really nice if the dependency directory was easy to change.  Something like a variable at the top of the file just like in the Satoshi client Makefile.  I'm always having to edit the Armory Makefile to change the paths to "/usr/local/include" for my Mac.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 17, 2012, 10:14:51 PM
The current Armory version cannot parse transactions with inputs directly from mined coins. Maybe you could add that functionality? (For P2Pool payouts, etc.)

Also, like other users have said, it would be very useful to choose which coins you use for inputs to a transaction.

I actually took the time to fix the coinbase transactions, a long time ago.  But it seems that I re-broke it since then... and I've been too busy to investigate it.  I guess now is a good time to do it!  However, some unusual behaviors (mainly with unconfirmed balance) was fixed in 0.79.99.  Maybe that too?  Have you tested it with that version?  Either way, I'll go hunt down an address that is used to receive P2Pool coinbases and check it out.

Adding a coin-control feature won't be too difficult, but it affects transaction creation and sending, so I don't want to rush it.  I want time to be really careful, and give myself lots of time to play with it and test it, so it won't go into Beta.  But it will be one of the first things I add after Beta.

sr. member
Activity: 294
Merit: 250
Bitcoin today is what the internet was in 1998.
June 17, 2012, 09:38:53 PM
The current Armory version cannot parse transactions with inputs directly from mined coins. Maybe you could add that functionality? (For P2Pool payouts, etc.)

Also, like other users have said, it would be very useful to choose which coins you use for inputs to a transaction.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 17, 2012, 08:57:11 PM
Given that testing is going so smoothly, hopefully I'll have something to release this week!

I have a bunch of little things to do, but none of it will be major functionality -- mainly a "Help-->About" window, adding a couple buttons, cleaning up some dialogs, and some other general polishing.  And I need some time for folks to get back to me with any bugs/complaints.

I also want to spend some time developing user-documentation.  I expect a flurry of new users once Armory gets the official "Beta" tag, and thus I should be a little more prepared for that.  I don't want to delay the release just for that, but I also don't want to be unprepared for the new users.

Any last-minute requests for minor additions/improvements?  On my list I have: 

Help-->About window
Help-->Help link to webpage
Memory-pool-corruption prevention
Adding a "MAX" button
Labeling addresses in your wallets that were created for change
Fixing stretching/resizing of a couple windows
Update intro dialog and splash screen to match current capabilities (like warning about 3 min load times on XP!)








legendary
Activity: 1764
Merit: 1002
June 17, 2012, 08:16:46 PM
Armory works on Windows XP 32-bit!  Hell yeah!

That is all.  (32-bit .msi files coming soon)

EDIT:  Except I just noticed loading is slow as molasses...  3 min on my WinXP VM!  why does Windows hate me?

when will beta 0.8 come out?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 17, 2012, 06:50:49 PM
Armory works on Windows XP 32-bit!  Hell yeah!

That is all.  (32-bit .msi files coming soon)

EDIT:  Except I just noticed loading is slow as molasses...  3 min on my WinXP VM!  why does Windows hate me?
donator
Activity: 2772
Merit: 1019
June 17, 2012, 06:02:35 PM
Hello etotheipi,

The linux for the linux version 0.79.99 seems broken, can you please fix it?

Thank you
Raphy

I don't know why dropbox does that!  I removed and re-added the file and it works now.  Sorry about that!


Just use send-multi to spend the whole balance of that imported address. One output will be your desired destination address, another output will be your desired change address.
If you can forget to use send-multi from your brain wallet address, then you can equally forget to mark checkbox somewhere to use imported addresses only.

EDIT: in UI send-multi is probably called something like "Add another recipient"

Yes, this does work.  And I will be adding a "MAX" button that will fill in the maximum remaining amount (total balance minus values you've already plugged in for other recipients and fee).  It means you're moving your entire balance every time, but it doesn't actually make any difference (unless you care about the age of your coins).  In fact, it's probably better as it would always keep all your savings in a single address... 

I know that doesn't solve molec's problem, but it's something that always bothered me about other programs, that should be plenty easy to add.

Also, you could just make a paper backup of the offline wallet Smiley  


oh yeah, I did that now Wink

interlagos: thanks for the send-multi "trick", that's pretty cool.

I switched over to using a wholly different method now: I'm now using the strongcoin offline javascript stuff (slightly modded to add brainwallet sha256 calculation, so I don't even have to do that in the shell) to generate and sign a transaction (sending complete amount of one of the addresses) and inject that using http://bitsend.rowit.co.uk/.

I kindof like this method for it's simplicity and down-to-earthness.

I still use armory to view my little wealth in the watch-only wallet.

I just sent all my savings to my brain. It feels weird, but I feel very confident that I will be able to access it safely and that it wont get stolen.

thanks, guys for helping me with this not-so-easy (it does take balls to a certain extent and I was really nervous at times) process of moving my savings to a brainwallet.
hero member
Activity: 496
Merit: 500
June 17, 2012, 07:41:01 AM
... I will be adding a "MAX" button that will fill in the maximum remaining amount (total balance minus values you've already plugged in for other recipients and fee) ...

Great idea!
This will simplify management of imported brain addresses one step further.
hero member
Activity: 868
Merit: 1000
June 17, 2012, 07:38:42 AM
Thanks, I wil test it Smiley
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 17, 2012, 07:23:20 AM
Hello etotheipi,

The linux for the linux version 0.79.99 seems broken, can you please fix it?

Thank you
Raphy

I don't know why dropbox does that!  I removed and re-added the file and it works now.  Sorry about that!


Just use send-multi to spend the whole balance of that imported address. One output will be your desired destination address, another output will be your desired change address.
If you can forget to use send-multi from your brain wallet address, then you can equally forget to mark checkbox somewhere to use imported addresses only.

EDIT: in UI send-multi is probably called something like "Add another recipient"

Yes, this does work.  And I will be adding a "MAX" button that will fill in the maximum remaining amount (total balance minus values you've already plugged in for other recipients and fee).  It means you're moving your entire balance every time, but it doesn't actually make any difference (unless you care about the age of your coins).  In fact, it's probably better as it would always keep all your savings in a single address... 

I know that doesn't solve molec's problem, but it's something that always bothered me about other programs, that should be plenty easy to add.

Also, you could just make a paper backup of the offline wallet Smiley  


hero member
Activity: 496
Merit: 500
June 17, 2012, 06:38:09 AM
Just use send-multi to spend the whole balance of that imported address. One output will be your desired destination address, another output will be your desired change address.
If you can forget to use send-multi from your brain wallet address, then you can equally forget to mark checkbox somewhere to use imported addresses only.

send-multi...? will this work? How to select the source address?

forget checkbox: the "use imported addresses only" checkbox I have to set exactly once when I construct the wallet.


It works!
Create new armory wallet with just one imported address from your brain.
That will be your source address as there aren't any others.
When sending coins, add desired destination address first,
then "add another recipient" and choose your second brain address as a change.

EDIT: by the way, according to devs, you can even use your original source address as your change address that way, but I haven't tried it.

EDIT2: the only drawback of send-multi is that you have to manually calculate the change balance so that the whole source is spent, but that's hardly an obstacle.

EDIT3: from network perspective a regular transaction with change is a send-multi with two outputs, the only difference is that client forms it implicitly, but you can always make it explicit.
Also if you need to send more coins than one particular address has, then import several addresses with enough balance and use the same send-multi to spend the whole balance of that wallet.
hero member
Activity: 868
Merit: 1000
June 17, 2012, 06:35:11 AM
Hello etotheipi,

The linux for the linux version 0.79.99 seems broken, can you please fix it?

Thank you
Raphy

I think you will have to be more specific.

Sorry, I meant, the link to download the linux version seems broken Cheesy

Typo, my bad Smiley
donator
Activity: 2772
Merit: 1019
June 17, 2012, 06:32:37 AM
So I just destroyed 10 BTC (by my own stupidity). This is what I did:

on a offline machine, I generated 10 private keys using a brainwallet scheme, importet them into a fresh armory wallet and put the addresses and a watch-only version of the wallet onto a usb stick.

I then sent 20 BTC to one of the addresses using an online machine.

Then I constructed a transaction using the watch-only wallet that would send 10 BTC to an external address, signed it using the offline machine and deleted the wallet on the offline machine (I wanted to test losing the machine)! I wrongly figured I'd be safe, because I could always regenerate the private keys using my brainwallet scheme. Stupid, stupid, stupid.

I totally didn't think of the fact that armory would send the 10 BTC change to a newly generated address. In fact, I didn't think of the 10 BTC change at all at that point... so I fucked up and the 10 is gone. Well, lesson learned.

I'd really like to use a brainwallet scheme that doesn't require me to safekeep anything physical (assuming I'm magically transported to some other location, totally naked, and I want my coins)

Is it possible to have armory send the change to one of the existing imported addresses instead of to a newly generated one? Maybe a special wallet type could be made up (imported addresses only)?


Just use send-multi to spend the whole balance of that imported address. One output will be your desired destination address, another output will be your desired change address.
If you can forget to use send-multi from your brain wallet address, then you can equally forget to mark checkbox somewhere to use imported addresses only.

send-multi...? will this work? How to select the source address?

forget checkbox: the "use imported addresses only" checkbox I have to set exactly once when I construct the wallet.
hero member
Activity: 496
Merit: 500
June 17, 2012, 06:30:04 AM
So I just destroyed 10 BTC (by my own stupidity). This is what I did:

on a offline machine, I generated 10 private keys using a brainwallet scheme, importet them into a fresh armory wallet and put the addresses and a watch-only version of the wallet onto a usb stick.

I then sent 20 BTC to one of the addresses using an online machine.

Then I constructed a transaction using the watch-only wallet that would send 10 BTC to an external address, signed it using the offline machine and deleted the wallet on the offline machine (I wanted to test losing the machine)! I wrongly figured I'd be safe, because I could always regenerate the private keys using my brainwallet scheme. Stupid, stupid, stupid.

I totally didn't think of the fact that armory would send the 10 BTC change to a newly generated address. In fact, I didn't think of the 10 BTC change at all at that point... so I fucked up and the 10 is gone. Well, lesson learned.

I'd really like to use a brainwallet scheme that doesn't require me to safekeep anything physical (assuming I'm magically transported to some other location, totally naked, and I want my coins)

Is it possible to have armory send the change to one of the existing imported addresses instead of to a newly generated one? Maybe a special wallet type could be made up (imported addresses only)?


Just use send-multi to spend the whole balance of that imported address. One output will be your desired destination address, another output will be your desired change address.
If you can forget to use send-multi from your brain wallet address, then you can equally forget to mark checkbox somewhere to use imported addresses only.

EDIT: in UI send-multi is probably called something like "Add another recipient"
donator
Activity: 2772
Merit: 1019
June 17, 2012, 06:24:19 AM
Hello etotheipi,

The linux for the linux version 0.79.99 seems broken, can you please fix it?

Thank you
Raphy

I think you will have to be more specific.
hero member
Activity: 868
Merit: 1000
June 17, 2012, 06:03:19 AM
Hello etotheipi,

The linux for the linux version 0.79.99 seems broken, can you please fix it?

Thank you
Raphy
donator
Activity: 2772
Merit: 1019
June 17, 2012, 03:38:28 AM
So I'm testing my multi-address brainwallet further (got a large part of my savings on 3 of the addresses and 5 BTC for testing on one of them).

Now the goal is to move the 5 BTC (complete amount of that one address). I figured I could do the following:

  • 1) create a new wallet with ONLY this one address in it
  • 2) create a transaction that moves all the funds (5 BTC) from that address
  • 3) sign it offline and broadcast

it fails at step 1 because armory doesn't allow me to add an address to a wallet, only a private key (which I can't do on the online machine).

So I would have to use the offline machine, make a new wallet there with only that one private key, make a watch-only copy and use that?

Would it be possible to add a feature "add address to wallet" to make this a little easier?
Jump to: