Pruébelo ahora: https://hstp.ai
npx hstp;
El protocolo tiene como objetivo desarrollar una abstracción de la capa de aplicación para el Protocolo de transferencia de hiperservicios.
HSTP es una recursión como naturaleza de HSTP. Este protocolo se implementa a sí mismo como una interfaz. En cada dispositivo conectado a Internet, hay una instancia HSTP. Por eso no es necesaria la adopción. HSTP ya está en la cima de Internet. Acabamos de lograr explicar el protocolo sobre protocolos en redes heterogéneas. Por eso no comparar con web2, web3 o viceversa.
HSTP es una interfaz de representación de aplicaciones para redes heterogéneas.
La interfaz HSTP obliga a implementar un conjunto de métodos para poder comunicarse con otros nodos de la red. De este modo, los servicios, los clientes y otros nodos pueden comunicarse entre sí de forma cifrada y basada en la confianza. Para cuando la resolución del nodo se base en el algoritmo de resolución de ruta más rápida que escribí.
¡Hora del cuento!
Una pequeña descripción general
Piénselo, estamos en la situación en la que una madre y un padre viven una vida feliz. ¡Tuvieron un bebé! De repente, la madre tuvo que tomar pastillas con regularidad para curar una enfermedad. La pastilla es un veneno para el bebé. El bebé llora y la madre llama al padre porque es la única persona de confianza para ayudar al bebé. Pero el padre a veces no puede quedarse en casa, necesita hacer algo para alimentar al bebé. Mi padre escuchó que un lechero tiene leche fresca y de alta calidad a bajo precio. El padre decide intentar hablar con el lechero, el lechero le entrega la leche al padre y el padre le lleva la leche a la madre. La madre le da la leche al bebé. El bebé ahora está feliz y duerme, la madre ve que el bebé está feliz.
La familia nunca compra la leche de afuera, esta es la primera vez que compran leche para el bebé: (mamá no sabe el número del lechero, el lechero no sabe la dirección de la casa)
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.
Este documento que está leyendo es un manifiesto para que la gente de Internet conecte a otras personas confiando en que el servicio sirve al cliente y la confianza sólo se puede mantener proporcionando buenos servicios. La confianza es la clave, pero no suficiente para sobrevivir. el servicio tiene que ser fiable, consistente y barato. a menos que la gente decida no volver a preguntarte.
Entonces es fácil ¿verdad? Es tan sencillo de entender, ¿quiénes son esas personas de la historia?
también,
El bebé está en manos de confianza. No hay nada de qué preocuparse. Te aman, lo entenderás cuando seas mayor y tengas un hijo.
// Explicación de los pasos técnicos pronto, pero no tan difícil como ves.
HSTP es una interfaz, que es un conjunto de métodos que debe implementar la capa de aplicación. La interfaz se utiliza para comunicarse con otros nodos de la red. La interfaz está diseñada para usarse en una red heterogénea.
HSTP se implementará en cualquier capa de dispositivos/entorno conectados a la red.
El nodo HSTP podría ser un servidor TCP, un servidor HTTP, un archivo estático o un contrato en cualquier cadena. Un nodo HSTP puede llamar a cualquier otro nodo HSTP. De este modo, los nodos pueden llamarse entre sí libremente, comprobar el estado de su sistema y comunicarse entre sí.
HSTP ya está implementado a nivel de idioma, por personas para personas. El inglés es el idioma mayoritariamente adoptado en todo el planeta. JavaScript también podría ser conocido como el lenguaje adoptado principalmente para entornos de navegador. Solidity es para cadenas basadas en EVM, hyperbees para redes basadas en TCP, etc.
La interfaz HSTP se aplicará entre cualquier dispositivo/red HSTP conectado.
Opciones de escala infinitas: cualquier dispositivo conectado por TCP puede comunicarse con cualquier otro dispositivo conectado por TCP a través de HSTP. Eso significa que cualquier navegador web depende de otro nodo HSTP y cualquier navegador web puede llamar a cualquier otro navegador web.
Interfaz de representación de aplicación uniforme: HSTP es una interfaz uniforme, que es un conjunto de métodos que debe implementar la capa de aplicación.
Redes heterogéneas: Cualquier participante de la red permite compartir los recursos con otros participantes de la red. Los recursos pueden ser CPU, memoria, almacenamiento, red, etc.
Conjugación de versiones web Desde que las tecnologías blockchain se llamaron web3, la gente comenzó a discutir sobre las diferencias entre las web. Comparar es un comportamiento para la mentalidad de la educación en sistemas numéricos incrementales. Cuál es mejor: ninguno de ellos. Tenemos que construir sistemas que puedan hablar en un protocolo uniforme, debajo los servicios pueden ser cualquier cosa. HSTP apunta a eso.
Interfaz de registro Interfaz de registro diseñada para usarse en la capa TCP, para poder registrar nodos tld de nivel superior en la red. La primera implementación de la retransmisión HSTP TCP resolverá hstp/
El registro tiene dos partes de la interfaz:
La implementación del registro necesita dos nodos HSTP,
Interfaz del enrutador
Para fines de demostración, utilizaremos el siguiente ejemplo de solidez:
// 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;
}
}
interfaz 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 );
}
Ejemplo de nodo HSTP
El nodo HSTP tiene acceso para llamar al enrutador principal mediante el método super.reply (nombre, operación, carga útil). El nodo HSTP también puede llamar a nodos secundarios llamando a los métodos this.query(payload) o this.mutation(payload).
Un nodo HSTP puede ser un contrato inteligente, un navegador web o un dispositivo conectado TCP.
El nodo tiene capacidad total para agregar más nodos HSTP a la red o a sí mismo como subservicios.
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 propuesta de Ethereum ya está en borrador, pero el protocolo tiene la implementación de referencia Todo.sol.
Lista completa aquí
Puedes probar el HSTP y probar la remezcla ahora.
// 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);
}
}
LICENCIA PÚBLICA GENERAL GNU V3
Cali