# CHANGELOG ## v0.4.2 ### Improvements - Change the origin of the timestamp to the block time instead of current time ([#103](https://github.com/informalsystems/chainpulse-internal/issues/103)) - Fix a bug where ChainPulse would fail to detect irelevant transactions and add a column in the block table to indicate a "relevant" block ([#105](https://github.com/informalsystems/chainpulse-internal/issues/105)) - Fix a bug where packets would not be inserted into the database because of a race condition ([#116](https://github.com/informalsystems/chainpulse-internal/issues/116)) - ChainPulse now inserts new data in the database in atomic fashion ([#127](https://github.com/informalsystems/chainpulse-internal/issues/127)) ## v0.4.0 *October 41st, 2023* ### Breaking changes - ChainPulse now polls for new blocks via RPC instead of listening for `NewBlock` events over WebSocket. ([#61](https://github.com/informalsystems/chainpulse/issues/61)) - The configuration file now expects HTTP(S) URLs without the `/websocket` path. ([#61](https://github.com/informalsystems/chainpulse/issues/61)) - Use a table to configure the chains instead of a list. Please check out the [`chainpulse.toml`](./chainpulse.toml) file for the latest syntax. ([#42](https://github.com/informalsystems/chainpulse/pull/8)) ### Features - Check for pending packets on active IBC channels by querying for packets commitments on chain for those channels. ([#62](https://github.com/informalsystems/chainpulse/issues/62)) - Store pending packets in the database in the new `pending_packets` table. ([#100](https://github.com/informalsystems/chainpulse/pull/100)) - Make the interval at which to poll the chain for new blocks configurable, via a new per-chain setting `poll_interval`. ([#99](https://github.com/informalsystems/chainpulse/pull/99)) - Add `backfill_from` setting to specify where to start backfilling blocks from. * A negative value indicates a relative offset from the latest block * A positive value indicates an absolute height at which to start backfilling * Leaving out the setting or specifying a value of zero disables backfilling altogether If the computed backfill height is lower than the latest block found in the database, then backfilling will start at the height of that block. ([#101](https://github.com/informalsystems/chainpulse/pull/101)) ### Improvements - After being restarted, ChainPulse will now backfill the events for the blocks it missed. ([#61](https://github.com/informalsystems/chainpulse/issues/61)) - Use block header timestamp instead of current system time when inserting blocks/txs/packets ([#104](https://github.com/informalsystems/chainpulse/pull/104)) - A new column in the blocks table tracks if the block contained any IBC transactions and only transactions with IBC packets are stored in the txs table ([#104](https://github.com/informalsystems/chainpulse/pull/111)) ## v0.3.2 *July 26th, 2023* - Fix a bug where `Timeout` messages were not handled. ## v0.3.1 *July 20th, 2023* - Fix a bug where ChainPulse would fail to create the SQLite database. ## v0.3.0 *June 6th, 2023* - Add a `populate_on_start` option to the `metrics` section in the configuration to populate the Prometheus metrics on start by replaying all packets present in the database so far. ([#8](https://github.com/informalsystems/chainpulse/pull/8)) **Warning:** Use with caution if you are already tracking any of the counters with Prometheus as this will result in inflated results for all counters (but not gauges or histograms). - Monitor packets stuck on IBC channels, and expose their number per channel as a new `ibc_stuck_packets` metric ([#9](https://github.com/informalsystems/chainpulse/pull/9)) ## v0.2.0 *May 26th 2023* - Add support for listening on multiple chains simultaneously ([#1](https://github.com/informalsystems/chainpulse/pull/1)) - Use a [configuration file](./README.md#configuration) instead of command-line arguments ([#1](https://github.com/informalsystems/chainpulse/pull/1)) - Add [internal metrics](./README.md/#internal-metrics) ([#2](https://github.com/informalsystems/chainpulse/pull/2)) - Add support for CometBFT 0.34 and 0.37 ([#4](https://github.com/informalsystems/chainpulse/pull/4)) ## v0.1.2 *May 25th 2023* - Respond to SIGINT, SIGHUP and SIGTERM signals even when ran as PID 1, eg. in a distroless Docker container ## v0.1.1 *May 25th 2023* - Disconnect and reconnect every 100 blocks in an attempt to keep the connection from hanging ## v0.1.0 *May 25th 2023* Initial release