Releases: smartcontractkit/chainlink
Releases · smartcontractkit/chainlink
v0.9.9
Added
- New CLI commands for key management:
chainlink keys eth import
chainlink keys eth export
chainlink keys eth delete
- All keys other than VRF keys now share the same password. If you have OCR, P2P, and ETH keys encrypted with different passwords, re-insert them into your DB encrypted with the same password prior to upgrading.
Fixed
- Fixed reading of function selector values in DB.
- Support for bignums encoded in CBOR
- Silence spurious
Job spawner ORM attempted to claim locally-claimed job
warnings - OCR now drops transmissions instead of queueing them if the node is out of Ether
- Fixed a long-standing issue where standby nodes would hold transactions open forever while waiting for a lock. This was preventing postgres from running necessary cleanup operations, resulting in bad database performance. Any node operators running standby failover chainlink nodes should see major database performance improvements with this release and may be able to reduce the size of their database instances.
- Fixed an issue where expired session tokens in operator UI would cause a large number of reqeusts to be sent to the node, resulting in a temporary rate-limit and 429 errors.
- Fixed issue whereby http client could leave too many open file descriptors
Changed
- Key-related API endpoints have changed. All key-related commands are now namespaced under
/v2/keys/...
, and are standardized across key types. - All key deletion commands now perform a soft-delete (i.e. archive) by default. A special CLI flag or query string parameter must be provided to hard-delete a key.
- Node now supports multiple OCR jobs sharing the same peer ID. If you have more than one key in your database, you must now specify
P2P_PEER_ID
to indicate which key to use. DATABASE_TIMEOUT
is now set to 0 by default, so that nodes will wait forever for a lock. If you already haveDATABASE_TIMEOUT=0
set explicitly in your env (most node operators) then you don’t need to do anything. If you didn’t have it set, and you want to keep the old default behaviour where a node exits shortly if it can’t get a lock, you can manually setDATABASE_TIMEOUT=500ms
in your env.
v0.9.8
v0.9.7
Added
- OCR bootstrap node now sends telemetry to the endpoint specified in the OCR job spec under
MonitoringEndpoint
. - Adds "Account addresses" table to the
/keys
page.
Changed
- Old jobs now allow duplicate job names. Also, if the name field is empty we no longer generate a name.
Fixed
- Brings
/runs
tab back to the operator UI. - Signs out a user from operator UI on authentication error.
Changes
- Removes broken
ACCOUNT_ADDRESS
field from/config
page.
BREAKING CHANGES
- Commands for creating/managing legacy jobs and OCR jobs have changed, to reduce confusion and accomodate additional types of jobs using the new pipeline.
V1 jobs
jobs archive
=> job_specs archive
jobs create
=> job_specs create
jobs list
=> job_specs list
jobs show
=> job_specs show
V2 jobs (currently only applies to OCR)
jobs createocr
=> jobs create
jobs deletev2
=> jobs delete
jobs run
=> jobs run
v0.9.6
Changed
Numerous key-related UX improvements:
- All key-related commands have been consolidated under the
chainlink keys
subcommand:chainlink createextrakey
=>chainlink keys eth create
chainlink admin info
=>chainlink keys eth list
chainlink node p2p [create|list|delete]
=>chainlink keys p2p [create|list|delete]
chainlink node ocr [create|list|delete]
=>chainlink keys ocr [create|list|delete]
chainlink node vrf [create|list|delete]
=>chainlink keys vrf [create|list|delete]
- Deleting OCR key bundles and P2P key bundles now archives them (i.e., soft delete) so that they can be recovered if needed. If you want to hard delete a key, pass the new
--hard
flag to the command, e.g.chainlink keys p2p delete --hard 6
. - Output from ETH/OCR/P2P/VRF key CLI commands now renders consistently.
- Deleting an OCR/P2P/VRF key now requires confirmation from the user. To skip confirmation (e.g. in shell scripts), pass
--yes
or-y
. - The
--ocrpassword
flag has been removed. OCR/P2P keys now share the same password at the ETH key (i.e., the password specified with the--password
flag). - Two new env variables are added
P2P_ANNOUNCE_IP
andP2P_ANNOUNCE_PORT
which allow node operators to override locally detected values for the chainlink node's externally reachable IP/port. OCR_LISTEN_IP
andOCR_LISTEN_PORT
have been renamed toP2P_LISTEN_IP
andP2P_LISTEN_PORT
for consistency.- Support for adding a job with the same name as one that was deleted.
Fixed
- Fixed an issue where the HTTP adapter would send an empty body on retries.
v0.9.4
v0.9.3
Added
- Add new subcommand
node hard-reset
which is used to remove all state for unstarted and pending job runs from the database.
Changed
- Chainlink now requires Postgres >= 11.x. Previously this was a recommendation, this is now a hard requirement. Migrations will fail if run on an older version of Postgres.
- Database improvements that greatly reduced the number of open Postgres connections
- Operator UI /jobs page is now searchable
- Jobs now accept a name field in the jobspecs
v0.9.2
Added
- Bulletproof transaction manager enabled by default
- Fluxmonitor support enabled by default
- Remove configuration option ORACLE_CONTRACT_ADDRESS, it had no effect
- Add configuration option OPERATOR_CONTRACT_ADDRESS, it filters the contract addresses the node should listen to for Run Logs
- At startup, the chainlink node will create a new funding address. This will initially be used to pay for cancelling stuck transactions.
Fixed
- Improve transaction manager architecture to be more compatible with
ETH_SECONDARY_URL
option (i.e. concurrent transaction submission to multiple different eth nodes). This also comes with some minor performance improvements in the tx manager and more correct handling of some extremely rare edge cases. - As a side-effect, we now no longer handle the case where an external wallet used the chainlink ethereum private key to send a transaction. This use-case was already explicitly unsupported, but we made a best-effort attempt to handle it. We now make no attempt at all to handle it and doing this WILL result in your node not sending the data that it expected to be sent for the nonces that were used by an external wallet.
- Operator UI now shows booleans correctly
Changed
- ETH_MAX_GAS_PRICE_WEI now 1500Gwei by default
v.0.9.0
Added
- Bulletproof transaction manager enabled by default
- Fluxmonitor support enabled by default
- Remove configuration option ORACLE_CONTRACT_ADDRESS, it had no effect
- Add configuration option OPERATOR_CONTRACT_ADDRESS, it filters the contract addresses the node should listen to for Run Logs
- At startup, the chainlink node will create a new funding address. This will initially be used to pay for cancelling stuck transactions.
Fixed
- Improve transaction manager architecture to be more compatible with
ETH_SECONDARY_URL
option (i.e. concurrent transaction submission to multiple different eth nodes). This also comes with some minor performance improvements in the tx manager and more correct handling of some extremely rare edge cases. - As a side-effect, we now no longer handle the case where an external wallet used the chainlink ethereum private key to send a transaction. This use-case was already explicitly unsupported, but we made a best-effort attempt to handle it. We now make no attempt at all to handle it and doing this WILL result in your node not sending the data that it expected to be sent for the nonces that were used by an external wallet.
Changed
- ETH_MAX_GAS_PRICE_WEI now 1500Gwei by default
v0.8.18
v0.8.17
[0.8.17] - 2020-09-28
Added
- Add new env variable ETH_SECONDARY_URL. Default is unset. You may optionally set this to an http(s) ethereum RPC client URL. If set, transactions will also be broadcast to this secondary ethereum node. This allows transaction broadcasting to be more robust in the face of primary ethereum node bugs or failures.
Fixed
- Gas bumper no longer hits database constraint error if ETH_MAX_GAS_PRICE_WEI is reached (this was actually mostly harmless, but the errors were annoying)