بلوكشين البرنامج التعليمي | كيف تصبح مطور بلوكشين:

Ameer Rosic

2 years ago
 بلوكشين البرنامج التعليمي | كيف تصبح مطور بلوكشين:

في هذا الدليل ، سنقوم بتخطيط رحلتك لتصبح مطور Blockchain. تطوير بلوكشين لا يختلف كثيرا عن تطوير الويب العادية - والفرق الرئيسي هو أن مطور بلوكشين سوف تتطور خصيصا لبلوكشين. لتسهيل الأمور بالنسبة لك ، سنقوم بتقسيم هذا الدليل إلى معالم مختلفة ونمنحك خطوات عمل في نهاية كل قسم.

وغني عن القول أننا نعيش في “عصر بلوكشين”. و الأثر الذي يمكن أن يكون له على مستقبلنا مخيف حقا و مشهم. لذلك ، كيف يمكنك الحصول على قطعة من هذا “العمل بلوكشين” ؟ إذا كنت ستصبح مطور blockchain ، فهناك بعض الخطوات التي تحتاج إلى اتخاذها.

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

لذلك ، بعد أن قلت ذلك ، دعونا نبدأ رحلتك.

كيف تصبح بلوكشين المطور تعليمي!

معلم #1: فهم الأساسيات

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

إذا كنت مبتدئا ، ثم هناك بعض المصطلحات التي تحتاج إلى أن تكون على دراية بها:

تعلم تقنية بلوكشين

بلوكشين: بلوكشين هو سلسلة من كتل حيث كل كتلة تحتوي على بيانات القيمة دون أي إشراف مركزي. هو آمن التشفير وغير قابل للتغيير.

اللامركزية: يقال إن Blockchain لا مركزية لأنه لا توجد سلطة مركزية تشرف على أي شيء.

آلية توافق الآراء: الآلية التي تتوصل بها شبكة لا مركزية إلى توافق في الآراء بشأن مسائل معينة.

عمال المناجم: المستخدمين الذين يستخدمون قوتهم الحسابية لإزالة الكتل.

تدريب لتصبح مطور Blockchain بدء التجربة المجانية اليوم!

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

إذا كنت مهتمًا بالجوانب التقنية لكيفية إنشاء تطبيق التكنولوجيا الدقيقة على قمة Blockchain ، فيجب عليك بالتأكيد معرفة خصوصيات ومخارج cryptoeconomics. عادة ما يكون معظم المطورين على دراية جيدة في جزء “التشفير” من المعادلة ولكن معرفتهم بجزء “الاقتصاد” تفتقر للغاية.

هذا الاختلاف في المعرفة واضح للغاية عند دراسة بعض هذه المكاتب القطرية العائمة. ومن الواضح جدا أن نرى أن الجانب الاقتصادي من إيكو ليست مدروسة جيدا.

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

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

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

لذلك ، فمن المستحسن أن تقرأ ورقة ساتوشي ناكاموتو البيتكوين. يمكنك العثور عليه هنا. الآن هذا يكمل المعلم الأول.

دعنا نتحقق من خطوات الإجراء التي تحتاج إلى اتخاذها هنا:

تعرف على المصطلحات والمعجم المختلفة.

قراءة على الجوانب التقنية أكثر من بلوكشين.

اقرأ ورقة عمل بت كوين.

المعلم #2: تعرف على كيفية عمل العملية

ومن المستغرب جدا أن نرى كم من مهدها “المطورين” لم يكن لديها أي تجربة حقيقية مباشرة في العالم مع كريبتوكيرنسي على الإطلاق. كيف يمكنك الابتكار والتحسين على منصة عندما كنت لم تستخدم حتى مرة واحدة ؟

فمن المستحسن أن تبدأ في التعرف على النظام اليوم.

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

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

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

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

نحن نقترب من هذا القسم هنا ، الجزء الصعب يبدأ من المعلم المقبل.

خطوات العمل الخاصة بك هنا:

تعرف على كيفية عمل التبادلات.

تعرف على المحافظ.

معلم #3: دعونا الحصول على الترميز! بلوكشين البرنامج التعليمي

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

(قبل أن نواصل ، صرخ ضخم إلى ديفيد شوارتز لخطابه الرئيسي بشأن استخدام C + + في تطوير برامج blockchain في CPPCON 2016.)

السبب #1: الأمان

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

السبب #2: إدارة الموارد

من المهم مواكبة الشبكة. لا يمكنك أن تتخلف كثيراً ولا تواكب جميع متطلبات الشبكة. يجب أن تكون مجهزًا جيدًا للتعامل مع الاستعلامات البعيدة والمحلية.

السبب #3: الأداء

يجب أن تؤدي blockchain دائمًا بأعلى قدراتها الممكنة ، ولكن لكي يحدث ذلك يجب أن تكون اللغة المختارة متعددة الاستخدامات للغاية. الشيء هو أن هناك بعض المهام في بلوكشين التي هي متوازية في حين أن هناك بعض المهام التي لا يمكن القيام به بالتوازي.

مثال جيد على المهمة “المتوازية” هو التحقق من التوقيع الرقمي. كل ما تحتاجه للتحقق من التوقيع هو المفتاح والمعاملة والتوقيع. مع ثلاثة بيانات فقط يمكنك إجراء عمليات التحقق بطريقة متوازية.

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

السبب #4: العزل

ما هو السلوك الحتمي ؟

إذا كان A + B = C ، فبغض النظر عن الظروف ، سيكون A + B دائمًا مساويًا لـ C. وهذا ما يسمى بالسلوك الحتمي.

تعتبر وظائف التجزئة حتمية ، بمعنى أن تجزئة A ستكون دائمًا H (A).

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

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

هناك بعض اللغات التي تلبي معظم هذه الاحتياجات. إذا كنت مطور blockchain ، فأنت بالتأكيد بحاجة إلى الحصول على بعض المعرفة الأساسية لـ C + + و JavaScript.

في حين أن C + + قد يبدو عفا عليها الزمن قليلا ، والحقيقة هي أنه يرضي بشكل رائع جميع الوظائف التي وصفناها أعلاه. في الواقع ، كتب ساتوشي ناكاموتو شفرة المصدر بيتكوين في C + +.

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

لذلك ، الآن سوف نرى كيفية إنشاء بلوكشين بسيطة جدا باستخدام جافا سكريبت.

صرخ ضخم إلى savjee.be للمحتوى أدناه.

