You want to be mining at the tip of the blockchain, otherwise you risk losing the block you're mining as others will not include its digest in their header (and not base the blockchain through your block. it'd be just a leaf in the chain). So you need at least to be aware of the latest blocks. I believe this is achievable with client only. You'd get the block reward, but not the fees.
If you want the fees, you need to be aware of potential transactions; and also verify that these are valid (at pain of seeing your block be seen as invalid). So you need to receive that information.
Also if you want to publish a block you found, you need to not only listen to information but also publish it to others as well. So yeah, you kind of need to run an up-to-date full node to get both reward and fee.
Now, this does not mean that your miners need to be full nodes. These only need the block to be mined (digest of previous block, header, transactions, your public address to giver the reward to) and then they can vary the nonce at the end to start mining. But this block information has to be up quite to date, otherwise you're mining aimlessly. I've read that while switching to a new block, miner setups send block data empty of transactions to be mined: so as not to waste the few tenths of seconds it takes to upload new block data to miners.
So you can run an operation with a single central full node that sends blocks to individual miner devices.
If you want the fees, you need to be aware of potential transactions; and also verify that these are valid (at pain of seeing your block be seen as invalid). So you need to receive that information.
Also if you want to publish a block you found, you need to not only listen to information but also publish it to others as well. So yeah, you kind of need to run an up-to-date full node to get both reward and fee.
Now, this does not mean that your miners need to be full nodes. These only need the block to be mined (digest of previous block, header, transactions, your public address to giver the reward to) and then they can vary the nonce at the end to start mining. But this block information has to be up quite to date, otherwise you're mining aimlessly. I've read that while switching to a new block, miner setups send block data empty of transactions to be mined: so as not to waste the few tenths of seconds it takes to upload new block data to miners.
So you can run an operation with a single central full node that sends blocks to individual miner devices.