- 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.
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
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
There is planned support for:
- BIP 32 for Heirarchical Determinisitc wallets
- BIPs 141, 143, and 144 for Segregated Witness
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.