Author

Topic: Armory - Discussion Thread - page 189. (Read 521829 times)

full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 13, 2012, 09:47:26 PM
Was able to complete a transaction successfully, so all is good.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 11, 2012, 10:25:44 PM
After deleting mempool.bin Armory opened up normally, no segmentation fault.

Fwhew!  I feel a lot better now.  Sorry I had you run through some unnecessary hoops. 

I know exactly what to do to prevent this in the future, and it should only take like 10 min to implement.  It will definitely be going into beta.

Thanks for being patient with me!
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 11, 2012, 10:17:09 PM
After deleting mempool.bin Armory opened up normally, no segmentation fault.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 11, 2012, 09:47:39 PM
I renamed both blk0001.dat and blkindex.dat, then started Bitcoin-qt.
Not resolved. Segmentation fault is still present after renewed download of blockchain.
Is there any call trace or debug I can pipe to a file and send to you?

Oh!  Try one thing:  delete /home/username/.armory/mempool.bin.  It's possible that file got corrupted on the power failure.  That would be a perfect explanation for this, and if that's it, I think I know how to fix it...

If you could get me what the stack looks like when it segfaults, that would be useful.  I don't know if it works, though, if the program was not compiled in debug mode.  I'll save the details of how to do that until I find out if the mempool.bin file is the culprit...
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 11, 2012, 09:37:40 PM
I renamed both blk0001.dat and blkindex.dat, then started Bitcoin-qt.
Not resolved. Segmentation fault is still present after renewed download of blockchain.
Is there any call trace or debug I can pipe to a file and send to you?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 11, 2012, 04:57:06 PM
Renamed blk0001.dat to blkdat0001.old then opened Bitcoin-QT received: Error in blockindex.dat
Is it safe to rename/delete that also?

It is safe to do that, but I have never needed to.  I wonder if it's related to the power failure...
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 11, 2012, 04:56:06 PM
Renamed blk0001.dat to blkdat0001.old then opened Bitcoin-QT received: Error in blockindex.dat
Is it safe to rename/delete that also?
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 11, 2012, 04:14:50 PM
Should I just delete or rename blk0001.dat until you figure something out?

Does Armory make a backup of the blk0001.dat, once on wallet creation then once every 7 days there after?
This might save some time troubleshooting bad .dat writes from catastrophic incidents.

Armory expects to use the same blk0001.dat file as is used by Bitcoin-Qt, and thus making a backup wouldn't really help much.  Personally, I'm not sure why Bitcoin-Qt works and Armory doesn't.  One day, when Armory is independent, I'll have a better chance of preventing this from happening.

If you don't mind, shutdown bitcoin-qt/d, delete/rename blk0001.dat, then restart bitcoin-qt/d and let it re-sync.  Then start Armory. If that doesn't resolve it, then I'll have to come up with something else...
full member
Activity: 196
Merit: 100
Web Dev, Db Admin, Computer Technician
June 11, 2012, 02:08:51 PM
Should I just delete or rename blk0001.dat until you figure something out?

Does Armory make a backup of the blk0001.dat, once on wallet creation then once every 7 days there after?
This might save some time troubleshooting bad .dat writes from catastrophic incidents.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 11, 2012, 01:47:38 PM
May I ask if there is a command-line mode for armory, either in Windows or Linux?

There's no RPC interface like bitcoind has, if that's what you're asking.  Instead, Armory was built off of armoryengine.py (and dependencies of that file in the same directory), which means that ArmoryQt.py is basically just a sequence of python-shell commands that could theoretically be run from the python shell.  Obviously, it's a lot of commands.

This means that there's nothing stopping you from opening a python shell, typing "from armoryengine import *" and then you have full access to everything that Armory does.  It's quite a bit lower-level than RPC interface, but if you're writing scripts that wants to leverage the blockchain scanning or wallet management, it can be done.  I have some sample code in the "BitcoinArmory/extras" directory.  Loading the blockchain, searching for balances and unspent-txouts, importing keys to wallets, etc.  You can create transactions, too, but they're a bit more complicated. 

It is in my plans to make a real RPC interface.  I just don't know when, yet.
legendary
Activity: 1792
Merit: 1111
June 11, 2012, 01:05:58 PM
May I ask if there is a command-line mode for armory, either in Windows or Linux?
hero member
Activity: 504
Merit: 500
Scattering my bits around the net since 1980
June 11, 2012, 04:49:54 AM
Could probably just make Armory check the binary's directory for a config file first, and if not found, then reference %appdata% for everything, and if found, then use the binary's directory as %appdata%.

This is how uTorrent works, in order to be portable on a removable drive.

-- Smoov
hero member
Activity: 812
Merit: 1000
June 11, 2012, 12:05:15 AM
you will probably still tell me that you don't want it, and I should still make it an option.

almost correct; you should do whatever suits you and your agenda.

i'm only telling you my preference, and don't expect you to code it that way just for me.

i would opt out, though.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 11:48:57 PM
you believe adding a particular thing to the windows registry is critical to the success of bitcoin, however it indirectly causes me not to want to use your software. i hope you can see the irony there.

in any case i don't expect you to redesign it around me, i'm just letting you know how i do things, and maybe there are others out there that do things the same way.

also, the 'leaving no trace' aspect is not so much about paranoia, but also about maintaining a clean and efficient pc.

anyway keep focusing on what's important to you, you're doing a great job with it so far!

cheers.

I understand your desire to have a clean and efficient PC, and that's why you shouldn't be bothered by this: it is completely benign.  It has no effect on any other program or system component except other Bitcoin programs, and only if that program was planning to be equally offensive (by modifying the same registry entry itself).

