helping armory find the correct bitcoin-qt directory on a ...

How to get Armory to use Bitcoin-Qt's block chain on OSX?

I have Bitcoin-Qt installed and synced on OSX Snow Leopard. When I open Armory, the status shown in the Dashboard area says "Preparing Database".
When I check out Armory Bitcoin Client > Preferences, I see that "Bitcoin-Qt/bitcoind management is not available on OSX".
Is it possible to get Armory to use Bitcoin-Qt's block chain on OSX, or will Armory need to download and verify a second, complete block chain?
edit: spelling
edit: It appears that Armory on OS X is configured by default to use the Bitcoin-Qt block chain. All I had to do is wait ~3 hours for synchronization.
edit: Bitcoin-Qt must be running at the same time as Armory. Shutting down Bitcoin-Qt will take Armory offline.
submitted by BobAlison to Bitcoin [link] [comments]

A Guide to Keeping Keys Offline Using Armory +rPi

Hi Redditors.
I am going to post in this thread my experiences in getting my Desktop (Debian) machine running Armory in watch-only mode, and coupling that with an offline Raspberry Pi (which holds my private keys) for signing the transactions previously made in watch-only mode.
I actually compiled Armory from source directly on my Pi. This guide is probably more for the bitcoin 'power user', as to run Armory online, and broadcast the signed transactions, you need to have a bitcoin full node running (bitcoind).
Basic requirements:
Aimed-for Setup:
I'll post the guide in digestible sections...

Section 1

I should begin by saying I installed source code from git, and got Armory to build the DB on my desktop initially, WITHOUT creating a wallet.. (This allowed me to debug what was going on a little!)
Go to Bitcoin.org, select Armory..
It leads to a Download from Git:
https://github.com/goatpig/BitcoinArmory/releases
Followed the procedure for Linux Debian verify code, compile, install, all straight-forward..
Began by running bitcoind, and telling Armory where to find it. This is the command I used, obviously it was all on one line and didn't include the arrows/explanations!:
python ArmoryQt.py \ --satoshi-datadir=/BlockChain/chain20180414/blocks \ # <-----(where my bitcoind blocks live) --datadir=/ArmoryDataDi \ # <-----(this is instead of ~/.armory) --dbdir=/ArmoryDataDidatabases # <-------(again, non std. place used for Armory's databases.. my choice.) 
So, on the Desktop, after the initial "build databases"
(NB the initial "Build Databases" took about 1.5h and my two CPUs were maxed the whole time, Temps up to 62C. Not ideal; Im not in a rush!)
I then wanted to import a watch-only wallet.
Before I did this, I took a full backup of the Armory data dir:
/ArmoryDataDi
(or ~/.armory in a default installation).
I'd hate to have to make Armory do another full sync with the bitcoind node!

Section 2

Next step: offline wallet (with Private Keys) is on a Raspberry Pi.
I downloaded the source and managed to compile it on the pi itself! :)
Though there were some gymnastics needed to setup the Pi.
My Pi is running Raspbian based on Wheezy.. quite old!
I did the following on the Pi:
apt-get update apt-get upgrade (<---took about an hour!) apt-get install autotools-dev apt-get install autoconf 
Then I followed the instructions exactly as I had done for my Debian Desktop machine, EXCEPT:
I had to increase the Pi's swap space. I upped it from 100Mb to 400Mb.
The compilation took 7 hours, and my poor SD card got a thrashing.
But after compilation, I put the Swap back to 100Mb and Armory runs ok with about 150Mb of memory (no swap needed).
Swap increase on the Pi:
use your favourite editor, and open the file /etc/dphys-swapfile
add/change the following line:
CONF_SWAPSIZE=400 
Then, REBOOT the Pi:
sudo shutdown -h -P now 
Once the compilation was done on the Pi, put the swap back, rebooted and created an Armory wallet.
I added manual entropy and upped the encryption 'time' from 250ms to 2500ms - since the Pi is slow, but I'll be happy to wait for more iterations in the Key Derivation Function.
Once the wallet was created, it obviously prompts you for backup.
I want to add a private key of my own (i.e. import), so don't do the backup until this is over.
I import my Private Key, and Armory checks that this corresponds to a Public Key, which I check is correct.
This is the point now where the Pi storage medium (e.g an SD card) has to be properly destroyed if you ever get rid of it.
I had thought that now would be a good time to decide if your new wallet will generate Segwit receiving addresses, and also addresses used to receive 'change' after a transaction..
But it seems Armory WON'T let you switch to P2SH-P2WPKH unless your Armory is connected to a node offering "WITNESS" service.
Obviously, my Pi is offline and will never connect to a node, so the following will not work on the Pi:
NB: I thought about setting this on the Debian "watch-only" wallet, but that would surely mean doom, as the Pi would not know about those addresses and backups might not keep them.. who knows...
So, end result:- no segwit for me just yet in my offline funds.

--If anyone can offer a solution to this, I'd be very grateful--

Section 3

Ok, now this is a good point to back up your wallet on the Pi. It has your imported keys. I choose a Digital Backup - and put it on a USB key, which will never touch the internet and will be stored off-site. I also chose to encrypt it, because I'm good with passwords..
NB: The Armory paper backup will NOT back up your imported private keys, so keep those somewhere if you're not sweeping them. It would be prudent to have an Armory paper backup anyway, but remember it will likely NOT help you with that imported key.
Now for the watch-only copy of the wallet. I want to get the "watch-only" version onto my Desktop Debian machine.
On the Pi, I created (exported to a USB key) a "watching-only" copy of my wallet.
I would use the RECOMMENDED approach, export the "Entire Wallet File".
As you will see below, I initially exported only the ROOT data, which will NOT capture the watching-only part of the Private Key I entered manually above (i.e. the public Key!).
Now, back on the Debian Desktop machine...
I stopped all my crontab jobs; just give Armory uninterrupted CPU/memory/disk...
I also stopped bitcoind and made a backup prior to any watch-only wallet being imported.
I already made a backup of Armory on my Desktop, before any wallet import.
(this was needed, as I made a mistake.. see below)
So on the Debian Desktop machine, I begin by firing up bitcoind.
my command for this is:
./bitcoind -daemon -datadir=/BlockChain/chain20180414 -dbcache=400 -maxmempool=400 

Section 4

I try running Armory like this:
(I'm actually starting Armory from a script - StartArm.sh)
Inside the script StartArm.sh, it has the line:
python ArmoryQt.py --ram-usage=4 --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
I know from bitter experience that doing a scan over the blockchain for a new wallet takes a looong time and a lot of CPU, and I'd like it to play nicely; not gobble all the memory and swap and run my 2xCPUs both at 100% for four hours...
So... I aim to run with --ram-usage=X and --thread-count=X
(For me in the end, X=1 but I began with X=4)
I began with --ram-usage=4 (<--- = 4x128Mb)
The result is below...
TypeError: cannot concatenate 'str' and 'int' objects 
It didn't recognise the ram-usage and carried on, crippling my Debian desktop PC.
This is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up, and it can take over 30 minutes just to exit nicely from bitcoind and ArmoryDB.
So, I ssh to the machine from another computer, and keep an eye on it with the command
"free -h" 
I'd also be able to do a "sudo reboot now" if needed from here.

Section 5

So, trying to get my --ram-usage command recognised, I tried this line (added quotes):
python ArmoryQt.py --ram-usage="4" --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
But no, same error...
Loading Armory Engine: Armory Version: 0.96.4 Armory Build: None PyBtcWallet Version: 1.35 Detected Operating system: Linux OS Variant : ('debian', '9.4', '') User home-directory : /home/ Satoshi BTC directory : /BlockChain/chain20180414 Armory home dir : /ArmoryDataDi ArmoryDB directory : /ArmoryDataDidatabases Armory settings file : /ArmoryDataDiArmorySettings.txt Armory log file : /ArmoryDataDiarmorylog.txt Do wallet checking : True (ERROR) ArmoryUtils.py:3723 - Unsupported language specified. Defaulting to English (en) (ERROR) ArmoryQt.py:1833 - Failed to start Armory database: cannot concatenate 'str' and 'int' objects Traceback (most recent call last): File "ArmoryQt.py", line 1808, in startArmoryDBIfNecessary TheSDM.spawnDB(str(ARMORY_HOME_DIR), TheBDM.armoryDBDir) File "/BitcoinArmory/SDM.py", line 387, in spawnDB pargs.append('--ram-usage=' + ARMORY_RAM_USAGE) TypeError: cannot concatenate 'str' and 'int' objects 

Section 6

So, I edit the Armory python file SDM.py:
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=4') #COMMENTED THIS, SO I CAN HARDCODE =4 # ' + ARMORY_RAM_USAGE) 
Running it, I now have acknowledgement of the --ram-usage=4:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=4 
Also, even with ram-usage=4, it used too much memory, so I told it to quit.
It took over 30 minutes to stop semi-nicely. The last thing it reported was:
ERROR - 00:25:21: (StringSockets.cpp:351) FcgiSocket::writeAndRead FcgiError: unexpected fcgi header version 
But that didn't seem to matter or corrupt the Armory Database, so I think it's ok.
So, I get brave and change SDM.py as below, and I make sure my script has a command line for --ram-usage="ABCDE" and --thread-count="FGHIJ"; the logic being that these strings "ABCDE" will pass the IF criteria below, and my hardcoded values will be used...
if ARMORY_RAM_USAGE != -1: pargs.append('--ram-usage=1') #COMMENTED THIS, SO I CAN HARDCODE =1 # ' + ARMORY_RAM_USAGE) if ARMORY_THREAD_COUNT != -1 pargs.append('--thread-count=1') #COMMENTED THIS, SO I CAN HARDCODE =1 #' + ARMORY_THREAD_COUNT) 
So, as usual, I use my script and start this with: ./StartArm.sh
(which uses command line:)
python ArmoryQt.py --ram-usage="ABCDE" --thread-count="FGHIJ" --satoshi-datadir=/BlockChain/chain20180414/blocks --datadir=/ArmoryDataDi --dbdir=/ArmoryDataDidatabases 
(this forces it to use my hard-coded values in SDM.py...)
So, this is the command which it reports that it starts with:
(WARNING) SDM.py:400 - Spawning DB with command: /BitcoinArmory/ArmoryDB --db-type="DB_FULL" --cookie --satoshi-datadir="/BlockChain/chain20180414/blocks" --datadir="/ArmoryDataDi" --dbdir="/ArmoryDataDidatabases" --ram-usage=1 --thread-count=1 
Again, this is where it gets dangerous; Armory can gobble so much memory and CPU that the windowing environment can cease up. So I ssh to the machine and keep an eye on it with:
"free -h" 

Section 7

