ParitrDocs

Alles zur Funktionsweise des Netzwerks, zur Installation einer eigenen Node auf Linux und Windows sowie zur Verbindung mit deinem Wallet.

campaign
Version 5.0.0 ändert die Konsensregeln. Der Arbeitsnachweis nutzt jetzt speichergebundenes scrypt, die Schwierigkeit wird stündlich angepasst und Adressen beginnen mit P. Blöcke älterer Versionen sind damit nicht mehr gültig: Alle Nodes müssen aktualisiert werden (manage.sh update bzw. manage.ps1 update) und ihr Datenverzeichnis einmalig neu aufbauen.

Was ist Paritr?

Paritr ist eine eigenständige Kryptowährung nach Bitcoin-Vorbild. Das Netzwerk besteht aus zwei Teilen:

  • Full Nodes – unabhängige Server, die die gesamte Blockchain speichern, alle Regeln prüfen, Transaktionen weiterleiten und per Proof of Work neue Blöcke erzeugen. Jeder kann eine Node betreiben.
  • Web-Plattform – dein Wallet im Browser. Der private Schlüssel wird lokal erzeugt und verlässt deinen Browser nie. Die Plattform ist im Hintergrund mit einer Node verbunden, um Guthaben zu lesen und signierte Transaktionen einzureichen.
info
Zum Empfangen und Senden von PAR brauchst du keine eigene Node. Eine eigene Node ist nur nötig, wenn du selbst schürfen und damit neue Coins verdienen möchtest.

Funktionsweise der Blockchain

Blöcke und Proof of Work

Jeder Block trägt einen 80 Byte großen Header aus Version, Hash des Vorgängers, Merkle-Wurzel aller Transaktionen, Zeitstempel, Schwierigkeit (nBits) und einem Zähler (Nonce). Die Kennung eines Blocks ist SHA256(SHA256(header)). Der Arbeitsnachweis nutzt dagegen scrypt mit 2 MiB Arbeitsspeicher je Hash (N = 2048, r = 8, p = 1). Gültig ist ein Block, wenn dieser scrypt-Hash kleiner oder gleich der Zielmarke ist. Miner variieren den Nonce so lange, bis das zutrifft.

Die Speicherbindung ist Absicht: Reines SHA256d lässt sich mit fertiger Spezialhardware (ASICs) millionenfach beschleunigen, die für Bitcoin ohnehin existiert. Ein Bruchteil davon würde die Schwierigkeit hier so weit anheben, dass normale Rechner chancenlos wären. scrypt macht die Speicherlatenz zum Flaschenhals statt der Rechenwerke – genau der Ansatz, der ASICs jahrelang von CryptoNight ferngehalten hat.

Kontenmodell

Statt UTXO nutzt Paritr ein Konto-/Nonce-Modell: Jede Adresse hat einen Kontostand und einen fortlaufenden Zähler. Jede Transaktion trägt die nächste Nonce des Absenders – doppelte oder übersprungene Nonces werden abgelehnt. Das schützt vor Wiedereinreichung (Replay) und erlaubt sehr schlanke Wallets.

Über das Netzwerk treffen Transaktionen desselben Absenders aber nicht zwangsläufig in Reihenfolge ein. Kommt Nonce n+1 vor n an, wird sie deshalb nicht verworfen, sondern kurzzeitig zwischengespeichert und automatisch nachgerückt, sobald die Lücke geschlossen ist.

Signaturen und Adressen

Signiert wird mit ECDSA auf der Kurve secp256k1. Die Adresse ist Base58Check(0x37 ‖ RIPEMD160(SHA256(pubkey))) und beginnt daher immer mit P. Die Node prüft, dass die Absenderadresse zum mitgelieferten öffentlichen Schlüssel passt.

Konsens und Reorganisation

Nodes vergleichen nicht die Länge einer Kette, sondern die insgesamt hineingesteckte Arbeit. Eine fremde Kette wird nur übernommen, wenn sie mehr Arbeit enthält und jeder einzelne Block alle Regeln erfüllt. Bei einer Reorganisation wandern Transaktionen verwaister Blöcke zurück in die Warteschlange (Mempool), Shares zurück in den Share-Speicher.

Umgestellt wird dabei nur der abweichende Teil: Die Blöcke ab dem Verzweigungspunkt werden rückabgewickelt, danach wird ausschließlich der neue Ast geprüft und angewendet. Der Aufwand hängt so von der Tiefe der Reorganisation ab – nicht von der Länge der gesamten Kette.

