RSS3 Documentation
Deployment

Configuration

A list of configuration options for deploying an RSS3 Node.

Options

The following is a list of configuration options for deploying an RSS3 Node.

You may use the configuration file config.yaml, or via environment variables (with a NODE_ prefix) to define them.

environment

  • Name: NODE_ENVIRONMENT
  • Default: development
  • Description: Environment of the Node, possible values are development and production. This enables the level of logging for debugging.

discovery

This section includes configuration options for the discovery service, which is used for registering and verifying the Node.

  • discovery.operator.evm_address

    • Name: NODE_DISCOVERY_OPERATOR_EVM_ADDRESS
    • Description: Operator's wallet address used during the registration.
  • discovery.operator.signature

    • Name: NODE_DISCOVERY_OPERATOR_SIGNATURE
    • Description:
      • The signature obtained during registration.
      • Used to verify your ownership of this Node.
      • You MUST NOT share the signature with anyone.
  • discovery.server.endpoint

    • Name: NODE_DISCOVERY_SERVER_ENDPOINT
    • Description:
      • Endpoint is how Global Indexers access your Node.
      • You can use a domain or an IP address with a port number.
  • discovery.server.global_indexer_endpoint

    • Name: NODE_DISCOVERY_SERVER_GLOBAL_INDEXER_ENDPOINT
    • Default: https://gi.rss3.io
    • Description:
      • If your Node is registered on the VSL Testnet, use https://gi.rss3.dev.
      • Otherwise, DO NOT change this value.
  • discovery.server.access_token

    • Name: NODE_DISCOVERY_SERVER_ACCESS_TOKEN
    • Description:
      • Access token used to gate certain APIs provided by your Node.
      • This token is shared with Global Indexers to access your Node.
      • This token can be supplied by you or auto-generated by automated deployer.

database

This section includes configuration options for the database, which is used for storing indexed data.

  • database.coverage_period

    • Name: NODE_DATABASE_COVERAGE_PERIOD
    • Default: 3
    • Description:
      • Number of months that the Node will retain indexed data for.
      • After this period, the data will be automatically trimmed to save storage space.
      • The minimum value is 3.
  • database.uri

    • Name: NODE_DATABASE_URI
    • Default: postgres://postgres@localhost:5432/postgres
    • Description: Database connection URI.

redis

This section includes configuration options for Redis, which is used for improving performance.

  • redis.endpoint

    • Name: NODE_REDIS_ENDPOINT
    • Default: localhost:6379
    • Description: Redis server endpoint.
  • redis.username

    • Name: NODE_REDIS_USERNAME
    • Description: Redis username.
  • redis.password

    • Name: NODE_REDIS_PASSWORD
    • Description: Redis password.
  • redis.tls.enabled

    • Name: NODE_REDIS_TLS_ENABLED
    • Default: false
    • Description: Whether to enable TLS for Redis connection.
  • redis.tls.ca_file

    • Name: NODE_REDIS_TLS_CA_FILE
    • Description: Path to CA file for Redis TLS.
  • redis.tls.cert_file

    • Name: NODE_REDIS_TLS_CERT_FILE
    • Description: Path to certificate file for Redis TLS.
  • redis.tls.key_file

    • Name: NODE_REDIS_TLS_KEY_FILE
    • Description: Path to key file for Redis TLS.

stream

This section includes configuration options for streaming, for faster data processing.

  • stream.enable

    • Name: NODE_STREAM_ENABLE
    • Default: false
    • Description: Whether to enable streaming.
  • stream.uri

    • Name: NODE_STREAM_URI
    • Default: localhost:9092
    • Description: Stream connection URI.

observability

This section includes configuration options for observability, for enabling OpenTelemetry metrics and traces.

  • observability.opentelemetry.metrics.enable

    • Name: NODE_OBSERVABILITY_OPENTELEMETRY_METRICS_ENABLE
    • Default: false
    • Description: Whether to enable OpenTelemetry metrics.
  • observability.opentelemetry.metrics.endpoint

    • Name: NODE_OBSERVABILITY_OPENTELEMETRY_METRICS_ENDPOINT
    • Default: 0.0.0.0:9090
    • Description: Endpoint for OpenTelemetry metrics.
  • observability.opentelemetry.traces.enable

    • Name: NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_ENABLE
    • Default: false
    • Description: Whether to enable OpenTelemetry traces.
  • observability.opentelemetry.traces.insecure

    • Name: NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_INSECURE
    • Default: false
    • Description: Whether to use insecure connection for OpenTelemetry traces.
  • observability.opentelemetry.traces.endpoint

    • Name: NODE_OBSERVABILITY_OPENTELEMETRY_TRACES_ENDPOINT
    • Default: 0.0.0.0:4318
    • Description: Endpoint for OpenTelemetry traces.

