About two months ago, I started writing my own pool mining software from scratch using
Erlang and
CouchDB. After hundreds of hours of development, it has finally reached beta-quality and is hereby released open source to the public. ecoinpool moves ahead in a new direction, so I'd like to call it the next generation pool mining software.
Feature headlines- Configuration completely through the database
- No delays, no restarts, no polling, no SQL, no Java
- Host multiple chains at once (Bitcoin, Namecoin, Litecoin and Fairbrix)
- Merged mining supported for Bitcoin+Namecoin
- Fast internal work creation with getmemorypool
- Fault tolerant, self-restarting on crashes
- Live shares monitoring through the browser
- Prepares data for displaying statistics on the fly
- Integrated web frontend, yet usable in existing websites
- Built-in Block Monitor and Mini-Blockexplorer
- Scales across multiple servers
- Backwards compatibility layer to MySQL
Target audienceecoinpool tries both to be easy enough for solo-mining setups and scalable and fast enough for large pools with multiple servers around the world.
Main linksAbout this project and ErlangI always wanted to implement a large server project with the right tools. Erlang/OTP, a functional programming language and platform developed by Ericsson (nowadays open-source and community-driven), is the ultimate tool for this task. Some things that other languages or platforms can achieve only with tons of libraries are integrated right into the core language. Concurrency and inter-process communication are the pillars of Erlang, combined with a powerful pattern matching implementation which is typical for functional languages. Erlang is dynamically typed and allows reloading modules while the application is still running, allowing rapid development while reducing downtime to zero (if done correctly). A sophisticated error handling mechanism concludes this little features list.
Erlang has two things in common with Java: It is compiled to byte code and runs on a virtual machine. At this point the similarities end. Erlang requires only a fraction of Java's memory and CPU requirements and can scale from a single core desktop up to large clusters of multi-core servers. It has literally been built for that very reason. So, another part why I started this project is that a Java solution already exists and set the standard somewhat high. So I was wondering if I could write a software that can surpass it by using all of Erlang's powers against Java's weaknesses.
Other linksComing soonActually it is "sooner or later", because ecoinpool has already consumed lots of my free time and I got other things to do now.
- Remove requirement for CouchDB and integrate it's notification and replication features directly into ecoinpool
- Configurable shares logging, support for other data sources for configuration and workers
- More documentation
- Better web frontend for the Mini-Blockexplorer
- Include payout mechanisms in the software
- Support for an external Coinbaser
- Extend Block Monitor to a full Bitcoin client
Changelogv0.3.10 - Jan 3, 2012- Implemented the ebitcoin configuration frontend
v0.3.9 - Jan 1, 2012- Added support for Fairbrix (getmemorypool patch required)
- More dynamic block monitor/explorer to add new chains faster
v0.3.8 - Dec 31, 2011- Added support for Litecoin
- Slightly improved web interface
v0.3.7 - Dec 30, 2011Closing wordsSo far I have talked to wtfman/cuqa of btcserv.net (Germany) and Graet of ozco.in (Australia) and they said that they will give it a try within the next weeks. If you are a Bitcoin miner, better keep an eye on those pools.
ecoinpool is successfully running on
Elitist Jerks (LiteCoin), set up in cooperation with WKNiGHT (USA).
I'm looking forward to your feedback. If you have questions about some aspects of ecoinpool or need help with installing and setting up, feel free to contact me in #ecoinpool on Freenode.