Ein zugestellter Block, der nicht direkt an die eigene Spitze passt, wird nicht verworfen, sondern als Seitenast zwischengespeichert. Sobald genug Folgeblöcke eintreffen und der Ast mehr Arbeit enthält, wird umgeschwenkt. Ohne diesen Schritt könnte eine Node, die selbst keine ausgehenden Verbindungen aufbauen kann, dauerhaft auf ihrer eigenen Gabelung verharren – die Blöcke und Belohnungen der Gegenseite gingen dann verloren.

State-Wurzeln und Snapshots

Die gesamte Historie nachzurechnen ist bei einer jungen Kette unproblematisch und bei einer alten mühsam. Paritr verankert deshalb alle 720 Blöcke (etwa zwölf Stunden) eine State-Wurzel im Block – eine Merkle-Wurzel über alle Kontostände und Nonces. Weil die Wurzel Teil des Blocks ist, kann eine neue Node einen heruntergeladenen Snapshot gegen die Kette prüfen, statt Millionen Blöcke abzuspielen.

Jede Node hält die zwei jüngsten Snapshots vor und bietet sie unter /state/snapshot an. Da die Wurzel nur alle 720 Blöcke berechnet wird, kostet sie in den übrigen 719 Blöcken exakt nichts.

Wie sich Nodes finden

  1. Fest hinterlegte Seed-Nodes im Programmcode.
  2. DNS-Seeds: aufgelöste Adressen werden als Kandidaten genutzt – aber nur für Hosts, die nicht ohnehin schon als Seed-URL hinterlegt sind. Sonst entstehen tote Einträge, weil die A-Records hinter einem Reverse-Proxy oder CDN auf dessen Edge-Adressen zeigen, unter denen der RPC-Port gar nicht offen ist.
  3. Gossip: Beim Handshake tauschen Nodes ihre Peer-Listen aus.
  4. Rückweg: Meldet eine Gegenstelle keine öffentliche Adresse, wird ein Kandidat aus ihrer Absender-IP und dem gemeldeten RPC-Port gebildet und geprüft.
  5. Entdopplung: Ist dieselbe Node über mehrere Adressen bekannt (Seed-URL, Port-Variante, aufgelöste IP), wird für Relay und Sync nur die beste davon verwendet und weitergegeben.
  6. Headers-First-Sync: Erst alle Header prüfen, dann die Blöcke laden.
  7. Der Genesis-Block wird auf jeder Node deterministisch identisch berechnet.

Über dieselben Verbindungen laufen drei Arten von Nachrichten: Blöcke, Transaktionen und Shares. Alle ausgehenden Aufrufe werden von einer festen Zahl Hintergrund-Worker abgearbeitet. Eine langsame oder bösartige Gegenstelle kann den Node dadurch weder ausbremsen noch über unbegrenzt viele Verbindungen überlasten.

Übertragungsformat

Shares und Blöcke werden zusätzlich in einem kompakten Binärformat unter /p2p/share/bin und /p2p/block/bin angeboten (Magic PSH1 / PBK1, Obergrenze 4 MiB je Nachricht). Das halbiert den Relay-Verkehr gegenüber JSON ungefähr. Nodes handeln das Format automatisch aus und fallen auf JSON zurück, wenn eine Gegenstelle es nicht unterstützt.

Emission und Tail-Emission

Jeder neue Block erzeugt frische Coins – die Subvention. Sie startet bei 10 PAR und halbiert sich alle 1.600.000 Blöcke, also etwa alle drei Jahre.

all_inclusive
Die Belohnung fällt nie auf null. Unterhalb von 0,5 PAR je Block wird nicht weiter halbiert. Diese dauerhafte Rest-Emission ist der Grund, warum es keine starre Maximalmenge gibt.

Warum ohne Obergrenze?

Ein Netzwerk mit harter Obergrenze finanziert seine Sicherheit irgendwann ausschließlich über Transaktionsgebühren. Bleiben die aus, sinkt die Rechenleistung – und mit ihr der Schutz vor Angriffen. Die Tail-Emission löst das: Sie garantiert eine planbare Mindestbelohnung, ohne dass die Geldmenge aus dem Ruder läuft.

