This also introduces "scraps" in the sled database, which are chunks that contains both data the user wants and data the user does not want. Those chunks happen because files (in fud directories) are not aligned with chunks, so they can contain the data of multiple files.
After you download a chunk, fud checks that all bytes of it was written to the filesystem, if not that chunk will be saved as a scrap in sled. It's useful for a few things:
1. You don't download that chunk again later
2. You can still verify integrity, even if you did not write the full chunk into your downloaded files
3. You can seed that chunk (once partial seeding is implemented, which is currently not the case)
They are automatically removed from sled once they are not needed anymore (the fud resource is removed, or the chunk was rewritten to the filesystem, and this time it was fully written).
Those scraps are a concept in fud, not in geode.
- fix dnet crash when the analyzed service is shutdown
- add default config for darkfid and fud
- send dnet switch off rpc message when dnet tui is closed
This commit updates the explorer web app to run on a Gunicorn-based WSGI server for testnet and mainnet rather than the built-in dev server. In doing so, it provides for improved scalability, reliability, integration with Nginx, and flexible run configuration.
We’ve introduced a dedicated configuration file (gunicorn_config.py) allowing control over the number of worker processes and threads. By adjusting these values, we can handle more simultaneous requests, fine-tune performance based on CPU resources, and tweak other operational parameters to suit deployment needs.
Update Summary:
- Added gunicorn_config.py to configure bind address, workers, threads, pidfile, and logs
- Updated the testnet and mainnet ports to run on 8000 instead of the 5000 dev port
- Created wsgi.py to load and expose the Flask app via `create_app()`
- Updated requirements.txt to include Gunicorn dependency
- Modified makefile start-% target to start with Gunicorn for testnet/mainnet instead of the development server
- Adjusted stop task to stop Gunicorn server when stopping the explorer
- We updated the requirements.txt install to run quietly
- Updated Makefile to export LOG_HOME so it can be accessed by gunicorn_config.py