Frequently Asked Questions (FAQ)
What port does the API run on by default?
Default is 2661 (see hierachain/config/settings.py).
How do I enable API key authentication?
Set HRC_AUTH_ENABLED=true and send the X-API-Key header (or custom name per API_KEY_NAME).
What's the difference between Main Chain and Sub-Chain?
Main Chain stores proofs; Sub-Chain stores detailed domain event data.
Why doesn't the event have a client-sent timestamp?
The server generates the timestamp upon receipt for time source consistency.
What type should details be?
Map
Creating a Sub-Chain reports invalid name?
Names can only contain [a-zA-Z0-9_\-] (see validation in api/v1/endpoints.py).
Why is the block from my Sub-Chain not visible after proof submission?
Check block finalization conditions, time/batch event thresholds; try resubmitting or check logs.
Poor performance or 503 errors?
Check ResourceGuardMiddleware, enable advanced caching, optimize batch size, check CPU/RAM.
Is there an API v2 and what is it for?
Yes; for managing channels, private data, contracts, organizations. See docs/en/reference/api-v2.md.
Where is the CLI and how do I use it?
The hrc command (registered in pyproject.toml). See docs/en/modules/cli.md.
Can I use Redis/SQLite as a backend?
Yes; configure via DEFAULT_STORAGE_BACKEND, DATABASE_URL, REDIS_*.
How do I contribute source code?
See docs/en/dev/contributing.md.
How are tests organized and run?
Markers/paths in pyproject.toml. See docs/en/dev/testing.md.
Release process?
Based on setuptools_scm; see docs/en/dev/release-process.md.