Entscheidend ist nämlich nicht die absolute Menge, sondern die jährliche Inflationsrate. Weil die Umlaufmenge wächst, die Neuemission je Jahr aber konstant bleibt, fällt diese Rate dauerhaft gegen null – ohne sie jemals ganz zu erreichen. Den aktuellen Wert zeigt der Endpunkt /supply.

Zeitraum (ca.)BlöckeBelohnung je Block
Jahr 1–31 – 1.600.00010 PAR
Jahr 4–61.600.001 – 3.200.0005 PAR
Jahr 7–93.200.001 – 4.800.0002,5 PAR
ab ca. Jahr 13dauerhaft0,5 PAR (Tail-Emission)

Shares: Bezahlung nach Leistung

Das Problem kleiner Nodes

Bei klassischem Mining bekommt nur die Node etwas, die den Block findet. Eine kleine Node mit 1 % der Rechenleistung findet im Schnitt jeden hundertsten Block – und geht dazwischen leer aus. Genau deshalb schließen sich Miner überall zu zentralen Pools zusammen.

Die Lösung: Shares direkt im Protokoll

Paritr baut den Pool in die Blockchain selbst ein. Beim Schürfen entstehen neben dem seltenen Blocktreffer laufend Shares: gültige Arbeitsnachweise, die ein Hundertstel der Blockschwierigkeit erfüllen. Sie kosten keine zusätzliche Rechenzeit, denn es ist derselbe Hash-Durchlauf – nur mit einer zweiten, leichteren Zielmarke.

  1. Die Node findet einen Share und verteilt ihn per Gossip an ihre Peers.
  2. Jede Node prüft ihn sofort: Arbeitsnachweis, Elternblock, Dublette.
  3. Die nächste Node, die einen Block findet, bindet bis zu 32 gesammelte Shares in ihren Block ein.
  4. Alle Shares der letzten 120 Blöcke bilden das Messfenster, nach dem die Belohnung verteilt wird.
savings
Eine Node mit 1 % der Netzleistung erhält dadurch bei nahezu jedem Block rund 1 % der verteilten Subvention – statt alle paar Stunden einen großen Betrag oder monatelang gar nichts.

Warum niemand fremde Shares unterschlagen kann

Ein Finder könnte versucht sein, fremde Shares einfach wegzulassen, um mehr für sich zu behalten. Das lohnt sich nicht: Liegen keine fremden Shares vor, fällt der gesamte 95 %-Pool ohnehin an den Finder – er hat also keinen Nachteil davon, sie aufzunehmen, wohl aber die garantierten 5 % Inklusions-Anreiz plus alle Gebühren sicher. Gleichzeitig ist die Verteilung für jede Node exakt nachrechenbar: Ein Block mit falscher Coinbase wird schlicht abgelehnt.

Und Shares lassen sich nicht stehlen: Die Auszahlungsadresse steckt über einen Merkle-Nachweis im gehashten Header. Wer sie austauscht, zerstört den Arbeitsnachweis. Bereits bestätigte Shares können zudem kein zweites Mal eingebunden werden.

Mining und Belohnungen

Ablauf

  1. Eingereichte Transaktionen sammeln sich im Mempool, eingehende Shares im Share-Speicher der Node.
  2. Die Node baut einen Kandidaten-Block: zuerst die zu bestätigenden Shares, daraus der Verteilschlüssel und die Coinbase-Ausgänge, danach die Transaktionen mit der höchsten Gebühr.
  3. Der Nonce wird variiert, bis der Header-Hash unter der Zielmarke liegt. Zwischentreffer unter der leichteren Share-Marke werden als Shares veröffentlicht.
  4. Der Finder hängt den Block an und verteilt ihn an alle bekannten Peers.

Liegt keine Transaktion vor, entsteht ein leerer Block mit nur den Coinbase-Ausgängen. Das Netzwerk rechnet dadurch ununterbrochen weiter.

Wer bekommt wie viel?

AnteilEmpfängerZweck
95 % der Subventionalle Miner mit Shares im Messfensterstrikt anteilig: Pool × eigene Shares / alle Shares
5 % der Subventiondie Node, die den Block gefunden hatAnreiz, fremde Shares aufzunehmen statt zu zensieren
100 % der Gebührendie Node, die den Block gefunden hatAnreiz, volle Blöcke zu bauen und den Mempool zu leeren

