etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 21, 2013, 02:39:14 PM Last edit: April 21, 2013, 07:53:52 PM by etotheipi |
|
Hi,
Just followed the exact instructions on the website to make an offline wallet wit ubuntu. Used the offline module (.sh) installer. But it gives me 2 broken packages/dependencies. Armory wont start.
Fresh install and second thing i did was running the installer, nothing more/nothing less..
Ubuntu 10.04-32bit was used.
Hope you can help me out.
When did you download it? I updated the offline bundles last night space because I mixed up the architectures.
|
|
|
|
demzie
|
|
April 21, 2013, 02:46:17 PM |
|
Yesterday So maybe i did missed your updated versions...Ill try again
|
|
|
|
demzie
|
|
April 21, 2013, 07:37:08 PM |
|
Works like a charm now! Thanks!
|
|
|
|
runeks
Legendary
Offline
Activity: 980
Merit: 1008
|
|
April 21, 2013, 10:36:58 PM Last edit: April 21, 2013, 11:34:41 PM by runeks |
|
I finally was able to build Armory on my Raspberry Pi. First I was met with the error described in this thread. make[2]: Entering directory `/home/pi/Desktop/Armory/BitcoinArmory/cppForSwig/cryptopp' g++ -DNDEBUG -O -g0 -native -template=no%extdef -c 3way.cpp g++: error: unrecognized option ‘-native’ g++: error: unrecognized option ‘-template=no%extdef’ make[2]: *** [3way.o] Error 1 make[2]: Leaving directory `/home/pi/Desktop/Armory/BitcoinArmory/cppForSwig/cryptopp' mv: cannot stat `libcryptopp.a': No such file or directory make[1]: *** [libcryptopp.a] Error 1 make[1]: Leaving directory `/home/pi/Desktop/Armory/BitcoinArmory/cppForSwig' make: *** [all] Error 2 Turns out that cryptopp 5.6.1 (which is included with Armory) has a bug in its Makefile that makes it detect the compiler on a Raspberry Pi as a CC Sun C++ compiler (I have no idea why that happens, but that's what seems to happen). Replacing the Makefile in cppForSwig/cryptopp with the GNUmakefile from cryptopp 5.6.2 fixes this issue. Next I was getting strange assembler errors from g++ like: {standard input}: Assembler messages: {standard input}:30102: Error: undefined local label `.L4803' {standard input}:30134: Error: undefined local label `.L4803' {standard input}:30159: Error: undefined local label `.L4803' {standard input}:30218: Error: undefined local label `.L4803' {standard input}:30219: Error: undefined local label `.L4803' {standard input}:30230: Error: undefined local label `.L4803' {standard input}:30249: Error: undefined local label `.L4803' g++: internal compiler error: Killed (program cc1plus) and {standard input}: Assembler messages: {standard input}:125264: Warning: end of file not at end of a line; newline inserted {standard input}:125645: Error: unknown pseudo-op: `.lpic43' and it turns out this was caused by the Pi running out of memory. Creating a 500 MB file in my home dir and mounting it as swap fixed that issue, as described here: http://www.roberteklund.org/projects/raspberry-pi#TOC-Installation1But now that I try to run Armory, I get the following error. Not sure how to deal with that. (ERROR) Traceback (most recent call last): File "BitcoinArmory/ArmoryQt.py", line 37, in <module> from armoryengine import * File "/home/pi/BitcoinArmory/armoryengine.py", line 825, in <module> LOGINFO(' CPU ID string : ' + SystemSpecs.CpuStr) AttributeError: 'DumbStruct' object has no attribute 'CpuStr'
Error in sys.excepthook: Traceback (most recent call last): File "/home/pi/BitcoinArmory/armoryengine.py", line 639, in logexcept_override sys.__excepthook__(type, value, tback) AttributeError: 'NoneType' object has no attribute '__excepthook__'
Original exception was: Traceback (most recent call last): File "BitcoinArmory/ArmoryQt.py", line 37, in <module> from armoryengine import * File "/home/pi/BitcoinArmory/armoryengine.py", line 825, in <module> LOGINFO(' CPU ID string : ' + SystemSpecs.CpuStr) AttributeError: 'DumbStruct' object has no attribute 'CpuStr'
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 21, 2013, 10:45:01 PM |
|
On the RPi, when you run python, what is the return value of "import platform; print platform.system(), platform.processor()" ? It looks like a completely unnecessary piece of code is causing the problem, though it looks to me that it should work if ".system()" returns "Linux" as I expect. Either way, that problem can be solved by finding the line: SystemSpecs = GetSystemDetails() Just add a single line before it, saying "raise". That will cause it to error out and set default/unknown for all those member variables. If the RPi registers as a different OS than the ones I look for already, that would be good to know!
|
|
|
|
opentoe
Legendary
Offline
Activity: 1274
Merit: 1000
Personal text my ass....
|
|
April 21, 2013, 11:08:01 PM |
|
So my Armory install is broke? I was the OP of the error that was coming up. I'm not really sure what I'm suppose to do. I didn't do any upgrades or make any changes. And I still have bitcoin in my Armory wallet. I don't know what you mean when you say run it with this argument or whatever. Can you be a bit more detailed?
Just uninstall your current Armory and install the new version, 0.88.1. That error you originally reported has been fixed. https://bitcoinarmory.com/get-armory/Then what happens with my wallet?
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 21, 2013, 11:10:12 PM |
|
So my Armory install is broke? I was the OP of the error that was coming up. I'm not really sure what I'm suppose to do. I didn't do any upgrades or make any changes. And I still have bitcoin in my Armory wallet. I don't know what you mean when you say run it with this argument or whatever. Can you be a bit more detailed?
Just uninstall your current Armory and install the new version, 0.88.1. That error you originally reported has been fixed. https://bitcoinarmory.com/get-armory/Then what happens with my wallet? The installation directory is completely separate from your home directory. All your wallets and settings will be untouched through a software upgrade. It's like that by design. The two never mix. Armory gets installed to: C:\Program Files (x86)\ArmoryArmory home directory: C:\Users\<username>\AppData\Roaming\Armory
|
|
|
|
runeks
Legendary
Offline
Activity: 980
Merit: 1008
|
|
April 21, 2013, 11:12:15 PM |
|
It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay!
|
|
|
|
opentoe
Legendary
Offline
Activity: 1274
Merit: 1000
Personal text my ass....
|
|
April 21, 2013, 11:12:21 PM |
|
So my Armory install is broke? I was the OP of the error that was coming up. I'm not really sure what I'm suppose to do. I didn't do any upgrades or make any changes. And I still have bitcoin in my Armory wallet. I don't know what you mean when you say run it with this argument or whatever. Can you be a bit more detailed?
Just uninstall your current Armory and install the new version, 0.88.1. That error you originally reported has been fixed. https://bitcoinarmory.com/get-armory/Then what happens with my wallet? The installation directory is completely separate from your home directory. All your wallets and settings will be untouched through a software upgrade. It's like that by design. The two never mix. Armory gets installed to: C:\Program Files (x86)\ArmoryArmory home directory: C:\Users\<username>\AppData\Roaming\ArmoryOk, understood. I'll give it a try.
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 21, 2013, 11:22:36 PM |
|
It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay! I see what's going on. It fails to set the CpuStr variable because platform.processor() is empty. I forgot to set a default value. I guess that will be fixed in the next release.
|
|
|
|
runeks
Legendary
Offline
Activity: 980
Merit: 1008
|
|
April 21, 2013, 11:33:40 PM |
|
It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay! I see what's going on. It fails to set the CpuStr variable because platform.processor() is empty. I forgot to set a default value. The reason it fails is because none of the lines in /proc/cpuinfo start with 'model name'. In GetSystemDetails() you look for lines that start with that string to determine the CPU model name. But this is the output of the Pi's cpuinfo: pi@raspberrypi ~ $ cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 7 (v6l) BogoMIPS : 464.48 Features : swp half thumb fastmult vfp edsp java tls CPU implementer : 0x41 CPU architecture: 7 CPU variant : 0x0 CPU part : 0xb76 CPU revision : 7
Hardware : BCM2708 Revision : 0002 Serial : 000000005691db1b
I guess that will be fixed in the next release. Will you consider using cryptopp 5.6.2 at some point too? This release supports GCC 4.7, while 5.6.1 supports only gcc 3.3 - 4.5. And it also fixes the compile issue on the Pi (as mentioned before) where the compiler is detected incorrectly. That would make it easier for people with Raspberry Pis to use Armory as an offline wallet.
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 22, 2013, 01:12:40 AM |
|
I see what's going on. It fails to set the CpuStr variable because platform.processor() is empty. I forgot to set a default value.
The reason it fails is because none of the lines in /proc/cpuinfo start with 'model name'. In GetSystemDetails() you look for lines that start with that string to determine the CPU model name. But this is the output of the Pi's cpuinfo: pi@raspberrypi ~ $ cat /proc/cpuinfo Processor : ARMv6-compatible processor rev 7 (v6l)
I guess that will be fixed in the next release. Will you consider using cryptopp 5.6.2 at some point too? This release supports GCC 4.7, while 5.6.1 supports only gcc 3.3 - 4.5. And it also fixes the compile issue on the Pi (as mentioned before) where the compiler is detected incorrectly. That would make it easier for people with Raspberry Pis to use Armory as an offline wallet. Good to know about the CPU "model name". Oh well. I really don't need it, I just need to add a default value for that completely informational-not-functional piece of code... I didn't realize there was a new release of Crypto++ recently. I will look into it. There was a bug in the old version that I had to manually fix, but it was so long ago, I don't remember what it was. I may have to do some git-blaming to figure it out. Honestly, I was hoping to just eventually release an offline bundle for the RPi. But I'm not sure if I can support that at this time. I finally have an RPi, but I haven't really had time to set it up. Maybe someone could help me figure out what is needed for the offline bundle...? (and a good way to set it up, like what image to install, etc)
|
|
|
|
oakpacific
|
|
April 22, 2013, 06:47:19 AM |
|
It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay! How is the speed? Acceptable I hope?
|
|
|
|
opentoe
Legendary
Offline
Activity: 1274
Merit: 1000
Personal text my ass....
|
|
April 22, 2013, 01:53:09 PM |
|
My Armory just stopped working. It crashes when trying to sync up. Before I start messing around with things, I would like which direction to go in? I do have bitcoin in my wallet. Please advise.
Faulting application name: Armory.exe, version: 0.0.0.0, time stamp: 0x49180193 Faulting module name: MSVCR90.dll, version: 9.0.30729.6871, time stamp: 0x4fee6073 Exception code: 0x40000015 Fault offset: 0x0005beae Faulting process id: 0x1f84 Faulting application start time: 0x01ce3cad710e53a1 Faulting application path: C:\Program Files (x86)\Armory\Armory Bitcoin Client\Armory.exe Faulting module path: C:\Windows\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.6871_none_50944e7cbcb706e5\MSVCR90.dll Report Id: 0edbb14d-a8a1-11e2-be93-180373e36d96 Faulting package full name: Faulting package-relative application ID:
Did you uninstall the previous version before installing the new one? At least, you can rerun the installer and choose "Repair Installation". Ok, my problem has been resolved per your instructions. I had to perform an uninstall first and not just a reinstall. I also like the way it loads the bitcoind daemon for me now. I don't have to run a separate program. Thanks.
|
|
|
|
runeks
Legendary
Offline
Activity: 980
Merit: 1008
|
|
April 22, 2013, 03:12:14 PM |
|
Honestly, I was hoping to just eventually release an offline bundle for the RPi. But I'm not sure if I can support that at this time. I finally have an RPi, but I haven't really had time to set it up. Maybe someone could help me figure out what is needed for the offline bundle...? (and a good way to set it up, like what image to install, etc)
Let me know if you want an image of my setup. It's just Raspbian (the official Raspberry Pi distro) with Armory installed. Nothing else. That way you can just dd the image to an SD card and pop it in to test it. It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay! How is the speed? Acceptable I hope? It's acceptable. Although there are some very long delays with 100% CPU usage. Especially when opening the "Print Paper Wallet" dialog. It takes like 15 seconds with 100% CPU usage. Anything related to viewing the root private key and chain code takes a long time (with 100% CPU usage). Building Armory itself took at least three hours. But this was mainly caused by having to use a swap file, because it ran out of memory.
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 22, 2013, 04:15:13 PM |
|
Honestly, I was hoping to just eventually release an offline bundle for the RPi. But I'm not sure if I can support that at this time. I finally have an RPi, but I haven't really had time to set it up. Maybe someone could help me figure out what is needed for the offline bundle...? (and a good way to set it up, like what image to install, etc)
Let me know if you want an image of my setup. It's just Raspbian (the official Raspberry Pi distro) with Armory installed. Nothing else. That way you can just dd the image to an SD card and pop it in to test it. It seems to return the correct value for platform.system() at least. pi@raspberrypi ~/BitcoinArmory $ python -i Python 2.7.3 (default, Jan 13 2013, 11:20:46) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import platform >>> print platform.system() Linux >>> platform.processor() ''
And putting in the "raise" as you say makes Armory start properly. Yay! How is the speed? Acceptable I hope? It's acceptable. Although there are some very long delays with 100% CPU usage. Especially when opening the "Print Paper Wallet" dialog. It takes like 15 seconds with 100% CPU usage. Anything related to viewing the root private key and chain code takes a long time (with 100% CPU usage). Building Armory itself took at least three hours. But this was mainly caused by having to use a swap file, because it ran out of memory. Ack, that's quite a long compile time! I didn't realize that it couldn't be compiled in the available RPi RAM. You have A or B pi? I guess I'll download the Raspbian image and take a shot at it... in a little bit. At the moment, I gotta focus on some other development activities. For the unlocking, there's not much you can do about it. Armory does a bunch of verification checks when unlocking to make sure there's no corruption. Although it takes a while, it's saved my bacon in a couple instances (and for other users) when it did actually find something was corrupted. This will prevent you from using a corrupted wallet and potentially using addresses that were based on a faulty chain calculation. The downside is that there's a lot of EC-multiply operations being performed when you unlock, which does take a while, especially on slower HW. I suppose you could run with a much smaller keypool on the offline computer, since it doesn't need any lookahead (because it's not looking anywhere for transactions). That would speed up unlocking in the short-term.
|
|
|
|
runeks
Legendary
Offline
Activity: 980
Merit: 1008
|
|
April 22, 2013, 04:51:55 PM |
|
Ack, that's quite a long compile time! I didn't realize that it couldn't be compiled in the available RPi RAM. You have A or B pi? I guess I'll download the Raspbian image and take a shot at it... in a little bit. At the moment, I gotta focus on some other development activities.
This was on rev A, so 256 MB RAM. I'm not sure if the rev B with 512 MB can do it without a swap file, that 2.3 MB CppBlockUtils_wrap.cxx isn't exactly light weight . cryptopp's dll.o also took quite a long time to build, compared to the previous files, so I suspect it started swapping there already. I'm sure if the Pi had 1 GB of RAM that compilation wouldn't take more than 10-ish times as long as on an x86 system. For the unlocking, there's not much you can do about it. Armory does a bunch of verification checks when unlocking to make sure there's no corruption. Although it takes a while, it's saved my bacon in a couple instances (and for other users) when it did actually find something was corrupted. This will prevent you from using a corrupted wallet and potentially using addresses that were based on a faulty chain calculation. The downside is that there's a lot of EC-multiply operations being performed when you unlock, which does take a while, especially on slower HW.
I suppose you could run with a much smaller keypool on the offline computer, since it doesn't need any lookahead (because it's not looking anywhere for transactions). That would speed up unlocking in the short-term.
It's not really a problem per se, since I can see that CPU usage is high (it's shown in the bottom right corner on the panel), so I know it's working. But it can become a usability problem if someone isn't aware that this is what is happening. You could just show the dialog immediately, without any content, and that "loading" animation showing, and do the calculations in the background, but yeah, I understand if that's not your highest priority right now.
|
|
|
|
chrisrico
|
|
April 22, 2013, 06:31:35 PM |
|
Ack, that's quite a long compile time! I didn't realize that it couldn't be compiled in the available RPi RAM. You have A or B pi? I guess I'll download the Raspbian image and take a shot at it... in a little bit. At the moment, I gotta focus on some other development activities.
I would highly recommend following the guide here to get a cross-compiler set up for the Pi. Compiling on the Pi itself seems like a form of masochism.
|
|
|
|
etotheipi (OP)
Legendary
Offline
Activity: 1428
Merit: 1093
Core Armory Developer
|
|
April 22, 2013, 06:33:52 PM |
|
Ack, that's quite a long compile time! I didn't realize that it couldn't be compiled in the available RPi RAM. You have A or B pi? I guess I'll download the Raspbian image and take a shot at it... in a little bit. At the moment, I gotta focus on some other development activities.
I would highly recommend following the guide here to get a cross-compiler set up for the Pi. Compiling on the Pi itself seems like a form of masochism. Oh yeah, I actually started doing that in a VM a month ago and totally forgot. I probably don't even have it anymore. I'll take another shot at it... That would certainly make the release process easier, to not have to outsource the compiling to a separate physical device.
|
|
|
|
QuantumFoam
Full Member
Offline
Activity: 200
Merit: 100
|Quantum|World's First Cloud Management Platform
|
|
April 23, 2013, 12:32:01 AM |
|
I've been trying to test the cold wallet functionality with a small 0.01 btc transfer, but it keeps not allowing me to send btc to the cold wallet without a fee. I thought if I waited a few days it would work since then there'd be over 120 confirmations on my recently transferred BTC, but it still isn't working. I tried up to 0.06 btc, but it's still not allowing without the transaction fee. The regular bitcoin client allowed me to send both 0.01 btc and 0.05 btc to my armory wallet without any fees. Not sure what the issue is?
|
|Quantum|World's First Cloud Management Platform on the Blockchain
|
|
|
|