دروس إيثريوم - نظرة أعمق في إيثريوم!



يشرح هذا البرنامج التعليمي Ethereum Ethereum من وجهة نظر معمارية وأيضًا كيف تشكل أعظم منصة لبناء DAPPS و DAOs.

إيثيريوم الدورة التعليمية:

في مدونة Ethereum Tutorial هذه ، سأشرح العمل الداخلي لهندسة ethereum وسأوضح لك أيضًا تنفيذ ethereum من خلال طريقة بسيطة عقد ذكي .

أرى أن Ethereum عبارة عن blockchain قابل للبرمجة يخدم غالبية مؤسسة B2C في المستقبل. تمنح Ethereum للمطورين حرية إنشاء نماذج معقدة ليتم تنفيذها على blockchain ، بدلاً من تقييدها بالعمليات المحددة مسبقًا مثل Bitcoin blockchain.





من خلال هذا النهج ، حولت Ethereum نفسها إلى منصة لعدد كبير من التطبيقات والمؤسسات اللامركزية التي تشمل ، على سبيل المثال لا الحصر ، العملات المشفرة.

سأغطي مجموعة متنوعة من الموضوعات بطريقة شاملة من خلال تشغيل مدونة 'Ethereum Tutorial' هذه. تشمل هذه الموضوعات:



يمكنك مراجعة هذا التسجيل لبرنامج Ethereum التعليمي حيث قام مدرسونا بشرح الموضوعات بطريقة مفصلة مع سيساعدك ذلك على فهم هذا المفهوم بشكل أفضل.

دروس إيثريوم | عقود إيثريوم الذكية | إدوريكا

دروس إيثريوم: حسابات إيثريوم

تحتوي شبكة Ethereum على نوعين من الحسابات ، وهما:



  • الحسابات الخارجية
  • حسابات العقود

يشار إلى هذه الحسابات ، الخارجية والعقدية على أنها 'كائنات حالة' وتشكل 'حالة' شبكة الإيثيريوم. كل كائن حالة له حالة محددة جيدًا. بالنسبة للحسابات الخارجية ، تتكون الحالة من رصيد الحساب بينما بالنسبة لحسابات العقود ، يتم تحديد الحالة من خلال تخزين الذاكرة والرصيد.

سأشير إلى الحسابات الخارجية على أنها حسابات. هذه الحسابات مملوكة من قبل وكلاء خارجيين للشبكة والتي تشمل كل مستخدم عادي ، عمال مناجم ، وكلاء آلي ، إلخ.

يتم التحكم في هذه الحسابات بشكل عام بمساعدة خوارزميات تشفير المفتاح العام مثل RSA. الغرض الرئيسي من الحسابات الخارجية هو العمل كوسيط للمستخدمين للتفاعل مع Ethereum Blockchain.

حسابات العقود ، من ناحية أخرى ، هي مجموعة من التعليمات البرمجية الموجودة على blockchain في عنوان محدد. يتم استدعاء هذه العقود بواسطة حسابات خارجية ، أو من خلال عقود أخرى من خلال وظيفة معينة للحث على اتخاذ إجراء. تمت كتابة هذه العقود بلغات البرمجة النصية عالية المستوى مثل Solidity أو Serpent أو LLL. يتم تخزين كل عقد موجود على بلوكشين الإيثيريوم بتنسيق محدد يسمى رمز بايت EVM (جهاز إيثريوم الظاهري) وهو تنسيق ثنائي خاص بالإيثريوم.

سيكون من العدل فقط أن أشرح EVM الآن بعد أن أخبرتك عن EVM-bytecode.

دروس إيثريوم: آلة إيثريوم الافتراضية

يحدد Ethereum ، بطريقة ريفية ، مجموعة من البروتوكولات المعممة التي أصبحت ركائز تطوير التطبيقات اللامركزية. في قلب هذا ، تكمن آلة إيثريوم الافتراضية. يوضح الشكل أدناه الهندسة المعمارية:

معمارية Ethereum - دروس Ethereum - Edureka

system.exit (0) جافا

من المهم أن نلاحظ أن جهاز Ethereum Virtual Machine ليس فقط في وضع الحماية تمامًا ، ولكنه أيضًا معزول تمامًا. هذا يعني أن الكود الذي يتم تشغيله حاليًا على EVM لا يمكنه الوصول إلى الشبكة أو نظام الملفات ويمكنه الوصول إلى العقود الأخرى بشكل مقتصد.

الآن بعد أن فهمنا جوهر النظام الأساسي ، دعنا نلقي نظرة أعمق على عقد الشبكة.

دروس إيثريوم: شبكة إيثريوم

شبكة ethereum هي شبكة blockchain عامة. وهي تشكل الأساس لجميع التطبيقات والمنظمات اللامركزية من نظير إلى نظير التي تعمل على الشبكة. تتكون الشبكة من نوعين من العقد وهما العقد الكاملة والعقد خفيفة الوزن.

