Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
HSTP — 基于信任的端到端加密通信的应用层协议框架,支持跨异构网络,在TCP、HTTP及区块链层实现统一的服务发现与路由。 | Kitploit
工具/GitHubGitHub/cagataycali/hstp
Web安全网络安全密码学实用工具与框架
GitHubcagataycali/hstp

HSTP

基于信任的端到端加密通信的应用层协议框架,支持跨异构网络,在TCP、HTTP及区块链层实现统一的服务发现与路由。

查看仓库
15552年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

网络上的超简单文本协议

HSTP - 计算机网络上的超服务传输协议

立即尝试:https://hstp.ai

root@kitploit:~
npx hstp;

该协议旨在为超服务传输协议开发一种应用层抽象。

HSTP 是一种递归,正如 HSTP 的本质。该协议将自身实现为一个接口。在每个连接到互联网的设备上,都存在一个 HSTP 实例。因此无需采用。HSTP 已经运行在互联网之上。我们现在才刚刚实现了在异构网络上通过协议解释协议。所以不要将其与 web2、web3 或类似事物进行比较。

摘要

HSTP 是用于异构网络的应用表示接口。

HSTP 接口强制实现一组方法,以便能够与网络中的其他节点通信。这样,服务、客户端和其他节点可以通过基于信任、端到端加密的方式相互通信。届时,节点解析基于我编写的最快路径解析算法。

给宝宝的协议 🍼 <- 👀 <- 👶:

讲故事时间!

  • 宝宝哭了!👶
  • 需要奶!🍼
  • 妈妈有问题。
  • 爸爸有问题。
  • 我们来解决!

一个小概述

想象一下,我们处于一个妈妈和爸爸幸福生活的情景中。 他们生了一个宝宝! 突然,妈妈需要定期吃药来治疗一种疾病。药片对宝宝有毒。宝宝哭了,妈妈打电话给爸爸,因为他是唯一可信赖的能帮助宝宝的人。但爸爸有时不能待在家里,他需要做点什么来喂养宝宝。爸爸听说有个送奶工有新鲜优质的牛奶,价格低廉。爸爸决定试着和送奶工谈谈,送奶工把牛奶送到爸爸那里,爸爸把牛奶带给妈妈。妈妈把牛奶给宝宝。宝宝现在开心了,宝宝睡着了,妈妈看到宝宝开心。

这家人从未从外面买过牛奶,这是他们第一次为宝宝买牛奶: (妈妈不知道送奶工的电话,送奶工不知道家庭地址)

root@kitploit:~
步骤如下:

0)  - 宝宝想喝奶。
1)  - 宝宝向妈妈哭。
3)  - 妈妈看到宝宝在哭。
4)     - 妈妈检查冰箱。妈妈看到奶没了。(妈妈只信任爸爸)
5)        - 妈妈打电话给爸爸。
6)        - 爸爸打电话给送奶工。
7)        - 送奶工把牛奶送到爸爸那里。
8)        - 爸爸把牛奶送到妈妈那里。
9)  - 妈妈把奶给宝宝。
10) - 宝宝喝奶。
11) - 宝宝开心了。
12) - 宝宝睡了。
13) - 妈妈看到宝宝开心地睡着了。
14) - 为了能再次联系送奶工,妈妈让爸爸告诉送奶工,她希望送奶工保存家庭地址和妈妈的手机号码。
15)     - 妈妈打电话给爸爸。
16)     - 爸爸打电话给送奶工。
17)     - 送奶工保存了家庭地址和妈妈的手机号码。

哎呀,第二天宝宝醒来又哭了,
0) - 宝宝想喝奶。
1) - 宝宝向妈妈哭。
2) - 妈妈看到宝宝在哭。
3)    - 妈妈检查冰箱。妈妈看到奶没了。(妈妈信任爸爸最初把地址给送奶工是正确的决定,而且送奶工最初保存家庭地址和妈妈的手机号码也是正确的决定。)
4)    - 妈妈打电话给送奶工(妈妈只信任爸爸的决定)
5)    - 送奶工把牛奶送到妈妈那里。
6) - 妈妈把奶给宝宝。
7) - 宝宝喝奶。
8) - 宝宝开心了。
9) - 宝宝睡了。
10) - 妈妈看到宝宝开心地睡着了。
11) - 妈妈开心了,现在妈妈信任送奶工。

