Попробуйте сейчас: https://hstp.ai
npx hstp;
Целью протокола является разработка абстракции прикладного уровня для протокола передачи гиперсервисов.
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, может взаимодействовать с любым другим устройством, подключенным по TCP, через HSTP. Это означает, что любой веб-браузер обслуживает другой узел HSTP, и любой веб-браузер может вызывать любой другой веб-браузер.
Единый интерфейс представления приложений. HSTP — это унифицированный интерфейс, представляющий собой набор методов, которые должны быть реализованы на уровне приложения.
Гетерогенные сети: любой участник сети может делиться ресурсами с другими участниками сети. Ресурсами могут быть процессор, память, хранилище, сеть и т. д.
Объединение веб-версий С тех пор, как технологии блокчейна стали называться web3, люди начали обсуждать различия между веб-версиями. Сравнение — это поведение для мышления человека, обучающегося поэтапной числовой системе. Какой из них лучше: ни один из них. Нам нужно построить системы, которые могли бы общаться по одному единому протоколу, а службы могли бы быть чем угодно. HSTP стремится к этому.
Интерфейс реестра Интерфейс реестра, предназначенный для использования на уровне TCP, чтобы иметь возможность регистрировать узлы верхнего уровня в сети. Первая реализация TCP-реле HSTP разрешит hstp/
Реестр состоит из двух частей интерфейса:
Для реализации реестра необходимы два узла HSTP,
Интерфейс маршрутизатора
В демонстрационных целях мы будем использовать следующий пример твердости:
// 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;
}
}
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 );
}
Пример HSTP-узла
Узел HSTP имеет доступ к вызову родительского маршрутизатора с помощью метода super.reply(name, Operation, Payload). Узел HSTP также может вызывать дочерние узлы, вызывая методы this.query(payload) или this.mutation(payload).
Узел HSTP может быть смарт-контрактом, веб-браузером или устройством, подключенным по TCP.
Node имеет полную возможность добавления дополнительных узлов 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);
}
}
Предложение по Ethereum сейчас является черновиком, но в протоколе есть ссылка на реализацию 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
Чагатай Кали