Author

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

legendary
Activity: 1358
Merit: 1002
April 21, 2012, 09:21:09 PM
Except for the fact that you're not compiling, you may be right.

Also, what you mean by remove the dependency, is it completely removing it or changing it to libpython2.6?
It is a combination of C++ and Python, so it is compiled.

And yes, I do mean remove the dependency completely, so that it only depends on python-qt4 and python-twisted, not libpython. python-qt4 depends on an appropriate version of libpython anyway, so unless Armory requires a specific version of libpython (and it doesn't look it does, when compiled against python 2.7), there shouldn't be a problem.

Got it know.
The compile part I understood it wrong. Thought you were refering to the process you used but now that I read it again realized you were describing to etho what he should do. Sorry about that.
legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
April 21, 2012, 09:16:49 PM
Except for the fact that you're not compiling, you may be right.

Also, what you mean by remove the dependency, is it completely removing it or changing it to libpython2.6?
It is a combination of C++ and Python, so it is compiled.

And yes, I do mean remove the dependency completely, so that it only depends on python-qt4 and python-twisted, not libpython. python-qt4 depends on an appropriate version of libpython anyway, so unless Armory requires a specific version of libpython (and it doesn't look it does, when compiled against python 2.7), there shouldn't be a problem.
legendary
Activity: 3920
Merit: 2349
Eadem mutata resurgo
April 21, 2012, 08:22:53 PM
So out of interest, what is the basic strategy for Armory's physical handling of wallets?

Specifically;

1) are unencrypted private keys ever held on disk (or only ever in RAM)?

2) how are any old copies of wallet files that reside on disk at any point deleted/erased?
legendary
Activity: 1358
Merit: 1002
April 21, 2012, 08:20:06 PM
Except for the fact that you're not compiling, you may be right.

Also, what you mean by remove the dependency, is it completely removing it or changing it to libpython2.6?
legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
April 21, 2012, 07:55:57 PM
Any ideas on how I might create an all-in-one offline installation in Ubuntu?  For now, maybe I'll just "endorse" 10.04 32-bit, execute the offline package download on 10.04 and tar up all the dependencies into one downloadable thing. 

Well, you could include the dependencies, but the dependencies have dependencies of their own, so you have to include those, as well as their dependencies... If you keep going on like that you'll end up creating a whole distribution just for Armory. Which is a perfectly valid option, and probably a good idea if you want to ensure a completely secure software environment, but it's probably more effort than it's worth at this stage. Wink Other than that I don't think there's any way to guarantee that all the dependencies will be met without having to go online.

That's easy.  I create a fresh installation, then execute the offline-package-installation -- I select the two top-level dependencies in Synaptic and it collects the entire dependency tree for me.  When I select "Generate Download List", I get a wget-list of all 65 packages (it's 65 if I do the build-dependencies).  I run the script and zip it up the directory.  I think it's about 100 MB.  It's not small, but it's acceptable.  But it will be tied the particular distro I did it for...
100MB for an installer that's only guaranteed to work on one particular distro is easy? Shocked I think you would be better off creating a whole distribution. A distribution would definitely be the Right Thing for a one-step installation on an offline system, and it lets you do things like remove the network drivers to guarantee that it stays an offline system.

