This is a brain dump of information that might be useful. Hopefully it doesn't ramble too bad. Upfront warning that there is documentation, but it's not very complete and I think incorrect/out of date in places. That said the coding style is reasonably consistent (PEP8), commenting is ok, and logging is good.
SimpleCoin is split into 3 main packages:
- powerpool - A Python Gevent based stratum mining server. https://github.com/simplecrypto/powerpool
- simplecoin_multi - A Python Flask based web application that manages payouts and user interface. https://github.com/simplecrypto/simplecoin_multi
- simplecoin_rpc_client - A tool for running payouts on a remote server. This is the only way to run the payouts. Each coin should have a payout server with a wallet enabled, and a mining server with wallet disabled. They are recommended to be on separate machines.
The only modifications needed should be in powerpool, with some minor configuration changes in simplecoin_multi (for stats about the algo, etc).
Powerpool is broken into components which are described here: http://powerpool.readthedocs.io/en/latest/api.html. You will need to design a new JobManager instance, two reference implementations are here: https://github.com/simplecrypto/powerpool/tree/master/powerpool/jobmanagers. This is the code that handles creation of stratum jobs/block serialization etc.
Modifications will also be needed in the StratumServer component, supporting the different stratum commands for equihash.