So, on the Debian Desktop PC, I inserted the USB stick with the watch-only wallet I exported from the Pi.
Start Armory...
Import "Entire Wallet File" watch-only copy.
Wait 4 hours..
YAY!!!
After running Armory for about 30m, the memory usage dropped by 400m... wierd...
It took ~2 hours to get 40% completion.
After 3.5 hours it's almost there...
The memory went up to about 1.7Gb in use and 900Mb of Swap, but the machine remained fairly responsive throughout, apart from a few (10?) periods at the start, where it appeared to freeze for 10-30s at a time.
(That's where my ssh session came in handy - I could check the machine was still ok with a "free -h" command)
Now, I can:
Create an unsigned transaction on my Desktop,
Save the tx to USB stick,
Move to the Pi,
Sign the tx,
Move back to the Desktop,
Broadcast the signed tx.

Section 8

My initial Mistake:
This caused me to have to roll-back my Armory database, using the backup. so you should try to avoid doing this..
On the Pi, I exported only the ROOT data, which will NOT capture the watching-only part of the Private Key
It is RECOMMENDED to use the Digital Export of Entire Wallet File from the Pi when making a watch-only copy. If you just export just the "ROOT data", not the "Entire Wallet File", you'll have problems if you used an imported Private Key in the offline wallet, like I did.
Using the ROOT data text import, after it finished... my balance was zero. So,. I tried a Help->Rescan Balance (Restart Armory, takes 1minute to get back up and running) No Luck. Still zero balance.
So, I try Rescan Databases.. This will take longer. Nah.. no luck.
So, I tried again, thinking it might be to do with the fact that I imported the text "root data" stuff, instead of following the (Recommended) export of watching-wallet file.
So, I used my Armory backup, and wound back the ArmoryDataDi to the point before the install of the (zero balance) wallet. (you should not need to do this, as you will hopefully use the RECOMMENDED approach of exporting the "Entire Wallet File"!)
submitted by fartinator to Bitcoin [link] [comments]

A Noob Needs Help! Lost my Bitcoins when updating Armory?

Hi With the UASF coming, and me being completely clueless in terms of what I need to do in order to support it and not lose my little investment when it happens, I decided to update Armory (that's the wallet I've been using).
But doing so, I think I've f*cked up something in when it comes to directories. I remember changing the 100gb+ file to my HDD in the last version using --datadir in the Armory shortcut properties. Now I've done so again and I think I've changed something else or didn't do it correctly because when I started Armory I had no registered addresses or wallets and when I imported it via the paper backup I had made it displayed 0.0BTC.
How can I recover my money please? I've posted on BitcoinBeginners but nothing so far, and read through many (apparently) similar posts. No answer so far.
In the end it's not a lot of money but still I'd like to gain back access. thanks
submitted by edgar01600 to Bitcoin [link] [comments]

The latest version of the 64-Bit Armory Bitcoin Wallet (on Ubuntu) crashes after it finishes synchronisation, but before it does the scan. Any ideas?

It will reach the end of the sync, and then just exit/crash out, leaving bitcoin-qt running in the background.
I am running Armory off a small SSD & and bitcoin-qt off my main storage HDD. Could it be failing to allocate space to build the databases? with the terminal command:
armory --datadir="/media/username/HDD_name/FolderName/.armory/" 
submitted by slackermanz to Bitcoin [link] [comments]

Issue with Armory finding blockchain files.

Can anyone one give me a ELI5 on setting up Armory to look for the blockchain files in the new place I moved them to. I want to store them on an external hard drive to save space on my computer. Armory only says restart bitcoin armory "--satoshi-datadir=[path]" to notify Armory where to find them. Anybody able to walk me through this, I've been searching around but have not found any simplistic instructions. I got 4000 bits for you if can get me through it.
submitted by nappiral to Bitcoin [link] [comments]

helping armory find the correct bitcoin-qt directory on a mac

I relocated the bitcoin blockchain files to an attached sd card on a MBA - bitcoin qt works fine but Armory cannot locate them.
Armory is rather cryptic in this regard - "please restart Armory using the " --satoshi-datadir=[path]" to notify Armory where to find them"
What exactly is one to do - how does one restart Armory with this command ?
Appreciate the help :-)
submitted by ba7huersh2 to Bitcoin [link] [comments]

Bitcoind.exe in Armory crashes

Hi All,
Running Windows 8 64-bit, Armory v0.9.32-beta-85959b20d8, Core Bitcoin v0.10.2.
Armory loads up just fine, and using Process Explorer (Sysinternals tool), I am able to see ArmoryQT.exe as the parent thread with bitcoind.exe as one child thread (which has a conhost.exe child thread) and another child thread for guardian.exe (which also has a conhost.exe child thread) This is how it looks:
Now, as soon as I load Armory, the wallet consistency check passes and then it's stuck in "Initializing Bitcoin Engine" with no progress at all (just the rotating grey/green wheel) - then about 15 minutes later, I'll notice that the bitcoind.exe process and its child disappear. Guardian.exe is still running though.
Now, when I disabled Armory from controlling bitcoin, I can load Bitcoin-Qt.exe no problems, it syncs with the blockchain no issues, and Armory will phase in and out of being connected. Which is totally weird....like the rpc connection somehow gets lost and reconnects at random times. But, even when Armory shows it's connected, and Bitcoin-Qt.exe shows that's it's fully synced with the blockchain, it doesn't update any transaction info in Armory at all. Now, I can see in the blockchain that my last few transactions already have 38 confirmations, but Armory still shows that there are 0 confirmations and that the transaction hasn't hit the blockchain yet. Obviously this isn't true.
So, I turn to y'all for some help and guidance....I've scoured their forums, and I've tried all the suggestions, so I'm turning now to the trusted reddit community for some insight and help.
Any ideas?! I mean, I could probably just backup my wallet, uninstall both armory and bitcoin, then do a clean install, then wait a month for the blockchain to sync, but I'd prefer to have to avoid this if that's AT ALL possible.
Also, not sure if this is relevant, but even though the blockchain is synced, shortly before bitcoind.exe goes out of commission (only when run through Armory, bitcoin never crashes when loaded separately) the cpu % for that process spikes to about 45-70% for a few minutes, which sounds like it's processing headers and what not, and then just poops out.
I have a quad-core AMD A6-3600 - not the BEST but not the worst either....
Ok, help....please....
EDIT: formatting
submitted by shayaknyc to Bitcoin [link] [comments]

