Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
HSTP — Anwendungsschicht-Protokollframework für vertrauensbasierte, Ende-zu-Ende-verschlüsselte Kommunikation über heterogene Netzwerke, das einheitliche Dienstentdeckung und Routing auf TCP-, HTTP- und Blockchain-Ebenen ermöglicht. | Kitploit
Tools/GitHubGitHub/cagataycali/hstp
WebsicherheitNetzwerksicherheitKryptographieDienstprogramme & Frameworks
GitHubcagataycali/hstp

HSTP

Anwendungsschicht-Protokollframework für vertrauensbasierte, Ende-zu-Ende-verschlüsselte Kommunikation über heterogene Netzwerke, das einheitliche Dienstentdeckung und Routing auf TCP-, HTTP- und Blockchain-Ebenen ermöglicht.

Repository anzeigen
1555vor 2 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Hyper Simple Text Protocol on Networks

HSTP – Hyper Service Transfer Protocol in Computernetzwerken

Jetzt testen: https://hstp.ai

root@kitploit:~
npx hstp;

Das Protokoll zielt darauf ab, eine Abstraktionsschicht auf Anwendungsebene für das Hyper Service Transfer Protocol zu entwickeln.

HSTP ist eine Rekursion, so wie die Natur von HSTP. Dieses Protokoll implementiert sich selbst als Schnittstelle. Auf jedem mit dem Internet verbundenen Gerät gibt es eine HSTP-Instanz. Deshalb ist keine Adoption erforderlich. HSTP läuft bereits oben auf dem Internet. Wir haben es jetzt nur geschafft, das Protokoll über Protokolle in heterogenen Netzwerken zu erklären. Vergleichen Sie es daher nicht mit Web2, Web3 oder umgekehrt.

Abstract

HSTP ist eine Anwendungsrepräsentationsschnittstelle für heterogene Netzwerke.

Die HSTP-Schnittstelle erzwingt die Implementierung einer Reihe von Methoden, um mit anderen Knoten im Netzwerk kommunizieren zu können. So können Dienste, Clients und andere Knoten auf vertrauensbasierte, Ende-zu-Ende-verschlüsselte Weise miteinander kommunizieren. Die Knotenauflösung basiert auf dem schnellsten Pfadauflösungsalgorithmus, den ich geschrieben habe.

Protokoll für Babys 🍼 <- 👀 <- 👶:

Märchenzeit!

  • Baby weint! 👶
  • Braucht Milch! 🍼
  • Mama hat ein Problem.
  • Papa hat ein Problem.
  • Lass es uns lösen!

Ein kleiner Überblick

Stellen Sie sich vor, wir befinden uns in der Situation, dass eine Mutter und ein Vater ein glückliches Leben führen. Sie bekamen ein Baby! Plötzlich musste die Mutter regelmäßig Tabletten einnehmen, um eine Krankheit zu heilen. Die Pille ist ein Gift für das Baby. Das Baby weint und die Mutter ruft den Vater an, weil er die einzige vertrauenswürdige Person ist, die dem Baby helfen kann. Aber der Vater kann manchmal nicht zu Hause bleiben, er muss etwas tun, um das Baby zu füttern. Der Vater hört, dass ein Milchmann frische und hochwertige Milch zu einem niedrigen Preis hat. Der Vater beschließt, mit dem Milchmann zu sprechen, der Milchmann liefert die Milch an den Vater, der Vater bringt die Milch zur Mutter. Die Mutter gibt dem Baby die Milch. Das Baby ist jetzt glücklich und schläft, die Mutter sieht, dass das Baby glücklich ist.

Die Familie hat noch nie Milch von außerhalb gekauft, dies ist das erste Mal, dass sie Milch für das Baby kaufen: (Mama kennt die Nummer des Milchmanns nicht, der Milchmann kennt die Hausadresse nicht)

root@kitploit:~
As steps:

0)  - Baby wants to drink milk.
1)  - Baby cries to the mom.
3)  - Mom see the baby is crying.
4)     - Mom checks the fridge. Mom sees the milk is empty. (Mother is only trusting the Father)
5)        - Mom calls the father.
6)        - Father calls the milkman.
7)        - Milkman delivers the milk to father.
8)        - Father delivers the milk to mom.
9)  - Mom gives the milk to the baby.
10) - Baby drinks the milk.
11) - Baby is happy.
12) - Baby sleeps.
13) - Mother see the baby is happy and sleeps.
14) - In order to be able to contact the milkman again, the mother asks the father to tell her that she wants the milkman to save the address of the house and the mobile phone of the mother.
15)     - Mother calls the father.
16)     - Father calls the milkman.
17)     - Milkman saves the address of the house and the mobile phone of the mother.

Oops, tomorrow baby wakes up and cries again,
0) - Baby wants to drink milk.
1) - Baby cries to the mom.
2) - Mom see the baby is crying.
3)    - Mom checks the fridge. Mom sees the milk is empty. (Mother is trusting the Father had right decision in the first place by giving the address to the milkman, and the milkman had right decision in the first place by saving the address of the house and the mobile phone of the mother.)
4)    - Mother calls the milkman (Mother is trusting the Father's decision only)
5)    - Milkman delivers the milk to mom.
6) - Mom gives the milk to the baby.
7) - Baby drinks the milk.
8) - Baby is happy.
9) - Baby sleeps.
10) - Mother see the baby is happy and sleeps.
11) - Mother is happy and the mother trust the milkman now.

Dieses Dokument, das Sie lesen, ist ein Manifest für die Internetmenschen, um andere Menschen zu verbinden, indem sie darauf vertrauen, dass der Dienst den Client bedient, und das Vertrauen kann nur durch die Bereitstellung guter Dienste aufrechterhalten werden. Vertrauen ist der Schlüssel, aber nicht genug zum Überleben. Der Dienst muss zuverlässig, konsistent und billig sein. Sonst entscheiden sich die Leute, dich nicht mehr zu fragen.

Also, es ist einfach, oder? Es ist so einfach zu verstehen, wer sind diese Leute in der Geschichte?

  • Baby ist ein Client.
  • Mama ist ein Client.
  • Papa ist ein Client.
  • Milchmann ist ein Server.

außerdem,

  • Baby könnte in [ZEIT] ein Server sein.
  • Mama ist ein Server für das Baby.
  • Papa ist ein Server für Mama.
  • Milchmann ist ein Server für Papa.
  • Milchmann ist ein Server für Mama.

Baby ist in sicheren Händen. Keine Sorge. Sie lieben dich, du wirst es verstehen, wenn du erwachsen bist und ein Kind hast.

// Technische Schritterklärung folgt, aber nicht so schwer, wie Sie sehen.

Was ist ein HSTP?

HSTP ist eine Schnittstelle, eine Reihe von Methoden, die von der Anwendungsschicht implementiert werden müssen. Die Schnittstelle wird verwendet, um mit anderen Knoten im Netzwerk zu kommunizieren. Die Schnittstelle ist für die Verwendung in einem heterogenen Netzwerk ausgelegt.

Was ist ein HSTP-Knoten?

HSTP soll auf jeder Schicht von netzwerkverbundenen Geräten/Umgebungen implementiert werden.

Ein HSTP-Knoten kann ein TCP-Server, HTTP-Server, eine statische Datei oder ein Vertrag in einer beliebigen Chain sein. Ein HSTP-Knoten kann jeden anderen HSTP-Knoten aufrufen. Da die Knoten sich also frei gegenseitig aufrufen können, können sie ihren Systemstatus überprüfen und miteinander kommunizieren.

Welche Art von Abstraktionsschicht für Netzwerke?

HSTP ist bereits auf Sprachebene implementiert, von Menschen für Menschen. Englisch ist die am weitesten verbreitete Sprache auf der Erde. JavaScript könnte auch die am weitesten verbreitete Sprache für Browserumgebungen sein. Solidity ist für EVM-basierte Chains, hyperbees für TCP-basierte Netzwerke usw.