Additionally, I'm very concerned that the lack of the URI-handling feature (or a broken one) would cause users to overlook Armory in favor of other programs that do use it.  It's a very elegant feature that streamlines the entire philosophy of Bitcoin for all parties, especially new users.  I want to make sure that when the new user clicks that Bitcoin link, the app "Does The Right Thing" instead of popping up a cryptic error and/or application selection dialog.

With that out of the way:  you will probably still tell me that you don't want it, and I should still make it an option.  Well, I've written it down in my notebook.  Perhaps one day I'll get around to figuring out how to add an option for it (probably another command-line flag).

legendary
Activity: 4536
Merit: 3188
Vile Vixen and Miss Bitcointalk 2021-2023
June 10, 2012, 11:26:57 PM
I'm confused here. The only reason Armory uses the registry is to tell the operating system that it knows how to open bitcoin URIs, so that when you click on a bitcoin payment link you don't have to select what program you want to use to open it every single time, or worse, be confronted by an unhelpful error message saying you don't have any program on your computer that can open it even though you do. That hardly seems clean and efficient to me. The Windows registry exists for a reason, and while some programs pollute the registry by using it for purposes that are better served by configuration files, Armory isn't one of them, and it uses the registry for exactly the sort of thing the registry is supposed to be used for and nothing else.
sr. member
Activity: 312
Merit: 250
June 10, 2012, 09:55:22 PM
+ 1 for the ideal scenario described by payb.tc
hero member
Activity: 812
Merit: 1000
June 10, 2012, 09:46:35 PM
i realise you have to touch it in order to have that feature, but what i'm saying is that portable apps ideally shouldn't touch it for any reason, even for increased functionality.

my ideal scenario would be something like this:

u:\armory
u:\armory\armory.exe
u:\armory\armory.conf
u:\armory\data
u:\armory\data\armory_fjwe823_.wallet

where armory.conf includes something like:

datadir = ./data                  <--- no hardcoding of drive letter!!!

so i can theoretically plug in my 'armory usb stick', use the program, and then when i'm done unplug it without any trace of it left on the pc.

To be fair, "tracelessness" of Armory is not a goal of mine.  "Portability" is a feature I'm happy to support, but not at the expense of disabling what I believe to be critical functionality for the success of Bitcoin.  Supporting "I've never used Bitcoin/Armory in my life!" plausible deniability is not in my priority list.  No offense...

If I can figure out how to do it easily, I will try to make URI-registration optional.  But at the moment, it's tough to see beyond the impending doom of the upcoming blockchain file-splitting.

you believe adding a particular thing to the windows registry is critical to the success of bitcoin, however it indirectly causes me not to want to use your software. i hope you can see the irony there.

in any case i don't expect you to redesign it around me, i'm just letting you know how i do things, and maybe there are others out there that do things the same way.

also, the 'leaving no trace' aspect is not so much about paranoia, but also about maintaining a clean and efficient pc.

anyway keep focusing on what's important to you, you're doing a great job with it so far!

cheers.
legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 09:31:05 PM
i realise you have to touch it in order to have that feature, but what i'm saying is that portable apps ideally shouldn't touch it for any reason, even for increased functionality.

my ideal scenario would be something like this:

u:\armory
u:\armory\armory.exe
u:\armory\armory.conf
u:\armory\data
u:\armory\data\armory_fjwe823_.wallet

where armory.conf includes something like:

datadir = ./data                  <--- no hardcoding of drive letter!!!

so i can theoretically plug in my 'armory usb stick', use the program, and then when i'm done unplug it without any trace of it left on the pc.

To be fair, "tracelessness" of Armory is not a goal of mine.  "Portability" is a feature I'm happy to support, but not at the expense of disabling what I believe to be critical functionality for the success of Bitcoin.  Supporting "I've never used Bitcoin/Armory in my life!" plausible deniability is not in my priority list.  No offense...

If I can figure out how to do it easily, I will try to make URI-registration optional.  But at the moment, it's tough to see beyond the impending doom of the upcoming blockchain file-splitting.
hero member
Activity: 812
Merit: 1000
June 10, 2012, 09:19:19 PM
well, i'm not saying you have to spend time re-thinking everything for portable mode just for me, but in such a mode it shouldn't touch the registry whatsoever. any saved settings should be in config files in armory's own directory.

although, i'd be interested to hear if i'm alone in this use case or not.

You have to touch the registry to register an application as a URI-handler.  There's no way around that (that I'm aware of).  And that is the only thing I use the registry for.  Everything else is stored in settings files, as it should be;  in your "/Armory" directory.  




i realise you have to touch it in order to have that feature, but what i'm saying is that portable apps ideally shouldn't touch it for any reason, even for increased functionality.

my ideal scenario would be something like this:

u:\armory
u:\armory\armory.exe
u:\armory\armory.conf
u:\armory\data
u:\armory\data\armory_fjwe823_.wallet

where armory.conf includes something like:

datadir = ./data                  <--- no hardcoding of drive letter!!!
bitcoindir = z:/appdata/bitcoin

so i can theoretically plug in my 'armory usb stick', use the program, and then when i'm done unplug it without any trace of it left on the pc.

legendary
Activity: 1428
Merit: 1093
Core Armory Developer
June 10, 2012, 09:03:34 PM
well, i'm not saying you have to spend time re-thinking everything for portable mode just for me, but in such a mode it shouldn't touch the registry whatsoever. any saved settings should be in config files in armory's own directory.

although, i'd be interested to hear if i'm alone in this use case or not.

You have to touch the registry to register an application as a URI-handler.  There's no way around that (that I'm aware of).  And that is the only thing I use the registry for.  Everything else is stored in settings files, as it should be;  in your "/Armory" directory. 


Jump to: