Solana عبارة عن منصة blockchain عالية الأداء تحقق إنتاجية عالية وزمن وصول منخفض من خلال آلية إجماع فريدة ونموذج حساب.
باعتبارها المقالة الأولى في سلسلة من المقالات، تقدم هذه المقالة بشكل أساسي بعض المعرفة التي تحتاج إلى معرفتها قبل تطوير Solana:
< p> خلفية ميلاد سولانا
كيف يقوم سولانا بإنشاء الكتل (عملية الإجماع)
مفاهيم سولانا الأساسية: نموذج الحساب والمساعد الرقمي الشخصي والمعاملات والرسوم والمجموعات وما إلى ذلك.
خلفية ميلاد سولانا
تأسست سولانا في عام 2017 على يد أناتولي ياكوفينكو. اختار أناتولي اسم سولانا كإشارة إلى شاطئ سولانا، وهي بلدة شاطئية صغيرة شمال سان دييغو حيث عاشوا ومارسوا رياضة ركوب الأمواج لمدة ثلاث سنوات أثناء العمل في شركة كوالكوم.
قبل تأسيس Solana، أمضى أناتولي سنوات عديدة في العمل في Qualcomm وMesosphere وDropbox، ويتمتع بخبرة واسعة في مجال الشبكات عالية الأداء والأنظمة الموزعة.
لقد أدرك أن اختناقات قابلية التوسع في blockchain حدت من إمكانية تطبيقها على نطاق واسع. مستوحاة من تكنولوجيا مزامنة الوقت في الأنظمة الموزعة، اقترح مفهوم إثبات التاريخ (PoH). يستخدم لمزامنة الوقت بين أجهزة الكمبيوتر التي لا تثق ببعضها البعض.
دعونا نلقي نظرة على كيفية استخدام Solana لـ PoH لتحقيق تزامن فعال بين المدققين.
إجماع سولانا - كيفية إنشاء الكتل
ملاحظة: سولانا وثائق خوارزمية الإجماع قديمة إلى حد ما. يعتمد محتوى هذا الجزء على إجماع سولانا المتعمق وفهمي.
Solana عبارة عن blockchain لإثبات الملكية (PoS)، وتتبع خوارزمية الإجماع مرحلتين: 1. حدد أدوات التحقق وقم بإنتاج الكتل 2. يقوم المصادقون الآخرون بالتصويت على الكتلة، وبعد تجميع عدد كافٍ من الأصوات، يتم الانتهاء من الكتلة.
انتخاب المدققين
في بروتوكول سولانا، هناك كلمتان مهمتان تتعلقان بالفترات الزمنية: Epoch و الفترة الزمنية قوي>:
الفتحة: الوحدة الزمنية للمدقق لإنشاء الكتل. يمكن إنشاء كتلة واحدة لكل فترة زمنية، وتستمر كل فترة زمنية 400 مللي ثانية.
الحقبة: في بداية كل حقبة، ستختار شبكة Solana بشكل عشوائي تسلسل المدقق (المعروف باسم القائد). يكون تسلسل القائد هذا هو المسؤول لإنتاج الكتل خلال العصر، يظل التسلسل الرئيسي ثابتًا خلال هذه الفترة. يمكن لكل قائد معالجة 4 فتحات بشكل مستمر (أي إنتاج 4 كتل)، كل عصر يستمر حوالي يومين (يحتوي على 432000 فتحة). حتى العصر التالي، سيتم تجديد القائد.
< p style="text-align: center;">في الصورة أعلاه، تمثل كل كتلة ملونة كتلة، وتمثل الألوان المختلفة كتلًا مختلفة تم التحقق منها.
لن أخوض في تفاصيل الاختيار العشوائي هنا (لأنني لا أفهمه بشكل رئيسي). في بداية كل عصر، سيعرف المدقق الفتحات التي يتطلب منه إنتاجها كتل.
ولكن هناك مشكلتان تحتاجان إلى حل:
كيف يمكن المدقق يعرف أنه هل حان دورك لإنشاء كتلة؟ إذا كنت تعتمد فقط على اتصال الشبكة، وأخبر المدقق السابق المدقق التالي، فمن المحتمل أن يفوتك وقت الكتلة الثمين بسبب تأخير الشبكة (أو أن المدقق السابق غير متصل بالإنترنت، حيث أن وقت الكتلة هو 0.4 ثانية فقط).
كيفية إدراج أكبر عدد ممكن من المعاملات في الكتلة. إذا تم تنفيذ معاملة واحدة تلو الأخرى، كما هو الحال مع إيثريوم، فلا يمكن استيعاب العديد من المعاملات في مثل هذه الفترة القصيرة من الزمن.
إن أهم ابتكارات سولانا - POH، يستخدم بشكل أساسي لحل هاتين المشكلتين.
الحظر
من أجل تحقيق الأداء العالي، تقدم Solana المعالجة المتوازية للمعاملات، حيث تقسم فرز المعاملات وتنفيذها إلى مرحلتين، بحيث يمكن مرحلة التنفيذ أن توازي التعامل معها.
عندما يتحقق القائمون الآخرون من المعاملات، فإنهم يقومون أيضًا بإجراء التحقق وفقًا لنفس تسلسل الفرز من أجل السماح بالتحقق من تسلسل فرز المعاملات، يستخدم Solana سلسلة تجزئة إثبات POH التاريخية لتحديد المعاملة. طلب.
يعمل PoH عن طريق إنشاء سلسلة من تجزئة التشفير (خوارزمية SHA256)، يحتاج كل حساب تجزئة إلى استخدام قيمة التجزئة السابقة، بحيث يمكنك التأكد من أن التجزئة التالية تحدث دائمًا بعد التجزئة السابقة، لذلك POH يمكن لسلسلة التجزئة المدمجة مع بيانات العقل تحديد ترتيب المعاملات.
ما عليك سوى إضافة بيانات المعاملة كجزء من الإدخال عند حساب التجزئة لتحديد تسلسل المعاملات. وهذا التسلسل قابل للتوازي والتحقق منه ومقاوم للتلاعب.
سيستمر المدقق الرئيسي الحالي في تلقي المعاملات من خادم RPC والمدققين الآخرين بعد التحقق الأولي (مثل التحقق من توقيعات المعاملات وأرصدة الحسابات)، وسيتم فرزها تتم إضافة حساب سلسلة تجزئة POH، أي أنه سيتم منح كل معاملة تسمية تسلسل زمني عالمية يمكن التحقق منها، ثم سيتم تنفيذ المعاملات بالتوازي.
في Solana، يتم تقسيم عملية معالجة المعاملات بأكملها إلى عدة مراحل مترابطة (مرحلة التحقق من المعاملة، ومرحلة فرز POH، ومرحلة التنفيذ، ومرحلة البث)، مما يشكل خط أنابيب قوي>. يمكن لمراحل مختلفة معالجة دفعات مختلفة من المعاملات بشكل متوازي ومتداخل، أي أن نوى وحدة المعالجة المركزية أو وحدات معالجة الرسومات المختلفة تقوم في نفس الوقت بمعالجة التحقق من مجموعة واحدة من المعاملات وتنفيذ مجموعة أخرى من المعاملات (تسمى الخدمات المصرفية).
يتم تنفيذ المعاملات بشكل متوازي أيضًا. ويتم ترتيب تنفيذ المعاملات بناءً على تبعيات القراءة والكتابة للحساب. ويتم تجميع المعاملات وفقًا للتبعيات ووضعها في سلاسل مختلفة/نوى وحدة المعالجة المركزية التي يتم تنفيذها بالتوازي مهام وحدة معالجة الرسومات.
إذا كانت الحسابات التي تديرها المعاملتان مختلفتان تمامًا أو كلاهما للقراءة فقط، فمن الممكن نظريًا تنفيذها في نفس الوقت إذا كان هناك تعارض في الكتابة، فيجب تنفيذه لتجنب عدم تناسق البيانات.
الآن نحن نفهم عملية إنشاء كتلة Solana، وبهذه الطريقة، يمكن لـ Solana معالجة عدد كبير من المعاملات في فتحة واحدة (حوالي 400 مللي ثانية).
POH - الساعة المتزامنة
هناك سؤال آخر، كيف يعرف المدقق أن دوره قد حان لإنتاج كتلة؟
تتطلب كل عملية تجزئة حدًا أدنى من الوقت، وكل عملية حساب تجزئة تتطلب استخدام قيمة التجزئة السابقة. وهذا يضمن أن الموازاة غير ممكنة. لذلك، يمكن استخدام سلسلة تجزئة PoH كدليل على مرور الوقت.
في Solana، يجب أن تحتوي كل كتلة (سلسلة تجزئة PoH) على 12500 تجزئة. زعيم الفتحة الحالي هو المسؤول عن إنشاء سلاسل PoH (الكتل).
في الواقع، لا يقوم أي مدقق بحساب سلسلة PoH (سلسلة تجزئة فارغة بدون بيانات معاملة) في الخلفية إذا لم يقم القائد السابق (أو العديد من القادة السابقين) بنشر كتلة (أو القائد الحالي لم يتم استلامها)، طالما تم تمرير عدد التجزئة المطلوب بواسطة الفتحة، يمكن للزعيم الحالي إنشاء الكتل في الوقت المحدد.
كما هو موضح في الشكل أدناه، فإن الفتحة 3 غير متصلة بالإنترنت، ويقوم أداة التحقق من الفتحة 4 بملء تسلسل PoH للفتحة 3.
التحقق من الكتل والتصويت عليها
تتضمن عملية التحقق من الكتلة التحقق من البيانات التعريفية للكتلة وإعادة حساب تجزئة PoH، وسيتم التحقق من جميع المعاملات من الكتلة وإعادة تشغيلها، و تحديث دفتر الأستاذ.
بعد اجتياز عملية التحقق، يمثل التصويت التزام المدقق بالكتلة. كلما زاد عدد الحقوق الموكلة (العملات المعدنية) التي يحتفظ بها المدقق، زاد وزن التصويت.
عادةً، سيختار المصادقون السلسلة الأثقل لإنتاج الكتل والتصويت. إذا فشلت كتلة القائد السابق في الوصول إلى القائد الحالي، فقد يحدث موقف شوكة:< /p>
في حالة الشوكة، سيقوم المدقق بحساب إجمالي الضغط لكل شجرة فرعية. التصويت المرجح للأسهم واختيار الشخص الذي حصل على أكبر عدد من الأصوات. يتم تأكيد الكتلة إذا حصلت على ثلثي الأصوات المرجحة بالحصص على الأقل.
مفاهيم سولانا الأساسية
حساب Solana
عند التطوير على Solana، فإن الاختلاف الأكبر عن Ethereum هو أن نموذج الحساب مختلف.
تشبه حسابات Solana ملفات Linux إلى حد كبير. كل شيء عبارة عن حساب، وهو عبارة عن وحدة تخزين. وهي تأتي في أشكال عديدة:
< li>
حساب المستخدم: حساب يتم التحكم فيه بواسطة مفتاح خاص، يتم إنشاؤه عادةً للمستخدم بواسطة برنامج المحفظة.
حساب البرنامج: حساب يستخدم لتخزين بايت كود قابل للتنفيذ (رمز العقد الذكي).
حساب البيانات: حساب يقوم بتخزين معلومات الحالة، مثل عدد الرموز المميزة التي يحتفظ بها المستخدم.
حسابات البرامج الأصلية: هي حسابات برامج خاصة تم نشرها مسبقًا وتؤدي وظائف أساسية متنوعة للشبكة. يتضمن برنامج النظام وبرنامج التصويت ومحمل BPF.
<span ) 10px 10px / 40px بدون تكرار ;ارتفاع t: 30px;العرض: 100%;الهامش السفلي: -7px;نصف قطر الحدود: 5px;'>
سولانا حساب البرنامج (أي العقد الذكي) عديم الحالة، للقراءة فقط ولا يخزن أي بيانات/حالة. يتم تخزين البيانات ضمن حسابات بيانات منفصلة.
عند استدعاء وظيفة من عقد Solana، نحتاج إلى تمرير حساب البيانات المستخدم للوظيفة. من السهل تنفيذ المعاملات التي ليس لها اعتمادات متبادلة بشكل متزامن.
إذا كنت تعرف EVM، فستعرف أن بيانات الحالة مخزنة أيضًا في العقد عقد EVM في Solana، يتم تخزين قيمة العداد في حساب العقد. في Solana، يجب إنشاء حسابين: أحدهما حساب البرنامج، والذي يستخدم لتخزين كود البرنامج، والآخر يستخدم للتخزين. قيمة العداد.
الإيجارات هي طريقة سولانا لتقليل تضخم الدولة من خلال مطالبة الحسابات بالحفاظ على الحد الأدنى من الرصيد لتظل نشطة. تضمن الإيجارات أن الشبكة تستعيد في النهاية الحسابات غير المستخدمة أو التي تعاني من نقص التمويل. يتم التنازل عن الإيجار إذا احتفظ الحساب بحد أدنى للرصيد يعادل إيجار عامين.
يمكن لتصميم حساب Solana، بالإضافة إلى فوائد التنفيذ المتزامن، أن يوفر إمكانية إعادة استخدام البرنامج. هناك عدد كبير من رموز ERC20 المتطابقة على Ethereum.
سولانا مختلفة ليست هناك حاجة لإعادة نشر العقود الذكية عند إنشاء رموز جديدة. بدلاً من ذلك، ما عليك سوى إنشاء حساب جديد، يسمى حساب التعدين، والذي يحدد عدد الرموز المميزة، وأسمائها، ومن يمكنه سك المزيد من الرموز المميزة، وما إلى ذلك.
العناوين المشتقة من البرنامج (PDA: العناوين المشتقة من البرنامج)
الحساب المستخدم لحفظ بيانات البرنامج هو PDA،
حساب مستخدم عادي، هناك هي المفاتيح/العناوين العامة التي تتوافق معها ed25519 نقطة على المنحنى الناقص يتم فيها استخدام المفتاح الخاص للتوقيع لإثبات صلاحية تعديل الحساب.
العناوين المشتقة المبرمجة (PDAs) هي حسابات يتم إنشاؤها خارج المنحنى باستخدام النتوء (أي قيمة المخرجات المنحرفة عن المنحنى). يتطلب المساعد الرقمي الشخصي ثلاثة أجزاء رئيسية: معرف الوالدين، ومجموعة من البذور، وقيمة القفزة. البذرة عبارة عن مجموعة من السلاسل، يتم تعيينها عادةً على بذرة معينة مرتبطة بمتغير حالة في برنامج لإنشاء بنية بيانات تشبه جدول التجزئة. لإنشاء المساعد الرقمي الشخصي المقابل.
البرنامج الذي يقوم باستخراج المساعد الرقمي الشخصي هو صاحبه، وهذا البرنامج وحده هو الذي يمكنه تعديل بيانات المساعد الرقمي الشخصي.
المعاملة
تتكون المعاملة التي نرسلها إلى شبكة Solana من أربعة أجزاء:
< li>
تعليمات واحدة أو أكثر (تعليمات)
مجموعة من الحسابات للقراءة أو الكتابة (account_keys)
توقيع واحد أو أكثر (التوقيعات)
< p>أحدث تجزئة للكتلة (recent_blockhash)
A التعليمات هي الحد الأدنى من منطق التنفيذ على سولانا. تحدد التعليمات تنفيذ البرنامج، وجميع الحسابات المعنية، والبيانات التشغيلية. تستدعي التعليمات البرنامج لتحديث الحالة (على سبيل المثال، استدعاء برنامج الرمز المميز لنقل الرموز المميزة من حسابك إلى حساب آخر)، ويفسر البرنامج البيانات الموجودة في التعليمات، وينفذ العمليات على الحساب المحدد.
تشبه التعليمات استدعاءات الوظائف على عقود Ethereum الذكية.
إن تنفيذ تعليمات متعددة في المعاملة أمر ذري، وجميع التعليمات إما تنجح معًا أو تفشل معًا.
يستخدم Solana أحدث تجزئة للكتلة للإشارة إلى صحة المعاملة، ولكن عندما نريد إجراء معاملة فإنها ستبدأ من المجموعة لإنشاء معاملة صالحة. المعاملات صالحة بعد 150 كتلة بعد أحدث كتلة. إذا تم تجاوز وقت التغيير، فيجب إعادة بدء المعاملة.
لا يمتلك Solana مفهوم Nonce للمعاملات في Ethereum.
تختلف رسوم معاملة Solana كثيرًا عن آلية غاز Ethereum، وترتبط رسوم المعاملة بعدد التوقيعات المضمنة في المعاملة (lamports_per_signature)، رسوم المناولة الأساسية محددة حاليًا بمبلغ 0.000005 سول لكل توقيع (5 آلاف دولار أمريكي) lamports)، وهي رسوم تُدفع لمرة واحدة للشبكة مقدمًا مقابل حق استخدام موارد الشبكة، بغض النظر عن عدد الموارد المستخدمة فعليًا لتنفيذ المعاملة (أو ما إذا كانت المعاملة قد تم تنفيذها على الإطلاق). يتم دفع 50% من الرسوم إلى عقدة التحقق التي قامت بإنشاء الكتلة، ويتم إتلاف الـ 50% المتبقية.
إذا أراد زيادة أولوية معاملاته [رسوم اختيارية]، فيمكنه تعيين "سعر وحدة الحساب". يتم استخدام هذا السعر جنبًا إلى جنب مع حد وحدة الحوسبة لتحديد رسوم الأولوية لـ الصفقة.
الحد الأقصى لوحدة الحوسبة الافتراضية هو لكل 200000 وحدة مكعبة لكل تعليمات، إذا كانت كمية الحساب كبيرة نسبيًا، فيمكن تعيين القيمة القصوى إلى 1.4 مليون Cu. ستطلب معاملات Solana مسبقًا عددًا محددًا من وحدات الحوسبة (CUs)، وإذا تم تجاوز هذا العدد، فستفشل المعاملة.
بالإضافة إلى ذلك، تخضع معاملات Solana لقيود حجم حزمة المعاملات، وتتبع شبكة Solana الحد الأقصى لحجم وحدة الإرسال (MTU) وهو 1280 بايت، وهو ما يتوافق مع قيود حجم IPv6 MTU لضمان معلومات المجموعة. يتم نقله من خلال UDP. بعد حساب الرؤوس الضرورية (40 بايت لـ IPv6 ورأس جزء 8 بايت)، يظل 1232 بايت متاحًا للحزمة، ولا يمكن لمجموعة التوقيع والرسالة أن تتجاوز هذا الحد.
Solana Cluster
Solana Cluster (cluster ) هي مجموعة من المدققين الذين يقومون بمعالجة المعاملات بشكل مشترك والحفاظ على بيانات دفتر الأستاذ (دفتر الأستاذ). لدى Solana عدة مجموعات مختلفة، لكل منها غرض محدد:
تتوافق المجموعات مع شبكات إيثريوم مختلفة.
المضيف المحلي: مجموعة التطوير المحلية الموجودة على المنفذ الافتراضي 8899. تأتي واجهة سطر أوامر Solana (CLI) مضمنة مع أداة التحقق من صحة الاختبار التي يمكن تخصيصها وفقًا لاحتياجات المطورين الفرديين دون أي عمليات إسقاط جوي أو حدود للمعدلات
شبكة التطوير (Devnet): بيئة اختبار خالية من القيمة للاختبار والتجربة على Solana
Testnet: مكان اختبار للمساهمين الأساسيين في Solana لتجربة التحديثات والميزات الجديدة لاختبارها قبل ذلك الوصول إلى الشبكة الرئيسية. كما يتم استخدامها كبيئة اختبار للمطورين لإجراء اختبارات الأداء
Mainnet Mainnet Beta: مجموعة حية بدون إذن حيث تحدث المعاملات في العالم الحقيقي. هذه هي سولانا "الحقيقية" التي يتفاعل معها المستخدمون والمطورون وحاملو الرموز المميزة والمدققون كل يوم
تعمل كل مجموعة بشكل مستقل ولا تدرك تمامًا وجود مجموعات أخرى. سيتم رفض المعاملات المرسلة إلى المجموعة الخاطئة لضمان سلامة كل بيئة تشغيل.
الملخص
تقدم هذه المقالة المفاهيم الأساسية لـ Solana، بما في ذلك نموذج الحساب وآلية إنشاء الكتلة وهيكل رسوم المعاملات.
بفهم هذه المعرفة الأساسية، سنبدأ في تطوير التطبيقات باستخدام Solana.
مقالة مرجعية
سولانا كيف يعمل - مبدأ العمل
التعمق في إجماع سولانا - من الشوكات إلى النهاية
Preview
احصل على فهم أوسع لصناعة العملات المشفرة من خلال التقارير الإعلامية، وشارك في مناقشات متعمقة مع المؤلفين والقراء الآخرين ذوي التفكير المماثل. مرحبًا بك للانضمام إلينا في مجتمع Coinlive المتنامي:https://t.me/CoinliveSG