Experimente agora: https://hstp.ai
npx hstp;
O protocolo visa desenvolver uma abstração da camada de aplicação para o Hyper Service Transfer Protocol.
HSTP é uma recursão como natureza do HSTP. Este protocolo se implementa como uma interface. Em cada dispositivo conectado à Internet, existe uma instância HSTP. É por isso que a adoção não é necessária. HSTP já rodando no topo da internet. Acabamos de explicar o protocolo sobre protocolos em redes heterogêneas. É por isso que não compare com web2, web3 ou vice-versa.
HSTP é uma interface de representação de aplicativos para redes heterogêneas.
A interface HSTP exige a implementação de um conjunto de métodos para poder se comunicar com outros nós da rede. Assim, servidores, clientes e outros nós podem se comunicar entre si de maneira criptografada de ponta a ponta, baseada em confiança. No momento, a resolução do nó é baseada no algoritmo de resolução de caminho mais rápido que escrevi.
Hora da história!
Uma pequena visão geral
Pense bem, estamos na situação de uma mãe e um pai que vive uma vida feliz. Eles tiveram um bebê! De repente, a mãe precisou tomar comprimidos regularmente para curar uma doença. A pílula é um veneno para o bebê. O bebê está chorando e a mãe liga para o pai porque ele é a única pessoa de confiança para ajudar o bebê. Mas o pai às vezes não pode ficar em casa, ele precisa fazer alguma coisa para alimentar o bebê. Meu pai ouviu dizer que um leiteiro tem leite fresco e de alta qualidade por um preço baixo. O pai decide tentar conversar com o leiteiro, o leiteiro entrega o leite para o pai, o pai leva o leite para a mãe. A mãe dá o leite ao bebê. O bebê está feliz agora e o bebê dorme, a mãe vê que o bebê está feliz.
A família nunca compra o leite de fora, é a primeira vez que compra leite para o bebê: (Mãe não sabe o número do leiteiro, o leiteiro não sabe o endereço de 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 você está lendo é um manifesto para o pessoal da internet conectar outras pessoas confiando no serviço que atende ao cliente e a confiança só pode ser mantida prestando bons serviços. a confiança é a chave, mas não o suficiente para sobreviver. o serviço deve ser confiável, consistente e barato. a menos que as pessoas decidam não perguntar de você novamente.
Então é fácil né? É tão simples de entender, quem são essas pessoas na história?
também,
O bebê está em mãos confiáveis. Nada com que se preocupar. Eles te amam, você vai entender quando crescer e tiver um filho.
// Explicação da etapa técnica em breve, mas não tão difícil quanto você pode ver.
HSTP é uma interface, que é um conjunto de métodos que devem ser implementados pela camada de aplicação. A interface é usada para se comunicar com outros nós da rede. A interface foi projetada para ser usada em uma rede heterogênea.
O HSTP deve ser implementado em qualquer camada de dispositivos/ambientes conectados à rede.
O nó HSTP pode ser um servidor TCP, servidor HTTP, arquivo estático ou contrato em qualquer cadeia. Um nó HSTP é capaz de chamar qualquer outro nó HSTP. Assim, os nós podem ligar uns para os outros livremente, verificar o status do sistema e comunicar-se entre si.
O HSTP já está implementado a nível linguístico, de pessoas para pessoas. O inglês é a língua mais adotada em todo o mundo. JavaScript também pode ser conhecido como linguagem adotada principalmente para ambientes de navegador. Solidity é para cadeias baseadas em EVM, hyperbees para redes baseadas em TCP, etc.
A interface HSTP deve ser aplicada entre quaisquer dispositivos/redes conectados por HSTP.
Opções de escalabilidade infinita: Qualquer dispositivo conectado por TCP pode se comunicar com qualquer outro dispositivo conectado por TCP por HSTP. Isso significa que qualquer navegador da web é servido por outro nó HSTP e qualquer navegador da web pode chamar qualquer outro navegador da web.
Interface uniforme de representação de aplicação: HSTP é uma interface uniforme, que é um conjunto de métodos que devem ser implementados pela camada de aplicação.
Redes heterogêneas: Qualquer participante da rede permite compartilhar os recursos com outros participantes da rede. Os recursos podem ser CPU, memória, armazenamento, rede, etc.
Conjugação de versões web Desde que as tecnologias blockchain foram chamadas de web3, as pessoas começaram a discutir sobre as diferenças entre as webs. Comparar é um comportamento para a mentalidade da educação do sistema numérico incremental. Qual é melhor: nenhum deles. Temos que construir sistemas que possam se comunicar em um protocolo uniforme, abaixo dos serviços pode haver qualquer coisa. O HSTP está visando isso.
Interface de registro Interface de registro projetada para uso na camada TCP, para poder registrar nós tld de nível superior na rede. A primeira implementação do relé HSTP TCP resolverá hstp/
O registro possui duas partes da interface:
A implementação do registro precisa de dois nós HSTP,
Interface do roteador
Para fins de demonstração, usaremos o seguinte exemplo 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;
}
}
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 );
}
Exemplo de nó HSTP
O nó HSTP tem acesso para chamar o roteador pai pelo método super.reply(nome, operação, carga útil). O nó HSTP também pode chamar nós filhos chamando os métodos this.query(payload) ou this.mutation(payload).
Um nó HSTP pode ser um contrato inteligente, um navegador da web ou um dispositivo conectado por TCP.
O Node tem capacidade total de adicionar mais nós HSTP à rede ou a si mesmo como subserviços.
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);
}
}
A proposta do Ethereum está em rascunho agora, mas o protocolo tem implementação de referência Todo.sol.
Lista completa aqui
Você pode testar o HSTP e experimentar o remix agora.
// 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);
}
}
LICENÇA PÚBLICA GERAL GNU V3
Cagatay Cali