External (p2p network):
- discovers and connects to other nodes
- send and receive messages to and from other nodes
Internal:
- exposes RPC to pool software and to mAPI
- optional REST Interface can be enabled
External (stratum protocol):
- exposed API for ASIC Miners to connect and start mining block headers
- send jobs to ASIC Miners
- receive valid shares or valid block headers
Internal (MinerID):
- request coinbase document from MinerID in order to include it in coinbase transaction
- receive signed coinbase document (or coinbase2) from MinerID
External (mAPI public interface):
- expose mAPI calls to the public to advertise fee quote as well as receive transactions
- accept callback registrations for event notifications
- respond with fee quote and transaction responses (and Merkle Proofs)
Internal (Bitcoind RPC):
- connect to Bitcoind RPC to submit transactions
- receive transaction response (eg. txid)
- provide event notifications for double spends and Merkle Proofs.