Je Block gibt es höchstens 32 Empfänger; Kleinstbeträge unter 0,00001 PAR sowie Rundungsreste gehen an den Finder. Dadurch entspricht die Summe aller Ausgänge exakt Subvention plus Gebühren – jede Node rechnet das mit reiner Ganzzahlarithmetik nach. Die aggregierten Kennzahlen zeigt der Bereich Mining › Netzwerk sowie der Endpunkt /mining/distribution.

Reifezeit

Frisch geschürfte Coins sind zunächst gesperrt und erst nach 10 weiteren Blöcken ausgebbar. In der Übersicht steht bis dahin Ausstehend, danach Bestätigt. Das schützt vor Umkehrungen, falls sich die Kette kurzfristig reorganisiert.

Konsens-Parameter

Diese Werte sind fest im Protokoll verankert und auf jeder Node identisch. Sie lassen sich weder über die Konfiguration noch über die Weboberfläche ändern.

Netz-Kennungparitr-mainnet
Kleinste Einheit0,00000001 PAR (1 Coin = 100.000.000 Einheiten)
Start-Belohnung10 PAR je Block
Halbierungalle 1.600.000 Blöcke (ca. 3 Jahre)
Mindest-Belohnung0,5 PAR je Block (Tail-Emission)
Maximalmengekeine feste Obergrenze – siehe Emission
Soll-Blockzeit60 Sekunden
Arbeitsnachweisscrypt (N = 2048, r = 8, p = 1) – 2 MiB je Hash
Schwierigkeitsanpassungalle 60 Blöcke (ca. 1 h), gedämpft auf Faktor 4
Reifezeit der Belohnung10 Blöcke
Verteilung der Belohnung95 % nach Share-Anteil, 5 % + alle Gebühren an den Finder
Messfenster der Leistung120 Blöcke (ca. 2 Stunden)
Share-Schwierigkeit1/100 der Blockschwierigkeit
Shares je Blockmax. 32
Coinbase-Empfänger je Blockmax. 32
State-Checkpointalle 720 Blöcke (ca. 12 h)
Mindestgebühr0,001 PAR
Mindestbetrag0,00001 PAR
Blockgrößemax. 500 Transaktionen
AdressformatBase58Check, Präfix P

Node installieren

Eine Paritr-Node läuft überall dort, wo Python 3.9 oder neuer verfügbar ist. Getestete Plattformen:

SystemArchitekturInstallation
Ubuntu 20.04+ / Debian 11+x86_64install.sh
Ubuntu / Debian / Raspberry Pi OSaarch64, armv7linstall.sh
Windows 10 / 11 / Server 2019+x64, ARM64install.ps1
macOS, andere Distributionenbeliebigmanuell

Mindestanforderungen

  • Python 3.9 oder neuer
  • 2 GB RAM, 2 GB freier Speicher (wächst mit der Kette)
  • Dauerhafte Internetverbindung
  • Erreichbarer TCP-Port (Standard 5050) – empfohlen, aber nicht zwingend

Alle Dateien im Überblick

Die Installationsskripte laden alles Weitere selbst nach – einzeln brauchst du die Dateien nur für eine manuelle Einrichtung.

Linux: Ubuntu, Debian und ARM

Das Skript funktioniert identisch auf x86_64-Servern und auf ARM-Geräten (Raspberry Pi 4/5, Oracle Ampere, AWS Graviton, …). Die Architektur wird automatisch erkannt.

Installationsskript laden und starten

Ein Befehl richtet Python-Umgebung, Dienst und Firewall ein.

curl -fsSL https://paritr.highactive.de/dist/install.sh -o install.sh bash install.sh --source https://paritr.highactive.de/dist
Optionen (alle freiwillig)
bash install.sh \ --address P… # Auszahlungsadresse deines Wallets --port 5050 # RPC-Port --public-url https://node1.example.org --cores 2 # Rechenprozesse (0 = automatisch) --intensity 60 # Auslastung je Prozess in Prozent --cpu-quota 150% # harte CPU-Grenze (150 % = 1,5 Kerne)

Ohne Angaben fragt das Skript interaktiv nach der Wallet-Adresse und nutzt sonst sinnvolle Standardwerte. Die öffentliche Adresse wird automatisch erkannt, wenn du --public-url weglässt.