你正在阅读的这份文档是一份宣言,旨在让互联网人们通过信任服务来连接他人,而信任只能通过提供优质服务来维持。 信任是关键,但不足以生存。服务必须可靠、一致、便宜。否则人们将决定不再向你求助。

所以,这很简单,对吧?这个故事里的人是谁?

  • 宝宝是客户端。
  • 妈妈是客户端。
  • 爸爸是客户端。
  • 送奶工是服务器。

另外,

  • 宝宝在 [时间] 中可能是服务器。
  • 妈妈是宝宝的服务器。
  • 爸爸是妈妈的服务器。
  • 送奶工是爸爸的服务器。
  • 送奶工是妈妈的服务器。

宝宝在信任的手中。没什么好担心的。他们爱你,等你长大了有孩子就会明白。

// 技术步骤解释即将推出,但不会像你看到的那么难。

什么是 HSTP?

HSTP 是一个接口,即一组必须由应用层实现的方法。该接口用于与网络中的其他节点通信。它设计用于异构网络。

什么是 HSTP 节点?

HSTP 应在任何层的网络连接设备/环境中实现。

HSTP 节点可以是 TCP 服务器、HTTP 服务器、静态文件或任何链上的合约。 一个 HSTP 节点能够调用任何其他 HSTP 节点。 因此,节点可以自由地相互调用,检查彼此的系统状态,并相互通信。

为网络提供什么类型的抽象层?

HSTP 已经在语言层面由人们为人们实现。 英语是地球上最广泛采用的语言。JavaScript 可能也是浏览器环境中最广泛采用的语言。Solidity 用于 EVM 兼容链,hyperbees 用于基于 TCP 的网络等。

HSTP 接口应应用于任何 HSTP 连接的设备/网络之间。

  • [宇宙] 通过 [HSTP] 与 [宇宙] 对话
    • [种类] 宇宙通过世界对话。
      • [世界] 地球通过声音频率和 HSTP 对话。
        • [国家] X 使用 Xish 语言和声音频率,以及 HSTP。
          • [社区] CommunityX 使用 CommunityXish 语言。
        • [国家] Y 使用 Yish 语言和 HSTP。
        • [国家] Z 使用 Zish 语言和 HSTP。
      • [世界] 火星通过无线电频率对话。
        • [细菌] UUU-1 使用 UUU-1ish 语言和 HSTP。
          • 信息: UUU-1 可以调用 universe/kind/world/Earth/X/CommunityX/query
      • [世界] 木星通过光频率对话,不实现 HSTP。
        • 信息: 如果地球想与木星对话,我们可以在宇宙中为木星添加一个 HSTP 代理。
    • [种类] 宇宙通过原子和 HSTP 对话。
      • [原子] ... 和 HSTP。
        • ... 和 HSTP。
          • [Y] ... 和 HSTP。
            • 信息: [Y] 可以与 universe/kind/world/Mars/Bacteria/UUU-1/query 对话
      • [原子] ... 和 HSTP。
        • ... 和 HSTP。
          • [Y] ... 和 HSTP。
            • 信息: [Y] 可以与 universe/kind/world/Mars/Bacteria/UUU-1/query 对话 信息: 种类宇宙可以与火星对话,火星也可以与种类宇宙对话。

HSTP 的目的是什么?

无限的扩展选项: 任何 TCP 连接的设备都可以通过 HSTP 与任何其他 TCP 连接的设备对话。这意味着任何 web 浏览器都是另一个 HSTP 节点的服务端,并且任何 web 浏览器都可以调用任何其他 web 浏览器。