العقد الكاملة تحتوي على التاريخ الكامل للمعاملات منذ كتلة التكوين. إنها دليل كامل على سلامة شبكة blockchain. يجب أن تحتوي العقد الكاملة على كل معاملة تم التحقق منها وفقًا للقواعد التي وضعتها مواصفات Ethereum.

عقد خفيفة الوزن من ناحية أخرى ، تحتوي فقط على مجموعة فرعية من blockchain بأكمله. تُستخدم هذه الأنواع من العقد في الغالب في المحافظ الإلكترونية التي يجب أن تكون خفيفة الوزن بطبيعتها ، وبالتالي لا يمكن تخزين blockchain بالكامل عليها. في المقابل ، لا تتحقق هذه العقد من كل كتلة أو معاملة وقد لا تحتوي على نسخة من حالة blockchain الحالية. يعتمدون على العقد الكاملة لتزويدهم بالتفاصيل المفقودة (أو ببساطة يفتقرون إلى وظائف معينة). تتمثل ميزة العقد الضوئية في قدرتها على النهوض والتشغيل بسرعة أكبر ، ويمكن تشغيلها على الأجهزة المقيدة من الناحية الحسابية / الذاكرة ، ولا تستهلك مساحة تخزين كبيرة تقريبًا.

كل blockchain عام له عملة مرتبطة به. لا يختلف Ethereum. دعونا نلقي نظرة أعمق على العملة المشفرة لإيثريوم.

دروس إيثريوم: الأثير والغاز

الأثير هو اسم العملة المشفرة المستخدمة للدفع مقابل المعاملات على شبكة الإيثريوم. بصرف النظر عن الدفع مقابل المعاملات والخدمات العامة ، يتم استخدام إيثر أيضًا لشراء الغاز ، والذي يستخدم بدوره لدفع تكاليف الحساب داخل أداة EVM.

الأثير هو الوحدة المترية وله الكثير من الفئات التي تساعد بدقة في الدفع مقابل المعاملات والغاز. أصغر فئة تعرف أيضًا باسم الوحدة الأساسية تسمى وي. يمكن رؤية الطوائف مع أسمائها المحددة في الجدول أدناه:

الوحداتقيمة ويوي
وي1 ويواحد
كوي1e3 وي1،000
Mwei1e6 وي1،000،000
متماسكة1e9 وي1،000،000،000
مايكرو إيثير1e12 وي1،000،000،000،000
ميلي إيثر1e15 وي1،000،000،000،000،000
الأثير1e18 وي1،000،000،000،000،000،000

كما ناقشنا سابقًا ، نعلم أن EVM هي المسؤولة عن تشغيل الكود الذي يتم نشره على شبكتها. إذن ما الذي يمنع شخصًا من تشغيل حلقة لا نهائية على EVM وإثقال كاهل ذاكرته تمامًا؟ هذا هو المكان الذي يأتي فيه مفهوم الغاز.

يستخدم الغاز كمقياس للدفع مقابل الموارد الحسابية على الشبكة. يحتوي كل عقد على الشبكة على حد أقصى معين من الغاز يمكن استخدامه في حساباته. يُعرف هذا باسم ' حد الغاز المصطلحات الأخرى للغاز المصاحب هي كما يلي:

  • سعر الغاز : هذه هي تكلفة الغاز من حيث الرموز المميزة مثل الأثير وفئاته الأخرى. لتحقيق الاستقرار في قيمة الغاز ، فإن سعر الغاز هو قيمة عائمة بحيث إذا تقلبت تكلفة الرموز أو العملة ، يتغير سعر الغاز للحفاظ على نفس القيمة الحقيقية.
  • رسوم الغاز : هذا هو فعليًا مبلغ الغاز المطلوب دفعه لتشغيل معاملة أو برنامج معين (يسمى العقد).

ومن ثم ، إذا حاول شخص ما تشغيل جزء من التعليمات البرمجية الذي يستمر إلى الأبد ، فسوف يتجاوز العقد في النهاية حد الغاز الخاص به وسيتم إرجاع المعاملة التي استدعت العقد إلى حالتها السابقة.


الآن بعد أن علمنا بالعملة ، دعنا نلقي نظرة على العملية التي تولد عملة جديدة.

دروس إيثريوم: التعدين

تضمن Ethereum ، مثلها مثل تقنيات blockchain العامة الأخرى ، الأمان من خلال نموذج قائم على الحوافز. وهذا ما يسمى آلية إثبات العمل. يوضح الشكل أدناه كيفية عمل تعدين الإيثريوم:

من منظور أكثر تقنية ، تسمى خوارزمية إثبات العمل المستخدمة Ethash ، وهي خوارزمية تجزئة مستوحاة من خوارزمية Dagger-Hashimoto.

الآن بعد أن رأينا بنية عمل ethereum وناقشنا أنها عناصر أساسية ، دعنا نرى مشكلة العالم الحقيقي ونهج ethereum لحلها.

