Documentation
HomeDocsDiscordContact
  • What is Tashi?
  • Lightpaper
  • Nodes
    • Node Architecture
    • Node Types
    • Node Specifications
  • Protocol
    • Overview
      • Tashi’s Discovery
      • Performance Analysis
    • Consensus
      • Network Traversal
      • Fairness
    • MeshNet
  • Resources
    • Github
    • Discord
    • FoxMQ
      • Features
      • Roadmap
      • Quick Start - Direct
      • Quick Start - Docker
      • Configuration Files
      • CLI Options
        • Command - Run
        • Command - AddressBook
        • Command - User
    • DePIN
      • Worker Node Install (Docker)
Powered by GitBook
On this page
  • Prerequisites
  • Linux 64-bit
  • Windows 64-bit (Windows Subsystem for Linux)
  • macOS (Intel Silicon)
  • Run the Install Script
  • Failing Checks
  • Assign a License
  • Note: Podman
  • Uninstalling
  • Troubleshooting
  • The container name "/tashi-depin-worker" is already in use
  1. Resources
  2. DePIN

Worker Node Install (Docker)

Install the Tashi DePIN worker node using Docker or Podman.

PreviousDePIN

Last updated 1 month ago

Prerequisites

  • Solana devnet account containing at least 0.0001 SOL

    • Use the to request a free airdrop of SOL to your wallet address on devnet.

  • Browser-based wallet extension implementing the Solana Wallet Standard

    • was used to test these steps

    • Set your wallet to use Solana's devnet.

  • A supported 64-bit operating system (see below)

  • An Internet connection with a stable IP address

  • Recommended: set up port-forwarding for UDP port 39065

The following system specifications are recommendations, not hard minimums.

The worker node may function on systems with fewer resources, but its functionality may be limited.

Linux 64-bit

  • Multi-core Intel or AMD processor supporting SSE4 and AVX instruction sets

  • 4 GB RAM

  • Recommended distribution: Ubuntu or Debian

    • These instructions may require adjustment for other distributions.

  • Bourne-compatible shell like bash (default on most Linux distributions) or zsh

  • cURL or wget

  • Install one of these supported container runtimes:

      • Recommended: to create containers without superuser privileges

      • Recommended: enable execution to create containers without superuser privileges

Windows 64-bit (Windows Subsystem for Linux)

  • Multi-core Intel or AMD processor supporting SSE4 and AVX instruction sets

  • 4 GB RAM

    • Recommended distribution: Ubuntu or Debian

  • Set up a supported container runtime as listed above under Linux 64-bit.

macOS (Intel Silicon)

  • Only Intel-based Macs are currently supported. Apple Silicon may be supported in a future release.

Run the Install Script

In a Linux terminal, run the following command:

curl -Ssf https://raw.githubusercontent.com/tashigg/tashi-depin-worker/refs/heads/main/install.sh | sh -s -

If you don't have cURL, the following command can be used instead:

wget -o- https://raw.githubusercontent.com/tashigg/tashi-depin-worker/refs/heads/main/README.md | sh -s -

If the script is working, you should see the Tashi logo:

The install script will then perform various checks of the system to ensure that it meets the recommended system specifications and is configured correctly to run a DePIN node:

[2025-04-02 17:41:08] [INFO] Starting system checks...

It will check for the presence of a multi-core processor:

[2025-04-02 17:41:08] [INFO] CPU Check: ✓ Found 16 threads (>= 4 recommended)

Available memory in the system:

[2025-04-02 17:41:08] [INFO] Memory Check: ✓ Found 31GB RAM (>= 4GB recommended)

Free disk space (the worker requires less than a gigabyte, but a full disk can cause other problems):

[2025-04-02 17:41:08] [INFO] Disk Space Check: ✓ Found 1214GB free (>= 20GB required)

A supported container runtime (see Prerequisitesabove for details):

[2025-04-02 17:41:08] [INFO] Container Runtime Check: ✓ Docker is installed

The worker container can be created without superuser privileges (see rootless setup in Prerequisites):

[2025-04-02 17:54:44] [INFO] Privilege Check: ✓ User is in 'docker' group.
[2025-04-02 17:54:44] [INFO] Worker container can be started without needing superuser privileges.

The system has access to the Internet:

