Gocoin‎ > ‎

Known issues

Memory usage

The amount of required system memory for the online node is not something to be neglected.
At the other hand, having enough of it you should see this software performing better than any other full bitcoin node out there.

If you would like to decrease memory consumption, you can try any (or all) of the following tips.
Shut down your node, open your goconf.cfg file in a text editor and set:
  • NoCacheBefore to -1
  • GCPercTrshold to 25 or less
  • MaxCachedBlocks to 25 or less
Save the new config and start the client. 

No gcc compiler

The database engine uses some C code to optimize system memory usage. If you do not have a proper gcc compiler installed in your system, you will not be able to build it. To work around this issue copy file gocoin/lib/qdb/no_gcc/membind.go one folder up (overwriting the original gocoin/lib/qdb/membind.go).

Still, if you can make it, it is recommended to install gcc in your system, because it will decrease the node's memory usage.

Note: for Windows you will need mingw64. After installing it (before running "go build"), make sure that the path to gcc.exe is in the system's PATH.

Database locking problems

You must not run two instances of the client node at the same time, unless they would operate on a different database folders (running real-net and test-net nodes simultaneously is fine).

There is a built-in protection against running two clients which operate on the same database, but it has not been well tested.
That is why you should be careful and make sure by yourself to not execute a client more then once at the same time, because if there is something wrong with this protection mechanism, it will likely corrupt your database, meaning that you may need to re-download the entire block chain.

Moreover there is a known issue with the database locking on Linux, though rather a minor one.
If you do not shut down your node gracefully, next time you try to launch it, it will complain that the database folder is locked and refuse to start.
In order to fix it, you will need to remove the file it mentions.

Duplicate stealth addresses

If you add the same stealth address (same scan-key and same spend-key), but with different prefixes, to one or more of your wallets (including the ADDRESS file), the node will merge them into one stealth address with null prefix. This will likely cause a performance drop.

Coinbase maturity

According 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.
If you provide such coins to the gocoin wallet, the network will not mine your signed transaction until the coinbase inputs that you included inside it get 100 confirmations.

Possible unspent database corruption

Note: this issue has not been observed for a long time already.

Theoretically it may happen that sometimes when you kill a client node (instead of quitting it gracefully), the unspent outputs database gets corrupt.
In that case, when you start your node the next time, it will malfunction (i.e. panic or do not process any new blocks).

To fix this issue you need to rebuild the unspent database. In order to do this, start the client with "-r" switch (client -r).

The UTXO rebuild operation takes awhile, so it may be worth to have a backup of some recent version of this database.
Then you won't need to rebuild it all, but only the part that came after your backup.
What you need to backup is the entire folder named unspent4/, in gocoin's data folder.
Note: After you had recovered a backup, do not use "-r" switch.