Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
09079d4
feat: sqlite indexer
hanabi1224 Mar 9, 2026
665b16a
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Mar 11, 2026
cf02a81
fix spellcheck
hanabi1224 Mar 11, 2026
0a5f498
cli tool
hanabi1224 Mar 12, 2026
3888ede
fix: broadcast HeadChange::Revert(Tipset) in set_heaviest_tipset
hanabi1224 Mar 12, 2026
4c59008
resolve AI comments
hanabi1224 Mar 12, 2026
b26e0c2
resolve comments
hanabi1224 Mar 12, 2026
a758183
resolve comments
hanabi1224 Mar 12, 2026
b7c0d19
fix
hanabi1224 Mar 12, 2026
29dccb6
Merge remote-tracking branch 'origin/main' into hm/head-change-revert
hanabi1224 Mar 12, 2026
20df24c
fix
hanabi1224 Mar 12, 2026
d753d31
fix
hanabi1224 Mar 12, 2026
c6b0c0c
fix
hanabi1224 Mar 12, 2026
843febe
fix
hanabi1224 Mar 12, 2026
4aa7cc5
fix
hanabi1224 Mar 12, 2026
68ae22e
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Mar 12, 2026
59f9c0b
update filter-list-offline
hanabi1224 Mar 12, 2026
279d588
checks for chain_get_path
hanabi1224 Mar 12, 2026
9865f72
Merge remote-tracking branch 'origin/hm/head-change-revert' into hm/s…
hanabi1224 Mar 13, 2026
93510e1
refactor
hanabi1224 Mar 15, 2026
8997af4
Merge remote-tracking branch 'origin/main' into hm/head-change-revert
hanabi1224 Mar 15, 2026
c6258a6
fix
hanabi1224 Mar 16, 2026
2cfab9e
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Mar 16, 2026
664ffc5
complete index validation
hanabi1224 Mar 16, 2026
5594a0d
promote get_chain_path failure log level
hanabi1224 Mar 16, 2026
61db9e7
Merge remote-tracking branch 'origin/main' into hm/head-change-revert
hanabi1224 Mar 16, 2026
5945e55
Merge remote-tracking branch 'origin/hm/head-change-revert' into hm/s…
hanabi1224 Mar 16, 2026
ed11d2d
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Mar 16, 2026
b63a8a5
write lock for sqlite
hanabi1224 Mar 16, 2026
e50ed19
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Mar 16, 2026
3d53ab2
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 May 7, 2026
3de8a2b
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jun 2, 2026
47e9d22
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jun 3, 2026
4612550
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jun 5, 2026
fa93220
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jun 10, 2026
7df7237
get_events_for_filter
hanabi1224 Jun 10, 2026
317a670
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jun 10, 2026
7a2760f
stash
hanabi1224 Jun 10, 2026
5391101
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jun 11, 2026
83d5b00
impl
hanabi1224 Jun 11, 2026
24a341a
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jun 12, 2026
c7b63c1
finishing touch
hanabi1224 Jun 12, 2026
08e7970
fix
hanabi1224 Jun 12, 2026
b5147c4
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jun 15, 2026
fc8bfa6
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Jul 7, 2026
c240e85
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jul 13, 2026
4efcd54
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jul 13, 2026
34840ff
Merge branch 'main' into hm/sqlite-indexer
hanabi1224 Jul 27, 2026
408d73f
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Aug 3, 2026
6988e8b
impl sql range threshold
hanabi1224 Aug 3, 2026
250a07a
cc review
hanabi1224 Aug 4, 2026
c95f593
wording
hanabi1224 Aug 4, 2026
90fc3e4
fix doc
hanabi1224 Aug 4, 2026
70511cd
changelog
hanabi1224 Aug 4, 2026
788cec7
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Aug 4, 2026
f8fdec4
Merge remote-tracking branch 'origin/main' into hm/sqlite-indexer
hanabi1224 Aug 5, 2026
3885cd2
resolve comments
hanabi1224 Aug 5, 2026
96e4d88
resolve
hanabi1224 Aug 5, 2026
20a46ad
tests
hanabi1224 Aug 5, 2026
46067c6
review
hanabi1224 Aug 5, 2026
8ae016d
fix
hanabi1224 Aug 5, 2026
a75c0f2
fix
hanabi1224 Aug 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@

### Added

