Mining is still a murky concept to me. Mining, as I understand it, is used to verify and secure unconfirmed transactions. Based on what I've read, for Bitcoin it seems to mean that when a transaction occurs it is unconfirmed until a new block is verified. My assumption has always been that the block is not "written" until both unconfirmed transactions are in the queue AND a block has been "mined" with a bundle of unconfirmed transactions.
I have a small use case where I think a private blockchain would be useful but I can't address a potential problem that mining might create. My client owns three stores that redeem vouchers produced by a government entity. Each voucher has a unique id that can only be redeemed once. I wrote a traditional web app with a centralized database that among other things keeps track of whether a certain voucher has already been redeemed or not in order to prevent fraud.
This works fine until the internet connection goes out. It's infrequent but wreaks havoc when it occurs since the cashier can not start a new transaction. I know there several different ways to address this issue but after downloading multichain it seems like an elegant, fault tolerant solution despite the fact that this use case doesn't meet all the requirements outlined in "Avoiding the pointless blockchain project" blog post.
The reason why I ask whether mining is necessary is that after completing the "getting started" example, it seems as if once you start mining it continues despite having no transactions to confirm. In my current use case, we try to minimize client hardware costs which includes minimizing the size of the hard drive and the "ghost mining" seems to just take up more and more hard drive space for no current purpose.
I know you can change the difficulty of the hash that needs to be solved so blocks are mined less frequently but is there a setting where mining only occurs when an unconfirmed transaction is present? While acknowledging ignoring one of the most important features of a blockchain and maybe its applicability, do you need mining at all in this use case?