This is part of a 4 repo project:
SmartContracts: https://github.com/Nishan30/AxessProtocol
Frontend: https://github.com/Nishan30/AxessProtocolFrontend
Backend: https://github.com/aniJani/AxessProtocolBackend
Oracle Agent: https://github.com/aniJani/oracleAgent
This repo runs a GPU host agent that exposes a Jupyter Notebook through a secure tunnel and claims payments on-chain.
- Python 3.10+
- Docker Desktop (running). Cloudflared Installed with the default path, coders can edit the path. For GPU, install NVIDIA driver + NVIDIA Container Toolkit
- Recommended:
git,PowerShellv5+
- Create a virtual environment and activate it:
python -m venv .venv
.venv\Scripts\activate- Install dependencies:
pip install -r requirements.txt- Create
config.iniin the project root:
[aptos]
private_key = <YOUR_PRIVATE_KEY>
contract_address = <MARKETPLACE_CONTRACT_ADDRESS>
node_url = https://fullnode.mainnet.aptoslabs.com/v1
backend_ws_url = ws://127.0.0.1:8000/ws
[host]
price_per_second = 1
[tunnel]
provider = cloudflare ; or ngrok
[ngrok]
auth_token = <YOUR_NGROK_AUTHTOKEN>If using Cloudflare, install cloudflared or configure its path in your config. If using ngrok, ensure
auth_tokenis set.
python main.pyThe agent will:
- Detect hardware and register on-chain (if needed)
- Prepare/pull the PyTorch image
- Wait for rentals and start Jupyter in a container
- Create a tunnel (Cloudflare preferred, ngrok fallback)
A simple PySide6 GUI is included to start/stop the agent and view sessions.
pip install PySide6
python gui_app.pyThe GUI reads the same state file used by the agent to list active sessions and open/stop them.
Create a single EXE for Windows:
pip install pyinstaller
pyinstaller --noconfirm --onefile --name UnifiedComputeHost gui_app.py- Ensure Docker Desktop is running.
- GPU required? Verify
nvidia-smiworks and NVIDIA Container Toolkit is installed. - ngrok errors? Set
auth_tokeninconfig.ini. - If Cloudflare used, ensure
cloudflaredis installed and accessible.