Coba sekarang: https://hstp.ai
npx hstp;
Protokol ini bertujuan untuk mengembangkan abstraksi lapisan aplikasi untuk Hyper Service Transfer Protocol.
HSTP adalah rekursi seperti sifat HSTP. Protokol ini mengimplementasikan dirinya sebagai antarmuka. Di setiap perangkat yang terhubung ke internet, terdapat instance HSTP. Itu sebabnya adopsi tidak diperlukan. HSTP sudah berjalan di atas internet. Kami baru saja mencapai penjelasan protokol melalui protokol pada jaringan heterogen. Makanya jangan bandingkan dengan web2, web3 atau sebaliknya.
HSTP adalah antarmuka representasi aplikasi untuk jaringan heterogen.
Antarmuka HSTP menerapkan seperangkat metode untuk dapat berkomunikasi dengan node lain dalam jaringan. Dengan demikian layanan, klien, dan node lainnya dapat berkomunikasi satu sama lain dengan cara terenkripsi ujung ke ujung berbasis kepercayaan. Pada saat resolusi node didasarkan pada algoritma resolusi jalur tercepat yang saya tulis.
Waktunya bercerita!
Ikhtisar kecil
Coba pikirkan, kita berada dalam situasi dimana satu ibu dan satu ayah menjalani kehidupan yang bahagia. Mereka punya bayi! Tiba-tiba, sang ibu perlu minum pil secara rutin untuk menyembuhkan penyakitnya. Pil itu adalah racun bagi bayi. Bayi menangis dan ibu memanggil ayah karena dialah satu-satunya orang yang dipercaya untuk membantu bayinya. Namun sang ayah terkadang tidak bisa tinggal di rumah, dia perlu melakukan sesuatu untuk memberi makan bayinya. Ayah mendengar seorang tukang susu mempunyai susu segar dan berkualitas tinggi dengan harga murah. Ayah memutuskan untuk mencoba berbicara dengan tukang susu, tukang susu mengantarkan susu kepada ayah, ayah membawakan susu kepada ibu. Ibu memberikan susu kepada bayinya. Bayi bahagia sekarang dan bayinya tidur, ibu melihat bayinya bahagia.
Keluarga tidak pernah membeli susu dari luar, ini pertama kalinya mereka membelikan susu untuk bayinya: (Ibu tidak tahu nomor tukang susu, tukang susu tidak tahu alamat rumah)
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.
Dokumen yang Anda baca ini merupakan wujud nyata bagi masyarakat internet untuk menghubungkan orang lain dengan mempercayai layanan yang melayani klien dan kepercayaan tersebut hanya dapat dipertahankan dengan memberikan layanan yang baik. kepercayaan adalah kuncinya, tetapi tidak cukup untuk bertahan hidup. layanannya harus dapat diandalkan, konsisten, murah. kecuali orang-orang itu memutuskan untuk tidak meminta lagi padamu.
Jadi, mudah bukan? Sangat mudah untuk dipahami, siapakah orang-orang dalam cerita itu?
Juga,
Bayi berada di tangan terpercaya. Tidak ada yang perlu dikhawatirkan. Mereka mencintaimu, kamu akan mengerti ketika kamu besar nanti dan punya anak.
// Penjelasan langkah teknis segera, tapi tidak sesulit yang Anda lihat.
HSTP adalah antarmuka yang merupakan sekumpulan metode yang harus diimplementasikan oleh lapisan aplikasi. Antarmuka digunakan untuk berkomunikasi dengan node lain dalam jaringan. Antarmuka dirancang untuk digunakan dalam jaringan heterogen.
HSTP harus diimplementasikan pada setiap lapisan perangkat/lingkungan yang terhubung ke jaringan.
Node HSTP dapat berupa server TCP, server HTTP, file statis, atau kontrak dalam rantai apa pun. Satu node HSTP dapat memanggil node HSTP lainnya. Dengan demikian node-node tersebut dapat saling menelepon dengan bebas, mereka dapat memeriksa status sistemnya, dan mereka dapat berkomunikasi satu sama lain.
HSTP sudah diimplementasikan pada tingkat bahasa, oleh manusia untuk manusia. Bahasa Inggris sebagian besar merupakan bahasa yang diadopsi di seluruh dunia. JavaScript dapat diketahui juga sebagian besar bahasa yang diadopsi untuk lingkungan browser. Soliditas untuk rantai berbasis EVM, hyperbee untuk jaringan berbasis TCP, dll.
Antarmuka HSTP harus diterapkan antara perangkat/jaringan apa pun yang terhubung dengan HSTP.
Opsi penskalaan infinitif: Perangkat apa pun yang terhubung dengan TCP dapat berbicara dengan perangkat lain yang terhubung dengan TCP melalui HSTP. Itu berarti browser web apa pun melayani node HSTP lain, dan browser web apa pun dapat memanggil browser web lainnya.
Antarmuka representasi aplikasi seragam: HSTP adalah antarmuka seragam, yang merupakan sekumpulan metode yang harus diimplementasikan oleh lapisan aplikasi.
Jaringan heterogen: Setiap peserta jaringan diperbolehkan untuk berbagi sumber daya dengan peserta jaringan lainnya. Sumber daya dapat berupa CPU, memori, penyimpanan, jaringan, dll.
Konjungsi versi web Sejak teknologi blockchain disebut web3, orang-orang mulai berdiskusi tentang perbedaan antara web. Membandingkan merupakan perilaku pola pikir pendidikan sistem numerik inkremental. Mana yang lebih baik: tidak satupun. Kita harus membangun sistem yang bisa berkomunikasi dalam satu protokol yang seragam, di bawahnya layanan bisa berupa apa saja. HSTP bertujuan untuk itu.
Antarmuka registri Antarmuka registri dirancang untuk digunakan pada lapisan TCP, agar dapat mendaftarkan node tld tingkat atas dalam jaringan. Implementasi pertama relai HSTP TCP akan menyelesaikan hstp/
Registri memiliki dua bagian antarmuka:
Implementasi registri memerlukan dua node HSTP,
Antarmuka perute
Untuk tujuan demonstrasi, kami akan menggunakan contoh soliditas berikut:
// 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;
}
}
Antarmuka 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 );
}
Contoh Node HSTP
Node HSTP memiliki akses untuk memanggil router induk dengan metode super.reply(nama, operasi, payload). Node HSTP juga dapat memanggil node turunan dengan memanggil metode this.query(payload) atau this.mutation(payload).
Node HSTP dapat berupa kontrak cerdas, atau browser web, atau perangkat yang terhubung dengan TCP.
Node memiliki kemampuan penuh untuk menambahkan lebih banyak node HSTP ke jaringan atau dirinya sendiri sebagai sub layanan.
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);
}
}
Proposal Ethereum sedang dirancang sekarang, tetapi protokolnya memiliki implementasi referensi Todo.sol.
Daftar lengkap di sini
Anda dapat menguji HSTP dan mencoba remix sekarang.
// 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);
}
}
LISENSI PUBLIK UMUM GNU V3
Cagatay Cali