Stratum server implementation based on Twisted
Project description
Description:
============
This is implementation of Stratum protocol for server and client side
using asynchronous networking written in Python Twisted.
Homepage: http://stratum.bitcoin.cz
Contact to main developer:
==========================
Email info at bitcoin.cz
Nickname slush at bitcointalk.org forum
Installation
============
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.
Configuration
=============
a) Basic configuration
Copy config_default.py to config.py
Edit at least those values: HOSTNAME, BITCOIN_TRUSTED_*
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:
#!/bin/bash
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'.
Startup
=======
Start devel server:
twistd -ny launcher.tac
Devel server *without* lowlevel messages of Twisted:
twistd -ny launcher.tac -l log/twistd.log
Running in production
=====================
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 ^ ?
============
This is implementation of Stratum protocol for server and client side
using asynchronous networking written in Python Twisted.
Homepage: http://stratum.bitcoin.cz
Contact to main developer:
==========================
Email info at bitcoin.cz
Nickname slush at bitcointalk.org forum
Installation
============
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.
Configuration
=============
a) Basic configuration
Copy config_default.py to config.py
Edit at least those values: HOSTNAME, BITCOIN_TRUSTED_*
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:
#!/bin/bash
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'.
Startup
=======
Start devel server:
twistd -ny launcher.tac
Devel server *without* lowlevel messages of Twisted:
twistd -ny launcher.tac -l log/twistd.log
Running in production
=====================
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 ^ ?
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
stratum-0.2.15.tar.gz
(31.2 kB
view details)
File details
Details for the file stratum-0.2.15.tar.gz
.
File metadata
- Download URL: stratum-0.2.15.tar.gz
- Upload date:
- Size: 31.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c09971cbfa136534de90d65221a71cde938c5ea96afe2943ed0e054e87cc18e3 |
|
MD5 | 29d2027bdbbc23fe74235a4f4e7368cd |
|
BLAKE2b-256 | 6de6e7b45f24fd81d5511fbc37cad448d1b0784d85e4d0fb511a918a0c0e36c2 |