统一的应用程序表示接口: HSTP 是一个统一接口,即一组必须由应用层实现的方法。

异构网络: 网络的任何参与者都允许与其他参与者共享资源。资源可以是 CPU、内存、存储、网络等。

Web 版本的融合 由于区块链技术被称为 web3,人们开始讨论不同 web 版本之间的差异。比较是递增数值系统教育思维的一种行为。哪个更好:都不是。我们必须构建能够通过统一协议对话的系统,底层服务可以是任何东西。HSTP 的目标正是如此。

HSTP 的组成部分是什么?

注册接口 注册接口设计用于 TCP 层,以便在网络中注册顶级 tld 节点。HSTP TCP 中继的第一个实现将解析 hstp/

注册接口有两个部分:

  • Register 方法,用于在网络中注册新节点。
  • Resolve 方法,用于解析网络中的节点。

注册实现需要两个 HSTP 节点:

  1. Hyperbees
  • 异构网络将解析 RPC、TCP、HTTP、HSTP 等的注册。
  1. Registry.sol 在任何 EVM 兼容链上。(Ethereum、Binance Smart Chain、Polygon 等)
  • 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);
        // 向树的上层和下层遍历。
        // 尝试为给定操作找到最近的路径。
        // 如果路由在 HSTP 节点上注册,则从子节点回复。
        // 如果节点本身没有该路由,则询问父节点。
        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";

// 链上服务的无状态超服务传输协议。
// 将在 EIP-4337 最终阶段时实现。
// 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 节点可以是智能合约、web 浏览器或 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";

// 链上服务的无状态超服务传输协议。
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;
    }

    // 覆盖 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);
        }
}

提案

以太坊提案目前是草稿,但该协议已有参考实现 Todo.sol。

运行在 HSTP 之上的优秀 Web 服务

完整列表在此

Hello world

你现在可以测试 HSTP 并在 remix 上尝试。

如何使用该协议?

  • 将以下源代码复制到 https://remix.ethereum.org/
  • 在任何 EVM 兼容链上部署。
  • 调用函数并在 HSTP 上尝试不同的网络拓扑。
root@kitploit:~
// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.0;

import "hstp/HSTP.sol";

// 链上服务的无状态超服务传输协议。
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;
    }

    // 覆盖 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 的第一个实现。
    • 这将涵盖网络的宇宙阶段。这将为我们带来完全去中心化的 HSTP 网络。
  • 在 Solidity 上实现 RPC 层 HSTP 接口 [Web3]
    • Solidity - HSTP 节点示例
  • 在 Solidity 上使用 HSTP 接口实现复杂的无服务架构 [Web3]
    • Solidity - CoolBook(伪无服务架构)
  • 在 JavaScript 上实现 HTTP 层 HSTP 接口 [Web]
    • HSTP 接口接近 POC 状态。HTML - HSTP 节点示例

灵感来源:

  • Babel 路由协议的适用性 https://datatracker.ietf.org/doc/rfc8965/
  • EIP:扩展互联网协议——保持向后兼容性的框架 - https://datatracker.ietf.org/doc/html/rfc1385
  • 思维方式 Humanode
    • 为什么不是 Humanode: 他们对于这个抽象层来说级别太高,但正确的路径是 HSTP。
  • 超服务传输协议的 Solidity 级别抽象(钻石协议 eip-2535)
    • 为什么不是钻石协议: https://blog.trailofbits.com/2020/10/30/good-idea-bad-design-how-the-diamond-standard-falls-short/
  • 超服务传输协议的 TCP 级别抽象(libp2p)
    • 缺少应用表示层。
  • 为什么不是 libp2p: 没有应用表示层。它只是一个网络层。
  • TCP 层抽象方法:https://datatracker.ietf.org/doc/html/rfc1347
    • 为什么不是 RFC1347: 它不是标准,只是一个提案。缺少应用表示层。

许可证

GNU 通用公共许可证 V3

核心贡献者

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

赞助商

  • eunomia.team - 标志与设计

作者

Cagatay Cali

下载工具