立即嘗試: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
卡加台卡利