With the upgrade to Bitcoin Core 0.10 and Armory 0.93, why is there only one data directory setting?

In the old Armory version, there used to be two directory settings, one for bitcoin core (satoshi datadir) which specified where the blockchain data is stored, and one for Armory, which stores the Armory DB.
Looking at the settings for 0.93, I only see one option: for "Bitcoin Home Dir". Do I need to run Armory with command line options if I want to make sure the data is stored in D:\Bitcoin and D:\Armory, respectively?
submitted by dettonville to Bitcoin [link] [comments]

armory install question

I installed bitcoin-qt onto my G drive using -datadir, when i install armory i installed it on the G drive and pointed it to the bitcoin-qt directory but it still puts the database on my C drive in appdata. My C drive is a relatively small SSD that is almost full now, I would like to have the databases on the G drive. Is there a way to do this?
submitted by gaben67 to Bitcoin [link] [comments]

Armory Help

Hello, I am trying to setup Armory on a cloud server only from command line. I installed bitcoind, and cloned armoryd from git however, when trying to run python armoryd --supernode I get "(ERROR) armoryd.py:2981 - No wallets could be loaded! armoryd will exit." I tried running --satoshi-datadir=/home/armory/.bitcoin/ as well as creating a wallet using pywallet and putting it in the armory directory. Anyone knows how to bypass this?
submitted by hiir_m8 to Bitcoin [link] [comments]

How to install multiple qt coin wallets

If you want to store them in D:\BitcoinData then click on "Properties" of a shortcut to bitcoin-qt.exe and add -datadir=D:\BitcoinData at the end as an example: "C:\Program Files (x86)\Bitcoin\bitcoin-qt.exe" -datadir=d:\BitcoinData Start Bitcoin, now you will see all the files are created in the new data directory. Linux . By default Bitcoin will put its data here: ~/.bitcoin/ You need to do ... Node datadir: C:\Users\Adam\AppData\Roaming\Bitcoin\blocks Armory datadir: C:\Users\Adam\AppData\Roaming\Armory Armory dbdir: C:\Users\Adam\AppData\Roaming\Armory\databases Now let’s say your blockchain data is on an external drive, at “D:\Bitcoin” and you want your database dir on that drive as well, at “D:\ArmoryDB”. To achieve this, you want to create/modify the GUI config file in ... Armory directly reads from the block data files that Bitcoin Core and its forks produces. It also relies on the p2p network messages and the JSON-RPC server in order to communicate with Bitcoin Core. If the full node software does not use the same block data file format used by Bitcoin Core or does not support the same JSON-RPC functions, then it will not be compatible with Armory. Armory.exe –testnet –datadir=F:\Armory\testnet3 –satoshi-datadir=F:\Bitcoin. The problem is that Bitcoin-Qt expects the base bitcoin home directory, even for testnet, and will add the “testnet3” for you. If you specify F:\Bitcoin\testnet3, it will run in F:\Bitcoin\testnet3\testnet3. However, this wasn’t realized when initially setting up the code for processing arguments, and ... My Armory shortcut is now "C:Program Files (x86)ArmoryArmoryQt.exe" –datadir="e:/armory" –satoshi-datadir="e:bitcoin" The armory executables are on C: but the freaking huge blockchains are on my outboard E: drive for both Armory and BitcoinQT. Now my C: drive has space and I can install a wallet that does not require the blockchain, and a.

[index] [19105] [237] [6518] [525] [43253] [21825] [16694] [17010] [21989] [4361]

How to install multiple qt coin wallets

You may want to keep wallets on a USB stick or have multiple instances of the same coin but with separate wallets on the same computer. These simple instructions tell you how. It assumes you know ...

#