# Node configuration

## Data structure#

By default, the database and configuration files for the Iron Fish node are created in the ~/.ironfish directory.

The file structure is composed of the following:

[Iron Fish Node]
├── accounts
...└── default
├── config.json
├── internal.json
└── databases
...└── default

Configuration files can be edited by the commands described here. Accounts can be edited by the commands described here

You can change the working directory by passing the flag --datadir when running a command. Doing so will require you to sync the node again with the network.

## List of configuration options#

ElementDescription
accountNameDefault account to use with the CLI
blockGraffitiWhen mining, value to set on the graffiti field of new blocks. Truncated to 32 bytes
bootstrapNodesList of addresses to connect to when launching the node
databaseNameDefault name for the database
editorPath for the default code editor for the config file
enableListenP2PEnable the WebSocket listen server
enableLogFileEnable logging to a file
enableMetricsEnable internal metrics collection (required for status command)
enableMiningDirectorEnable distribution of mining jobs to miners
enableRpcEnable the RPC server
enableRpcIpcEnable the RPC to be served on IPC
enableRpcTcpEnable the RPC to be served on TCP
enableSyncingEnable syncing of the Iron Fish blockchain
enableTelemetryEnable anonymous telemetry collection
generateNewIdentityGenerate a new identity at start-up
getFundsApiHTTP URL for the Faucet API
ipcPathPath for the RPC IPC directory
isWorkerSet an Iron Fish node as a worker
logLevelLog level of the node. Log levels can be applied to tagged logs, e.g. *:warn,tag:info
logPrefixString to be prefixed to all logs. If any of the following strings are included, will replace them with the corresponding value: %time%, %level%, %tag%
maxPeersThe maximum number of peers to which the node can be connected at a time
minPeersThe minimum number of peers to which the node should be connected at any time
minerBatchSizeThe number of hashes processed by miner per worker request
miningForceForce mining
nodeNameName of the node to be broadcasted to peers (optional)
nodeWorkersThe number of threads to use for workers. A value of -1 will use the maximum possible amount of threads.
p2pSimulateLatencyRandomly delay outbound messages up to this value
peerPortPort on which to host the WebSocket listen server
poolNameName to use for mining pool (optional)
rpcTcpHostAddress to connect to when establishing an RPC connection
rpcTcpPortPort to connect to when establishing an RPC connection
targetPeersThe ideal number of peers we'd like to be connected to. The node will attempt to establish new connections when below this number.
telemetryApiHTTP URL for the Telemetry API