Implement novacoin mining support
[stratum-mining.git] / INSTALL
diff --git a/INSTALL b/INSTALL
new file mode 100644 (file)
index 0000000..e2b128c
--- /dev/null
+++ b/INSTALL
@@ -0,0 +1,100 @@
+Installation Instructions
+=========================
+
+Step 0: Install novacoind
+       It MUST be a recent version of novacoind
+       Set it up and start it!
+       Downloading the blockchain can take some time!
+
+Step 1: Install the stratum core
+       git pull https://github.com/slush0/stratum.git
+       sudo easy_install stratum
+         (or if using alternate python: sudo /usr/local/bin/easy_install stratum)
+
+Step 2: Pull a copy of the miner
+       git pull https://github.com/CryptoManiac/stratum-mining.git
+
+Step 3: Configure the Miner
+       cp conf/config_sample.py conf/config.py
+       make your changes to conf/config.py 
+       Make sure you set the values in BASIC SETTINGS! These are how to connect to novacoind 
+       and where your money goes! Please read comments carefully, this may be helpful.
+       
+Step 4: Run the pool
+       twistd -ny launcher.tac -l -
+       OR - using alternate python
+       /usr/local/bin/twistd -ny launcher.tac -l -
+
+You can now set the URL on your stratum proxy (or miner that supports stratum) to:
+http://YOURHOSTNAME:3333
+
+Novacoindd blocknotify Setup
+=========================
+Although scary (for me), this is actually pretty easy.
+
+Step 1: Set Admin Password
+       Ensure that you have set the ADMIN_PASSWORD_SHA256 parameter in conf/config.py
+       To make life easy you can run the generateAdminHash script to make the hash
+               ./scripts/generateAdminHash.sh <password>
+
+Step 2: Test It
+       Restart the pool if it's already running
+       run ./scripts/blocknotify.sh --password <password> --host localhost --port 3333
+       Ensure everything is ok.
+
+Step 3: Run bitcoind with blocknotify
+       Stop bitcoind if it's already running
+       bitcoind stop
+       Wait till it ends
+       novacoind -blocknotify="/absolute/path/to/scripts/blocknotify.sh --password <password> --host localhost --port 3333"
+
+Step 4: Adjust pool polling
+       Now you should be able to watch the pools debug messages for awhile and see the blocknotify come in
+       once you are sure it's working edit conf/config.py and set
+               PREVHASH_REFRESH_INTERVAL = to the same value as MERKLE_REFRESH_INTERVAL
+       restart the pool
+
+Database Setup
+=========================
+Table Creation: Tables are auto-created if they don't exist
+
+None:
+Well, this doesn't do anything, so there is nothing to set up
+
+Sqlite:
+THIS IS THE DEFAULT!
+Just set the file path in the config file (or keep the default.)
+Support for sqlite3 is built into recent python versions.
+A couple notes for Sqlite:
+       - Sqlite and threading/concurancy just doesn't work right for that reason it is disabled.
+       - Since threading is disabled, The server will "pause" when archiving happens, this will affect
+               your miners. However this will not happen often (24 hours after finding a share)
+
+Postgresql:
+1: Set up your parameters in the config file.
+2: Install the postgresql libraries in your os:
+       Redhat and the like:
+               yum install postgresql-libs postgresql-devel
+       Ubuntu and the like:
+               apt-get install postgresql postgresql-devel
+3: Install the python bindings
+       easy_install psycopg2
+
+Mysql:
+1: Set up your parameters in the config file.
+2: Install the postgresql libraries in your os:
+       Redhat and the like:
+               yum install mysql mysql-devel
+       Ubuntu and the like:
+               apt-get install mysql mysql-devel
+3: Install the python bindings
+       easy_install mysql-python
+
+Problems????
+=========================
+
+Is your firewall off?
+Is novacoind running?
+
+TODO: are there other problems?
+