Was das Skript tut
  • Installiert Python, venv und Build-Werkzeuge (auf ARM nötig)
  • Legt ~/paritr-node mit eigener Python-Umgebung an
  • Lädt node.py, wsgi.py und manage.sh in dieses Verzeichnis
  • Erzeugt config.json samt frischem Admin Secret Key
  • Richtet den systemd-Dienst paritr-node ein (Autostart, Neustart bei Fehlern, gedrosselte CPU-Priorität)
  • Öffnet den Port in ufw bzw. firewalld
Admin Secret Key notieren

Am Ende der Installation wird der Admin Secret Key ausgegeben. Du brauchst ihn, um die Node im Wallet zu verbinden. Später jederzeit abrufbar:

cd ~/paritr-node && ./manage.sh secret
memory
Raspberry Pi: Verwende ein 64-Bit-System (Raspberry Pi OS 64-Bit oder Ubuntu Server arm64) und eine SSD statt einer SD-Karte – die Blockchain schreibt dauerhaft. Bei aktiver Kühlung sind alle Kerne nutzbar, sonst empfiehlt sich eine Intensität um 50 %.

Windows

Unter Windows übernimmt install.ps1 die Einrichtung. Als Serverprozess kommt waitress zum Einsatz; der Autostart läuft über eine geplante Aufgabe.

Python installieren

Falls noch nicht vorhanden – bei der manuellen Installation unbedingt „Add python.exe to PATH“ ankreuzen.

winget install -e --id Python.Python.3.12
PowerShell als Administrator öffnen

Rechtsklick auf das Startmenü → Terminal (Administrator). Administratorrechte werden für die Firewall-Regel und den Autostart benötigt.

Installationsskript laden und starten
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force Invoke-WebRequest 'https://paritr.highactive.de/dist/install.ps1' -OutFile install.ps1 .\install.ps1 -Source 'https://paritr.highactive.de/dist'
Optionen
.\install.ps1 ` -Address P… `# Auszahlungsadresse -Port 5050 `# RPC-Port -Cores 2 `# Rechenprozesse (0 = automatisch) -Intensity 60 `# Auslastung je Prozess in Prozent -Dir 'D:\Paritr' `# eigenes Verzeichnis -NoAutostart # ohne geplante Aufgabe

Standardverzeichnis ist %LOCALAPPDATA%\Paritr\node.

Admin Secret Key notieren

Wird am Ende ausgegeben und ist später abrufbar mit:

.\manage.ps1 secret
bolt
Energieoptionen prüfen. Damit die Node dauerhaft läuft, sollte der Ruhezustand deaktiviert sein: powercfg /change standby-timeout-ac 0

Manuelle Installation (macOS, andere Systeme)

# 1. Dateien holen mkdir paritr-node && cd paritr-node curl -fsSL https://paritr.highactive.de/dist/node.py -o node.py curl -fsSL https://paritr.highactive.de/dist/wsgi.py -o wsgi.py # 2. Python-Umgebung anlegen python3 -m venv venv ./venv/bin/pip install Flask requests ecdsa waitress # 3. Node starten (erzeugt config.json beim ersten Start) ./venv/bin/python node.py --port 5050 --address P… # 4. Admin Secret Key auslesen python3 -c "import json;print(json.load(open('config.json'))['admin_secret'])"
verified
RIPEMD-160: Auf Systemen ohne OpenSSL-Legacy-Provider (Windows, neuere Linux-Distributionen) fehlt dieser Hash in Python. node.py bringt deshalb eine eigene, gegen die offiziellen Testvektoren geprüfte Implementierung mit und erzeugt überall identische Adressen. Es ist nichts weiter zu tun.
lock
scrypt: Der Arbeitsnachweis benötigt hashlib.scrypt und damit ein gegen OpenSSL gebautes Python. Die Node prüft das beim Start und verweigert den Dienst mit einer klaren Meldung, statt ungültige Blöcke zu erzeugen.

Hardware-Auslastung steuern

Wie viel Leistung deine Node fürs Mining einsetzt, ist frei einstellbar – bequem über die Regler im Bereich Mining der Web-Plattform oder direkt auf dem Server.

EinstellungBedeutungWerte
Rechenkerne
mining_processes
Anzahl paralleler Rechenprozesse. Wird nie größer als die Zahl der vorhandenen CPU-Kerne.0 = automatisch
(alle Kerne minus 1)
Intensität
mining_intensity
Arbeitsanteil je Zeitscheibe. Bei 50 % rechnet die Node genauso lange, wie sie pausiert – das halbiert Verbrauch und Wärme.5 – 100 (%)
CPU-Quota (nur Linux)Harte Obergrenze durch systemd, unabhängig von der Node-Konfiguration.z. B. 150%

