my bad, I was looking at the wrong blockchain.info tx, it works perfectly.
LOL. That's a relief! I almost had a mini freakout with all the bug reports rolling in.... ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) So one less thing to worry about, but still got quite a few things to investigate...
|
|
|
Ack, crisis! I knew this update wasn't going to go smoothly, but didn't expect this! I forgot to mention there is now a "--debug" option that should increase the amount of logger output. That will help with some of this, but not a ton... I'm still trying to figure out where best to put full-debug output without flooding the logfile unnecessary. using the latest armory, and sending extra coins to it. I sent a transaction of 41 btc to it (835ab86cb857cc2e87be487971f795994a45a3f0304262d30aa64c595f7fab07) a few minutes ago, 6 confirmations later it doesn't even show up in armory, I also transferred 1 btc to it from my phone, nada. Whats up?
BadBitcoin, which version are you using? The testing version or 0.81, or older? Did you restart Armory since then? Don't worry, your coins are safe, just something bizarre happened. If you're using the latest, can you email me your log file? There would have to be some error messages in there... Version 0.82.1, Windows 64 bit version, starts OK for me. But after loading the blockchain, it freezes for like 5 minutes and looks like it's not going to start. After that, it seems to run OK. Yet to try doing transactions with it though... This is super weird... it looks like it froze for 5-7 minutes while checking for the new version update. That doesn't seem right, because the timeout is set to 2 sec, and even so, it shouldn't freeze for that long. Can you verify for me that is the problem? Go to Help-->"Armory Versions...". See how long it takes to open. Then click on "Never agian". then restart Armory. How long does it take? Now do it again but click "OK" (which re-enables notifications), and restart it. I definitely need to add more logging calls to this code!
|
|
|
Ack, I wonder if switching python versions somehow messed up my MSI builder. I wouldn't notice on my machine because I have python installed already (thus python27.dll), but most people won't...
I'll look into this...
|
|
|
Version 0.82.1This version doesn't look a whole lot different, but it now creates an $(ARMORY_HOME_DIR)/armorylog.txt file which contains a ton of python logging information. I couldn't redirect C++ output to file very easily, but most problems to date have been resolved through the python messages/errors. I touched a ton of different pieces of code, and this needs some serious testing. Help me out! And if there's mysterious problems, use "File->Export Log File..." to create a copy of the log file to send me! Feel free to check the log and tell me if what you think of the information it contains (and remove any info before sending). Also added a version check. There's a fake updated version so that you can see the pop-up it shows you and how it displays info. I'll be removing the fake version before I actually release this version. You can see a full changelog by going to "Help-->Armory Versions..." Windows 64-bit installerWindows 32-bit installerLinux 64-bit Debian packageLinux 32-bit Debian packageFor those of you compiling from source: version 0.82.1 is the "logger" branch.
|
|
|
Ack! I'm not sure what happened, but it looks like python 2.7.3 might have some mild differences in the interpreter, causing Armory program to crash Armory is throwing a core dump on 12.04-32bit (2.7.3 is fine). I'll have to investigate a bit more before I can release it ![Sad](https://bitcointalk.org/Smileys/default/sad.gif)
|
|
|
Cool, you really do seem to have a passion to make Armory to be the best! I'll give the testing release for windows 0.82.1 a try later this weekend.
Armory development combines every single one of my best skills, and has been an extraordinary learning experience. I don't want to sound selfish, but I really made Armory for myself... It just so happens that other people like it, too I was not happy with a lack of python interfaces to the Bitcoin network, wallets that have to be backed up regularly, not being able to segregate funds into different wallets, not being able to import keys, lack of wallet encryption (when I started a year ago). And most of all, I wanted offline wallets without having to execute 37 command-line calls to move the coins. These were things I knew how to do, and much of it is still sparse in the Bitcoin ecosystem. I'll have 0.82.1 out soon. However, much of it is the same as 0.82, I just added logging and version checking (and a few bug fixes). But it will dramatically improve the bug-report process, to be able to export a log file and send it to me. Up until now, when someone sees a crash in Windows, there is exactly zero information available for me to figure out what happened. I figured this was a good feature to get in before Beta, since there will probably be a flurry of new users, and lot of bug reports. On that note... I know beta has been pushed back and back and back.... but I gotta get it loading faster or else I think a lot of users will be turned off. Unfortunately, the first load will always be slow, but having to have Bitcoin-Qt open and wait 1-5 minutes is a bit much for some folks. And once I do it... I'll feel like this is a complete program!
|
|
|
Thank you very much for deciding to upgrade the python library for the Windows release.
I didn't totally understand the security advisory either. But when it says anything about disclose potentially sensitive information, when an app like Armory is using it, not totally understanding the advisory makes me uncomfortable!
I really like using Secunia PSI (freeware) because it is always finding software with known vulnerabilities published by the authors, & a lot of the time, the software doesn't upgrade or the automatic upgrade fails. I highly recommend it for people using their computers to do bitcoin.
Traderjoe, This is excellent information. Thanks so much! If you hadn't mentioned anything, I wouldn't have known that a program exists that matches known vulnerabilities with software you are running. That's a great idea. I was just about to put out a testing release for 0.82.1. I haven't compiled yet, but I have upgraded the Windows python installation, and will see if I can upgrade Linux python without hosing my system. Worst case, the Linux versions won't be "patched", but I don't think it is a real issue anyway. Maybe I can find a VM/OS that has 2.7.3 natively (12.04...?) Thanks! UPDATE: Ubuntu 12.04 comes with 2.7.3 by default. So I'll start compiling my linux versions on that. Then I don't have to risk breaking my development system!
|
|
|
I am receiving a security alert for the python 2.7.2150.1013 library that Armory installed. Here is the advisory: http://secunia.com/advisories/48347/Does anybody know how to upgrade the python library my armory is using to 2.7.3 without breaking anything? (Unless the developer already has done that on the latest release). I'm not sure I totally understand this. The security vulnerabilities seem to be unrelated to any of the python features that Armory is using. Obviously, I will upgrade, though, before the next release. I compiled on windows using 2.7.2, and Linux with 2.6.5. I will upgrade windows to 2.7.3 and release 0.82 with it. Upgrading python on Linux could be a little tricky/risky... I'm going to have to try it in a VM first
|
|
|
I included the URL because many users would prefer to copy and paste
Is "right-click > copy link" an option? I don't mean that they prefer to copy and paste manually, but that they prefer to know what page/URL they are supposed to go to, and can enter it manually if they want.
|
|
|
After reading the document - it appears to use a seed key generated by a random number generator, and NOT A PASSPHRASE which most people seem to expect and want.
Randomized passphrases can be converted to memorable objects via changing the "alphabet". Seeds are 16 bytes -- which means 16 base-256 characters. This can be converted to a passphrase by changing it to base-80,000, where 80,000 is number of words in your dictionary. Thus you can re-represent a 16-byte seed with approximately 8 such words from your dictionary. This is what Electrum does. And I think I'll do something similar in Armory (at the moment, Armory uses 64 bytes for the root key/code, which would be about 30 words, which would be a bit much... so that's why I don't do it right now/yet).
|
|
|
This is why I prevent Armory from opening twice. Wallet operations are not threadsafe. Not at all!
However, one benefit of python-twisted is that it is guaranteed to run as a single-thread, so as long as there is only one instance of Armory, it's perfectly safe.
For your purposes, not using python-twisted, need to do something else. Actually, I would recommend using python-twisted to create a server/daemon process to handle (serially) all requests for wallet interaction. Make sure everything goes through that interface. The wallet design has been remarkably robust (I even test it with mid-write interrupts and it recovers fine). But as you can see, two simultaneous operations can break it pretty easily.
|
|
|
Oh, I see. In that case:
first dialog:
A "Get the latest version" link would be more concise than the whole "Please visit ... (http...) to get ..." bit. Do you need to write out the URL when you already provide a link? Does the link have to have 'index.php/' in it? That's kind of ugly. Maybe a mod_rewrite rule could get rid of that part for you.
"through the update process" is superfluous.
second dialog:
"may be considered sensitive *by* some users"
I included the URL because many users would prefer to copy and paste an obviously-correct URL into their browser, instead of clicking on a link (and/or they can look at the URL after clicking and verify it's the right place). This is especially relevant because this software may be protecting tens of thousands of dollars, I want to make sure I end up in the right place. I know, there's a billion ways that someone who injected code into Armory could cause havoc... but it's really for peace of mind of the security sensitive user. Arguably, it's completely unnecesary, but I prefer it. However, I'll see if I can remove the index.php part... Thanks for the grammar checking, too. I'll update that when I get home.
|
|
|
For reference, Armory wallets are the equivalent of a single "wallet chain" in the BIP 32 diagram. It has the same properties -- address generation possible from public key and chaincode. The difference is that Armory wallets must produce addresses in order, whereas BIP 32 can produce any address in the chain with only the root of that chain.
This design is a lot more flexible than the current Armory wallets: it gives the user an option to not just have a deterministic wallet, but make new wallets deterministically from the root. It's a little extra work (interface-wise), but it will be nice to have the option of creating a new node inside your wallet tree (the one you've already backed up on paper in your safe), or start a new tree for a new wallet (so that if one is compromised, the other isn't).
I will be upgrading Armory wallets at the same time that Bitcoin-Qt upgrades to this (or a similar idea). It will be nice to finally have a natively-compatible wallet algorithm between programs!
|
|
|
Suggestions?
OK / Okay - pick one. And do the keyboard shortcut letter underlining thing on all dialog buttons. Is that what you meant? I'm not sure I understood the question. Good call on Ok/Okay. And underlines... I have a tendency to be overly verbose, and of course I know what I am trying to do, but it's not always clear to others. In this case, these dialogs have a lot of text, and I want to make sure it makes sense. If I have a lot of words, they need to be good words ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) The first one (versioning) -- Armory now checks the github repo for versions.txt, and pops up this window on load if your version is older than the latest. The second window is under File-->Export Log File. I just wanted to make sure that users were aware of what information is in the log file before they send it to me.
|
|
|
Hah! I didn't even notice this thread. I'll offer lots of advice for you... Most importantly, checkout extras/sample_armory_code.py. That has a lot of details about how to load the blockchain and access address balances. Constructing transactions isn't so obvious, but it's do-able. I'm kinda swamped this month, but I'm subscribed now and will provide tips on using the armoryengine.py where I can. Btw, I did intend for armoryengine.py + _CppBlockUtils.so/.dll/.pyd to be a nice standalone, full-featured library. I'm pretty sure that all the ArmoryQt.py and qtdialogs.py code only uses armoryengine.py, but does not expand it (thus, anything that Armory does, you can do with just those files). There's no JSON interface yet, but I think I can add it... P.S. -- The dependencies for just armoryengine+cppBlockUtils is: build-essential swig python-dev python-twisted
All of it is in the Ubuntu repos. Doing this in Windows is far from easy, but I'm pretty sure the original instructions posted 6 months ago still work.
|
|
|
Suggestions?![](https://ip.bitcointalk.org/?u=http%3A%2F%2Fdl.dropbox.com%2Fu%2F1139081%2Fscreenshot_versioncheck.png&t=663&c=TezEn8Ap6lFJqA) ![](https://ip.bitcointalk.org/?u=http%3A%2F%2Fdl.dropbox.com%2Fu%2F1139081%2Fscreenshot_export_log.png&t=663&c=Gzr53yhE0y01ZA)
|
|
|
This is what deterministic wallets are for. I hope the main devs are putting some priority on that. (on a side note, I also want to upgrade my own wallet format in Armory and want to match the new Satoshi client wallets... if they ever get upgraded)
I am of the opinion that anything that requires persistent actions from the user will lead to failure. Even fairly diligent users make mistakes -- they set up their backup drive once, but drive lettering gets switched for some reason and backups stop working, and the user is too lazy or doesn't even realize it needs to be corrected. "Oh what's this error? Eh, I'll deal with it later.". Alternatively, for fear of losing your wallet, you backup to tons of different places, all the time, to be totally sure you got it, and now your wallets are scattered all over the place, and who knows if you can even find the latest one when you need it. That can be a mess to sort out. Not to mention a security issue to have your wallets everywhere...
I bet improper backups of non-deterministic wallets will lead to many more users losing coins than any online hacking/theft. Yet, it's completely avoidable. Use a deterministic wallet. Back it up once, forever. Never worry again.
On that note... @Gavin, any idea for when this might be implemented in Bitcoin-Qt?
|
|
|
Switching to the dev branch didn't work, but I'm not really sure if it actually downloaded it either. (my linux knowledge is still fairly limited) However I found some of the comments on github https://github.com/etotheipi/BitcoinArmory/issues/6, switched the .a to .so, and now it works. ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Thanks! When you checkout a new branch, nothing actually is downloaded. Or rather, it was already downloaded when you cloned the repo the first time, and switching to it only copies a couple files around. Even for myself, sometimes the instant branch-switching makes me wonder if it actually did anything ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif) Interesting that that was the solution... I guess Fedora doesn't come with static python libraries. *.so was the old way of doing it, but I ran into too many problems, so that's why I changed it. I didn't realize some distros would be missing the *.a file... Hope it's working out for you now! And by the way, I just sent out your USB key ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
|
|
|
[quote author=take5 link=topic=56424.msg1025540#msg1025540 date=1342103784] Well it seems like I forgot to make swig, but now when I do that I get this: ... g++: error: /usr/lib/libpython2.7.a: No such file or directory make: *** [swig] Error 1
Which is strange since I've never had a problem with python before and I haven't used it outside of Armory in quite awhile. I'll try reinstalling it and see what happens. edit: I reinstalled all the python packages, but I'm still getting the same error. For some reason I always seem to have these issues with Fedora. Okay, so this was a bug in 0.81 (for those who don't use Ubuntu). Do a "git checkout dev" to switch to the dev branch, which is 0.82. It's fairly well tested but not officially released. Then make again. The makefile should work that time.
|
|
|
Not sure what's happening, but I get this error every time I try to start Armory. Traceback (most recent call last): File "ArmoryQt.py", line 2439, in <module> form = ArmoryMainWindow() File "ArmoryQt.py", line 343, in __init__ self.loadBlockchain() File "ArmoryQt.py", line 1110, in loadBlockchain BDM_LoadBlockchainFile() File "/home/evan/BitcoinArmory/armoryengine.py", line 898, in BDM_LoadBlockchainFile return TheBDM.parseEntireBlockchain(blkdir) File "/home/evan/BitcoinArmory/CppBlockUtils.py", line 1238, in <lambda> __getattr__ = lambda self, name: _swig_getattr(self, BlockDataManager_MMAP, name) File "/home/evan/BitcoinArmory/CppBlockUtils.py", line 51, in _swig_getattr raise AttributeError(name) AttributeError: parseEntireBlockchain
However this is the first real problem I've ever had with Armory Have you upgraded recently? Do you compile it yourself? There's a suspicious error in that output that looks like you are either using pre-0.80, or you upgraded the code base but didn't recompile it. Versions prior to 0.80 did not handle the blockchain splitting at 2 GB. That split happened yesterday, and all older versions of Armory will no longer work (well, offline mode will still work). So far, all similar complaints have been users who hadn't upgraded, and no one who has upgraded has complained to me yet. So I'm betting this is it ![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
|
|
|
|