كيف يمكننا جعل كتلة ؟ ماذا تتكون كتلة بسيطة من ؟ في كريبتوكوين بسيطة لدينا أننا ذاهبون لجعل (دعونا نسميها “بلوكجيكسكوين”) ، كل كتلة سوف يكون القطع التالية من المعلومات:

فهرس: لمعرفة رقم الكتلة.

الطابع الزمني: لمعرفة وقت الخلق.

البيانات: البيانات داخل الكتلة.

التجزئة السابقة: تجزئة الكتلة السابقة.

تجزئة: تجزئة الكتلة الحالية.

قبل أن نستمر تحتاج إلى فهم بعض المصطلحات التي سنستخدمها في برنامجنا:

هذا: يتم استدعاء الكلمة الأساسية “this” داخل دالة وتمكينك من الوصول إلى القيم داخل كائن معين يستدعي هذه الوظيفة المعينة.

منشئ: منشئ هو وظيفة خاصة التي يمكن أن تساعد في إنشاء وتهيئة كائن داخل فئة. يقتصر كل فئة على مُنشئ واحد فقط.

الآن بعد أن تم ذلك ، دعونا نبدأ في جعل كتلة لدينا.

إنشاء كتلة

كونست SHA256 = تتطلب (” التشفير js/sha256 “) ؛

كتلة الفئة

{

منشئ (فهرس ، طابع زمني ، بيانات ، سابقةHash =”)

{

this.index = index ؛

this.previousHash = سابقةHash ؛

this.timestamp = الطابع الزمني ؛

this.data = البيانات ؛

this.hash = this.calculateHash () ؛

}

حساب هاش ()

{

عودة SHA256 (هذا.index + هذا.previousHash + هذا.timestamp + JSON.stringify (هذا.data))) .توسترينغ () ؛

}

}

تحليل التعليمات البرمجية

حسنا ، هذا هنا هو خارج كتلة. لذلك ، في السطر الأول من التعليمات البرمجية ، دعونا مكتبة التشفير شبيبة لأن وظيفة التجزئة sha256 غير متوفرة في جافا سكريبت.

بعد ذلك ، قمنا باستدعاء مُنشئ داخل الفصل لاستدعاء الكائنات التي سيكون لها قيم معينة. الشيء الذي ربما يمسك عينيك هو وظيفة calculateHash (). دعونا نرى ما هو بالضبط يفعل.

في كتلة ، نأخذ جميع المحتويات ونجزها للحصول على تجزئة تلك الكتلة المعينة. نحن نستخدم وظيفة JSON.stringify لتحويل بيانات الكتلة إلى سلسلة لتجزئتها.

حسنا ، لدينا كتلة جاهزة وجاهزة للذهاب. الآن دعونا ربط كتل معا في بلوكشين.

إنشاء بلوكشين: تصبح مهندس بلوكشين

فئة بلوكشين

{

//القسم 1 إنشاء كتلة التكوين

منشئ ()

{

this.chain = [this.createGenesisBlock ()] ؛

}

إنشاءنوع الكتلة ()

{

عودة كتلة جديدة (0 ، "01/01/2017 “، “كتلة التكوين” ، “0") ؛

}

//القسم 2 إضافة كتل جديدة

جيتلاتيستبلوك ()

{

إرجاع هذا.chain [هذا.chain.length - 1] ؛

}

addBlock (جديد بلوك) {

newBlock.previousHash = this.getLatestBlock () .hash ؛

newBlock.hash = newBlock.calculateHash () ؛

هذا.chain.push (نيوبلوك) ؛

}

//القسم 3 التحقق من صحة السلسلة

isChainValid ()

{

إلى (اسمحوا أنا = 1 ؛ أنا هذا.chain.length ؛ أنا + +)

{

const currentBlock = this.chain [i] ؛

const السابق بلوك = this.chain [i - 1] ؛

إذا (currentBlock.hash! = = currentBlock.calculateHash ()) {

إرجاع كاذبة ؛

}

إذا (currentBlock.previousHash! = = السابق Block.hash)

{

إرجاع كاذبة ؛

}

}

عودة صحيحة;

}

}

تحليل التعليمات البرمجية

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

القسم الأول: كتلة التكوين

ما هي كتلة نشأة ؟

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

أيضا ، يمكنك أن ترى وظيفة “كريتجينيسيسبلوك ()” حيث أعطينا بيانات الكتلة يدويا:

إنشاءنوع الكتلة ()

{

عودة كتلة جديدة (0 ، "01/01/2017 “، “كتلة التكوين” ، “0") ؛

}

القسم 2: إضافة الكتل

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

جيتلاتيستبلوك ()

{

إرجاع هذا.chain [هذا.chain.length - 1] ؛

}

الآن بعد أن حددنا أحدث كتلة ، دعونا نرى كيف سنقوم بإضافة كتل جديدة.

addBlock (جديد بلوك) {

newBlock.previousHash = this.getLatestBlock () .hash ؛

newBlock.hash = newBlock.calculateHash () ؛

هذا.chain.push (نيوبلوك) ؛

}

إذاً ، ماذا يحدث هنا ؟ كيف نقوم بإضافة الكتل ؟ كيف نتحقق مما إذا كانت الكتلة المعطاة صالحة أم لا ؟

تذكر محتويات كتلة ؟ كتلة لديها تجزئة الكتلة السابقة الحق ؟

لذا ، ما سنفعله هنا بسيط. قارن قيمة التجزئة السابقة للكتلة الجديدة بقيمة التجزئة لأحدث كتلة.

صورة مجاملة: لوري Hartikka المادة المتوسطة

إذا تطابق هاتين القيمتين ، فهذا يعني أن الكتلة الجديدة شرعية ويتم إضافتها إلى blockchain.

القسم 3: التحقق من صحة السلسلة

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

نحن نستخدم حلقة “for” للانتقال من الكتلة 1 إلى الكتلة الأخيرة. كتلة التكوين هي كتلة 0.

إلى (اسمحوا أنا = 1 ؛ أنا هذا.chain.length ؛ أنا + +)

{

const currentBlock = this.chain [i] ؛

const السابق بلوك = this.chain [i - 1] ؛

في هذا الجزء من التعليمات البرمجية نحن تحديد مصطلحين ، كتلة الحالية وكتلة السابقة. والآن نحن ببساطة سوف نجد تجزئة هاتين القيمتين.

إذا (currentBlock.hash! = = currentBlock.calculateHash ()) {

إرجاع كاذبة ؛

}

إذا (currentBlock.previousHash! = = السابق Block.hash)

{

إرجاع كاذبة ؛

}

}

عودة صحيحة;

}

