Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
HSTP — アプリケーション層のプロトコルフレームワークで、信頼ベースのエンドツーエンド暗号化通信を異種ネットワーク間で実現し、TCP、HTTP、およびブロックチェーン層での統一的なサービス発見とルーティングを可能にします。 | Kitploit
ツール/GitHubGitHub/cagataycali/hstp
ウェブセキュリティネットワークセキュリティ暗号化ユーティリティとフレームワーク
GitHubcagataycali/hstp

HSTP

アプリケーション層のプロトコルフレームワークで、信頼ベースのエンドツーエンド暗号化通信を異種ネットワーク間で実現し、TCP、HTTP、およびブロックチェーン層での統一的なサービス発見とルーティングを可能にします。

リポジトリを見る
15552年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ネットワーク上のハイパーシンプルテキストプロトコル

HSTP - コンピュータネットワーク上のハイパーサービス転送プロトコル

今すぐ試す: https://hstp.ai

root@kitploit:~
npx hstp;

このプロトコルは、ハイパーサービス転送プロトコル(Hyper Service Transfer Protocol)のアプリケーション層抽象化を開発することを目的としています。

HSTPは、HSTPの性質上、再帰的です。このプロトコルはインターフェースとして自身を実装します。インターネットに接続されたすべてのデバイスにはHSTPインスタンスが存在します。そのため、導入は必要ありません。HSTPはすでにインターネットの上層で稼働しています。私たちは今、異種ネットワーク上のプロトコルを介してプロトコルを説明することに成功したに過ぎません。そのため、web2やweb3などと比較しないでください。

抽象

HSTPは、異種ネットワークのためのアプリケーション表現インターフェースです。

HSTPインターフェースは、ネットワーク内の他のノードと通信できるようにするための一連のメソッドの実装を強制します。これにより、サーバー、クライアント、その他のノードは、信頼ベースでエンドツーエンド暗号化された方法で相互に通信できます。やがてノード解決は私が書いた最速経路解決アルゴリズムに基づいて行われます。

赤ちゃんのためのプロトコル 🍼 <- 👀 <- 👶:

お話の時間だよ!

  • 赤ちゃんが泣いてる! 👶
  • ミルクが必要! 🍼
  • ママに問題が。
  • パパに問題が。
  • 解決しよう!

小さな概要

想像してみてください。あるお母さんとお父さんが幸せに暮らしている状況です。 彼らには赤ちゃんが生まれました! 突然、お母さんは病気を治すために定期的に薬を飲む必要が出てきました。その薬は赤ちゃんにとって毒です。赤ちゃんは泣き叫び、お母さんはお父さんに電話します。なぜならお父さんは赤ちゃんを助けることができる唯一の信頼できる人だからです。しかしお父さんは時々家にいられず、赤ちゃんに食べさせるために何かをしなければなりません。お父さんは、ある牛乳配達人が新鮮で高品質のミルクを安価で提供していると聞きました。お父さんはその牛乳配達人と話をしてみることにしました。牛乳配達人はお父さんにミルクを届け、お父さんはミルクをお母さんに運びます。お母さんは赤ちゃんにミルクをあげます。赤ちゃんは幸せになり、眠ります。お母さんは赤ちゃんが幸せなのを見ます。

家族は一度もミルクを外から買ったことがなく、今回が初めて赤ちゃんのためにミルクを買うのです: (お母さんは牛乳配達人の番号を知らず、牛乳配達人は家の住所を知りません)

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.

あなたが今読んでいるこのドキュメントは、インターネットの人々が、サービスがクライアントに提供することを信頼することで他の人々と接続するためのマニフェストであり、信頼は優れたサービスを提供することによってのみ維持できます。 信頼が鍵ですが、生き残るためには十分ではありません。サービスは信頼性が高く、一貫性があり、安価でなければなりません。そうでなければ、人々は再びあなたに頼まないことを決断するでしょう。

さて、簡単でしょう?ストーリーの中のこれらの人々は誰ですか?理解するのはとても簡単です。

  • 赤ちゃんはクライアントです。
  • お母さんはクライアントです。
  • お父さんはクライアントです。
  • 牛乳配達人はサーバーです。

