立即尝试:https://hstp.ai
npx hstp;
该协议旨在为超服务传输协议开发应用层抽象。
HSTP本质上是递归。该协议将自身实现为接口。在每个连接互联网的设备上,都有一个 HSTP 实例。这就是为什么不需要采用。 HSTP 已经运行在互联网之上。我们刚刚已经解释了异构网络上的协议之上的协议。这就是为什么不要与 web2、web3 进行比较,反之亦然。
HSTP 是异构网络的应用表示接口。
HSTP 接口强制实现一组方法以便能够与网络中的其他节点进行通信。因此,服务器、客户端和其他节点可以通过基于信任的端到端加密方式相互通信。那时节点解析是基于我编写的最快路径解析算法。
故事时间!
一个小概述
想想看,我们现在是一个母亲一个父亲过着幸福的生活。他们有了孩子!突然,母亲需要经常服药来治疗疾病。药丸对婴儿来说是一种毒药。婴儿在哭泣,母亲打电话给父亲,因为他是唯一值得信赖的帮助婴儿的人。但父亲有时不能呆在家里,他需要做一些事情来喂养婴儿。父亲听说一位送奶工有新鲜优质的牛奶,价格低廉。父亲决定尝试与送奶工交谈,送奶工将牛奶送给父亲,父亲将牛奶送给母亲。妈妈把牛奶给宝宝喝。宝宝现在很高兴,宝宝睡着了,妈妈看到宝宝很高兴。
一家人从来没有从外面买过牛奶,这是第一次给宝宝买牛奶:(妈妈不知道送奶工的号码,送奶工也不知道家庭地址)
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节点可以是任何链中的TCP服务器、HTTP服务器、静态文件或合约。一个 HSTP 节点能够呼叫任何其他 HSTP 节点。这样节点之间就可以自由地相互调用,可以检查自己的系统状态,并且可以相互通信。
HSTP 已经在语言层面上由人为人实施。英语是地球上主要采用的语言。 JavaScript 也是浏览器环境中最常用的语言。 Solidity 适用于基于 EVM 的链,hyperbees 适用于基于 TCP 的网络等。
HSTP 接口应应用于任何 HSTP 连接的设备/网络之间。
无限扩展选项:任何 TCP 连接的设备都可以通过 HSTP 与任何其他 TCP 连接的设备通信。这意味着任何 Web 浏览器都是另一个 HSTP 节点的服务,并且任何 Web 浏览器都可以调用任何其他 Web 浏览器。
统一应用表示接口: HSTP是一个统一接口,是应用层必须实现的一组方法。
异构网络:网络的任何参与者都允许与网络的其他参与者共享资源。资源可以是CPU、内存、存储、网络等。
网络版本的结合自从区块链技术被称为 web3 以来,人们开始讨论网络版本之间的差异。比较是增量数值系统教育思维方式的一种行为。哪一个更好:没有一个。我们必须构建可以使用统一协议进行通信的系统,底层服务可以是任何东西。 HSTP 正是以此为目标。
注册接口注册接口设计用于 TCP 层,能够注册网络中的顶级 tld 节点。第一次实现HSTP TCP中继将解析hstp/
注册表的界面有两部分:
注册中心实现需要两个HSTP节点,
路由器接口
出于演示目的,我们将使用以下 Solidity 示例:
// 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;
}
}
高速传输协议接口
// 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 节点可以是智能合约、Web 浏览器或 TCP 连接设备。
节点具有向网络或自身添加更多 HSTP 节点作为子服务的完整能力。
HSTP HSTP
/ /
HSTP HSTP HSTP
/
HSTP HSTP
/ /
HSTP HSTP
// 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);
}
}
以太坊提案现在是草案,但该协议有参考实现 Todo.sol。
完整列表在这里
您现在可以测试 HSTP 并尝试重新混合。
// 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);
}
}
GNU 通用公共许可证 V3
卡加台卡利