πŸ”¨Adding Services

🚧 Work in Progress 🚧

New Services

What is a service?

The Deeep Network uses the word "service" to generically talk about services that are ran on the network for Service Owners. These can consist of any of the following and more:

  • Web3 Nodes

  • Validators

  • IPFS servers

  • Game servers

  • Web2 assets

What kind of services are accepted?

NerdNode only accepts services that comply with the following:

  • Abide by the local laws, ordinances, and restrictions of where the service is being run

  • NerdNode Services Terms of Service

  • NerdNode Privacy Policy

Violations of these rules can result in permanent bans from the Network for that service and even service authors.

How are new services added?

Creators of services or the community are welcome to add new services to the network. The primary requirement is that they must have software that can be ran on Linux without a Graphical User Interface (GUI).

Building a Service Support Package (coming soon)

  • Fork the Deeep Network Service Support Package repository

  • Copy the template folder and rename for your service, we recommend following the company-service_name format

  • In the ansible folder modify it to support the following methods

    • install

    • authorize

    • pre-start

    • start

    • stop

    • restart

    • deauthorize

    • post-stop

    • remove

    • upgrade

  • Ensure or add metrics via Prometheus

    • An example in python is provided to parse CLI outputs or log files if you cannot modify the service to support this natively

    • Make sure you are reporting at a minimum these required metrics

      • status: healthy, failed, starting, stopping, off

      • auth: authorized, authorizing, failed, missing, expiring, expired

      • uptime:

      • version: version information of the current running software

      • logs are planned to be pushed to IPFS and encrypted using the public key included in the manifest file

  • Modify the local monitor script to trigger the right start, stop, reset, install, authorize, etc commands based on the Prometheus reporting.

  • Fill out the yaml template with minimum requirements document that asks about RAM, IOPS, CPU usage, bandwidth, shared or dedicated VM, IPFS usage, secrets handling, geo-region restrictions, IPv4/6 support, logging levels, backup levels & file locations, authorization methods, public key for log and metrics encryption, etc. (not all of these will be supported right away, but we want to capture them)

  • Using an official wallet from the organization sign the code of conduct, IP rights, and indemnification for operation in the geo-regions listed in the yaml file

  • Test your service and fix any bugs

  • Open a pull request in the git repo to have your service package accepted by the community.

Using a 3rd Party

Anyone, or group, can post a bounty for the community or NerdNode to create a Service Support Package.

Alternatively NerdNode can take these projects on directly. Contact support@nerdnode.io for more details about adding a service to the network.

Last updated