Über die Web-Plattform

Mining › Meine Nodes › Einstellungen › Leistung: Die beiden Regler zeigen live die zu erwartende Gesamtlast an. Änderungen greifen sofort nach dem Speichern – ein Neustart ist nicht nötig. Voraussetzung ist ein hinterlegter Admin Secret Key.

Auf dem Server

# Linux ./manage.sh cores 2 # zwei Rechenprozesse ./manage.sh intensity 60 # 60 % Auslastung je Prozess ./manage.sh cpuquota 150% # harte systemd-Grenze # Windows .\manage.ps1 cores 2 .\manage.ps1 intensity 60 .\manage.ps1 priority BelowNormal
lightbulb
Eine gedrosselte Node ist weiterhin ein vollwertiger Teilnehmer: Sie prüft alle Blöcke, leitet Transaktionen weiter und sichert das Netzwerk. Nur die Chance, selbst einen Block zu finden, sinkt entsprechend.

Erreichbarkeit herstellen

Deine Node findet das Netzwerk auch hinter einem Router von allein. Damit andere Nodes sie erreichen und die Web-Plattform sie direkt ansprechen kann, sollte der Port erreichbar sein.

  1. Dem Server im Router eine feste lokale IP-Adresse zuweisen.
  2. Portweiterleitung einrichten: 5050/TCP auf diese IP.
  3. Bei wechselnder öffentlicher IP einen DynDNS-Namen einrichten und ihn beim Installieren als --public-url angeben.
  4. Erreichbarkeit prüfen: curl http://DEINE-ADRESSE:5050/status

Der Installer erkennt deine öffentliche Adresse automatisch und trägt sie in config.json ein. Korrigieren kannst du sie später mit ./manage.sh publicurl https://…; was die Gegenstellen sehen, meldet die Node unter /p2p/whoami.

https
HTTPS-Hinweis: Wird die Web-Plattform über HTTPS aufgerufen, darf der Browser keine unverschlüsselte http://-Node direkt ansprechen (Mixed Content). Die Plattform weicht dann automatisch auf ihren Server-Proxy aus. Damit das klappt, muss die Node aus dem Internet erreichbar sein – oder du richtest HTTPS auf der Node ein, z. B. per Reverse Proxy mit Caddy oder nginx.

Node mit dem Wallet verbinden

Erst durch das Verbinden kannst du deine Node in der Web-Plattform überwachen und steuern. Die Verbindung gilt nur für dein Konto.

Admin Secret Key bereitlegen

Er wurde am Ende der Installation angezeigt. Erneut auslesen:

./manage.sh secret # Linux .\manage.ps1 secret # Windows
In der Plattform hinzufügen

Mining › Meine Nodes › Node verbinden. Trage ein:

  • Bezeichnung – frei wählbar, z. B. „Heim-Server“
  • Adresse – vollständig inkl. Port, z. B. http://meine-node.de:5050
  • Admin Secret KeyPflichtangabe
Verbindung testen und speichern

Der Button Testen prüft Erreichbarkeit, Blockhöhe und ob die Node zur richtigen Kette gehört. Danach auf Verbinden tippen.

Auszahlungsadresse setzen

Im Bereich Mining die Node-Einstellungen öffnen, Meine Adresse nutzen und speichern. Ab jetzt fließen alle geschürften Coins direkt in dein Wallet.

key
Warum ist der Secret Key Pflicht? Er ist der Nachweis, dass die Node wirklich dir gehört, und schaltet gleichzeitig alle Steuerfunktionen frei (Auszahlungsadresse, Mining an/aus, Hardware-Budget). Der Schlüssel wird ausschließlich serverseitig deinem Konto zugeordnet und niemals an andere Nutzer ausgeliefert. Bei Verdacht auf Kompromittierung: in config.json ersetzen, Dienst neu starten und den neuen Schlüssel in der Plattform hinterlegen.

Betrieb und Wartung

Linux

