# Config

The online node configuration file is named gocoin.conf
Client application looks for this file in the folder where it is being launched from.
The config file is in JSON encoded format, so the order of the fields does not matter, but their types do.

Filed name | Type | Default value (if not specified) | Description
Testnet | bool | false | Use testnet3 if true
ConnectOnly | string | "" | Connect only to this host/IP (and nowhere else)
Datadir | string | "%APPDATA%\Bitcoin\gocoin" or "~/.bitcoin/gocoin" | The data folder for the gocoin client node.
UserAgent | string | "" | Overwrite the string reported by the node as User-Agent in the version messages. When this value is empty, the defualt of /Gocoin:x.y.z/ is used.
UTXOSaveSec | uint | 0 | Delay writing of UTXO.db files to least at least so many seconds. 0 means dafault value, which is 5 minutes.
TextUI_Enabled | bool | true | Enable TextUI. You will want to disable text interface if you want to start the node as a daemon (with no stdin).
WebUI.Interface | string | "127.0.0.1:8833" | Bind WebUI server to this interface. Change it to ":8833" in order to allow external connections.
WebUI.AllowedIP | string | "127.0.0.1" | List of IP addresses that are allowed to access WebUI. Use "0.0.0.0/0" to let everyone in.
WebUI.ShowBlocks | uint32 | 144 | How many recent blocks to show at the Blocks page.
WebUI.AddrListLen | uint32 | 15 | How many addresses to show (at the same time) in the address book that pops up at MakeTx page.
WebUI.Title | string | "Gocoin" | Title of the WebUI window as seen in the browser.
WebUI.PayCmdName | string | "pay_cmd.txt" | The file name of the pay script command inside the payment.zip (created at MakeTx page). Depending on your platform, change .txt extension to .bat or .sh, if prefer convenience over security.
WebUI.ServerMode | bool | false | Enable mode in which a client cannot do certain things (e.g. change configuration).
Net.ListenTCP | bool | true | Accept incoming TCP connections.
Net.TCPPort | uint16 | 0 | Zero value means to use the default port, which is 8333 for main net and 18333 for test net. Note that the current satoshi client has a "feature" that causes it to refuse connecting to any TCP port other than default.
Net.MaxOutCons | uint32 | 9 | Maximum number of outgoing TCP connections.
Net.MaxInCons | uint32 | 10 | Maximum number of incoming TCP connections.
Net.MaxUpKBps | uint | 0 | Maximum upload speed in kilobytes per second. 0 means unlimited.
Net.MaxDownKBps | uint | 0 | Maximum download speed in kilobytes per second. 0 means unlimited.
Net.MaxBlockAtOnce | uint32 | 3 | When a new block appears, (up to) how many peers to ask for its data at the same time.
Net.MinSegwitCons | uint32 | 0 | Maintain at least so many connections to nodes indicating support for Segregated Witness (via bit 0x8 in Services).
TXPool.Enabled | bool | true | Enable memory pool (for transactions).
TXPool.AllowMemInputs | bool | true | Accept transactions with unconfirmed inputs to the memory pool.
TXPool.FeePerByte | uint64 | 20 | Required minimum fee per byte to accept a transaction to the memory pool.
TXPool.MaxTxSize | uint32 | 100000 | Maximum size of a transaction that would be accepted to the memory pool.
TXPool.MinVoutValue | uint64 | 0 | Required minimum value (checked separately for each output) to accept a transaction to the memory pool. 0 - no restriction.
TXPool.ExpireMinPerKB | uint | 1800 | If something is 1KB big, it expires after this many minutes. Otherwise expiration time will be proportionally different.
TXPool.TxExpireMaxHours | uint | 12 | Expire from memory pool any transaction that stays unconfirmed for so may hours.
TXPool.SaveOnDisk | bool | false | Save content of memory pool to disk on closing and load it on startup.
TXRoute.Enabled | bool | true | Enable routing of transactions (memory pool must be enabled as well).
TXRoute.FeePerByte | uint64 | 25 | Required minimum fee per byte to route a transaction.
TXRoute.MaxTxSize | uint32 | 100000 | Maximum size of a transaction that will be routed to other peers.
TXRoute.MinVoutValue | uint64 | 0 | Required minimum value (checked separately for each output) to route a transaction. 0 for no restriction.
Memory.GCPercTrshold | int | 100 | A threshold (in percent) to trigger Go's garbage collector engine.
Memory.MaxCachedBlks | uint | 200 | How many (recently used) blocks shall be kept in RAM.
Beeps.NewBlock | bool | false | Beep when a new block is added to the top of the chain (someone has mined a new one).
Beeps.ActiveFork | bool | false | Triple beep when there is a fork in the block chain.
Beeps.MinerID | string | "" | Beep when a new block appears with this string in the coinbase transaction. Empty string to disable.
AllBalances.MinValue | uint | 10000 | The addresses balance database does not include inputs carrying value lover than this many Satoshis.
AllBalances.UseMapCnt | int | 100 | Use hashmap instead of list for addresses that have this many (or more) unspent outputs.
AllBalances.SaveOnDisk | bool | false | Save content of the balances database to disk on closing and load it on startup.
DropPeers.DropEachMinutes | uint | 5 | How many minutes between disconnecting the slowest peers. 0 - never drop peers.
DropPeers.BlckExpireHours | uint | 24 | How many hours before blocks received from a peer "expire", in slowest peer calculation.
DropPeers.PingPeriodSec | uint | 15 | How many seconds between sending ping comand to a peer. 0 - do not ping.
Stat.HashrateHrs | uint | 12 | How many hours to look back for the hashrate calculation (the one shown on the home page of WebUI)
Stat.MiningHrs | uint | 24 | How many hours the mining statistics (at WebUI's Miners page) should look back.
Stat.FeesBlks | uint | 24 | How many block down the chain to look for calculating the current average transaction fee.
Stat.BSizeBlks | uint | 72 | How many block down the chain to look for calculating the current average block size.