Configure your node
Data directory
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]
├── config.json
├── internal.json
└── databases
...└── chain
...└── wallet
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.
Configuration files can be edited by the commands described here.
Configuration
To change configuration of your node, you can do so from the command line using the config:set command.
For example, if you wanted to change the number of confirmed blocks necessary to calculate your balance, you could do so with:
ironfish config:set confirmations 3
Options
Element | Description |
---|---|
blockGraffiti | When mining, value to set on the graffiti field of new blocks. Truncated to 32 bytes |
bootstrapNodes | List of addresses to connect to when launching the node |
broadcastWorkers | Broadcast worker nodes |
confirmations | The minimum number of block confirmations needed when computing account balance |
customNetwork | Path to a JSON file containing the network definition of a custom network |
databaseMigrate | Enabled database migration |
editor | Path for the default code editor for the config file |
enableListenP2P | Enable the WebSocket listen server |
enableLogFile | Enable logging to a file |
enableMetrics | Enable internal metrics collection (required for status command) |
enableRpc | Enable the RPC server |
enableRpcHttp | Enable the RPC to be served on HTTP |
enableRpcIpc | Enable the RPC to be served on IPC |
enableRpcTcp | Enable the RPC to be served on TCP |
enableRpcTls | Enable the RPC to be served on TLS |
enableSyncing | Enable syncing of the Iron Fish blockchain |
enableTelemetry | Enable anonymous telemetry collection |
explorerBlocksUrl | URL for viewing block information in a block explorer |
explorerTransactionsUrl | URL for viewing transaction information in a block explorer |
feeEstimatorMaxBlockHistory | Max blocks to calculate transaction fee estimator |
feeEstimatorPercentileHigh | High percentile for transaction fee estimator |
feeEstimatorPercentileLow | Low percentile for transaction fee estimator |
feeEstimatorPercentileMedium | Medium percentile for transaction fee estimator |
generateNewIdentity | Generate a new identity at start-up |
getFundsApi | HTTP URL for the Faucet API |
ipcPath | Path for the RPC IPC directory |
jsonLogs | Enable logs to the console to be in JSON format |
keepOpenPeerSlot | If true, the node will disconnect from a peer if the number of connected peers is equal to maxPeers in order to always allow incoming connections. |
logLevel | Log level of the node. Log levels can be applied to tagged logs, e.g. *:warn,tag:info |
logPrefix | String to be prefixed to all logs. If any of the following strings are included, will replace them with the corresponding value: %time% , %level% , %tag% |
maxPeers | The maximum number of peers to which the node can be connected at a time |
maxSyncedAgeBlocks | The oldest the tip should be before we consider the chain synced |
minPeers | The minimum number of peers to which the node should be connected at any time |
minerBatchSize | The number of hashes processed by miner per worker request |
miningForce | Force mining |
nodeName | Name of the node to be broadcasted to peers (optional) |
nodeWorkers | The number of threads to use for workers. A value of -1 will use the maximum possible amount of threads. |
p2pSimulateLatency | Randomly delay outbound messages up to this value |
peerPort | Port on which to host the WebSocket listen server |
poolAccountName | The name of the account that the pool will use to payout from |
poolAttemptPayoutInterval | The length of time in seconds that the pool will wait between checking if it is time to make a payout |
poolBalancePercentPayout | The percent of the confirmed balance of the pool's account that it will payout |
poolBanning | Should pool clients be banned for perceived bad behavior |
poolDifficulty | The pool difficulty, which determines how often miners submit shares |
poolDiscordWebhook | The discord webhook URL to post pool critical pool information to |
poolHost | The host that the pool is listening for miner connections on |
poolLarkWebhook | The lark webhook URL to post pool critical pool information to |
poolMaxConnectionsPerIp | The maximum number of concurrent open connections per remote address |
poolName | Name to use for mining pool (optional) |
poolPort | The port that the pool is listening for miner connections on |
poolRecentShareCutoff | The length of time in seconds that will be used to calculate hashrate for the pool |
poolStatusNotificationInterval | The length of time in seconds that the pool will wait between status messages |
poolSuccessfulPayoutInterval | The length of time in seconds that the pool will wait between successful payouts |
preemptiveBlockMining | Maximize miner efficiency by mining empty blocks before checking if there are pending transactions |
rpcHttpHost | Address to connect to when establishing an RPC connection over HTTP |
rpcHttpPort | Port to connect to when establishing an RPC connection over HTTP |
rpcTcpHost | Address to connect to when establishing an RPC connection over TCP |
rpcTcpPort | Port to connect to when establishing an RPC connection over TCP |
targetPeers | The ideal number of peers we'd like to be connected to. The node will attempt to establish new connections when below this number. |
telemetryApi | HTTP URL for the Telemetry API |
tlsCertPath | Node certificate path for authorizing TLS over TCP |
tlsKeyPath | Private key path for TLS over TCP |
transactionExpirationDelta | The default delta of block sequence for which to expire transactions from the mempool |