[2025-04-02 17:54:44] [INFO] Internet Connectivity: ✓ Device has public internet access.
[2025-04-02 17:54:44] [INFO] NAT Check: Open NAT / Publicly accessible (Public IP: ##.##.##.##)

If all these checks pass, the script starts the worker as a container:

[2025-04-02 18:00:35] [INFO] All checks passed or user chose to continue.
+ docker run -d -p 39065:39065 -p 127.0.0.1:9000:9000 --name tashi-depin-worker -e RUST_LOG=info,tashi_depin_worker=debug,tashi_depin_common=debug --restart=always ghcr.io/tashigg/tashi-depin-worker:0 --license-authorized-account-key-path=./license-key --generate-license-authorized-account-key --token-id-save-path=./token-id --command-center-url http://localhost:3000 --agent-public-addr=198.51.100.63:39065
72890a5da4e7ca69a0eed9ad89342faa8291ee6150512cbc4db615aada55c1df
[2025-04-02 18:00:35] [INFO] Worker is running: ✓ Next step is to assign the worker a license token.
Open the following page in your browser? <http://localhost:9000/> (Y/n) 

The worker is now running.

Press Enter to begin the next step of assigning a license to the worker. The script will open a web page in your default browser (Chrome, Firefox, etc.). Continue to the next section: Assign a License.

Failing Checks

One or more checks run by the install script may fail; if this happens, the script may exit immediately, or emit a warning and then ask you if you want to continue.

Most of these checks may fail due to a simple misconfiguration, in which case you should abort the script by pressing Enter , then follow the resolution in one of the sections below. You may then simply re-run the script by repeating the command at the top of the Run the Install Script section.

If you understand why the check failed and want to continue anyway, type y and press Enter.

CPU / Memory / Disk Space Checks

These checks are purely advisory. You may continue with the install script if they fail, but the worker may have reduced functionality.

If your system is running out of disk space, you are likely to experience other issues besides running the DePIN worker. Maintaining sufficient free disk space is an important part of keeping a computer system running properly. Look for instructions for your operating system on how to free up disk space.

Container Runtime Check

If you do not have a supported container runtime installed, you will see this message:

[2025-04-03 02:00:21] [ERROR] Container Runtime Check: ✗ Neither Docker nor Podman is installed.

You need to install either Docker or Podman (and if applicable, follow the recommended steps to enable creating containers without superuser privileges) as mentioned in Prerequisites.

Privilege Check

If you did not configure rootless containers as recommended in Prerequisites, you may see one of these messages:

[2025-04-02 18:07:58] [WARNING] Privilege Check: ⚠ User is not in 'docker' group.
[2025-04-02 18:07:58] [WARNING] Privilege Check: ⚠ User cannot create rootless Podman containers.

For various reasons which are out of scope of this document, creating a container requires superuser privileges by default. The install script prefers to avoid this if at all possible because granting superuser privileges to a script downloaded over the internet has significant security implications.

We do not recommend running the install script itself with sudo as that effectively gives the install script access to your entire system. We don't want that kind of responsibility.

To resolve this, we recommend configuring your container runtime to allow running without superuser privileges:

    • This also applies to Windows Subsystem for Linux.

If you choose to continue the install script when prompted, the install script will invoke sudoto create the worker container, at which point you will be prompted to enter your Linux user password. The exact command being invoked is printed out for transparency.

If you get an error saying "your user is not in the sudoers file", you need to follow the instructions for your Linux distribution to configure sudo for your user. Or enable rootless containers as shown above.

Internet Connectivity Check

All DePIN services require access to the Internet. This check attempts to ensure this.

There are only a few scenarios where this check fails:

  • Your device does not currently have access to the Internet, in which case you should take steps to resolve this.

  • Neither cURL or wget is installed, which is only possible if you did not use either of these tools to run the install script in the first place. Follow the instructions for your Linux distribution to install one of these tools.

  • Your device does not have up-to-date TLS root certficates installed. Follow the instructions for your Linux distribution to install them.

  • The DNS lookup for google.com failed. Check your DNS configuration or try different DNS servers.

  • Something else interfered with the connection attempt.

This check simply attempts to connect to https://www.google.com/

NAT Check

This is a common situation for devices on home networks, which share a single Internet connection over Wi-Fi or Ethernet. When a client attempts to connect, your modem or router (the device that provides the Internet connection) will have no idea which device on the network to connect them to, and will drop the connection.

This is likely the case even if your device is the only one currently using the Internet connection. Many mobile data connections are also subject to NAT.

This is an issue because the highest-rewarding DePIN services require that clients are able to connect directly to your worker node. If clients are not able to connect directly to your worker node, it may still be able to provide some DePIN services, but not all of them.

You may continue with the installation, but note that if your worker node is not accessible from the Internet, your DePIN earnings may be reduced significantly.

Forward UDP port 39065 to your device to ensure it is Internet-accessible.

Assign a License

If you followed the steps in Run the Install Script as directed, you should now be looking at a web page in your browser. If the script did not open a web page, navigate to the following URL:

You should see a page like the following:

Leave this page open during the following steps.

The next step depends on where you have the Solana wallet installed:

  • If your Solana wallet is in the same browser as the page, click the link shown there.

    • This should open in a new tab or window. If not, press Back and then middle-click the link to open in a new tab.

  • If your Solana wallet is on a mobile device, scan the QR code with the device's camera to continue.

  • If your Solana wallet is on another computer, open the given link on that computer.

    • For example, you could copy the link into an email that you send to yourself.

This will take you to a new page on depin.tashi.dev where you will see this card:

Click Connect Wallet to select your browser wallet. For example:

Select your installed wallet to continue.

If you already have a license token for some reason, skip the next step. If you don't have any license tokens yet (most likely), you'll be prompted to mint one:

Double-check that the selected wallet address in the drop-down menu is correct. This is the wallet that will receive DePIN rewards.

Once the token is minted, take note of the token ID. You'll be asked to confirm it in a moment. Click Select next to the token and then Assign Token:

Your wallet extension will pop up a window, prompting you to confirm the transaction:

If successful, you should see this dialog:

You will see a prompt asking you to confirm the license token you just assigned to the worker:

Match the Token ID and Wallet Address to the values you noted earlier. If the values are incorrect, press Reject. Double-check that you selected the correct wallet on the other page and try again. If the values are correct, press Accept.

You should now see this dialog:

This means that the worker has successfully claimed the license token with the DePIN network and will start receiving work shortly. Congratulations, your Tashi DePIN worker is up and running!

The worker will save the token ID so you should not have to complete this flow again.

If the container was created using Docker, it will restart automatically when the system restarts. (Podman users, see Note: Podman.)

The worker asks you to confirm the license token ID before claiming it to mitigate against a compromised wallet injecting a different wallet address or license token ID.

Otherwise, this might allow an attacker to hijack your DePIN rewards for themselves. (A similar attack compromised the ByBit exchange in February 2025 and facilitated the theft of over $1 billion.)

If you press Reject, the worker will ignore the license.

If you pressed Reject by mistake, Refresh the page (or hold CTRL and press R) and you will receive the same prompt again.

You may see multiple prompts in a row if you attempted to assign a license multiple times.

If you pressed Accept by mistake, proceed to Uninstalling to uninstall the worker, then start from the beginning again to re-install it.

Note: Podman

If you use the Podman container runtime, the worker will not be restarted automatically when the system restarts. You will need to manually run podman start tashi-depin-worker after restarting the system.

Uninstalling

Uninstalling the worker is as simple as deleting the container. Run one of the following commands in a terminal:

docker rm -f tashi-depin-worker
podman rm -f tashi-depin-worker

If the Privilege Check of the install script failed, you may need to prefix this command with sudo.

You will need to complete the Assign a License flow again if you reinstall the worker.

Troubleshooting

If you encounter a problem not covered here, please contact your Tashi representative for support.

The container name "/tashi-depin-worker" is already in use

The worker is already installed. Proceed to the Assign a License step or see Uninstalling for how to uninstall the existing worker.

Set up

Install

The system is not subject to :

If a browser window did not appear, check to see if it opened a tab in the background, perhaps in an existing window. Otherwise, open in your browser to continue.

Docker: follow the (Manage Docker as a non-root user)

Advanced users may consider setting up

Podman: follow the

This check will fail if your system appears to be subject to (NAT), meaning that the IP address the device sees for itself is different than the IP address it may be reachable at.

To resolve this, look for instructions on how to configure for your specific modem or router. If the modem/router is provided by your Internet Service Provider (ISP), you may need to contact them for assistance.

The license assignment transaction costs a very small amount of SOL. This is a fee paid to the Solana network, not Tashi. If your account has insufficient funds, use the to request an airdrop of SOL to your wallet address on devnet at no expense.

Return to the Assign a License page () which you should have left open. If you closed it by accident, click the link above.

Advanced users may for the tashi-depin-worker container. Demonstrating this is out of scope for this document.

Solana Faucet
Phantom wallet
Docker Engine
Linux Post-Install Steps
Podman
rootless
Windows Subsystem for Linux
Docker Desktop for Mac
Network Address Translation
http://localhost:9000/
Linux Post-Install Steps
Docker in rootless mode
rootless environment tutorial
Network Address Translation
port forwarding
Solana Faucet
http://localhost:9000/
create a Quadlet
http://localhost:9000/localhost
Assign a License with QR Code
Assign License: Connect Wallet
Worker License: Mint license token
Worker License: Assign Token
Phantom Wallet: Confirm Transaction (This will appear different if you are using a different wallet.)
License Assigned
Confirm License Claim
Success
Connect Wallet (shown using )
Phantom Wallet