また、

  • 赤ちゃんは**[時間]**の中でサーバーになる可能性があります。
  • お母さんは赤ちゃんにとってサーバーです。
  • お父さんはお母さんにとってサーバーです。
  • 牛乳配達人はお父さんにとってサーバーです。
  • 牛乳配達人はお母さんにとってサーバーです。

赤ちゃんは信頼できる手の中にいます。心配することは何もありません。彼らはあなたを愛しています。あなたが成長して子供を持てば理解できるでしょう。

// 技術的なステップの説明は後ほど。しかし、見た目ほど難しくはありません。

HSTPとは何ですか?

HSTPはインターフェースであり、アプリケーション層で実装しなければならない一連のメソッドのセットです。このインターフェースは、ネットワーク内の他のノードと通信するために使用されます。このインターフェースは異種ネットワークで使用されるように設計されています。

HSTPノードとは何ですか?

HSTPは、ネットワーク接続されたデバイス/環境の任意の層に実装されるものとします。

HSTPノードは、TCPサーバー、HTTPサーバー、静的ファイル、または任意のチェーン上のコントラクトである可能性があります。 1つのHSTPノードは、他の任意のHSTPノードを呼び出すことができます。 これにより、ノードは互いに自由に呼び出し合い、システムの状態を確認し、相互に通信できます。

ネットワークのためのどのような抽象化層ですか?

HSTPはすでに言語レベルで、人々によって人々のために実装されています。 英語は地球上で最も普及している言語です。JavaScriptもブラウザ環境で最も普及している言語として知られています。SolidityはEVMベースのチェーン用、hyperbeesはTCPベースのネットワーク用などです。

HSTPインターフェースは、HSTPに接続された任意のデバイス/ネットワーク間で適用されるものとします。

  • [Universe] は [Universe] と [HSTP] を介して通信します
    • [Kind] ユニバースはワールドを介して通信します。
      • [World] 地球は音声周波数と HSTP で通信します。
        • [Country] X は Xishの音声周波数と HSTP で通信します。
          • [Community] CommunityX は CommunityXish で通信します。
        • [Country] Y は Yish と HSTP で通信します。
        • [Country] Z は Zish と HSTP で通信します。
      • [World] 火星は無線周波数で通信します。
        • [Bacteria] UUU-1 は UUU-1ish と HSTP で通信します。
          • 情報: UUU-1 は、universe/kind/world/Earth/X/CommunityX/query を呼び出すことができます。
      • [World] 木星は光の周波数で通信し、HSTPを実装していません。
        • 情報: 地球が木星と通信したい場合、ユニバース上の木星プロキシにHSTPを1つ追加できます。
    • [Kind] ユニバースは原子と HSTP を介して通信します。
      • [Atoms] ... と HSTP。
        • ... と HSTP。
          • [Y] ... と HSTP。
            • 情報: [Y] は universe/kind/world/Mars/Bacteria/UUU-1/query と通信できます。
      • [Atoms] ... と HSTP。
        • ... と HSTP。
          • [Y] ... と HSTP。
            • 情報: [Y] は universe/kind/world/Mars/Bacteria/UUU-1/query と通信できます。 情報: Kindユニバースは火星と通信でき、火星もKindユニバースと通信できます。

HSTPの目的は何ですか?

無限のスケーリングオプション: 任意のTCP接続デバイスは、HSTPを介して他の任意のTCP接続デバイスと通信できます。つまり、任意のウェブブラウザが別のHSTPノードのサーバーとなり、任意のウェブブラウザが他の任意のウェブブラウザを呼び出すことができます。

統一されたアプリケーション表現インターフェース: HSTPは統一されたインターフェースであり、アプリケーション層で実装しなければならない一連のメソッドのセットです。

異種ネットワーク: ネットワークのすべての参加者は、ネットワークの他の参加者とリソースを共有できます。リソースにはCPU、メモリ、ストレージ、ネットワークなどが含まれます。

ウェブバージョンの結合 ブロックチェーン技術がweb3と呼ばれるようになってから、人々はウェブの違いについて議論し始めました。比較することは、増分数値システム教育の考え方の行動です。どちらが優れているか?どちらでもありません。私たちは、基盤となるサービスが何であれ、1つの統一プロトコルで通信できるシステムを構築しなければなりません。HSTPはそのためのものです。

HSTPのコンポーネントは何ですか?

レジストリインターフェース レジストリインターフェースは、TCP層で使用するために設計されており、ネットワーク内のトップレベルTLDノードを登録できるようにします。HSTP TCPリレーの最初の実装は hstp/ を解決します。

レジストリには2つの部分があります:

  • Register メソッド:ネットワークに新しいノードを登録するために使用されます。
  • Resolve メソッド:ネットワーク内のノードを解決するために使用されます。

レジストリの実装には2つのHSTPノードが必要です:

  1. Hyperbees
  • 異種ネットワークはRPC、TCP、HTTP、HSTPなどのレジストリを解決します。
  1. 任意のEVMベースのチェーン(Ethereum、Binance Smart Chain、Polygonなど)上のRegistry.sol。
  • Registry.solはHSTPノードのレジストリを解決します。これは他のネットワークを介してリレーできます。

ルーターインターフェース

デモンストレーション目的で、以下のSolidityの例を使用します:

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インターフェース

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);
}

HSTPノードの例

HSTPノードは、super.reply(name, operation, payload)メソッドによって親ルーターを呼び出すことができます。HSTPノードは、this.query(payload)またはthis.mutation(payload)メソッドによって子ノードを呼び出すこともできます。

HSTPノードは、スマートコントラクト、ウェブブラウザ、またはTCP接続デバイスである可能性があります。

ノードは、ネットワークにさらにHSTPノードを追加したり、自身をサブサービスとして追加したりする完全な機能を持っています。

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);
        }
}

提案

Ethereumプロポーザルは現在ドラフトですが、プロトコルには参考実装Todo.solがあります。

HSTP上で動作する素晴らしいウェブサービス

完全なリストはこちら

Hello world

今すぐRemixでHSTPをテストして試すことができます。

プロトコルで遊ぶ方法は?

  • 以下のソースコードを https://remix.ethereum.org/ にコピーしてください。
  • 任意のEVMベースのチェーンにデプロイします。
  • 関数を呼び出して、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 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);
        }
}

貢献:

開発者レベルの貢献

  • HSTPでTodoアプリケーションを作成し、Remixでデプロイしてテストする。
  • HSTPのアーキテクチャ図(サービスのないアーキテクチャ)を描く。

コアレベルの貢献

  • hyperbeesにTCP層のHSTPインターフェースを実装する [Universe]
    • hyperbeesとHSTPは、HSTPの最初の実装になります。
    • これにより、ネットワークのUniverseフェーズがカバーされます。これにより、HSTP上で完全な分散型ウェブが実現します。
  • SolidityにRPC層のHSTPインターフェースを実装する [Web3]
    • Solidity - HSTP Node example
  • SolidityでHSTPインターフェース上に複雑なサービスのないアーキテクチャを実装する [Web3]
    • Solidity - CoolBook (疑似サービスのないアーキテクチャ)
  • JavaScriptにHTTP層のHSTPインターフェースを実装する [Web]
    • HSTPインターフェースはPOC状態に近いです。HTML - HSTP Node example

インスピレーション:

  • Babelルーティングプロトコルの適用可能性 https://datatracker.ietf.org/doc/rfc8965/
  • EIP: 拡張インターネットプロトコル 後方互換性を維持するためのフレームワーク - https://datatracker.ietf.org/doc/html/rfc1385
  • マインドセット Humanode
    • なぜHumanodeではないのか: 彼らはこの抽象化に対して高すぎるレベルですが、正しい道はHSTPです。
  • SolidityレベルのHSTP抽象化 (Diamond protocol eip-2535)
    • なぜダイヤモンドではないのか: https://blog.trailofbits.com/2020/10/30/good-idea-bad-design-how-the-diamond-standard-falls-short/
  • TCPレベルのHSTP抽象化 (libp2p)
    • アプリケーション表現層が欠けています。
  • なぜlibp2pではないのか: アプリケーション表現層がありません。単なるネットワーク層です。
  • TCP層抽象化アプローチ:https://datatracker.ietf.org/doc/html/rfc1347
    • なぜRFC1347ではないのか: 標準ではなく、単なる提案です。アプリケーション表現層が欠けています。

ライセンス

GNU GENERAL PUBLIC LICENSE V3

コアコントリビューター

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

スポンサー

  • eunomia.team - ロゴとデザイン

著者

Cagatay Cali

ツールをダウンロード