إذا كان “السابق هاش” من الكتلة الحالية لا يساوي “هاش” من الكتلة السابقة ، ثم هذه الوظيفة سيعود فالس ، وإلا فإنه سيعود ترو.

استخدام بلوكشين

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

السماح بلوكجيكسوان = بلوكشين جديدة () ؛

BlockGeeksCoin.addBlock (كتلة جديدة (1 ، "20/07/2017 “، {المبلغ: 4})) ؛

BlockGeeksCoin.addBlock (كتلة جديدة (2 ، "20/07/2017 “، {المبلغ: 8}) ؛

وهذا كل شيء!

ماذا حدث هنا ؟

أنشأنا كريبتوكيرنسي جديدة على أساس بلوكشين واسمه بلوكجيكسوان. من خلال استدعاء هذا الكائن الجديد ، قمت بتنشيط المُنشئ ، والذي بدوره أنشأ كتلة Genesis تلقائيًا.

أضفنا ببساطة كتلتين إضافيتين إليها وأعطيهم بعض البيانات.

الأمر بهذه البساطة.

(شكرا لك savjee.be لتفسير مدهش وبسيط.)

هذا كل شيء لهذا المعلم. دعونا ننظر إلى خطوات العمل. انها بسيطة جدا ولكن بالتأكيد ليس من السهل:

الحصول على التعليم في واحدة من العديد من اللغات ودية بلوكشين مثل C + + ، جافا سكريبت ، C # ، الذهاب الخ.

معلم #4: الحصول على التعليم على العقود الذكية

كيف تحدد العقد الذكي ؟

وفقا لويكيبيديا ، العقد الذكي هو “بروتوكول كمبيوتر يهدف إلى تسهيل ، التحقق ، أو إنفاذ التفاوض أو تنفيذ العقد”. في حين تم اقتراحه لأول مرة من قبل مشفر التشفير الأمريكي نك زابو في عام 1996 ، وغالبا ما يعزى إثريوم مع تعميم المفهوم وجعلها السائدة.

يمكنك معرفة المزيد عن العقود الذكية في دليلنا المتعمق هنا.

إذن ، ما هي الخصائص المرغوبة التي نريدها في عقدنا الذكي ؟

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

حازم.

قابل للإنهاء.

معزول.

الميزة #1: حازم

البرنامج هو حتمية إذا كان يعطي نفس الإخراج إلى إدخال معين في كل مرة. على سبيل المثال. إذا كان 3 + 1 = 4 ، فسيكون 3 + 1 دائمًا 4 (بافتراض نفس القاعدة). لذلك عندما يعطي البرنامج نفس الإخراج لنفس مجموعة المدخلات في أجهزة الكمبيوتر المختلفة ، ويسمى البرنامج حتمية.

هناك لحظات مختلفة عندما يمكن للبرنامج أن يتصرف بطريقة غير حتمية:

استدعاء وظائف النظام غير الحتمية: عندما يستدعي مبرمج وظيفة غير حتمية في برنامجه.

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

المكالمات الديناميكية: عندما يستدعي برنامج البرنامج الثاني يطلق عليه استدعاء ديناميكي. نظرًا لأن هدف المكالمة يتم تحديده فقط أثناء التنفيذ ، فهو غير محدد في طبيعته.

الميزة #2: قابلة للإنهاء

في المنطق الرياضي ، لدينا خطأ يسمى “مشكلة التوقف”. في الأساس ، تنص على أن هناك عدم القدرة على معرفة ما إذا كان برنامج معين يمكن تنفيذ وظيفته في حد زمني أم لا. في عام 1936 ، استنتج آلان تورينج ، باستخدام مشكلة كانتور القطرية ، أنه لا توجد طريقة لمعرفة ما إذا كان برنامج معين يمكن أن ينتهي في حد زمني أم لا.

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

تورينغ عدم الاكتمال: A تورينغ بلوكشين غير مكتملة سيكون لها وظائف محدودة ولن تكون قادرة على جعل القفزات و/أو الحلقات. وبالتالي فإنها لا يمكن أن تدخل حلقة لا نهاية لها.

خطوة ومتر الرسوم: يمكن للبرنامج ببساطة تتبع عدد “الخطوات” التي اتخذها ، أي عدد من التعليمات التي تم تنفيذها ، ومن ثم إنهاء بمجرد تنفيذ عدد خطوة معينة.طريقة أخرى هي متر الرسوم. هنا يتم تنفيذ العقود برسوم مدفوعة مسبقًا. يتطلب كل تنفيذ تعليمات مبلغ معين من الرسوم. إذا كان الرسم المنفق يتجاوز الرسم المدفوع مسبقا ثم يتم إنهاء العقد.

مؤقت: هنا يتم الاحتفاظ مؤقت محدد مسبقا. إذا تجاوز تنفيذ العقد الحد الزمني ثم يتم إحباطه خارجيا.

الميزة #3: معزولة

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

الآن بعد أن رأينا هذه الميزات ، من المهم أن نعرف كيف يتم تنفيذها. عادة ما يتم تشغيل العقود الذكية باستخدام أحد النظامين:

الأجهزة الظاهرية: يستخدم إثريوم هذا.

عامل الميناء: النسيج يستخدم هذا.

دعونا نقارن هذين وتحديد ما يجعل لنظام بيئي أفضل. من أجل البساطة ، سنقوم بمقارنة إثريوم (الجهاز الظاهري) إلى النسيج (عامل الميناء).

إذا كنت مهتمًا بتطوير Ethereum على وجه التحديد ، فمن المهم أن تتعلم الصلابة أيضًا.

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

الصلابة هي لغة تنحيف بشكل مقصود ، مكتوبة بشكل فضفاض مع بناء جملة تشبه إلى حد كبير ECMAScript (Javascript). هناك بعض النقاط الرئيسية التي يجب تذكرها من وثيقة Ethereum Design Rationale ، وهي أننا نعمل على نموذج كومة وذاكرة مع حجم كلمة تعليمات 32 بايت ، و EVM (Ethereum Virtual Machine) يعطينا الوصول إلى البرنامج “كومة” الذي يشبه مساحة السجل حيث يمكننا أيضا عصا الذاكرة لجعل حلقة/قفزة برنامج مكافحة (للتحكم في البرنامج المتسلسل) ، و “ذاكرة” مؤقتة قابلة للتوسيع و “تخزين” أكثر دواما والتي هي مكتوبة في الواقع في بلوكشين الدائم ، والأهم من ذلك ، فإن EVM يتطلب الحتمية الكاملة داخل العقود الذكية.

إذا كنت مهتمًا بتعلم الصلابة ، فيمكنك التحقق من صفنا المتعمق هنا.

لذلك ، دعونا نرى خطوات الإجراء الآن:

فهم كيفية عمل العقود الذكية.

(اختياري لمطوري إثريوم) تعلم الصلابة.

معلم #5: كن في المزيج

واحدة من أهم الأشياء التي يمكنك القيام بها كمطور مهدها هو البقاء باستمرار في المزيج.

انتقل والانضمام إلى منتديات رديت ، وصفحات جيتبوب ، و ستاكسشانج والتواصل مع المطورين الآخرين ويكون دائما على اطلاع على أي أخبار بشأن التكنولوجيا.

جنبا إلى جنب مع ذلك ، سيكون من المفيد بالنسبة لك أن تعرف ما يبحث عنه الناس في بلوكشين المطور. ما هي الصفات التي تبحث عنها الشركات عندما تبحث عن توظيف ؟ يمكنك العثور على تلك المعلومات هنا.

هذه المعلومات يمكن أن تكون مفيدة جدا في ضبط المهارات الخاصة بك بما فيه الكفاية لمناشدة الشركات.

المسار إلى أن تصبح مطور أو مهندس Blockchain: الاستنتاج

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

إذا كنت تبحث عن مورد من المعلومات حول تطوير بلوكشين ثم انقر هنا.

نتمنى لكم كل التوفيق في رحلتك!

في هذا الدليل ، سنقوم بتخطيط رحلتك لتصبح مطور Blockchain. تطوير بلوكشين لا يختلف كثيرا عن تطوير الويب العادية - والفرق الرئيسي هو أن مطور بلوكشين سوف تتطور خصيصا لبلوكشين. لتسهيل الأمور بالنسبة لك ، سنقوم بتقسيم هذا الدليل إلى معالم مختلفة ونمنحك خطوات عمل في نهاية كل قسم. وغني عن القول أننا نعيش في “عصر بلوكشين”. و الأثر الذي يمكن أن يكون له على مستقبلنا مخيف حقا و مشهم. لذلك ، كيف يمكنك الحصول على قطعة من هذا “العمل بلوكشين” ؟ إذا كنت ستصبح مطور blockchain ، فهناك بعض الخطوات التي تحتاج إلى اتخاذها. نأمل ، في نهاية الدليل ، سيكون لديك الأدوات اللازمة لبدء رحلتك. إذا كنت جادًا في أن تصبح مطورًا ، فنحن بحاجة إلى تحديد بعض التوقعات لك. أولًا ، سيستغرق الأمر وقتًا وستحتاج إلى تخصيص وقتك ومواردك لتعليمك (يمكنك مواصلة تعليمك معنا من خلال أخذ دروسنا عبر الإنترنت). ثانيا ، لا نتوقع نتائج فورية ، لتصبح مطور بلوكشين ليس حبوب منع الحمل السحرية. لذلك ، بعد أن قلت ذلك ، دعونا نبدأ رحلتك. كيف تصبح بلوكشين المطور تعليمي! معلم #1: فهم أساسيات واحدة من أكبر العقبات مع أي شيء جديد وثوري ، مثل بلوكشين التكنولوجيا ، هو التعرف على نفسه مع مختلف المفاهيم جزءا لا يتجزأ من النظام. إذا كنت مبتدئا ، ثم هناك بعض المصطلحات التي تحتاج إلى أن تكون مألوفة مع: تعلم بلوكشين التكنولوجيا بلوكشين: بلوكشين هو سلسلة من كتل حيث كل كتلة تحتوي على بيانات ذات قيمة دون أي إشراف مركزي. هو آمن التشفير وغير قابل للتغيير. اللامركزية: يقال إن Blockchain لا مركزية لأنه لا توجد سلطة مركزية تشرف على أي شيء. آلية توافق الآراء: الآلية التي تتوصل بها شبكة لا مركزية إلى توافق في الآراء بشأن مسائل معينة. عمال المناجم: المستخدمين الذين يستخدمون قوتهم الحسابية لإزالة الكتل. تدريب لتصبح مطور Blockchain بدء التجربة المجانية اليوم! قد يكون من المستحسن معرفة المزيد عن هذه المصطلحات التي تستخدم على نطاق واسع في مجال التشفير. ويوصى بشدة أن تذهب من خلال مسرد المصطلحات الشامل لدينا. من المهم أن تتعلم هذه المصطلحات الأساسية وإلا سوف تضيع كثيرا في تعليمك. الآن ، بعد ذلك ، حان الوقت لتثقيف نفسك بعض أكثر على الجوانب التقنية من بلوكشين. إذا كنت مهتمًا بالجوانب التقنية لكيفية إنشاء تطبيق التكنولوجيا الدقيقة على قمة Blockchain ، فيجب عليك بالتأكيد معرفة خصوصيات ومخارج cryptoeconomics. عادة ما يكون معظم المطورين على دراية جيدة في جزء “التشفير” من المعادلة ولكن معرفتهم بجزء “الاقتصاد” تفتقر للغاية. هذا الاختلاف في المعرفة واضح للغاية عند دراسة بعض هذه المكاتب القطرية العائمة. ومن الواضح جدا أن نرى أن الجانب الاقتصادي من إيكو ليست مدروسة جيدا. لذلك ، في ضوء ذلك ، يمكن أن يكون فكرة جيدة لقراءة قليلا عن الاقتصاد والحصول على فكرة عامة عن ذلك.إذا كنت ترغب في معرفة المزيد عن cryptoeconomics بشكل عام ، ثم يمكنك الخروج من مقالنا هنا. إذا كنت مفتون من قبل التشفير على وجه التحديد وتريد أن تعرف كيف تعمل التوقيعات وما يعني تشفير المفتاح العام ، ثم قراءة هذا. بعد ذلك ، فمن المستحسن أن تفهم كيف يعمل بيتكوين. بيتكوين هو الأكثر انتشارا ، أرقى واحدة من التطبيقات الأكثر أناقة من بلوكشين التكنولوجيا. يمكنك حتى نسميها أفضل مثال لما يمكن أن تحققه تقنية blockchain فقط بسبب التأثير الذي كان له. لذلك ، فمن المستحسن أن تقرأ ورقة ساتوشي ناكاموتو البيتكوين. يمكنك العثور عليه هنا. الآن هذا يكمل المعلم الأول. دعونا نتحقق من خطوات العمل التي تحتاج إلى اتخاذها هنا: تعرف على مختلف المصطلحات والمعاجم. قرأ حتى على الجوانب التقنية أكثر من بلوكشين. اقرأ ورقة عمل بت كوين. معلم #2: تعلم كيف تعمل العملية من المستغرب جدا أن نرى كم من “المطورين” في مهدها لم يكن لديهم أي تجربة حقيقية مباشرة في العالم مع كريبتوكيرنسي على الإطلاق. كيف يمكنك الابتكار والتحسين على منصة عندما كنت لم تستخدم حتى مرة واحدة ؟ فمن المستحسن أن تبدأ في التعرف على النظام اليوم. انتقل إلى سوينباس أو أي تبادل آخر أن كنت مرتاحا مع أو يمكن الوصول إليها في بلدك وشراء بعض القطع النقدية. لا تحتاج إلى إنشاء محفظة واسعة على الفور ، مجرد شراء عدد قليل من القطع النقدية ونرى كيف تعمل العملية برمتها. إنها واضحة للغاية. منذ كنت لن يكون شراء الكثير من القطع النقدية ثم ببساطة استخدام محفظة الأساسية على الانترنت. هذه المحافظ هي أسهل للاستخدام بين الجميع. إنشاء هو السوبر بسيطة لأنه في الأساس إنشاء حسابك الخاص على أي من خدمات الصرف. وعلاوة على ذلك ، يمكنك الوصول إلى هذه المحفظة من أي خادم أو أي جهاز في العالم طالما أنها متصلة بالشبكة. بعد أن قلت ذلك ، هناك مشكلة واحدة كبيرة عندما يتعلق الأمر محافظ على الانترنت. سيتم حفظ مفتاحك الخاص على خادم آخر. هذا أساسا مثل تقديم مفتاحك للقراصنة على طبق من الفضة. لا تستخدم محافظ على الانترنت لتخزين كميات ضخمة من المال الخاص بك. قم بتخزين الحد الأدنى الذي تحتاجه لأغراض التبادل. كما يمكنك إنشاء محفظة واسعة ، يجب أن تتعلم كيفية استخدام المحافظ الباردة لتخزين أموالك. يمكنك تعلم كيفية القيام بذلك هنا. في وقت لاحق ، إذا قمت بإنشاء إيكو الخاص بك ثم يجب أن تعرف كيف محافظ ، وعلى وجه الخصوص ، محافظ متعددة سيغ تعمل. نحن نقترب من هذا القسم هنا ، الجزء الصعب يبدأ من المعلم المقبل. خطوات العمل الخاصة بك هنا: تعرف على كيفية عمل التبادلات. تعرف على المحافظ. معلم #3: دعونا الحصول على الترميز! بلوكشين البرنامج التعليمي كمطور بلوكشين ، سوف تواجه طن من التحديات في النهاية الخلفية. إنشاء والحفاظ على بلوكشين العامة ليست سهلة بسبب عدد من الأسباب. (قبل أن نواصل ، صرخ ضخم إلى ديفيد شوارتز لخطابه الرئيسي بشأن استخدام C + + في تطوير برامج blockchain في CPPCON 2016.) السبب #1: الأمن Blockchains ، كما يضعه ديفيد شوارتز ، يجب أن تكون الحصون. أولاً ، يكون الرمز عامًا ومفتوحًا للجميع. يمكن لأي شخص أن ينظر إلى التعليمات البرمجية والتحقق من وجود الأخطاء ونقاط الضعف. ومع ذلك ، على عكس موارد التعليمات البرمجية المفتوحة الأخرى ، فإن الجانب السلبي لإيجاد نقاط الضعف على كود blockchain ضخم. يمكن لأي مبرمج اختراق ويفلت بملايين الملايين والملايين من الدولارات. وبسبب هذه المخاوف الأمنية المشروعة ، عادة ما يكون التطوير على blockchain بطيئًا جدًا. السبب #2: إدارة الموارد من المهم مواكبة الشبكة. لا يمكنك أن تتخلف كثيراً ولا تواكب جميع متطلبات الشبكة. يجب أن تكون مجهزًا جيدًا للتعامل مع الاستعلامات البعيدة والمحلية. السبب #3: الأداء يجب أن تؤدي blockchain دائمًا بأعلى قدراتها الممكنة ، ولكن لكي يحدث ذلك يجب أن تكون اللغة المختارة متعددة الاستخدامات للغاية. الشيء هو أن هناك بعض المهام في بلوكشين التي هي متوازية في حين أن هناك بعض المهام التي لا يمكن القيام به بالتوازي. مثال جيد على المهمة “المتوازية” هو التحقق من التوقيع الرقمي. كل ما تحتاجه للتحقق من التوقيع هو المفتاح والمعاملة والتوقيع. مع ثلاثة بيانات فقط يمكنك إجراء عمليات التحقق بطريقة متوازية. ومع ذلك ، لا ينبغي أن يتم جميع الوظائف على بلوكشين بهذه الطريقة. فكر في تنفيذ المعاملة نفسها. لا يمكن تنفيذ معاملات متعددة بالتوازي ؛ يجب القيام بها واحدة في وقت واحد لتجنب الأخطاء مثل الإنفاق المزدوج. بعض اللغات جيدة في العمليات المتوازية في حين أن بعضها جيد في العمليات غير المتوازية. السبب #4: العزلة ما هو السلوك الحتمي ؟ إذا كان A + B = C ، فبغض النظر عن الظروف ، سيكون A + B دائمًا مساويًا لـ C. وهذا ما يسمى بالسلوك الحتمي. تعتبر وظائف التجزئة حتمية ، بمعنى أن تجزئة A ستكون دائمًا H (A). لذلك ، في تطوير بلوكشين ، يجب أن تكون جميع عمليات المعاملات حتمية. لا يمكن أن يكون لديك معاملة تتصرف بطريقة واحدة ثم يتصرف بطريقة أخرى في اليوم التالي. وبالمثل ، لا يمكن أن يكون لديك عقود ذكية تعمل بطريقتين مختلفتين على جهازين مختلفين. الحل الوحيد لهذا هو العزلة. في الأساس ، يمكنك عزل العقود والمعاملات الذكية الخاصة بك من العناصر غير القطعية. هناك بعض اللغات التي تلبي معظم هذه الاحتياجات. إذا كنت مطور blockchain ، فأنت بالتأكيد بحاجة إلى الحصول على بعض المعرفة الأساسية لـ C + + و JavaScript. في حين أن C + + قد يبدو عفا عليها الزمن قليلا ، والحقيقة هي أنه يرضي بشكل رائع جميع الوظائف التي وصفناها أعلاه. في الواقع ، كتب ساتوشي ناكاموتو شفرة المصدر بيتكوين في C + +. جنبا إلى جنب مع HTML و CSS هو واحد من التقنيات الأساسية الثلاثة في إنتاج المحتوى على شبكة الإنترنت العالمية. يستخدم جافا سكريبت عادة لإنشاء صفحات ويب تفاعلية للغاية. لذلك ، الآن سوف نرى كيفية إنشاء بلوكشين بسيطة جدا باستخدام جافا سكريبت. صرخ ضخم إلى savjee.be للمحتوى أدناه. كيف يمكننا جعل كتلة ؟ ماذا تتكون كتلة بسيطة من ؟ في كريبتوكوين بسيطة لدينا أننا ذاهبون لجعل (دعونا نسميها “بلوكجيكسكوين”) ، كل كتلة سوف يكون القطع التالية من المعلومات: مؤشر: لمعرفة رقم كتلة. الطابع الزمني: لمعرفة وقت الخلق. البيانات: البيانات داخل الكتلة. التجزئة السابقة: تجزئة الكتلة السابقة. تجزئة: تجزئة الكتلة الحالية. قبل أن نستمر تحتاج إلى فهم بعض المصطلحات التي سنستخدمها في برنامجنا: هذا: يتم استدعاء الكلمة الرئيسية “هذا” داخل إحدى الوظائف وتمكينك من الوصول إلى القيم داخل كائن معين يستدعي هذه الوظيفة المعينة. منشئ: منشئ هو وظيفة خاصة التي يمكن أن تساعد في إنشاء وتهيئة كائن داخل فئة. يقتصر كل فئة على مُنشئ واحد فقط. الآن بعد أن تم ذلك ، دعونا نبدأ في جعل كتلة لدينا. إنشاء كتلة كونست SHA256 = تتطلب (” التشفير js/sha256 “) ؛ فئة بلوك {منشئ (فهرس ، طابع زمني ، بيانات ، سابقةHash =”) {this.index = index ؛ this.previousHash = سابقةHash ؛ this.timestamp = timestamp ؛ this.data = data ؛ this.hash = this.calculateHash () ؛} عودة Hash () SHA256 (هذا.index + this.previousHash + this.timestamp + JSON.stringify (this.data)) .toString () ؛}} تحليل التعليمات البرمجية موافق ، لذلك هذا الحق هنا هو خارج كتلة. لذلك ، في السطر الأول من التعليمات البرمجية ، دعونا مكتبة التشفير شبيبة لأن وظيفة التجزئة sha256 غير متوفرة في جافا سكريبت. بعد ذلك ، قمنا باستدعاء مُنشئ داخل الفصل لاستدعاء الكائنات التي سيكون لها قيم معينة. الشيء الذي ربما يمسك عينيك هو وظيفة calculateHash (). دعونا نرى ما هو بالضبط يفعل. في كتلة ، نأخذ جميع المحتويات ونجزها للحصول على تجزئة تلك الكتلة المعينة. نحن نستخدم وظيفة JSON.stringify لتحويل بيانات الكتلة إلى سلسلة لتجزئتها. حسنا ، لدينا كتلة جاهزة وجاهزة للذهاب. الآن دعونا ربط كتل معا في بلوكشين. إنشاء بلوكشين: تصبح فئة بلوكشين مهندس بلوكشين {//القسم 1 إنشاء كتلة التكوين منشئ () {this.chain = [this.createGenesisBlock ()] ؛} createGenesisBlock () {عودة كتلة جديدة (0 ، "01/01/2017 “، “كتلة التكوين” ، “0") ؛} //القسم 2 إضافة كتل جديدة جيتلاتستبلوك () {عودة هذا.chain [this.chain.length - 1] ؛} أدبلوك (نيوبلوك) {newBlock.previousHash = this.getLatestBlock () .hash ؛ نيوبلوك.hash = نيوبلوك.calculateHash () ؛ هذا.chain.push (نيوبلوك) ؛} //القسم 3 التحقق من صحة سلسلة isChainValid () {ل (اسمحوا i = 1 ؛ ط. السلسلة.length ؛ i + +) {const currentBlock = this.chain [i] ؛ const previousBlock = this.chain [i - 1] ؛ إذا (currentBlock.hash! = = currentBlock.calculateHash ()) {عودة كاذبة ؛} إذا (currentBlock.previousHash! = = previousBlock.hash) {return false ؛}} عودة true ؛}} تحليل التعليمات البرمجية موافق ، لذلك الكثير من الأشياء الجارية في السلسلة أعلاه ، دعونا كسرها إلى أقسام. القسم 1: كتلة التكوين ما هي كتلة التكوين ؟ كتلة نشأة هي الكتلة الأولى من بلوكشين ، والسبب في ذلك هو خاص هو أنه في حين أن كل بوك يشير إلى كتلة السابقة لذلك ، كتلة نشأة لا تشير إلى أي شيء. لذلك ، لحظة إنشاء سلسلة جديدة ، يتم استدعاء كتلة نشأة على الفور. أيضا ، يمكنك أن ترى وظيفة “createGenesisBlock ()” حيث أعطينا بيانات الكتلة يدويًا: createGenesisBlock () {عودة كتلة جديدة (0 ، "01/01/2017 “، “كتلة التكوين” ، “0") ؛} القسم 2: إضافة الكتل أولاً ، سنحتاج إلى معرفة ما هي الكتلة الأخيرة في blockchain حاليًا. لذلك نستخدم الدالة جيتلاتيستبلوك (). جيتلاتيستبلوك () {إرجاع هذا.chain [this.chain.length - 1] ؛} الآن بعد أن حددنا أحدث كتلة ، دعونا نرى كيف سنقوم بإضافة كتل جديدة. أدبلوك (نيوبلوك) {newBlock.previousHash = this.getLatestBlock () .hash ؛ newBlockate.hash = newBlock.hash = newBlock.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.calcul.hash تجزئة ( ) ؛ this.chain.push (newBlock) ؛} لذا ، ماذا يحدث هنا ؟ كيف نقوم بإضافة الكتل ؟ كيف نتحقق مما إذا كانت الكتلة المعطاة صالحة أم لا ؟ تذكر محتويات كتلة ؟ كتلة لديها تجزئة الكتلة السابقة الحق ؟ لذا ، ما سنفعله هنا بسيط. قارن قيمة التجزئة السابقة للكتلة الجديدة بقيمة التجزئة لأحدث كتلة. صورة مجاملة: لوري Hartikka المادة المتوسطة إذا تطابق هاتين القيمتين ، فهذا يعني أن الكتلة الجديدة مشروعة ويتم إضافتها إلى blockchain. القسم 3: التحقق من صحة السلسلة الآن ، نحن بحاجة إلى التحقق من أن لا أحد قد تم العبث مع بلوكشين لدينا وأن كل شيء مستقر. نحن نستخدم حلقة “for” للانتقال من الكتلة 1 إلى الكتلة الأخيرة. ل (اسمحوا i = 1 ؛ ط this.chain.length ؛ ط + +) {const currentBlock = this.chain [i] ؛ const السابق = this.chain [i - 1] ؛ في هذا الجزء من التعليمات البرمجية نحن تحديد مصطلحين ، كتلة الحالية وكتلة السابقة. والآن نحن ببساطة ذاهبون للعثور على تجزئة هاتين القيمتين. إذا (currentBlock.hash! = = currentBlock.calculateHash ()) {عودة كاذبة ؛} إذا (currentBlock.previousHash! = = previousBlock.hash) {return false ؛}} return true ؛} إذا كان “previousHash” للكتلة الحالية لا يساوي “Hash” للكتلة السابقة ، فإن هذه الوظيفة ستعود False ، وإلا فإنها ستعود True. باستخدام بلوكشين الآن ، ونحن ذاهبون إلى استخدام أخيرا بلوكشين لإنشاء لدينا بلوكغيكسكوين. السماح بلوكغيكسكوين = بلوكشين جديدة () ؛ بلوكغيكسكون.أدبلوك (كتلة جديدة (1 ، "20/07/2017 “، {مبلغ: 4})) ؛ بلوكغيكسكون.أدبلوك (كتلة جديدة (2 ،” 20/07/2017 “، {مبلغ: 8}) ؛ وهذا كل شيء ماذا حدث هنا ؟ أنشأنا كريبتوكيرنسي جديدة على أساس بلوكشين واسمه بلوكجيكسوان. من خلال استدعاء هذا الكائن الجديد ، قمت بتنشيط المُنشئ ، والذي بدوره أنشأ كتلة Genesis تلقائيًا. أضفنا ببساطة كتلتين إضافيتين إليها وأعطيهم بعض البيانات. الأمر بهذه البساطة. (شكرا لك savjee.be لتفسير مدهش وبسيط.) هذا كل شيء لهذا المعلم. دعونا ننظر إلى خطوات العمل. انها بسيطة جدا ولكن بالتأكيد ليس من السهل: الحصول على التعليم في واحدة من العديد من اللغات ودية بلوكشين مثل C + + ، جافا سكريبت ، C # ، الذهاب الخ معلم #4: الحصول على تعليمها على العقود الذكية كيف يمكنك تحديد عقد الذكية ؟ وفقا لويكيبيديا ، العقد الذكي هو “بروتوكول كمبيوتر يهدف إلى تسهيل ، التحقق ، أو إنفاذ التفاوض أو تنفيذ العقد”. في حين تم اقتراحه لأول مرة من قبل مشفر التشفير الأمريكي نك زابو في عام 1996 ، وغالبا ما يعزى إثريوم مع تعميم المفهوم وجعلها السائدة. يمكنك معرفة المزيد عن العقود الذكية في دليلنا المتعمق هنا. إذن ، ما هي الخصائص المرغوبة التي نريدها في عقدنا الذكي ؟ أي شيء يعمل على بلوكشين يحتاج إلى أن يكون غير قابل للتغيير ويجب أن يكون لديه القدرة على تشغيل من خلال عقد متعددة دون المساومة على سلامتها. ونتيجة لذلك ، يجب أن تكون وظيفة العقد الذكية ثلاثة أشياء: حتمية. قابل للإنهاء. معزول. ميزة #1: الحازم البرنامج هو حتمية إذا كان يعطي نفس الناتج إلى إدخال معين في كل مرة. على سبيل المثال. إذا كان 3 + 1 = 4 ، فسيكون 3 + 1 دائمًا 4 (بافتراض نفس القاعدة). لذلك عندما يعطي البرنامج نفس الإخراج لنفس مجموعة المدخلات في أجهزة الكمبيوتر المختلفة ، ويسمى البرنامج حتمية. هناك لحظات مختلفة عندما يمكن للبرنامج أن يتصرف بطريقة غير حتمية: استدعاء وظائف النظام غير الحتمية: عندما يستدعي مبرمج وظيفة غير حتمية في برنامجه. موارد البيانات غير القطعية: إذا حصل البرنامج على بيانات خلال وقت التشغيل ومصدر البيانات هذا غير محدد ثم يصبح البرنامج غير محدد. على سبيل المثال. لنفترض أن البرنامج الذي يكتسب أعلى 10 عمليات بحث جوجل لاستعلام معين. قد تستمر القائمة في التغيير. المكالمات الديناميكية: عندما يستدعي برنامج البرنامج الثاني يطلق عليه استدعاء ديناميكي. نظرًا لأن هدف المكالمة يتم تحديده فقط أثناء التنفيذ ، فهو غير محدد في طبيعته. ميزة #2: قابلة للإنهاء في المنطق الرياضي ، لدينا خطأ يسمى “إيقاف المشكلة”. في الأساس ، تنص على أن هناك عدم القدرة على معرفة ما إذا كان برنامج معين يمكن تنفيذ وظيفته في حد زمني أم لا. في عام 1936 ، استنتج آلان تورينج ، باستخدام مشكلة كانتور القطرية ، أنه لا توجد طريقة لمعرفة ما إذا كان برنامج معين يمكن أن ينتهي في حد زمني أم لا. ومن الواضح أن هذه مشكلة في العقود الذكية لأن العقود بحكم تعريفها يجب أن تكون قادرة على الإنهاء في غضون فترة زمنية معينة. هناك بعض التدابير المتخذة لضمان وجود طريقة “لقتل” العقد خارجيا وعدم الدخول في حلقة لا نهاية لها والتي سوف تستنزف الموارد: تورينغ عدم اكتمال: A تورينغ غير مكتملة بلوكشين سيكون لها وظائف محدودة ولن تكون قادرة على جعل القفزات و/أو الحلقات. وبالتالي فإنها لا يمكن أن تدخل حلقة لا نهاية لها. خطوة ومتر الرسوم: يمكن للبرنامج ببساطة تتبع عدد “الخطوات” التي اتخذها ، أي عدد من التعليمات التي تم تنفيذها ، ومن ثم إنهاء بمجرد تنفيذ عدد خطوة معينة.طريقة أخرى هي متر الرسوم. هنا يتم تنفيذ العقود برسوم مدفوعة مسبقًا. يتطلب كل تنفيذ تعليمات مبلغ معين من الرسوم. إذا كان الرسم المنفق يتجاوز الرسم المدفوع مسبقا ثم يتم إنهاء العقد. مؤقت: هنا يتم الاحتفاظ مؤقت محدد مسبقا. إذا تجاوز تنفيذ العقد الحد الزمني ثم يتم إحباطه خارجيا. ميزة #3: معزولة في بلوكشين ، يمكن لأي شخص والجميع تحميل عقد الذكية. ومع ذلك ، وبسبب هذا قد العقود ، عن علم ودون علم تحتوي على الفيروسات والبق. و إذا لم يكن العقد معزولا, فإن ذلك قد يعوق النظام بأكمله. وبالتالي ، فمن الأهمية بمكان أن يبقى العقد معزولا في رمل لإنقاذ النظام البيئي بأكمله من أي آثار سلبية. الآن بعد أن رأينا هذه الميزات ، من المهم أن نعرف كيف يتم تنفيذها. عادة ما يتم تشغيل العقود الذكية باستخدام أحد النظامين: الأجهزة الظاهرية: يستخدم إثريوم هذا. عامل الميناء: النسيج يستخدم هذا. دعونا نقارن هذين وتحديد ما يجعل لنظام بيئي أفضل. من أجل البساطة ، سنقوم بمقارنة إثريوم (الجهاز الظاهري) إلى النسيج (عامل الميناء). إذا كنت مهتمًا بتطوير Ethereum على وجه التحديد ، فمن المهم أن تتعلم الصلابة أيضًا. بالنسبة لأي شخص يريد تعلم كيفية جعل DAPPs (التطبيقات اللامركزية) أو الدخول في لعبة ICO ، فإن تعلم الصلابة أمر لا بد منه مطلقًا. لدينا بالفعل دليل مفصل لذلك يمكنك أن تقرأ هنا. ومع ذلك ، هنا نحن ذاهبون لنقدم لكم لمحة أساسية. تم تطوير الصلابة من قبل غافين وود ، كريستيان ريتويسنر ، أليكس بيريغسازي ، يويتشي هيراي والعديد من المساهمين الأساسيين السابقين إثريوم لتمكين كتابة العقود الذكية على منصات بلوكشين مثل إثريوم. الصلابة هي لغة تنحيف بشكل مقصود ، مكتوبة بشكل فضفاض مع بناء جملة تشبه إلى حد كبير ECMAScript (Javascript). هناك بعض النقاط الرئيسية التي يجب تذكرها من وثيقة Ethereum Design Rationale ، وهي أننا نعمل على نموذج كومة وذاكرة مع حجم كلمة تعليمات 32 بايت ، و EVM (Ethereum Virtual Machine) يعطينا الوصول إلى البرنامج “كومة” الذي يشبه مساحة السجل حيث يمكننا أيضا عصا الذاكرة لجعل حلقة/قفزة برنامج مكافحة (للتحكم في البرنامج المتسلسل) ، و “ذاكرة” مؤقتة قابلة للتوسيع و “تخزين” أكثر دواما والتي هي مكتوبة في الواقع في بلوكشين الدائم ، والأهم من ذلك ، فإن EVM يتطلب الحتمية الكاملة داخل العقود الذكية. إذا كنت مهتمًا بتعلم الصلابة ، فيمكنك التحقق من صفنا المتعمق هنا. لذلك ، دعونا نرى خطوات العمل الآن: فهم كيفية عمل العقود الذكية. (اختياري لمطوري إثريوم) تعلم الصلابة. معلم #5: Be In The Mix واحدة من أهم الأشياء التي يمكنك القيام بها كمطور مهدها هو باستمرار البقاء في مزيج. انتقل والانضمام إلى منتديات رديت ، وصفحات جيتبوب ، و ستاكسشانج والتواصل مع المطورين الآخرين ويكون دائما على اطلاع على أي أخبار بشأن التكنولوجيا. جنبا إلى جنب مع ذلك ، سيكون من المفيد بالنسبة لك أن تعرف ما يبحث عنه الناس في بلوكشين المطور. ما هي الصفات التي تبحث عنها الشركات عندما تبحث عن توظيف ؟ يمكنك العثور على تلك المعلومات هنا. هذه المعلومات يمكن أن تكون مفيدة جدا في ضبط المهارات الخاصة بك بما فيه الكفاية لمناشدة الشركات. الطريق إلى أن تصبح مطور أو مهندس بلوكشين: الخلاصة لذلك ، هذا هو خريطة طريق تقريبية بالنسبة لك ورحلتك لتصبح مطور بلوكشين. هذا وحده لن يكون كافيا ، وبطبيعة الحال ، سوف تحتاج إلى إظهار مبادرتك الخاصة وتكون دائما في مزيج. إذا كنت تبحث عن مورد من المعلومات حول تطوير بلوكشين ثم انقر هنا. نتمنى لكم كل التوفيق في رحلتك!

Like what you read? Give us one like or share it to your friends

20,371
11

11
Discussion

Please to comment
newest oldest most voted

I like the way you talk of Hashing, but do not describe what Hashing actually is. The phrase is thrown out everywhere, but I’ve never seen a simple explanation of it. What is it, how is it performed. What is SHA256, etc

@bfg2001

if you would only use the hands god gave you to type sha256 into google you would have your answer, i would think someone who is so curious about it that it angers them that the very BASIC of blockchain hashing is not defined would at least idk maybe type it into google?
SHA-2 (Secure Hash Algorithm 2) is a set of cryptographic hash functions designed by the United States National Security Agency (NSA).[3]. They are built using the Merkle–Damgård structure, from a One-way compression function itself built using the Davies-Meyer structure from a (classified) specialized block cipher.

there ya go, first page of google and on the most popular wikipedia site.
hashing means one way encrypting. now i challenge you to learn any subject the way you are trying to learn crypto, ill tell you now you arent going to get far without searching for answers yourself unless you are a millionaire and can get your butler to hand you them on a silver platter. cause trust me, the crypto world is a lot less forgiving than the real world.

@Matrix

Your last line is especially funny because it directly contradicts the author’s feelings:
“The impact that it can have on our future is truly scary and magnanimous. ”
Unless one of you is unaware that ‘magnanimous’ and ‘forgiving’ are synonyms. Hmmmm

Hungry for knowledge?
New guides and courses each week
Looking to invest?
Market data, analysis, and reports
Just curious?
A community of blockchain experts to help

Get started today and earn 4 bonus blocks

Already have an account? Sign In