Feature flags
Feature flags set in the advanced
config section allow users to modify parameters that affect the behavior of the whole framework. Choosing the right combination of flags for an indexer project can improve performance, reduce RAM consumption, or enable useful features.
flag | description |
---|---|
early_realtime | Start collecting realtime messages while sync is in progress. |
postpone_jobs | Do not start the job scheduler until all indexes are synchronized. |
skip_version_check | Disable warning about running unstable or out-of-date DipDup version. |
unsafe_sqlite | Disable journaling and data integrity checks. Use only for testing. |
Early realtime
By default, DipDup enters a sync state twice: before and after establishing a realtime connection. This flag allows collecting realtime messages while the sync is in progress, right after indexes load.
Let's consider two scenarios:
- Indexing 10 contracts with 10 000 operations each. Initial indexing could take several hours. There is no need to accumulate incoming operations since resync time after establishing a realtime connection depends on the contract number, thus taking a negligible amount of time.
- Indexing 10 000 contracts with 10 operations each. Both initial sync and resync will take a while. But the number of operations received during this time won't affect RAM consumption much.
If you do not have strict RAM constraints, it's recommended to enable this flag. You'll get faster indexing times and decreased load on TzKT API.
Internal environment variables
DipDup uses multiple environment variables internally. They read once on process start and usually do not change during runtime. Some variables modify the framework's behavior, while others are informational.
Please note that they are not currently a part of the public API and can be changed without notice.
env variable | module path | description |
---|---|---|
DIPDUP_CI | dipdup.env.CI | Running in GitHub Actions |
DIPDUP_DOCKER | dipdup.env.DOCKER | Running in Docker |
DIPDUP_NEXT | dipdup.env.NEXT | Enable experimental features that require schema changes |
DIPDUP_REPLAY_PATH | dipdup.env.REPLAY_PATH | Path to datasource replay files; used in tests |
DIPDUP_TEST | dipdup.env.TEST | Running in pytest |
DIPDUP_NEXT
flag will give you the picture of what's coming in the next major release, but enabling it on the existing schema will trigger a reindexing.