- What is Bitcoin?
- What is Armory?
- What command-line options does Armory have?
- What if Armory stops being developed?
- How often should I backup?
- What Bitcoin Improvement Proposals (BIPs) does Armory supports?
- Will Armory work with full nodes other than Bitcoin Core?
What is Bitcoin?
Bitcoin is a decentralized peer-to-peer digital currency. Using cryptography and peer-to-peer networking, Bitcoin allows people to securely and nearly instantly transfer money to other people at a very low cost. The decentralized consensus mechanism ensures that everyone using Bitcoin follows the same rules. This prevents Bitcoin from being controlled by a central authority and prevents the counterfeiting of money.
Bitcoin is also a trustless system. There is no central authority to trust, in fact, no full node on the network trusts any other full node. Instead each node will verify every single block and transaction to ensure that the data it receives conforms to its own rules, which must be the rules that everyone else follows in order for that node to be a part of the network.
For more information, please visit https://bitcoin.org and https://www.weusecoins.com/.
What is Armory?
Armory is a Bitcoin wallet. It stores and protects the private keys necessary for you to spend Bitcoin. It keeps track of all of the Bitcoin that you have sent and received and allows you to spend Bitcoin with ease. Armory’s primary focus is for absolute security. The cryptographic schemes were chosen for their robustness and resistance to attack. The ability to use airgapped storage and cold storage allow for the best security we could think of, physical separation. Overall, Armory is designed to be the most secure Bitcoin wallet ever.
What command-line options does Armory have?
The Armory command line arguments are as follows:
-h, --help show this help message and exit
--settings=SETTINGSPATH
load Armory with a specific settings file
--datadir=DATADIR Change the directory that Armory calls home
--satoshi-datadir=SATOSHIHOME
The Bitcoin-Core/bitcoind home directory
--satoshi-port=SATOSHIPORT
For Bitcoin-Core instances operating on a non-standard
port
--satoshi-rpcport=SATOSHIRPCPORT
RPC port Bitcoin-Core instances operating on a non-
standard port
--dbdir=ARMORYDBDIR Location to store blocks database (defaults to
--datadir)
--rpcport=RPCPORT RPC port for running armoryd.py
--testnet Use the testnet protocol
--regtest Use the Regression Test Network protocol
--offline Force Armory to run in offline mode
--nettimeout=NETTIMEOUT
Timeout for detecting internet connection at startup
--interport=INTERPORT
Port for inter-process communication between Armory
instances
--debug Increase amount of debugging output
--nologging Disable all logging
--netlog Log networking messages sent and received by Armory
--logfile=LOGFILE Specify a non-default location to send logging
information
--mtdebug Log multi-threaded call sequences
--skip-online-check Go into online mode, even if internet connection isn't
detected
--skip-stats-report Does announcement checking without any OS/version
reporting (for ATI statistics)
--skip-announce-check
Do not query for Armory announcements
--tor Enable common settings for when Armory connects
through Tor
--keypool=KEYPOOL Default number of addresses to lookahead in Armory
wallets
--redownload Delete Bitcoin-Core/bitcoind databases; redownload
--rebuild Rebuild blockchain database and rescan
--rescan Rescan existing blockchain DB
--rescanBalance Rescan balance
--test-announce Only used for developers needing to test announcement
code with non-offline keys
--nospendzeroconfchange
All zero-conf funds will be unspendable, including
sent-to-self coins
--multisigfile=MULTISIGFILE
File to store information about multi-signature
transactions
--force-wallet-check Force the wallet sanity check on startup
--disable-modules Disable looking for modules in the execution directory
--disable-conf-permis
Disable forcing permissions on bitcoin.conf
--disable-detsign Disable Transaction Deterministic Signing (RFC 6979)
--enable-detsign Enable Transaction Deterministic Signing (RFC 6979) -
Enabled by default
--armorydb-ip=ARMORYDB_IP
Set remote DB IP (default: 127.0.0.1)
--armorydb-port=ARMORYDB_PORT
Set remote DB port (default: 9050)
--ram-usage=RAM_USAGE
Set maximum ram during scans, as 128MB increments.
Defaults to 4
--thread-count=THREAD_COUNT
Set max thread count during builds and scans. Defaults
to CPU total thread count
--db-type=DB_TYPE Set db mode, defaults to DB_FULL
--port=PORT Unit Test Argument - Do not consume
--verbosity=VERBOSITY
Unit Test Argument - Do not consume
--coverage_output_dir=COVERAGEOUTPUTDIR
Unit Test Argument - Do not consume
--coverage_include=COVERAGEINCLUDE
Unit Test Argument - Do not consume
--language=LANG Set the language for the client to display in. Use the
ISO 639-1 language code to choose a language. Options are
da, de, en, es, el, fr, he, hr, id, ru, sv. Default is en.
What if Armory stops being developed?
Because Armory is a desktop client, so long as you have a copy of the software and your wallet files, you will be able to spend your Bitcoin. Armory does not rely on any centralized service in order to spend Bitcoin. It will continue to function as it used to so long as there have not been many major consensus changes. Even if there are Armory may still work as it has no networking components and relies on Bitcoin Core for networking and consensus.
How often should I backup?
You should backup your wallet frequently, but only one backup is truly necessary. This is because Armory uses a deterministic wallet; all of the addresses are derived from a specific root algorithmically. This algorithm ensures that the same addresses are derived every time for a given root. This means that you only need to have one backup and you will be able to recover all of the addresses that you have every used from that wallet.
What Bitcoin Improvement Proposals (BIPs) does Armory supports?
Armory currently supports:
- BIPs 11, 13, and 16 for Pay-to-Script-Hash addresses and multisignature scripts
- BIP 14 for the protocol version and user agent string
- BIP 21 for the Bitcoin URI scheme
- BIP 31 for the pong network message
- BIPs 62 and 66 for Low-S and Strict DER signatures
- BIPs 141, 143, and 144 for Segregated Witness (Except for deployment)
There is planned support for:
- BIP 32 for Heirarchical Determinisitc wallets
Will Armory work with full nodes other than Bitcoin Core?
If the full node is based on Bitcoin Core, then yes. Otherwise, most likely not. 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.