./manage.sh status # Dienststatus und Blockhöhe ./manage.sh logs # Live-Protokoll ./manage.sh restart # Dienst neu starten ./manage.sh secret # Admin Secret Key anzeigen ./manage.sh address P… # Auszahlungsadresse setzen ./manage.sh mining on|off # Mining schalten ./manage.sh cores 2 # Rechenprozesse begrenzen ./manage.sh intensity 60 # Auslastung begrenzen ./manage.sh publicurl https://node1.example.org ./manage.sh peers # bekannte Nodes ./manage.sh addpeer http://… # Peer manuell ergänzen ./manage.sh rmpeer http://… # Peer entfernen ./manage.sh update https://paritr.highactive.de/dist # Software aktualisieren

Windows

.\manage.ps1 status .\manage.ps1 restart .\manage.ps1 secret .\manage.ps1 address P… .\manage.ps1 mining on .\manage.ps1 cores 2 .\manage.ps1 intensity 60 .\manage.ps1 peers .\manage.ps1 update https://paritr.highactive.de/dist

Konfigurationsdatei

{ "rpc_host": "0.0.0.0", "rpc_port": 5050, "public_url": "https://node1.example.org", "admin_secret": "…", "miner_address": "P…", "mining_enabled": true, "mining_processes": 0, "mining_intensity": 100, "seed_nodes": ["https://node0.oe-net.de"], "data_dir": "data", "rpc_cors_origins": "*" }

Nach Handänderungen an config.json den Dienst neu starten. Änderungen über die Web-Plattform oder manage greifen dagegen sofort.

Datensicherung

Sichern musst du nur config.json (enthält den Admin Secret Key). Die Blockchain selbst lädt eine neue Node automatisch aus dem Netzwerk. Dein Guthaben liegt in der Blockchain – nicht auf der Node.

Sicherheit

  • Privater Schlüssel: Wird im Browser erzeugt und nur mit deinem Passwort verschlüsselt (AES-256-GCM) gespeichert. Ohne Schlüssel und Passwort gibt es keinen Zugriff auf dein Guthaben – und keine Wiederherstellung durch Dritte. Sichere ihn unter Konto › Schlüssel sichern.
  • Admin Secret Key: Gehört zur Node, nicht zum Wallet. Er erlaubt keine Überweisungen, sondern nur das Steuern der Node.
  • Node-Rechte: Der systemd-Dienst läuft ohne erweiterte Rechte und darf nur in sein eigenes Verzeichnis schreiben.
  • CORS: Über rpc_cors_origins lässt sich der Zugriff auf die eigene Plattform begrenzen, statt * zu erlauben.
  • Server-Proxy: Die Plattform ruft nur freigegebene Endpunkte auf und verweigert Anfragen in private Netze (SSRF-Schutz).

Häufige Probleme