دروس إيثريوم: حالة استخدام التمويل الجماعي اللامركزي

عرض المشكلة : 'الفكرة' الجيدة ليست كل شيء في عالم اليوم لبدء عمل تجاري ناجح. هناك حاجة إلى الكثير من التمويل والجهد لتنفيذ فكرة. هذا هو المكان الذي تظهر فيه منظمات مثل 'Kickstarter' في الصورة. إنهم يزودون المشاريع بالتعرض العام اللازم للتبرعات تجاه مشروعهم من أجل تشغيله ، لكن البنية المركزية لمثل هذا الدافع لها جوانبها السلبية ، خاصة في الطريقة التي يتم بها التعامل مع المكافآت. نظرًا لأن السلطة المركزية تتخذ جميع القرارات ، فإن الأنظمة عرضة لقواعد مثل:

  • أي شخص فاته الموعد النهائي للحملة لا يمكنه الدخول بعد الآن
  • أي متبرع غير رأيه لا يمكنه الخروج

مقاربة :

نتخذ منهجية لا مركزية لمعالجة المشكلة كما هو موضح في الصورة أدناه:

المحلول :

هنا هو عقد Solidity الذكي لبيان المشكلة أعلاه.

pragma Solidity ^ 0.4.16 رمز الواجهة {نقل الوظيفة (عنوان المتلقي ، مبلغ uint)} عقد بيع جماعي {عنوان المستفيد العام uint public financeGoal uint public amountRaised uint public time uint public token public tokenReward mapping (address => uint256) public balanceOf bool financeGoalReached = false bool blockdsaleClosed = حدث خاطئ GoalReached (مستلم العنوان ، uint totalAmountRaised) حدث FundTransfer (عنوان مؤيد ، مبلغ uint ، منطقي isContribution) / ** * Constrctor function * * إعداد المالك * / الوظيفة Crowdsale (العنوان ifSuccessfulSendTo // العنوان للمالك عندما يكون التمويل ناجحًا ، uint financeGoalInEthers // المبلغ المستهدف لزيادة مدة الوقت InMinutes // معطى الوقت لـ etherCostOfEachToken // تكلفة حقوق الملكية في عنوان etherOfTokenUsedAsReward // عنوان الرمز المميز) {المستفيد = ifSuccessfulSendTo financeGoal = financeGoalherEthers * + مدة دقيقة * 1 دقيقة السعر = etherCostOfEachToken * 1 ether to kenReward = token (addressOfTokenUsedAsReward)} / ** * الوظيفة الاحتياطية * * الوظيفة بدون اسم هي الوظيفة الافتراضية التي يتم استدعاؤها عندما يرسل أي شخص أموالًا إلى عقد * / function () مستحق الدفع {يتطلب (! boomdsaleClosed) uint amount = msg. value BalanceOf [msg.sender] + = المبلغ amountRaised + = amount tokenReward.transfer (msg.sender، amount / price) FundTransfer (msg.sender، amount، true)} معدّل afterDeadline () {if (now = financeGoal) {financeGoalReached = تم الوصول إلى الهدف الحقيقي (المستفيد ، المبلغ المرتفع)} البيع الجماعي مغلق = صحيح} / ** * سحب الأموال * * عمليات التحقق لمعرفة ما إذا تم الوصول إلى الهدف أو الحد الزمني ، وإذا كان الأمر كذلك ، وتم الوصول إلى هدف التمويل ، * يرسل المبلغ بالكامل إلى المستفيد. إذا لم يتم الوصول إلى الهدف ، يمكن لكل مساهم سحب * المبلغ الذي ساهم به. * / function safeWithdrawal () afterDeadline {if (! financeGoalReached) {uint amount = balanceOf [msg.sender] balanceOf [msg.sender] = 0 if (amount> 0) {if (msg.sender.send (amount)) { FundTransfer (msg.sender، amount، false)} else {BalanceOf [msg.sender] = amount}}} if (financeGoalReached &&uate == msg.sender) {if (uate.send (amountRaised)) {FundTransfer (مستفيد ، amountRaised، false)} else {// إذا أخفقنا في إرسال الأموال إلى المستفيد ، فقم بإلغاء تأمين رصيد الممولينGoalReached = false}}}}

إذا كنت مهتمًا بتعلم الصلابة ، تحقق من مدونتنا على ، والذي يستخدم للتطويرشخصيةالعقود الذكية.

إذا كنت ترغب في تعلم Blockchain وبناء مستقبل مهني في تقنيات Blockchain ، فراجع موقعنا الذي يأتي مع تدريب مباشر بقيادة مدرب وخبرة مشروع واقعية. سيساعدك هذا التدريب على فهم Blockchain بعمق ويساعدك على تحقيق إتقان الموضوع.

لديك سؤال لنا؟ يرجى ذكرها في قسم التعليقات وسنعاود الاتصال بك في أقرب وقت ممكن.