As for the python thing: check that you don't have both pythons on your system.  As I said before, even though 11.10 is python2.7, it did work with my 2.6 build, because it apparently has libpython2.6.so on it (no idea why).   Maybe I should try the other way:  build everything on 2.7 and it might work on lower...?
Code:
$ ls -d /usr/lib/*python*
/usr/lib/libpyglib-2.0-python2.5.so.0      /usr/lib/libpython2.6.so
/usr/lib/libpyglib-2.0-python2.5.so.0.0.0  /usr/lib/libpython2.6.so.1
/usr/lib/libpyglib-2.0-python2.6.so.0      /usr/lib/libpython2.6.so.1.0
/usr/lib/libpyglib-2.0-python2.6.so.0.0.0  /usr/lib/python2.4
/usr/lib/libpython2.5.so.1                 /usr/lib/python2.5
/usr/lib/libpython2.5.so.1.0               /usr/lib/python2.6
/usr/lib/libpython2.6.a
Nope. Just compile on 2.7, remove the libpython2.7 dependency, and see what happens. Hopefully there's someone else with python 2.6 who can confirm that I'm not going crazy.
legendary
Activity: 1764
Merit: 1002
April 21, 2012, 04:58:54 PM
that looks cool.  can't wait to try it out!
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 21, 2012, 04:45:42 PM


Teaser:

Gonna try to make this and URI handling part of Armory version 0.75.  And it will be the first version distributed with fully automated installers (with uninstallers), in both Linux and Windows.







legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 21, 2012, 08:29:12 AM
Any ideas on how I might create an all-in-one offline installation in Ubuntu?  For now, maybe I'll just "endorse" 10.04 32-bit, execute the offline package download on 10.04 and tar up all the dependencies into one downloadable thing.  

Well, you could include the dependencies, but the dependencies have dependencies of their own, so you have to include those, as well as their dependencies... If you keep going on like that you'll end up creating a whole distribution just for Armory. Which is a perfectly valid option, and probably a good idea if you want to ensure a completely secure software environment, but it's probably more effort than it's worth at this stage. Wink Other than that I don't think there's any way to guarantee that all the dependencies will be met without having to go online.

That's easy.  I create a fresh installation, then execute the offline-package-installation -- I select the two top-level dependencies in Synaptic and it collects the entire dependency tree for me.  When I select "Generate Download List", I get a wget-list of all 65 packages (it's 65 if I do the build-dependencies).  I run the script and zip it up the directory.  I think it's about 100 MB.  It's not small, but it's acceptable.  But it will be tied the particular distro I did it for...

As for the python thing: check that you don't have both pythons on your system.  As I said before, even though 11.10 is python2.7, it did work with my 2.6 build, because it apparently has libpython2.6.so on it (no idea why).   Maybe I should try the other way:  build everything on 2.7 and it might work on lower...?

legendary
Activity: 1358
Merit: 1002
April 21, 2012, 01:56:40 AM
Mistery?
legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
April 21, 2012, 01:34:15 AM
Ok, I removed the previous package. Instealled the new amd64-python2.7...
...and it works Smiley

As soon as I get some extra BTC in my wallet gonna throw you some for all the trouble.
After all I was the only one to complaint. Smiley

FYI, you're not going crazy.  I just tested the python2.6 package on a fresh install of 12.04 and it failed.  I had to recompile the package without the (= python2.6) in order to get it to install, and it appears that the dependency check is valid.  Argh!

So this means I will have to have 4 different packages for Ubuntu:  {i386, amd64}{python2.6, python2.7}.  Anyone who cannot use one of those packages can just follow the regular build-from source instructions:  they've been fairly unobtrusive so far, just needed the desktop icons.  If you're using a different distribution than one of the modern Ubuntus, your probably capable of checking your python version or compiling yourself (I'll list Ubuntu release versions with the packages).

What the Hell? If psy's not going then crazy, then perhaps I am:
Code:
$ sudo dpkg --force-depends -i armory_0.74-python2.7-1_amd64.deb
[sudo] password for foxpup:
Selecting previously deselected package armory.
(Reading database ... 154253 files and directories currently installed.)
Unpacking armory (from armory_0.74-python2.7-1_amd64.deb) ...
dpkg: armory: dependency problems, but configuring anyway as you requested:
 armory depends on libpython2.7; however:
  Package libpython2.7 is not installed.
Setting up armory (0.74-python2.7-1) ...
$ python --version
Python 2.6.6
$ python /usr/share/armory/ArmoryQt.py --nettimeout 10
********************************************************************************
Loading Armory Engine:
   Armory Version:       0.74
   PyBtcAddress Version: 1.00
   PyBtcWallet  Version: 1.35
Detected Operating system: Linux
   User home-directory   : /home/foxpup
   Satoshi BTC directory : /home/foxpup/.bitcoin/
   Satoshi blk0001.dat   : /home/foxpup/.bitcoin/blk0001.dat
   Armory home dir       : /home/foxpup/.armory/
Using settings file: /home/foxpup/.armory/ArmorySettings.txt
Loading wallets...
Number of wallets read in: 1
   Wallet (7FVyhG1d):     "Primary Wallet                    "    (No Encryption)
Internet connection is Available:  True
Satoshi Client is Available:       True
Loading blockchain
Attempting to read blockchain from file: /home/foxpup/.bitcoin/blk0001.dat
/home/foxpup/.bitcoin/blk0001.dat is 1165.64 MB
Syncing wallets with blockchain...
Syncing wallet:  7FVyhG1d
Loading blockchain took 56.7 seconds
Usermode: Advanced
Handshake finished, connection open!
Attempting to close the main window!
The python 2.7 version works absolutely fine with python 2.6! What's going on here? If it requires a specific version of libpython, why does this work? And yes, I did remove the version I already had prior to installing this one. But why does it work? I don't understand. Huh
legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
April 21, 2012, 12:40:32 AM
Any ideas on how I might create an all-in-one offline installation in Ubuntu?  For now, maybe I'll just "endorse" 10.04 32-bit, execute the offline package download on 10.04 and tar up all the dependencies into one downloadable thing. 

Well, you could include the dependencies, but the dependencies have dependencies of their own, so you have to include those, as well as their dependencies... If you keep going on like that you'll end up creating a whole distribution just for Armory. Which is a perfectly valid option, and probably a good idea if you want to ensure a completely secure software environment, but it's probably more effort than it's worth at this stage. Wink Other than that I don't think there's any way to guarantee that all the dependencies will be met without having to go online.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 11:15:51 PM
Ok, I removed the previous package. Instealled the new amd64-python2.7...
...and it works Smiley

As soon as I get some extra BTC in my wallet gonna throw you some for all the trouble.
After all I was the only one to complaint. Smiley

FYI, you're not going crazy.  I just tested the python2.6 package on a fresh install of 12.04 and it failed.  I had to recompile the package without the (= python2.6) in order to get it to install, and it appears that the dependency check is valid.  Argh!

So this means I will have to have 4 different packages for Ubuntu:  {i386, amd64}{python2.6, python2.7}.  Anyone who cannot use one of those packages can just follow the regular build-from source instructions:  they've been fairly unobtrusive so far, just needed the desktop icons.  If you're using a different distribution than one of the modern Ubuntus, your probably capable of checking your python version or compiling yourself (I'll list Ubuntu release versions with the packages).

Any ideas on how I might create an all-in-one offline installation in Ubuntu?  For now, maybe I'll just "endorse" 10.04 32-bit, execute the offline package download on 10.04 and tar up all the dependencies into one downloadable thing. 

legendary
Activity: 4542
Merit: 3393
Vile Vixen and Miss Bitcointalk 2021-2023
April 20, 2012, 10:14:33 PM
Also I tested your custom port version and tried a handful of 62,200 ports and it always gave that problem but 61,119 and below appear to work. No idea whats up with the 62200 and above.

Good to know!  Maybe I will choose a port that is in a more-normal range:  I assumed that picking a huge number would decrease the likelihood that any other program was using that port, but apparently not all systems like those big ports...

Any guidance on how I should select a port?  Bitcoin uses 8333 and 18333 (testnet)... how were those chosen and how did we know they weren't going to be consumed by other processes?
Ports in the range 1024-49151 are supposed to be registered with the IANA for a specific protocol, though in practice many protocols that use these port aren't registered (Bitcoin isn't registered, for example). The range 49152–65535 is designated for private or experimental purposes such as what you're doing, and doesn't need to be registered. How do you chose a port above 49151? You pick one at random and hope no-one else is using it. Easy. (This plan doesn't always work out so well for ports below 49152.) No idea why Windows doesn't seem to like ports above 61119; there's nothing special about them, as far as I know.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 09:55:59 PM
Also I tested your custom port version and tried a handful of 62,200 ports and it always gave that problem but 61,119 and below appear to work. No idea whats up with the 62200 and above.

Good to know!  Maybe I will choose a port that is in a more-normal range:  I assumed that picking a huge number would decrease the likelihood that any other program was using that port, but apparently not all systems like those big ports...

Any guidance on how I should select a port?  Bitcoin uses 8333 and 18333 (testnet)... how were those chosen and how did we know they weren't going to be consumed by other processes?

Any other comments about it working in Windows?  I'm curious if there's any continuing artifacts due to RAM-reduction.  It seems to work fine on my VM, but many others have reported issues I can't reproduce Sad
newbie
Activity: 47
Merit: 0
April 20, 2012, 09:50:19 PM
So I remember seeing you talking about adding the no forced transfer fee https://bitcointalk.org/index.php?topic=22434.100 into this. Are you still planning this? I spent many hours trying to compile that, but couldn't get it to work on windows and if you are planning on incorporating it sometime soon then I would be able to stop messing with it.

I believe, in that same discussion, I mentioned how it wasn't going to be possible until I get independent networking.  Because the default Satoshi client behavior rejects the zero-fee tx, and Satoshi is Armory's only link to the Bitcoin network.  There's no way around it without implementing something hack-y, or just waiting until I can get time to do independent networking.  Unfortunately, that may be a while...

However, Armory has the same fee rules programmed into it as the Satoshi nodes, so if you always set it to zero, and accept the recommended fee if it pops up, you're paying the minimum necessary to meet those rules.  Beyond that, there's not much I can offer you (other than a promise that it will be implemented when independent networking is).

Ah ok well thanks. Also I tested your custom port version and tried a handful of 62,200 ports and it always gave that problem but 61,119 and below appear to work. No idea whats up with the 62200 and above.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
April 20, 2012, 06:55:20 PM
So I remember seeing you talking about adding the no forced transfer fee https://bitcointalk.org/index.php?topic=22434.100 into this. Are you still planning this? I spent many hours trying to compile that, but couldn't get it to work on windows and if you are planning on incorporating it sometime soon then I would be able to stop messing with it.

I believe, in that same discussion, I mentioned how it wasn't going to be possible until I get independent networking.  Because the default Satoshi client behavior rejects the zero-fee tx, and Satoshi is Armory's only link to the Bitcoin network.  There's no way around it without implementing something hack-y, or just waiting until I can get time to do independent networking.  Unfortunately, that may be a while...

However, Armory has the same fee rules programmed into it as the Satoshi nodes, so if you always set it to zero, and accept the recommended fee if it pops up, you're paying the minimum necessary to meet those rules.  Beyond that, there's not much I can offer you (other than a promise that it will be implemented when independent networking is).
newbie
Activity: 47
Merit: 0
April 20, 2012, 06:47:48 PM
So I remember seeing you talking about adding the no forced transfer fee https://bitcointalk.org/index.php?topic=22434.100 into this. Are you still planning this? I spent many hours trying to compile that, but couldn't get it to work on windows and if you are planning on incorporating it sometime soon then I would be able to stop messing with it.
hero member
Activity: 742
Merit: 500
legendary
Activity: 1358
Merit: 1002
April 20, 2012, 11:52:21 AM
For reference, what OS are you running?

Ubuntu 12.04 x64

BTW, you planning on having Mac .dmg's?
Jump to: