') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); GitHub - NodeMonsterProjects/nexus-node: Docker Complete Guide - Run Nexus node as Prover Network. · GitHub
Skip to content

Repository files navigation

com-webp-to-png-converter

A Complete Guide Nexus Testnet Node - Running on Docker (Non-Interactive)

The Nexus Labs zkVM (zero-knowledge virtual machine) is a modular verifiable internet, as extensible, open-source, highly-parallelized, prover-optimized, contributor-friendly, zkVM written in Rust, focused on performance and security. Read this step to runnig Nexus node as Prover Network.

Release Version

2024, 10 Dec for CLI prover-id binding Confirm

2025, 19 Feb CLI Run for Confirm

Update; 2025, 23 JUNE CLI Run for Confirm

Here We Go...Gas!!!

Is there incentivized?Confirm

Important

What incentives do you offer for contributing to the network? At this time, contributors receive recognition through public leaderboards. Nexus may implement additional incentives in a future release. Read here https://nexus.xyz/network#network-faqs

There mentioned in FAQs; As following categories of contributions and this incentive pools are indicated on faqs.

N-E-X-U-S-10-27-2024_12_46_AM

Incentivized ActivityAllocation Token
Running Nexus Prover Nodexxxxx (TBA)
Testnetworkxxxxx (TBA)

1. Preparation Nexus Node

1. Hardware requirements

In order to ran Nexus prover node as CLI, need a Linux server (VPS) with the minimum recommended hardware

RequirementDetails
RAM4 GB
CPU/vCPU2-4 Cores
Storage Space50-100 GB
Supported OSUbuntu 20.04, 22.04, 24.04 LTS

2. Hardware requirements

In order to ran Nexus prover node as BROWSER, need a device

RequirementDetails
InternetStable Connection
Portable DevicesHand/mobile phones, PC/Laptop/Netbooks, Tablet
Web BrowserChrome, Firefox, Safari, Opera, Brave, Edge, UC/Kiwi etc..

3. Configuration Nexus prover node

If you don't have these dependencies already, install them first.

sudo apt update && sudo apt upgrade -y sudo apt install build-essential pkg-config libssl-dev git-all protobuf-compiler

2. Start Install using Docker

1. Auto Installing by Docker

git clone https://github.com/arcxteam/nexus-node.git
cd nexus-node

2. Manual Installing by CLI

curl https://cli.nexus.xyz/ | sh

If you do not already have Rust, you will be prompted to install it.

3. Update First Setup

1. Update CLI for Binding a Wallet Address

If you have runtime at previous & run now, please binding your node-id for manual without auto installer skrip nexus.sh above. so the step here

  • Go to https://app.nexus.xyz/nodes
  • Open and wait the dashboard showing all and go section add node > add CLI node > check copy and done
  • Open your ssh-vps-terminal, add/input your WALLET_ADDRESS and use command to enter
echo "WALLET_ADDRESS=your-wallet" >> /root/nexus-node/.env

For example

- echo "WALLET_ADDRESS=0x123456789" >> /root/nexus-node/.env

2. After running check logging

docker compose logs -f nexus-docker
  • or in the root
docker logs -f nexus-docker

3. Running on Multiple NODE-ID

  • This will Run and create

  • Replace WALLET_ADDRESS

  • Rename for next wallet address -> WALLET_ADDRESS_1 more multiple 3,4,5....

  • If the container is running, you will see the status from the Dashboard nexus slow this processing

Still wait, this having for syncing on website, check Nexus Point on section page.....

image

Desktop-screenshot-02-21-2025_12_57_AM

2. Upgrade version for network-api

logs: If have facing issue cargo/cycles etc Proof sent! You proved at 0 Hz try git tag -l for the latest Api Network https://github.com/nexus-xyz/network-api/releases/

docker ps -a --filter "name=nexus-docker-" --format "{{.Names}}" | xargs -r docker rm -f && docker images --filter "reference=nexus-docker-*" --format "{{.ID}}" | xargs -r docker rmi -f && rm -rf /root/nexus-data/nexus-docker-* && cd /root/nexus && chmod +x nexus.sh && ./nexus.sh node-id-1.txt

4. Usefull Commands

1. Based-on ran Nexus Labs node

Checking the status service and resources

  • docker images | grep nexus-docker
  • docker ps -a
  • docker stats

Check Version or error

source /root/.bashrc
source /root/.profile
nexus-network --version

2. Important Note

  • Delete all Nexus Node running service
docker rmi -f $(docker images --filter "reference=nexus-docker-*" --format "{{.ID}}")

5. Running nodes as a service

If you want to run a node (or several of them) as a service instead of docker

1. create service files

For each node you want to run create a new service file (replace [id] with your node id)

vi /etc/systemd/system/nexus-node-[id].service

2. Paste in the following content:

[Unit]
Description=Nexus Node [id]
Wants=network-online.target
After=network-online.target
[Service]
User=root
Type=simple
ExecStart=/path-to/nexus-network start --headless --node-id [id]
[Install]
WantedBy=multi-user.target

3. Relaod systemd and enable the services

Repeat this step for each node you are setting up

sudo systemctl enable nexus-node-[id]
sudo systemctl daemon-reload

4. Run the node

Repeat this step for each node you want to run

sudo systemctl start nexus-node-[id]

5. Stopping a node

sudo systemctl stop nexus-node-[id]

6. Viewing node Logs

journalctl -f -u nexus-node-[id] -o cat

7. Note

When a node is running it is exauhsting a single thread of the CPU, at maximum you shuold run N-1 nodes where N is the number of CPUs you have on the machine, you should also make sure you have enough RAM when running multiple nodes.

About

Docker Complete Guide - Run Nexus node as Prover Network.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages