Added
- Added disk rotating logs. Chainlink will now always log to disk at debug level. The default output directory for debug logs is Chainlink's root directory (ROOT_DIR) but can be configured by setting LOG_FILE_DIR. This makes it easier for node operators to report useful debugging information to Chainlink's team, since all the debug logs are conveniently located in one directory. Regular logging to STDOUT still works as before and respects the LOG_LEVEL env var. If you want to log in disk at a particular level, you can pipe STDOUT to disk. This automatic debug-logs-to-disk feature is enabled by default, and will remain enabled as long as the
LOG_FILE_MAX_SIZE
ENV var is set to a value greater than zero. The amount of disk space required for this feature to work can be calculated with the following formula:LOG_FILE_MAX_SIZE
* (LOG_FILE_MAX_BACKUPS
+ 1). If your disk doesn't have enough disk space, the logging will pause and the application will log Errors until space is available again. - Added support for the
force
flag onchainlink blocks replay
. If set to true, already consumed logs that would otherwise be skipped will be rebroadcast. - Added version compatibility check when using CLI to log in to a remote node. flag
bypass-version-check
skips this check. - Interim solution to set multiple nodes/chains from ENV. This is a temporary stand-in until configuration is overhauled and will be removed in the future. Set as such:
EVM_NODES='{...}'
where the var is a JSON array containing the node specifications. This is not compatible with using any other way to specify node via env (e.g.ETH_URL
etc).
For example:
EVM_NODES='
[
{
"name": "primary_0_1",
"evmChainId": "0",
"wsUrl": "ws://test1.invalid",
"sendOnly": false
},
{
"name": "primary_0_2",
"evmChainId": "0",
"wsUrl": "ws://test1.invalid",
"httpUrl": "https://test1.invalid",
"sendOnly": false
},
{
"name": "primary_1337_1",
"evmChainId": "1337",
"wsUrl": "ws://test2.invalid",
"httpUrl": "http://test2.invalid",
"sendOnly": false
},
{
"name": "sendonly_1337_1",
"evmChainId": "1337",
"httpUrl": "http://test1.invalid",
"sendOnly": true
},
{
"name": "sendonly_0_1",
"evmChainId": "0",
"httpUrl": "http://test1.invalid",
"sendOnly": true
},
{
"name": "primary_42_1",
"evmChainId": "42",
"wsUrl": "ws://test1.invalid",
"sendOnly": false
},
{
"name": "sendonly_43_1",
"evmChainId": "43",
"httpUrl": "http://test1.invalid",
"sendOnly": true
}
]
'
Changed
- Changed default locking mode to "dual". Bugs in lease locking have been ironed out and this paves the way to making "lease" the default in the future. It is recommended to set
DATABASE_LOCKING_MODE=lease
, default is set to "dual" only for backwards compatibility. - EIP-1559 is now enabled by default on mainnet. To disable (go back to legacy mode) set
EVM_EIP1559_DYNAMIC_FEES=false
. The default settings should work well, but if you wish to tune your gas controls, see the documentation.
Note that EIP-1559 can be manually enabled on other chains by setting EVM_EIP1559_DYNAMIC_FEES=true
but we only support it for official Ethereum mainnet and testnets. It is not recommended enabling this setting on Polygon since during our testing process we found that the EIP-1559 fee market appears to be broken on all Polygon chains and EIP-1559 transactions are actually less likely to get included than legacy transactions.
See issue: maticnetwork/bor#347
- The pipeline task runs have changed persistence protocol (database), which will result in inability to decode some existing task runs. All new runs should be working with no issues.