Die HSTP-Schnittstelle soll zwischen allen HSTP-verbundenen Geräten/Netzwerken angewendet werden.

  • [Universe] spricht mit [Universe] via [HSTP]
    • [Kind] Universe spricht über die Welt.
      • [World] Erde spricht mit Schallfrequenzen und HSTP.
        • [Country] X Schallfrequenzen in Xish und HSTP.
          • [Community] CommunityX Xish auf CommunityXish.
        • [Country] Y spricht Yish und HSTP.
        • [Country] Z spricht Zish und HSTP.
      • [World] Mars spricht mit Funkfrequenzen.
        • [Bacteria] UUU-1 spricht UUU-1ish und HSTP.
          • Info: UUU-1 kann aufrufen, universe/kind/world/Earth/X/CommunityX/query
      • [World] Jupiter spricht mit Lichtfrequenzen und implementiert kein HSTP.
        • Info: Wenn die Erde mit Jupiter sprechen möchte, können wir einen HSTP-zu-Jupiter-Proxy im Universum hinzufügen.
    • [Kind] Universe spricht über Atome und HSTP.
      • [Atoms] ... und HSTP.
        • ... und HSTP.
          • [Y] ... und HSTP.
            • Info: [Y] kann sprechen mit universe/kind/world/Mars/Bacteria/UUU-1/query
      • [Atoms] ... und HSTP.
        • ... und HSTP.
          • [Y] ... und HSTP.
            • Info: [Y] kann sprechen mit universe/kind/world/Mars/Bacteria/UUU-1/query Info: Kind Universe kann mit Mars sprechen, und Mars kann auch mit Kind Universe sprechen.

Was ist der Zweck von HSTP?

Unendliche Skalierungsoptionen: Jedes TCP-verbundene Gerät kann mit jedem anderen TCP-verbundenen Gerät über HSTP sprechen. Das bedeutet, dass jeder Webbrowser ein Server eines anderen HSTP-Knotens ist und jeder Webbrowser jeden anderen Webbrowser aufrufen kann.

Einheitliche Anwendungsrepräsentationsschnittstelle: HSTP ist eine einheitliche Schnittstelle, eine Reihe von Methoden, die von der Anwendungsschicht implementiert werden müssen.

Heterogene Netzwerke: Jeder Teilnehmer des Netzwerks darf seine Ressourcen mit den anderen Teilnehmern des Netzwerks teilen. Die Ressourcen können CPU, Speicher, Festplatte, Netzwerk usw. sein.

Konjugation der Webversionen Da die Blockchain-Technologien als Web3 bezeichnet werden, begannen die Leute über die Unterschiede zwischen den Webs zu diskutieren. Vergleichen ist ein Verhalten der Denkweise inkrementeller numerischer Systeme. Welches ist besser: keines von beiden. Wir müssen Systeme bauen, die in einem einheitlichen Protokoll sprechen können, darunterliegende Dienste können alles sein. HSTP zielt darauf ab.

Was sind die Komponenten von HSTP?

Registry-Schnittstelle Die Registry-Schnittstelle ist für die Verwendung auf der TCP-Schicht ausgelegt, um Top-Level-TLD-Knoten im Netzwerk registrieren zu können. Die erste Implementierung des HSTP-TCP-Relays wird hstp/ auflösen.

Die Registry hat zwei Teile der Schnittstelle:

  • Register-Methode, die verwendet wird, um einen neuen Knoten im Netzwerk zu registrieren.
  • Resolve-Methode, die verwendet wird, um einen Knoten im Netzwerk aufzulösen.

Für die Registry-Implementierung werden zwei HSTP-Knoten benötigt:

  1. Hyperbees
  • Heterogene Netzwerke werden die Registry von RPC, TCP, HTTP, HSTP usw. auflösen.
  1. Registry.sol auf einer beliebigen EVM-basierten Chain (Ethereum, Binance Smart Chain, Polygon, usw.)
  • Registry.sol wird die Registry von HSTP-Knoten auflösen. Dies kann über andere Netzwerke weitergeleitet werden.

Router-Schnittstelle

Zu Demonstrationszwecken verwenden wir das folgende Solidity-Beispiel:

root@kitploit:~
// SPDX-License-Identifier: GNU-3.0-or-later
pragma solidity ^0.8.0;

import "./HSTP.sol";
import "./ERC165.sol";

enum Operation {
    Query,
    Mutation
}

struct Response {
    uint256 status;
    string body;
}

struct Registry {
    HSTP resolver;
}

// HSTP/Router.sol
abstract contract Router is ERC165 {
    event Log(address indexed sender, Operation operation, bytes payload);
    event Register(address indexed sender, Registry registry);
    mapping(string => Registry) public routes;

    function reply(string memory name, Operation _operation, bytes memory payload) public virtual payable returns(Response memory response) {
        emit Log(msg.sender, _operation, payload);
        // Traverse upwards and downwards of the tree.
        // Tries to find the closest path for given operation.
        // If the route is registered on HSTP node, reply from children node.
        // If the node do not have the route on this node, ask for parent.
        if (routes[name]) {
            if (_operation == Operation.Query) {
                return this.query(payload);
            } else if (_operation == Operation.Mutation) {
                return this.mutation(payload);
            }
        }
        return super.reply(name, _operation, payload);
    }

    function query(string memory name, bytes memory payload) public view returns (Response memory) {
        return routes[name].resolver.query(payload);
    }

    function mutation(string memory name, bytes memory payload) public payable returns (Response memory) {
        return routes[name].resolver.mutation(payload);
    }

    function register(string memory name, HSTP node) public {
        Registry memory registry = Registry({
            resolver: node
        });
        emit Register(msg.sender, registry);
        routes[name] = registry;
    }

    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(HSTP).interfaceId;
    }
}

HSTP-Schnittstelle

root@kitploit:~
// SPDX-License-Identifier: GNU-3.0-or-later
pragma solidity ^0.8.0;

import "./Router.sol";

// Stateless Hyper Service Transfer Protocol for on-chain services.
// Will implement: EIP-4337 when it's on final stage.
// https://github.com/ethereum/EIPs/blob/master/EIPS/eip-4337.md
abstract contract HSTP is Router {
    constructor(string memory name) {
        register(name, this);
    }

    function query(bytes memory payload)
        public
        view
        virtual
        returns (Response memory);

    function mutation(bytes memory payload)
        public
        payable
        virtual
        returns (Response memory);
}

Beispiel HSTP-Knoten

Ein HSTP-Knoten hat Zugriff auf den übergeordneten Router über die Methode super.reply(name, operation, payload). Ein HSTP-Knoten kann auch untergeordnete Knoten aufrufen, indem er die Methoden this.query(payload) oder this.mutation(payload) aufruft.

Ein HSTP-Knoten kann ein Smart Contract, ein Webbrowser oder ein TCP-verbundenes Gerät sein.

Der Knoten hat die volle Fähigkeit, dem Netzwerk oder sich selbst weitere HSTP-Knoten als Unterdienste hinzuzufügen.

root@kitploit:~
      HSTP  HSTP
    /    \   /  \
  HSTP   HSTP  HSTP
        /    \
      HSTP  HSTP
    /       /
    HSTP   HSTP
root@kitploit:~
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "hstp/HSTP.sol";

// Stateless Hyper Service Transfer Protocol for on-chain services.
contract Todo is HSTP("Todo") {

    struct ITodo {
        string todo;
    }
    
    function addTodo(ITodo memory request) public payable returns(Response memory response) {
        response.body = request.todo;
        return response;
    }

    // Override for HSTP.
    function query(bytes memory payload)
        public
        view
        virtual
        override
        returns (Response memory) {}

    function mutation(bytes memory payload)
        public
        payable
        virtual
        override
        returns (Response memory) {
            (ITodo memory request) = abi.decode(payload, (ITodo));
            return this.addTodo(request);
        }
}

Vorschlag

Der Ethereum-Vorschlag ist jetzt ein Entwurf, aber das Protokoll hat eine Referenzimplementierung Todo.sol.

Fantastische Webdienste, die auf HSTP laufen

