Volatile UTXO databaseWhen you start client node for the first time, it will go trough the process of downloading entire bitcoin block chain and building the UTXO database. To speed up this process the database is not being flushed to disk as the block processing goes on.
The node only writes it to disk when either all the blocks are downloaded or when the node's shutdown has been requested from a user interface (e.g. text command 'quit' was given). If you kill the process or reboot the machine, you will loose all your hard worked UTXO changes! Therefore, to save the work as the new blocks are being processed, you should once for awhile quit the node and start it again. This BTW may also have a positive impact on memory consumption, allowing you to set up the node with less RAM (e.g. 13GB).
When the node is synchronized, it flushes UTXO database to disk once for awhile. Killing it then won't have such a bad consequences, as it will start with the most recently written version of the database and only apply the data from the blocks that came later.
Coinbase maturityAccording to the block chain protocol, generated coins can be spent only after 100 confirmations.
Users should be aware that fetching a wallet's balance from the client returns also immature coinbase transactions.
Because wallet has no way of knowing if a coinbase output is mature enough, it always considers it mature.
But be aware that the network will not accept your signed transaction until all of the mined coins that it is trying to spend get at least 100 confirmations.
Mining APIThe mining RPC API is experimental and had been implemented in March 2016 - long before the segwit support was added.
It was tested on Testnet3 and worked well, but only for one mining setup. It has not been used ever since then and at this moment shall be considered unusable.
If you are interested in using Gocoin node for mining, please contact me, so I can help you with any issues that may need resolving, before you start throwing any hash power onto it.