Hello, I am trying to learn how mining clients for crypto currencies work (specifically monero like the one found here https://github.com/fireice-uk/xmr-stak-cpu). What I would like do is what kind of exchange and interface is implemented between the mining client and pool. How does the client gather "work", what does this work/job look like and what the mining client does with it and how does it send it back? All references and tips welcomed.I am planning to create the client with Node.