/BitcoinArmory

Python-Based Bitcoin Software

Primary LanguageC++OtherNOASSERTION

################################################################################
#                                                                              #
#  Copyright (C) 2011-2014, Armory Technologies, Inc.                          #
#  Distributed under the GNU Affero General Public License (AGPL v3)           #
#  See LICENSE or http://www.gnu.org/licenses/agpl.html                        #
#                                                                              #
################################################################################

********************************************************************************
*
* Project:    Armory
* Author:     Alan Reiner
* Orig Date:  13 July, 2011
* Descr:      Armory is a full-featured Bitcoin client, offering a dozen 
*             innovative features not found in any other client software!
*             Manage multiple wallets (deterministic and watching-only), 
*             print paper backups that work forever, import or sweep private 
*             keys, and keep your savings in a computer that never touches 
*             the internet, while still being able to manage incoming payments, 
*             and create outgoing payments with the help of a USB key.
* 
*             Multi-signature transactions are accommodated under-the-hood 
*             about 80%, and will be completed and integrated into the UI soon.
*
*             ***Armory has no independent networking components built in.
*             Instead, it relies on on the Satoshi client to securely connect 
*             to peers, validate blockchain data, and broadcast transactions
*             for us.  Although it was initially planned to cut the umbilical
*             cord to the Satoshi client and implement independent networking,
*             it has turned out to be an inconvenience worth having. 
*             Reimplementing all the networking code would be fraught with bugs,
*             security holes, and possible blockchain forking.  The reliance
*             on Bitcoin-Qt right now is actually making Armory more secure!
*           
*
********************************************************************************
*
* Please take a moment to donate 1.0 BTC!   1ArmoryXcfq7TnCSuZa9fQjRYwJ4bkRKfv 
*
********************************************************************************
*
*
* Building Armory from Source:   
*    http://bitcoinarmory.com/index.php/building-armory-from-source
*
*
********************************************************************************
*
* Armory contains over 25,000 lines of code, between the C++ and python
* libraries.  This can be very confusing for someone unfamiliar with the 
* code (you).  Below I have attempted to illustrate the CONOPS (concept of 
* operations) that the library was designed for, so you know how to use it 
* in your own development activities.  There is a TON of sample code in
* the following three files:
*
*   [ C++    ]   cppForSwig/BlockUtilsTest.cpp
*   [ Python ]   unittest.py, extras/sample_armory_code.py
*
* But of course, sample code alone does not make great documentation.  I will
* attempt to provide reference info for everything else you need to know, here.
* For a list of library features, see the STATUS table in the README.  Note
* that all features with an X in either column are accessible in SWIG.
* 
********************************************************************************
*
*** Dependencies ***
 
   - Crypto++  
            Linux:   Install package "libcrypto++-dev"
            Windows: Download from "http://www.cryptopp.com/#download"

   - SWIG
            Linux:   Install package "swig"
            Windows: "http://www.swig.org/download.html"
            (MSVS: Copy swigwin-2.x directory next to cryptopp as "swigwin")

   - Python 2.6/2.7
            Linux:   Should be preinstalled...
            Windows: "http://www.python.org/getit/"

   - Python Twisted -- asynchronous networking
            Linux:   Install package 'python-twisted'
            Windows: "http://twistedmatrix.com/trac/wiki/Downloads"

   - PyQt 4 (for Python 2.X)
            Linux:   Install  "libqtcore4", "libqt4-dev" and "python-qt4"
            Windows: "http://www.riverbankcomputing.co.uk/software/pyqt/download"

   - qt4reactor.py -- combined eventloop for PyQt and Twisted
            All OS:   https://launchpad.net/qt4reactor
            Windows Only:  qt4reactor relies on pywin32 (for win32event module)
                        http://sourceforge.net/projects/pywin32/files/pywin32/

   - pywin32
   - py2exe
            (OPTIONAL - if you want to make a standalone executable in Windows)
            Windows: http://www.py2exe.org/