Skip to content

Commit

Permalink
Merge branch 'main' into lemmih/chain-follower
Browse files Browse the repository at this point in the history
  • Loading branch information
lemmih committed Mar 6, 2025
2 parents 6fb477e + aedb6cd commit a00f38e
Show file tree
Hide file tree
Showing 111 changed files with 2,056 additions and 1,579 deletions.
12 changes: 12 additions & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,18 @@ use parking_lot::Mutex instead to silently ignore panics."""
path = "multihash_codetable::Code"
reason = """use `crate::utils::multihash::MultihashCode` instead which has `Identity` code back-filled."""

[[disallowed-types]]
path = "rand::rngs::ThreadRng"
reason = """use `crate::utils::forest_rng` instead."""

[[disallowed-types]]
path = "rand::rngs::OsRng"
reason = """use `crate::utils::forest_os_rng` instead."""

[[disallowed-methods]]
path = "rand::thread_rng"
reason = """use `crate::utils::forest_rng` instead."""

[[disallowed-methods]]
path = "tempfile::NamedTempFile::new"
reason = """The temporary files created by this method are not persistable if the temporary directory lives on a different filesystem than the target directory. While it is valid in other contexts (if not persisting files), it was misused many times and so we are banning it. Consider using `tempfile::NamedTempFile::new_in` or `tempfile::NamedTempFile::Builder"""
4 changes: 1 addition & 3 deletions .github/DOCKER_ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,4 @@ labels: ["Bug"]

## Description

Latest Docker check failed. Please check the logs for more information.

<!-- link will be added here in a follow-up once the corresponding workflow lands on main -->
Latest Docker check failed. Please [check the logs](https://github.com/ChainSafe/forest/actions/workflows/dockerfile-check.yml) for more information.
8 changes: 8 additions & 0 deletions .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: "[automated] Snapshot parity test failure"
labels: ["Bug"]
---

## Description

Latest snapshot parity test failed. Please [check the logs](https://github.com/ChainSafe/forest/actions/workflows/snapshot-parity.yml) for more information.
26 changes: 0 additions & 26 deletions .github/workflows/forest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -548,32 +548,6 @@ jobs:
- name: Dump docker logs
if: always()
uses: jwalton/gh-docker-logs@v2
snapshot-parity-checks:
needs:
- build-ubuntu
name: Calibnet snapshot parity checks
runs-on: ubuntu-24.04
# Run the job only on main to limit the runner cost.
# The downside is that the offending commit can only be caught after being merged
# and a manual revert is required.
# Note that running this step on non-draft PR does not save the cost as it always re-run
# all the jobs when a PR is moved out of draft. Also this parity test will be stale soon
# once we start including the F3(fast finality) metadata in the Forest snapshots.
if: github.ref == 'refs/heads/main'
env:
# We use a custom Dockerfile for CI to speed up the build process.
FOREST_DOCKERFILE_OVERRIDE: scripts/devnet/forest_ci.dockerfile
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: 'forest-${{ runner.os }}'
- name: Run snapshot parity tests
run: ./scripts/tests/snapshot_parity/setup.sh
timeout-minutes: '${{ fromJSON(env.SCRIPT_TIMEOUT_MINUTES) }}'
- name: Dump docker logs
if: always()
uses: jwalton/gh-docker-logs@v2
# Umbrella job to aggregate all integration tests and get their status
integration-tests-status:
needs:
Expand Down
24 changes: 24 additions & 0 deletions .github/workflows/snapshot-parity.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Snapshot parity test
on:
workflow_dispatch:
schedule:
- cron: "0 0 * * 0" # Runs at 00:00, only on Sunday
jobs:
snapshot-parity:
name: Snapshot parity test
runs-on: buildjet-4vcpu-ubuntu-2204
steps:
- name: Checkout Sources
uses: actions/checkout@v4
- name: Run snapshot parity test
run: ./scripts/tests/snapshot_parity/setup.sh
timeout-minutes: 60
- name: Dump docker logs
if: always()
uses: jwalton/gh-docker-logs@v2
- uses: JasonEtco/create-an-issue@v2
if: failure()
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
filename: .github/SNAPSHOT_PARITY_ISSUE_TEMPLATE.md
46 changes: 46 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,10 +27,28 @@

### Breaking

### Added

- [#5375](https://github.com/ChainSafe/forest/issues/5375) Add an RNG wrapper that that can be overriden by a reproducible seeded RNG.

### Changed

### Removed

### Fixed

## Forest v0.24.0 "Treebeard"

Non-mandatory release without network upgrades. It includes a number of potentially breaking changes (see below), new RPC methods, fixes and other improvements.

### Breaking

- [#5236](https://github.com/ChainSafe/forest/pull/5236) Dropped support for migrating from ancient versions of Forest. The latest supported version for migration is [v0.19.2](https://github.com/ChainSafe/forest/releases/tag/v0.19.2).

- [#4261](https://github.com/ChainSafe/forest/issues/4261) Remove the short flags from `forest-wallet list` and `forest-wallet balance` commands.

- [#5329](https://github.com/ChainSafe/forest/pull/5329) Changed JSON-RPC alias for `Filecoin.NetListening`, `Filecoin.NetVersion`, `Filecoin.EthTraceBlock`, `Filecoin.EthTraceReplayBlockTransactions` to adhere to Lotus API.

### Added

- [#5244](https://github.com/ChainSafe/forest/issues/5244) Add `live` and `healthy` subcommands to `forest-cli healthcheck`.
Expand Down Expand Up @@ -61,14 +79,38 @@

- [#4751](https://github.com/ChainSafe/forest/issues/4751) Add support for `Filecoin.GetActorEventsRaw` RPC method.

- [#4671](https://github.com/ChainSafe/forest/issues/4671) Add support for `Filecoin.EthGetFilterLogs` RPC method.

- [#5309](https://github.com/ChainSafe/forest/issues/5309) Add `forest-tool shed f3 check-activation-raw` command.

- [#5242](https://github.com/ChainSafe/forest/issues/5242) Fix existing signature verification and add `delegated` signature

- [#5314](https://github.com/ChainSafe/forest/pull/5314) Add omit fields option for OpenRPC spec generation.

- [#5293](https://github.com/ChainSafe/forest/issues/5293) Extend RPC test snapshots to support Eth methods that require an index.

- [#5319](https://github.com/ChainSafe/forest/pull/5319) Improve the ergonomics of the `forest-tool api generate-test-snapshot` subcommand.

- [#5342](https://github.com/ChainSafe/forest/pull/5342) Improved the ergonomics of handling addresses in the `Filecoin.EthGetLogs` and `Filecoin.EthNewFilter` to accept both single addresses and arrays of addresses. This conforms to the Ethereum RPC API.

- [#5346](https://github.com/ChainSafe/forest/pull/5346) `Filecoin.EthGetBlockReceipts` and `Filecoin.EthGetBlockReceiptsLimited` now accepts predefined block parameters on top of the block hash, e.g., `latest`, `earliest`, `pending`.

- [#5324](https://github.com/ChainSafe/forest/pull/5324) Add shell completion subcommand in `forest-tool`

### Changed

- [#5237](https://github.com/ChainSafe/forest/pull/5237) Stylistic changes to FIL pretty printing.

- [#5329](https://github.com/ChainSafe/forest/pull/5329) `Filecoin.Web3ClientVersion` now returns the name of the node and its version, e.g., `forest/0.23.3+git.32a34e92`.

- [#5332](https://github.com/ChainSafe/forest/pull/5332) Adhere to the Ethereum RPC API for `eth_call` by not requiring the `from`, `gas`, `gas_price` and `value` parameters. `data` is still required.

- [#5359](https://github.com/ChainSafe/forest/pull/5359) Eth RPC API methods' params are now all in _camelCase_. This aligns with the Ethereum RPC API. Note that this change is only for the OpenRPC documentation and does not affect the actual RPC methods which accepted correct _camelCase_ params before.

### Removed

- [#5344](https://github.com/ChainSafe/forest/pull/5344) Removed the last traces of the `forest-cli attach` command.

### Fixed

- [#5111](https://github.com/ChainSafe/forest/issues/5111) Make F3 work when the node Kademlia is disabled.
Expand All @@ -86,6 +128,10 @@

- [#5213](https://github.com/ChainSafe/forest/issues/5213) Fix incorrect results for the `Filecoin.EthGetLogs` RPC method on ranges that include null tipsets.

- [#5357](https://github.com/ChainSafe/forest/issues/5357) Make data field in EthCallMessage optional. Affected RPC methods are `Filecoin.EthEstimateGas`(`eth_estimateGas`) and `Filecoin.EthCall`(`eth_call`)

- [#5345](https://github.com/ChainSafe/forest/pull/5345) Fixed handling of odd-length hex strings in some Eth RPC methods. Now, the methods should not return error if provided with, e.g., `0x0` (which would be expanded to `0x00`).

## Forest v.0.23.3 "Plumber"

Mandatory release for calibnet node operators. It fixes a sync error at epoch 2281645.
Expand Down
Loading

0 comments on commit a00f38e

Please sign in to comment.