Vollständige Liste hier

Hallo Welt

Sie können HSTP jetzt testen und auf Remix ausprobieren.

Wie spiele ich mit dem Protokoll?

  • Kopieren Sie den folgenden Quellcode auf https://remix.ethereum.org/
  • Stellen Sie ihn auf einer beliebigen EVM-basierten Chain bereit.
  • Rufen Sie die Funktionen auf und probieren Sie verschiedene Netzwerktopologien auf HSTP aus.
root@kitploit:~
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "hstp/HSTP.sol";

// Stateless Hyper Service Transfer Protocol for on-chain services.
contract Todo is HSTP("Todo") {

    struct TodoRequest {
        string todo;
    }
    
    function addTodo(TodoRequest memory request) public payable returns(Response memory response) {
        response.body = request.todo;
        return response;
    }

    // Override for HSTP.
    function query(bytes memory payload)
        public
        view
        virtual
        override
        returns (Response memory) {}

    function mutation(bytes memory payload)
        public
        payable
        virtual
        override
        returns (Response memory) {
            (TodoRequest memory todoRequest) = abi.decode(payload, (TodoRequest));
            return this.addTodo(todoRequest);
        }
}

Mitwirken:

Beitrag auf Entwicklerebene

  • Schreiben Sie eine Todo-Anwendung mit HSTP, stellen Sie sie mit Remix bereit und testen Sie sie.
  • Zeichnen Sie eine Beispielarchitektur von HSTP (dienstlose Architektur).

Beitrag auf Kernebene

  • Implementieren Sie die TCP-Schicht-HSTP-Schnittstelle auf hyperbees, [Universe]
    • hyperbees und HSTP werden die erste Implementierung von HSTP sein.
    • Das wird die Universumsphase der Netzwerke abdecken. Das wird uns das vollständig dezentrale Web auf HSTP bringen.
  • Implementieren Sie die RPC-Schicht-HSTP-Schnittstelle auf Solidity [Web3]
    • Solidity - HSTP Node example
  • Implementieren Sie eine komplexe dienstlose Architektur auf der HSTP-Schnittstelle mit Solidity [Web3]
    • Solidity - CoolBook (Pseudoservice-lose Architektur)
  • Implementieren Sie die HTTP-Schicht-HSTP-Schnittstelle auf JavaScript [Web]
    • HSTP-Schnittstellen sind nahe am POC-Zustand. HTML - HSTP Node example

Inspirationen:

  • Anwendbarkeit des Babel Routing Protocols https://datatracker.ietf.org/doc/rfc8965/
  • EIP: The Extended Internet Protocol A Framework for Maintaining Backward Compatibility - https://datatracker.ietf.org/doc/html/rfc1385
  • Denkweise Humanode
    • Warum es kein Humanode ist: Sie sind für diese Abstraktion noch zu hoch angesiedelt, aber der richtige Weg ist HSTP.
  • Abstraktion auf Solidity-Ebene für Hyper Service Transfer Protocol (Diamond protocol eip-2535)
    • Warum es kein Diamond ist: https://blog.trailofbits.com/2020/10/30/good-idea-bad-design-how-the-diamond-standard-falls-short/
  • Abstraktion auf TCP-Ebene für Hyper Service Transfer Protocol (libp2p)
    • Anwendungsrepräsentationsschicht fehlt.
  • Warum es kein libp2p ist: Es gibt keine Anwendungsrepräsentationsschicht. Es ist nur eine Netzwerkschicht.
  • Ansatz zur TCP-Schichtabstraktion: https://datatracker.ietf.org/doc/html/rfc1347

Lizenz

GNU GENERAL PUBLIC LICENSE V3

Hauptbeitragende

  • Cagatay Cali
  • Buğra Yıldız
  • Erdal Çay

Sponsoren

  • eunomia.team - Logo & Design

Autor

Cagatay Cali

Tool herunterladen
  • Warum es kein RFC1347 ist: Es ist kein Standard, es ist nur ein Vorschlag. Anwendungsrepräsentationsschicht fehlt.