You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Con Kolivas 6ddba53ec8 Rudimentary changelog message 11 years ago
html web - index name changes 11 years ago
m4 Add gitignore to m4 11 years ago
pool php - disallow '.' or '_' in username 11 years ago
sql sql - remove old versions so you must start at v0.6 11 years ago
src Use int64_t lookups in uthash and fix some cosmetic errors with integers 11 years ago
.gitignore .gitignore binaries 11 years ago
AUTHORS Add AUTHORS 11 years ago
COPYING Add license 11 years ago
ChangeLog Rudimentary changelog message 11 years ago
Makefile.am Basic build infrastructure 11 years ago
NEWS Add basic files 11 years ago
README Begin documenting design and features in README 11 years ago
autogen.sh Basic build infrastructure 11 years ago
ckpool.conf Add sample ckpool.conf 11 years ago
ckproxy.conf Add sample ckproxy.conf 11 years ago
configure.ac Provide an option --without-ckdb to build ckpool without postgresql support 11 years ago

README

CKPOOL + CKDB + libckpool by Con Kolivas and Andrew Smith.

Ultra low overhead massively scaleable multi-process, multi-threaded modular
bitcoin mining pool, proxy, passthrough, library and database interface in c
for Linux.


LICENSE:

GNU Public license V3. See included COPYING for details.


DESIGN:

Architecture:
- Low level hand coded architecture relying on minimal outside libraries beyond
basic glibc functions for maximum flexibility and minimal overhead that can be
built and deployed on any Linux installation.
- Multiprocess+multithreaded design to scale to massive deployments and
capitalise on modern multicore/multithread CPU designs.
- Minimal memory overhead.
- Utilises ultra reliable unix sockets for communication with dependent
processes.
- Modular code design to streamline further development.
- Standalone library code that can be utilised independently of ckpool.
- Same code can be deployed in many different modes designed to talk to each
other on the same machine, local lan or remote internet locations.

Modes of deployment:
- Comprehensive pooled mining solution with a postgresql database interface.
- Passthrough node(s) that combine connections to a single socket which can
be used to scale to millions of clients and allow the main pool to be isolated
from direct communication with clients.
- Proxy nodes with a database that act as a single client to the upstream pool
while storing full client data of their own.
- Simple proxy without the limitations of hashrate inherent in other proxy
solutions when talking to ckpool.
- Simple pool without a database.
- Library for use by other software.

Features:
- Bitcoind communication to unmodified bitcoind with multiple failover to local
or remote locations.
- Local pool instance worker limited only by operating system resources and
can be made virtually limitless through use of multiple downstream passthrough
nodes.
- Proxy and passthrough modes can set up multiple failover upstream pools.
- Optional share logging.
- Virtually seamless restarts for upgrades through socket handover from exiting
instances to new starting instance.
- Configurable custom coinbase signature.
- Configurable instant starting and minimum difficulty.
- Rapid vardiff adjustment with stable unlimited maximum difficulty handling.
- New work generation on block changes incorporate full bitcoind transaction
set without delay or requiring to send transactionless work to miners thereby
providing the best bitcoin network support and rewarding miners with the most
transaction fees.
- Event driven communication based on communication readiness preventing
slow communicating clients from delaying low latency ones.
- Stratum messaging system to running clients.
- Accurate pool and per client statistics.
- Multiple named instances can be run concurrently on the same machine.