!! Obsolete, not maintanied - DO NOT USE !! I keep this repository alive and open for study and historical purposes only. It is no longer actively maintained (although there may be other forks that are still maintained).
This is implementation of Stratum protocol for server and client side using asynchronous networking written in Python Twisted.
Homepage: http://stratum.bitcoin.cz
Email info at bitcoin.cz Nickname slush at bitcointalk.org forum
Requirements: python 2.6 or 2.7 linux-based system (should work on Mac OS too, not tested)
Following instructions will work on Ubuntu & Debian*:
a) From GIT, for developers git clone git://github.com/slush0/stratum.git sudo apt-get install python-dev sudo python setup.py develop
b) From package, permanent install for production use sudo apt-get install python-dev sudo apt-get install python-setuptools sudo easy_install stratum
*) Debian don't have a 'sudo' command, please do the installation process as a root user.
a) Basic configuration Copy config_default.py to config.py Edit at least those values: HOSTNAME, BITCOINTRUSTED*
b) Message signatures For enabling message signatures, generate server's ECDSA key by python signature.py > signing_key.pem and fill correct values to SIGNING_KEY and SIGNING_ID (config.py)
c) Creating keys for SSL-based transports For all SSL-based transports (HTTPS, WSS, ...) you'll need private key and certificate file. You can use certificates from any authority or you can generate self-signed certificates, which is helpful at least for testing.
Following script will generate self-signed SSL certificate:
openssl genrsa -des3 -out server.key 1024 openssl req -new -key server.key -out server.csr cp server.key server.key.org openssl rsa -in server.key.org -out server.key openssl x509 -req -in server.csr -signkey server.key -out server.crt
Then you have to fill SSL_PRIVKEY and SSL_CACERT in config file with values 'server.key' and 'server.crt'.
Start devel server: twistd -ny launcher.tac
Devel server without lowlevel messages of Twisted: twistd -ny launcher.tac -l log/twistd.log
TODO: Guide for running twistd as a daemon, init scripts TODO: Loadbalancing and port redirecting using haproxy TODO: Tunelling on 80/443 using stunnel Any volunteer for this ^ ?