endpoints

This section includes configuration options for each endpoint, which can be referenced by workers in the component section below.

  • endpoints.*.url

    • Name: NODE_ENDPOINTS_{NAME}_URL
    • Description: URL for each defined endpoint.
  • endpoints.*.http_headers

    • Name: NODE_ENDPOINTS_{NAME}_HTTP_HEADERS
    • Description: HTTP headers for each defined endpoint.
  • endpoints.*.http2_disabled

    • Name: NODE_ENDPOINTS_{NAME}_HTTP2_DISABLED
    • Default: false
    • Description: Whether HTTP/2 is disabled for the endpoint.

component

This section includes configuration options for each component, which includes specific configurations for individual workers.

RSS

  • component.rss.id

    • Name: NODE_COMPONENT_RSS_ID
    • Description: Unique identifier for RSS component.
  • component.rss.network

    • Name: NODE_COMPONENT_RSS_NETWORK
    • Description: Network type for RSS component.
  • component.rss.worker

  • component.rss.endpoint

    • Name: NODE_COMPONENT_RSS_ENDPOINT
    • Description: Endpoint for RSS worker
  • component.rss.parameters

    • Name: NODE_COMPONENT_RSS_PARAMETERS
    • Description: Additional parameters for RSS component
      • authentication: Authentication configuration
        • access_key: Access key for authentication

Decentralized

  • component.decentralized[].id

    • Description: Unique identifier for each decentralized component
  • component.decentralized[].network

    • Description: Network type for each decentralized component
  • component.decentralized[].endpoint

    • Description:
      • Data access endpoint used by the worker
      • You can reference the endpoint defined above in the endpoints section
      • You can also use a direct URL, such as https://rpc.rss3.io
  • component.decentralized[].worker

  • component.decentralized[].ipfs_gateways

    • Description:
      • Description: IPFS gateways used by the worker supplying multiple gateways may improve the indexing performance and reliability
      • Default: ["https://ipfs.rss3.page/" , "https://ipfs.io/" , "https://cloudflare-ipfs.com/" , "https://4everland.io/"]
  • component.decentralized[].parameters

    • Description: Additional parameters for each decentralized component
      • For Ethereum and Arweave:
        • block_start: Block number/height that the worker should start from
        • block_target: Block number/height that the worker should stop at
        • concurrent_block_requests: Number of blocks to request concurrently
      • For EVM-based Worker only:
        • block_batch_size: Number of blocks to fetch in a single batch.
        • receipts_batch_size: Number of receipts to fetch in a single batch.
        • block_receipts_batch_size: Number of block receipts to fetch in a single batch.
      • For Farcaster:
        • api_key: API key for Farcaster Hubble.
        • timestamp_start: The Farcaster seconds timestamp that the worker should start from.

Federated

  • component.federated[].id

    • Description: Unique identifier for each federated component
  • component.federated[].network

    • Description: Network type for each federated component (e.g., Mastodon)
  • component.federated[].endpoint

    • Description:
      • Public URL endpoint used by the federated worker
      • This endpoint should forward requests to a local port specified in the parameters.port setting (or the default port).
  • component.federated[].worker

    • Description:
      • The specific worker that processes data from federated sources.
      • Available workers can be found in the list of supported workers.
  • component.federated[].parameters

    • Description: Additional parameters for each federated component.
      • For Mastodon:
        • relay_url_list:
          • Description: List of Mastodon relay URLs used by the worker.
          • Default: ["https://relay.toot.io/inbox", "https://relay.infosec.exchange/inbox", "https://relay.intahnet.co.uk/inbox", "https://relay.fedi.buzz/instance/mas.to", "https://relay.fedi.buzz/instance/mastodon.online"]
        • port:
          • Description: Local port where the mastodon client listens for requests from the mastodon public URL.
          • Default: 8181

On this page