- [#6720](https://github.com/ChainSafe/forest/pull/6720): Added SQL index and `forest-cli index validate-backfill`(Compatible with `lotus index validate-backfill`) for backfilling the SQL index.

- [#7426](https://github.com/ChainSafe/forest/pull/7426): Added `forest-tool db import-tipset-lookup` for importing a tipset lookup snapshot.

- [#7408](https://github.com/ChainSafe/forest/pull/7408): Impl `Forest.IndexBackfill`, `Forest.IndexBackfillStatus` and `Forest.IndexBackfillCancel` RPC methods and the `forest-cli index backfill` command to back-fill the chain index (Ethereum mappings, events, block blooms) through the running daemon, so the node no longer needs to be stopped. An interrupted or cancelled run can be resumed with `--resume`.
Expand Down
5 changes: 2 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@ smallvec = "1"
smart-default = "0.7"
sonic-rs = "0.5"
spire_enum = "1"
sqlx = { version = "0.9", default-features = false, features = ["sqlite", "runtime-tokio", "macros"] }
stacker = "0.1"
static_assertions = "1"
statrs = "0.19"
Expand Down Expand Up @@ -241,7 +242,6 @@ zstd = "0.13"
# optional dependencies
console-subscriber = { version = "0.5", features = ["parking_lot"], optional = true }
libtest-mimic = "0.8"
sqlx = { version = "0.9", default-features = false, features = ["sqlite", "runtime-tokio", "macros"], optional = true }
tikv-jemallocator = { version = "0.7", optional = true }
tracing-loki = { version = "0.2", default-features = false, features = ["compat-0-2-1", "rustls"], optional = true }

Expand Down Expand Up @@ -348,7 +348,7 @@ debug = "line-tables-only"

# These should be refactored (probably removed) in #2984
[features]
default = ["jemalloc", "tracing-loki", "sqlite"]
default = ["jemalloc", "tracing-loki"]
test = [] # default feature set for unit tests
slim = ["rustalloc"]
cargo-test = [] # group of tests that is recommended to run with `cargo test` instead of `nextest`
Expand All @@ -360,7 +360,6 @@ jemalloc-profiling = [
"tikv-jemallocator?/profiling",
"tikv-jemallocator?/unprefixed_malloc_on_supported_platforms",
] # enable jemalloc profiling features, use with `release-symbols` build profile for best results
sqlite = ["dep:sqlx"]

# Allocator. Use at most one of these.
rustalloc = []
Expand Down
1 change: 1 addition & 0 deletions docs/docs/users/reference/env_variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ process.
| `FOREST_ETH_RPC_COMPUTE_BLOOM_ON_MISS` | 1 or true | false | 1 | Allows `eth` block RPC methods to compute (and store) the block `logsBloom` when it is not already stored, otherwise such blocks report an all-ones bloom |
| `FOREST_RPC_METRICS_DISABLED` | 1 or true | false | 1 | Disable per-method JSON-RPC metrics only, leaving the metrics endpoint and all other metrics (cache, sync, database, ...) intact. To turn off metrics entirely, disable the endpoint instead with `--no-metrics` |
| `FOREST_STATE_COMPUTE_MAX_RANGE` | positive integer | 2000 | 100 | The maximum `nEpochs` value `Forest.StateCompute` accepts |
| `FOREST_RPC_SQL_RANGE_THRESHOLD` | positive integer | 500 | 1000 | The RPC tipset range threshold above which SQL index is prefered over in-memory event collection |

### `FOREST_F3_SIDECAR_FFI_BUILD_OPT_OUT`

Expand Down
3 changes: 3 additions & 0 deletions scripts/tests/api_compare/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ services:
# Backfill the NOSQL index db
forest-cli index backfill --from $$SNAPSHOT_EPOCH --n-tipsets 200 --recompute --allow-near-head
# backfill the SQL index db
forest-cli index validate-backfill --from $$SNAPSHOT_EPOCH --to $(($$SNAPSHOT_EPOCH - 200))
forest-wallet-import:
depends_on:
forest:
Expand Down
1 change: 1 addition & 0 deletions scripts/tests/api_compare/filter-list-gateway
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
!Filecoin.ChainSetHead
!Filecoin.ChainStatObj
!Filecoin.ChainTipSetWeight
!Filecoin.ChainValidateIndex
!Filecoin.EthGetBlockReceiptsLimited
!Filecoin.EthGetTransactionByHashLimited
!Filecoin.F3
Expand Down
2 changes: 2 additions & 0 deletions scripts/tests/api_compare/filter-list-offline
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# This list contains potentially broken methods (or tests) that are ignored.
# They should be considered bugged, and not used until the root cause is resolved.
# Indexer disabled
!Filecoin.ChainValidateIndex
!Filecoin.EthSyncing
!eth_syncing
!Filecoin.NetAddrsListen
Expand Down
1 change: 0 additions & 1 deletion src/beacon/drand.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ use crate::utils::net::global_http_client;
use ambassador::{Delegate, delegatable_trait};
use backon::{ExponentialBuilder, Retryable};
use bls_signatures::Serialize as _;
use nonzero_ext::nonzero;
use serde::{Deserialize as SerdeDeserialize, Serialize as SerdeSerialize};
use tracing::debug;
use url::Url;
Expand Down
Loading
Loading