جرب الآن: 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 أيضًا بأنها لغة معتمدة في الغالب لبيئات المتصفح. الصلابة مخصصة للسلاسل القائمة على EVM، والشبكات المفرطة للشبكات القائمة على TCP، وما إلى ذلك.
يجب تطبيق واجهة HSTP بين أي أجهزة/شبكات متصلة بـ HSTP.
خيارات القياس اللانهائية: يمكن لأي جهاز متصل بـ TCP التحدث مع أي جهاز آخر متصل بـ TCP عبر HSTP. وهذا يعني أن أي متصفح ويب يخدم عقدة HSTP أخرى، ويمكن لأي متصفح ويب الاتصال بأي متصفح ويب آخر.
واجهة تمثيل التطبيق الموحدة: HSTP هي واجهة موحدة، وهي عبارة عن مجموعة من الأساليب التي يجب تنفيذها بواسطة طبقة التطبيق.
الشبكات غير المتجانسة: يسمح لأي مشارك في الشبكة بمشاركة الموارد مع المشاركين الآخرين في الشبكة. يمكن أن تكون الموارد وحدة المعالجة المركزية والذاكرة والتخزين والشبكة وما إلى ذلك.
اقتران إصدارات الويب منذ أن تم استدعاء تقنيات blockchain باسم web3، بدأ الناس في مناقشة الاختلافات بين إصدارات الويب. المقارنة هي سلوك لعقلية تعليم النظام الرقمي المتزايد. وأيهما أفضل: لا أحد منهم. علينا أن نبني أنظمة يمكن أن تتحدث في بروتوكول موحد، ويمكن أن يكون تحت الخدمات أي شيء. يهدف HSTP إلى ذلك.
واجهة التسجيل واجهة التسجيل مصممة للاستخدام على طبقة TCP، لتتمكن من تسجيل عقد نطاق المستوى الأعلى في الشبكة. سيؤدي التنفيذ الأول لترحيل HSTP TCP إلى حل مشكلة 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(الاسم، العملية، الحمولة). يمكن لعقدة HSTP أيضًا استدعاء العقد الفرعية عن طريق استدعاء أساليب this.query(payload) أو this.mutation(payload).
يمكن أن تكون عقدة HSTP عبارة عن عقد ذكي، أو متصفح ويب، أو جهاز متصل بـ 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);
}
}
مقترح 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);
}
}
رخصة جنو العامة V3
كاجاتاي كالي