From Bitcoin Wiki
PoolServerJ is a pure java implementation of a Bitcoin mining pool server. It’s functionally very similar to pushpoold. Although there are some differences it is capable of being swapped over with pushpoold without any config changes.
- Native merged mining support. Will work with standard bitcoind 0.5
- SCrypt blockchain support
- Customisable coinbase transaction (pay block rewards to any wallet perhaps an offline secure wallet)
- Internal work generation (more than 10x faster than rpc getwork)
- Work caching - caches work from bitcoind or internal WorkMaker to handle short term spikes in requests
- Database resilience. Server can keep running if database goes down and shares will be sent to database when connection is reestablished
- DoS resilience with QoS support to ensure workers who've submitted valid work are serviced with priority
- Capable of pulling work from multiple bitcoin daemons to get around the getwork bottleneck and also to provide some redundancy
- Notify of block change via HTTP to a user configurable URL to support event triggered share processing
- Cached database handling (optional) to reduce round trips.
- Supports Mysql, Postgresql, sqlite3 (JDBC based so others can be added easily - currently only tested on mysql)
- Runs as a Windows service
- Longpolling support
- Integrated block monitoring using all available bitcoin daemon work sources
- Dump shares to Database, log file or stdout
- Safe restart - shares issued to client are dumped to file on shutdown and reloaded on startup so your miners won't get stale shares if you restart a live server
- Only dependency is a Java 6+ JDK.