# Advanced Configuration

After mounting the config folder to a local folder. The config file will be created inside the config folder. Here is an explanation of all the config items.

```yaml
log:
  # The directory to save the log files
  dir: "logs"
  
  # Log level could be "DEBUG", "INFO", "WARNING", "ERROR"
  level: "INFO"

ethereum:
  # The private key of the wallet
  # Must be filled if headless mode is enabled
  # If headless mode is not enabled,
  # the private key can also be filled using the WebUI.
  privkey: ""
  
  # The JSON RPC endpoint of the Blockchain node
  # Here we use the private chain for the Hydrogen Network
  provider: "https://block-node.crynux.ai/rpc"
  
  # The Blockchain params
  # Leave it as is for the private chain used in the Hydrogen Network
  chain_id: 42
  gas: 42949670
  gas_price: 1

  # The deployed addresses of the smart contracts
  contract:
    token: "0xB627D84BFB8cC311A318fEf679ee498F822A0C7C"
    node: "0x73F8eAD4d29e227958aB5F3A3e38092271500865"
    task: "0x3f4e524d5Ff53D0e98eE5A37f81f4F21551502B2"

# The directory to store the temp files related to the running task
task_dir: tasks

# The database used to store the local state data
# The data will not be large. A sqlite file is more than enough
# There is no need to mount this file to the host machine to persist it
db: sqlite+aiosqlite:///db/server.db

# The URL of the Relay
relay_url: "https://relay.h.crynux.ai"

# The directory that stores the distribution files of the WebUI
web_dist: dist

# Whether to enable the headless mode
headless: false

task_config:
  # The directory to store the temp images for a task.
  output_dir: "/app/data/images"
  
  # The directory to cache the huggingface model files
  hf_cache_dir: "/app/data/huggingface"
  
  # The directory to cache the external model files
  # Such as the LoRA models from Civitai
  external_cache_dir: "/app/data/external"
  
  # The directory to store the temp logs generated
  # by the task execution engine
  inference_logs_dir: "/app/inference-logs"
  
  # The directory that stores the source code of the task execution engine
  script_dir: "/app/stable-diffusion-task"

  # Models that will be preloaded before any task execution
  # Other models specified by the task
  # will be downloaded during the task execution
  preloaded_models:
    base:
      - id: "runwayml/stable-diffusion-v1-5"
      - id: "emilianJR/chilloutmix_NiPrunedFp32Fix"
      - id: "stabilityai/stable-diffusion-xl-base-1.0"
      - id: "stabilityai/stable-diffusion-xl-refiner-1.0"
    controlnet:
      - id: "lllyasviel/sd-controlnet-canny"
      - id: "lllyasviel/control_v11p_sd15_openpose"
      - id: "diffusers/controlnet-canny-sdxl-1.0"
    vae: []
    
  # The proxy server used when downloading models.
  proxy:
    host: "http://127.0.0.1"
    port: 33210

# If the node dies right after submitting the commitments,
# and before disclosing the result on-chain. 
# And if the data is corrupted inside the container,
# which prevents the node from starting again.
# The result from the previous task execution must be fetched from
# the logs of the dead container and filled here.
# So the node could continue with the unfinished task correctly.
last_result: ""
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.crynux.io/node-hosting/advanced-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