SymptomUrsache und Lösung
Node in der Plattform „nicht erreichbar“Portweiterleitung und Firewall prüfen. Bei HTTPS-Seite und http-Node greift der Server-Proxy – die Node muss dafür aus dem Internet erreichbar sein.
„Admin Secret Key ungültig“ (403)Schlüssel erneut mit manage.sh secret auslesen und unter Meine Nodes › Einstellungen › Verbindung neu eintragen.
Badge „Adresse fehlt“Es ist keine Auszahlungsadresse gesetzt. Ohne sie schürft die Node nicht.
Alle Werte in der Plattform bleiben bei 0Dein Konto trägt noch eine Adresse aus der Zeit vor Version 5.0.0 (beginnend mit C). Melde dich einmal an – die Plattform leitet die Adresse automatisch neu aus deinem öffentlichen Schlüssel ab. Prüfe außerdem, ob die Node läuft und ihre Netz-Kennung paritr-mainnet lautet.
„Das ist keine gültige Paritr-Adresse“Gleiche Ursache: Adressen beginnen jetzt mit P. Kopiere die Adresse erneut aus dem Wallet und setze sie auf der Node mit ./manage.sh address P….
Hashrate bleibt bei 0Mining ist deaktiviert, es fehlt die Auszahlungsadresse, oder die Intensität steht sehr niedrig.
Blockhöhe bleibt bei 0Keine Verbindung zu Seed-Nodes. Ausgehende Verbindungen und DNS prüfen, danach ./manage.sh addpeer https://node0.oe-net.de.
unsupported hash type ripemd160Alte Node-Version. Mit manage.sh update aktualisieren – die aktuelle Fassung bringt eine eigene Implementierung mit.
scrypt is not available beim StartDas Python-Paket wurde ohne OpenSSL gebaut. Installiere das offizielle Python für dein System; ohne OpenSSL kann die Node nicht schürfen.
Die Kette startet nach einem Update nichtIm Datenverzeichnis liegen noch Blöcke einer älteren Konsens-Version. Die Node verweigert die Nutzung bewusst. Dienst stoppen, data/ löschen und neu starten – die Kette wird aus dem Netzwerk neu geladen.
Server wird sehr warm / lautKerne oder Intensität unter Hardware-Auslastung reduzieren.
Mining-Belohnung nicht ausgebbarCoinbase-Reifezeit: 10 Blöcke. Bis dahin steht dort Ausstehend.
Node schürft, findet aber nie einen BlockDas ist bei kleinen Nodes normal und kein Fehler: Entscheidend sind die Shares. Prüfe unter Mining › Mein Anteil, ob deine Share-Zahl steigt – dann fließen die Auszahlungen.
Eigene Shares bleiben bei 0Die Node ist zu jung (das Messfenster umfasst 120 Blöcke), hat keine Peers, denen sie Shares melden kann, oder läuft noch auf einer Version vor 5.0.0.
Node findet Blöcke, erhält aber kaum AuszahlungenIhre Blöcke werden von der Gegenseite nicht übernommen. Alle Nodes auf Version 5.0.0 oder neuer bringen, die Systemzeit per NTP synchronisieren (zu alte Zeitstempel verletzen die Median-Time-Past-Regel) und prüfen, ob public_url gesetzt und erreichbar ist.
Peer meldet „Coinbase entspricht nicht dem Share-Verteilschlüssel“Die beteiligten Nodes laufen auf unterschiedlichen Konsens-Versionen. Alle Nodes mit manage.sh update bzw. manage.ps1 update auf 5.0.0 heben.
Peer-Liste enthält fremde IP-AdressenDas sind die A-Records des DNS-Seeds – bei einer Node hinter einem CDN die Edge-Adressen des Anbieters, unter denen der RPC-Port nicht offen ist. Sie werden nicht mehr aufgenommen; bestehende Einträge löscht ./manage.sh rmpeer <url> oder das Entfernen von data/peers.json.
Haupt-Node zeigt 0 PeersNormal, solange die Gegenstellen keine erreichbare public_url melden: Sie wählen die Haupt-Node an, nicht umgekehrt. Die Zahl der Gegenstellen steht in network_nodes bzw. inbound_count.

Schnittstellenreferenz

Jede Node bietet eine offene JSON/REST-Schnittstelle. Admin-Endpunkte erwarten den Header X-Admin-Secret.

EndpunktBeschreibung
GET /statusVollständiger Netz- und Node-Status
GET /healthKurzer Erreichbarkeitscheck
GET /chain/paramsKonsens-Parameter inkl. Share- und Emissionsregeln
GET /supplyUmlaufmenge, Emission und Inflationsrate
GET /address/<adresse>Guthaben und nächste Nonce
GET /address/<adresse>/transactionsBuchungen einer Adresse
POST /transactionSignierte Transaktion einreichen
GET /transaction/<txid>Einzelne Transaktion
GET /block/<höhe|hash>Block abrufen
GET /fee/estimateGebührenempfehlung
GET /mining/infoMining-Zustand, Share-Schwierigkeit, Hardware-Budget
GET /mining/rewards/<adresse>Eigene Gutschriften
GET /mining/distributionAggregierte Pool-Kennzahlen (optional ?address=)
GET /state/snapshotPrüfbarer Kontostand-Snapshot zum letzten State-Checkpoint
GET /p2p/whoamiDie öffentliche Adresse, unter der dich eine Gegenstelle sieht
POST /p2p/shareShare einreichen und weiterverteilen (JSON)
POST /p2p/share/binDasselbe im Binärformat
POST /p2p/block/binBlock im Binärformat einreichen
POST /admin/miningAdresse, Mining, Kerne und Intensität setzen
GET /admin/peersPeer-Liste mit Zustand
POST /admin/syncKettenabgleich anstoßen

Beispiel

curl -s http://127.0.0.1:5050/mining/info | python3 -m json.tool curl -s -X POST http://127.0.0.1:5050/admin/mining \ -H "Content-Type: application/json" \ -H "X-Admin-Secret: DEIN-SECRET" \ -d '{"mining_processes": 2, "mining_intensity": 60}'

ParitrDocs · paritr-mainnet · Wallet · Start · Impressum