Essayez maintenant : https://hstp.ai
npx hstp;
Le protocole vise à développer une abstraction de couche application pour le protocole Hyper Service Transfer.
HSTP est une récursion en tant que nature de HSTP. Ce protocole s'implémente comme une interface. Sur chaque appareil connecté à Internet, il existe une instance HSTP. C'est pourquoi l'adoption n'est pas nécessaire. HSTP fonctionne déjà sur Internet. Nous venons tout juste de parvenir à expliquer le protocole sur des protocoles sur des réseaux hétérogènes. C'est pourquoi ne comparez pas avec web2, web3 ou vice versa.
HSTP est une interface de représentation d'application pour les réseaux hétérogènes.
L'interface HSTP oblige à implémenter un ensemble de méthodes pour pouvoir communiquer avec d'autres nœuds du réseau. Ainsi, les services, les clients et les autres nœuds peuvent communiquer entre eux de manière cryptée de bout en bout, basée sur la confiance. Au moment où la résolution des nœuds est basée sur l'algorithme de résolution de chemin le plus rapide que j'ai écrit.
L’heure du conte !
Un petit aperçu
Pensez-y, nous sommes dans la situation d'une mère et d'un père qui mène une vie heureuse. Ils ont eu un bébé ! Soudain, la mère a dû boire régulièrement des pilules pour guérir une maladie. La pilule est un poison pour le bébé. Le bébé pleure et la mère appelle son père car il est la seule personne de confiance pour aider le bébé. Mais parfois le père ne peut pas rester à la maison, il doit faire quelque chose pour nourrir le bébé. Mon père a entendu dire qu'un laitier proposait du lait frais et de haute qualité à bas prix. Le père décide d'essayer de parler au laitier, le laitier livre le lait au père, le père porte le lait à la mère. La mère donne le lait au bébé. Bébé est heureux maintenant et le bébé dort, la mère voit que le bébé est heureux.
La famille n'achète jamais de lait à l'extérieur, c'est la première fois qu'elle achète du lait pour le bébé : (Maman ne connaît pas le numéro du laitier, le laitier ne connaît pas l'adresse du domicile)
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.
ce document que vous lisez est un manifeste pour les internautes qui souhaitent connecter les autres en faisant confiance au service qui sert le client et la confiance ne peut être maintenue qu'en fournissant de bons services. la confiance est la clé, mais pas suffisante pour survivre. le service doit être fiable, cohérent et bon marché. à moins que les gens décident de ne plus vous demander.
Alors c'est facile, non ? C'est si simple à comprendre, qui sont ces personnes dans l'histoire ?
aussi,
Bébé est entre de bonnes mains. Rien à craindre. Ils t’aiment, tu comprendras quand tu seras grand et que tu auras un enfant.
// Explication de l'étape technique bientôt, mais pas si difficile que vous le voyez.
HSTP est une interface, qui est un ensemble de méthodes qui doivent être implémentées par la couche application. L'interface est utilisée pour communiquer avec d'autres nœuds du réseau. L'interface est conçue pour être utilisée dans un réseau hétérogène.
HSTP doit être implémenté sur n’importe quelle couche d’appareils/environnements connectés au réseau.
Le nœud HSTP peut être un serveur TCP, un serveur HTTP, un fichier statique ou un contrat dans n'importe quelle chaîne. Un nœud HSTP est capable d'appeler n'importe quel autre nœud HSTP. Ainsi, les nœuds peuvent s’appeler librement, vérifier l’état de leur système et communiquer entre eux.
HSTP est déjà mis en œuvre au niveau linguistique, par des personnes pour des personnes. L'anglais est la langue la plus adoptée sur Terre. JavaScript pourrait également être connu comme un langage principalement adopté pour les environnements de navigateur. Solidity est destiné aux chaînes basées sur EVM, aux hyperbees pour les réseaux basés sur TCP, etc.
L’interface HSTP doit être appliquée entre tous les appareils/réseaux connectés HSTP.
Options de mise à l'échelle infinitive : tout appareil connecté à TCP peut communiquer avec n'importe quel autre appareil connecté à TCP via HSTP. Cela signifie que tout navigateur Web est au service d'un autre nœud HSTP et que tout navigateur Web peut appeler n'importe quel autre navigateur Web.
Interface de représentation d'application uniforme : HSTP est une interface uniforme, qui est un ensemble de méthodes qui doivent être implémentées par la couche application.
Réseaux hétérogènes : Tout participant du réseau permet de partager les ressources avec d'autres participants du réseau. Les ressources peuvent être le CPU, la mémoire, le stockage, le réseau, etc.
Conjugaison des versions Web Depuis les technologies blockchain appelées web3, les gens ont commencé à discuter des différences entre les versions Web. La comparaison est un comportement pour l'état d'esprit de l'éducation au système numérique incrémental. Lequel est le meilleur : aucun d’entre eux. Nous devons construire des systèmes qui pourraient communiquer selon un protocole uniforme, sous lequel les services pourraient être n'importe quoi. HSTP vise cela.
Interface de registre Interface de registre conçue pour être utilisée sur la couche TCP, afin de pouvoir enregistrer les nœuds tld de niveau supérieur dans le réseau. La première implémentation du relais TCP HSTP résoudra hstp/
Le registre comporte deux parties de l'interface :
La mise en œuvre du registre nécessite deux nœuds HSTP,
Interface du routeur
À des fins de démonstration, nous utiliserons l'exemple de solidité suivant :
// 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;
}
}
Interface HSTP
// 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 );
}
Exemple de nœud HSTP
Le nœud HSTP a accès pour appeler le routeur parent par la méthode super.reply(name, opération, payload). Le nœud HSTP peut également appeler des nœuds enfants en appelant les méthodes this.query(payload) ou this.mutation(payload).
Un nœud HSTP peut être un contrat intelligent, un navigateur Web ou un appareil connecté TCP.
Node a toute la capacité d’ajouter davantage de nœuds HSTP au réseau ou lui-même en tant que sous-services.
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);
}
}
La proposition d'Ethereum est actuellement à l'état de projet, mais le protocole a une implémentation de référence Todo.sol.
Liste complète ici
Vous pouvez tester le HSTP et essayer le remix maintenant.
// 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);
}
}
LICENCE PUBLIQUE GÉNÉRALE GNU V3
Cagatay Cali