الخطوات الثانية
سنقدم في هذا القسم بعض الأدوات القوية لجعل تجربة التطوير الخاصة بك سهلة قدر الإمكان. سنقوم بتثبيت بيئة تطوير تسمى Truffle ، واستكشاف Solidity ، وتغطية أساسيات العقد الذكي (حتى أننا سنصنع عقدة خاصة بنا!) ، ونبدأ عقدة خاصة بنا على أجهزتنا المحلية. بمجرد نشرنا محليًا بنجاح ، سنستخدم Remix للتفاعل مع عقدنا والتعمق أكثر في عملية التطوير!
التعرف على الكمأة
الكمأة
تعد Truffle بيئة تطوير ممتازة تسمح لك بالاتصال والاختبار باستخدام جهاز Ethereum Virtual Machine. تم إنشاء Truffle لتسهيل عملية التطوير ، ومع حدوث تفاعلات محليًا ، يساعد ذلك في تقليل ضغط النشر على كل من testnet (مثل Ropsten أو Rinkeby) والشبكة الرئيسية.
لمزيد من الوثائق حول الكمأة ألق نظرة هنا:
لتثبيت Truffle في جهازك ، قم بتشغيل ما يلي:
npm تثبيت الكمأة -g
ملاحظة: توصيات لنظام التشغيل Windows
إذا كنت تقوم بتشغيل Truffle على Windows ، فقد تواجه بعض تعارضات التسمية التي قد تمنع Truffle من التنفيذ بشكل صحيح. لطفا أنظر القسم الخاص بحل تعارض التسمية للحلول.
غاناش
أثناء تواجدنا فيه ، دعنا نمضي قدمًا ونثبت CLI لـ ganache
ملخص سريع على ganache هو أنه عبارة عن blockchain شخصي يمكنك استخدامه محليًا لتدوير واختبار وظائف المشاريع بسرعة. Ganache هي أداة يمكنك استخدامها طوال دورة التطوير بأكملها. لا يمكنك تطوير تطبيقاتك الرقمية فحسب ، بل يمكنك أيضًا نشرها واختبارها. يحدث كل هذا محليًا على جهازك ، لذا فهذه هي البيئة الأقل احتكاكًا / خطرًا للعمل في مشاريعك!
باستخدام npm:
تثبيت npm -g ganache-cli
حسنًا ، نعود إلى الكمأة!
بعض العروض التي يقدمها الكمأة:
- تجميع العقود الذكية المدمجة والربط والنشر والإدارة الثنائية.
- اختبار العقد الآلي للتطوير السريع.
- قابلة للنشر ، قابلة للتوسيع & إطار الهجرات.
- إدارة الشبكة للنشر إلى أي عدد من الجمهور & الشبكات الخاصة.
- إدارة الحزم مع EthPM & NPM ، باستخدام معيار ERC190.
- وحدة تحكم تفاعلية للاتصال المباشر بالعقد.
- خط أنابيب قابل للتكوين مع دعم للتكامل المحكم.
- عداء البرنامج النصي الخارجي الذي ينفذ البرامج النصية داخل بيئة Truffle.
بالنسبة لبرنامجنا التعليمي ، سنقوم ببناء شيء ما من الألف إلى الياء ، ومع ذلك فنحن نشجعك تمامًا على التحقق من بعض مشاريع الغلايات التي أنشأتها Truffle بالفعل تسمى Truffle Boxes (تم العثور عليها هنا).
الآن بعد أن تم تثبيت الكمأة والغاناش ، دعنا نناقش الصلابة!
صلابة
Solidity هي لغة عالية المستوى وموجهة نحو الأشياء لا تصدق لتنفيذ العقود الذكية التي تعمل على Ethereum Virtual Machine (EVM). العقود الذكية هي برامج تحكم سلوك الحسابات داخل دولة Ethereum. إذا لم تكن قد نظرت من قبل إلى سطر من Solidity ، ولكنك على دراية بـ C ++ و أو JavaScript ، فستلاحظ أكثر من عدد قليل من أوجه التشابه.
Solidity هي لغة مكتوبة بشكل ثابت تدعم الوراثة والمكتبات والأنواع المعقدة المعرفة من قبل المستخدم من بين ميزات أخرى. مع Solidity ، يمكنك إنشاء عقود لاستخدامات مثل التصويت والتمويل الجماعي وحتى المزادات العمياء على سبيل المثال لا الحصر..
يتم تجميع Solidity في كود بايت قابل للتنفيذ على EVM. مع Solidity ، يستطيع المطورون كتابة التطبيقات التي تنفذ منطق الأعمال ذاتية التنفيذ المتجسد في العقود الذكية ، تاركًا سجل المعاملات غير التنصل. تسمح العقود الذكية للمستخدمين بالثقة في الكود ، مما يساعد في خلق بيئة غير موثوق بها حيث يتم إزالة الفساد البشري المحتمل بشكل كبير.
ضع في اعتبارك عند نشر العقود ، يجب أن تنتبه دائمًا إلى الإصدار الذي تستخدمه. يتم تقديم التغييرات المتقطعة والميزات الجديدة وإصلاحات الأخطاء بانتظام (تذكر هذا إذا وجدت نفسك تتبع البرامج التعليمية عبر الإنترنت ، فقد تحدث أخطاء ، لذا احتفظ وثائق قريبة منك).
بدء مشروع الكمأة
مع ذلك ، فلنبدأ مشروعنا ونطلق عليه اسم “eth-hello-world”
انتقل إلى الجهاز الطرفي ودعنا ننشئ مجلدًا فارغًا جديدًا
mkdir eth-hello-world
بمجرد حصولنا على دليلنا الفارغ ، تابع وانتقل إلى المجلد وقم بتشغيل الأمر
بداية الكمأة
بمجرد انتهاء العملية ، يجب أن نكون قادرين على عرض بعض الملفات التي تم إنشاؤها لنا:
لدينا الآن جهات اتصال وعمليات ترحيل ومجلد اختبار وملف truffle-config. دعونا نلقي نظرة على هذه الملفات ونناقش ما هي عليه على مستوى أعلى.
انكماش
سيحتوي هذا المجلد على جميع العقود الذكية الخاصة بك (والتي سننشئها في هذا المثال باستخدام Solidity). إذا لم تكن قد سمعت من قبل عن جهات الاتصال الذكية ، فإن طريقة التفكير فيها هي ؛ أجزاء من التعليمات البرمجية التي يتم تشغيلها على blockchain (يمكن أن تكون محلية ، أو تجريبية ، أو mainnet) مضمونة لإنتاج نفس النتائج لكل من يقوم بتشغيلها. تُستخدم العقود الذكية داخل dApps (التطبيقات اللامركزية) ولديها عدد هائل من حالات الاستخدام. التصويت والألعاب وسلسلة التوريد والعملات والسجلات المالية ، وهذا على سبيل المثال لا الحصر!
لكسر هذا الأمر إلى أبعد من ذلك ، يعطي Nick Szabo مثالاً على آلة البيع. إذا أدخلت الكمية الصحيحة من العملات المعدنية في الجهاز ، فيمكنك (والجميع قبل / بعدك) توقع نفس النتيجة بالضبط في التبادل. ينطبق الأمر نفسه على جهات الاتصال الذكية المبنية على Ethereum ، فهي تحتوي على قيمة وحتى يتم استيفاء شروطها (أي الكمية المناسبة من العملات المعدنية في مثالنا) ، ستقوم بعد ذلك بفتح وإطلاق المعلومات التي تحاول استردادها.
سنعود لمناقشة عقود Solidity والعقود الذكية بعد قليل ، فلننتقل إلى عمليات الترحيل!
الهجرات
الترحيلات هي ملفات جافا سكريبت تسمح لك بنشر عقودك على شبكة إيثريوم. الأمر المثير للاهتمام حقًا بشأنهم هو أن هناك افتراضًا أساسيًا سيتطور عملك ، وسيتغير نشرك بمرور الوقت. أثناء إجراء التحديثات ، ستنشئ نصوصًا برمجية جديدة للترحيل أثناء تطور مشروعك. تتمثل إحدى طرق التفكير في ملفات الترحيل في أنها مسؤولة بشكل أساسي عن تنظيم المهام وتوزيعها. طريقة بسيطة للتفكير فيها هي أن عمليات الترحيل عبارة عن مجموعة من البرامج النصية للنشر المُدارة. أثناء تحديث عملك ، يتم تسجيل سجل لعمليات الترحيل التي تم تشغيلها مسبقًا على السلسلة من خلال عقد ترحيل مدمج.
ألق نظرة بنفسك ، لديك بالفعل عقد هجرة! توجه إلى دليل العقد وافتحه ، سترى ملف Migrations.sol يحتوي على عقد يجب أن يبدو مثل هذا:
هذا هو العقد الافتراضي الذي يتم إنشاؤه لنا عندما نقوم بتشغيل بدء الكمأة. يتطلب نبات الكمأة بطبيعته أن يكون لديك عقد ترحيل من أجل استخدام ميزة الترحيل ، لذلك لا تحذف هذا!
ملاحظة: يجب عليك نشر هذا العقد داخل الترحيل الأول الخاص بك من أجل الاستفادة من ميزة الترحيلات.
الآن وقد أتيحت لنا الفرصة لإلقاء نظرة على عقد الترحيل الخاص بنا ، يمكننا التوجه إلى دليل الترحيل وسنرى ملفًا باسم 1_inital_migrations.js
ملاحظة: ألق نظرة على اصطلاح التسمية لهذا الملف ، فهو مسبوق برقم وملحق بوصف. البادئة المرقمة مطلوبة لتسجيل ما إذا كان الترحيل قد تم بنجاح أم لا. اللاحقة هي فقط لسهولة القراءة البشرية
أثناء إنشاء العقود ، ستحتاج إلى التأكد من أن لديك ملفigration.js مرتبطًا بها. بدون الغوص بعمق في القطع الأثرية .require () ، publisher.deploy ، إلخ هنا هي بعض الوثائق الممتازة من فريق الكمأة لتوضيح استخدام هذه الطرق بشكل أكبر.
لتجميع مشروع Truffle ، قم بالتغيير إلى جذر الدليل حيث يوجد المشروع ثم اكتب ما يلي في Terminal:
الكمأة
لتشغيل عمليات الترحيل في المحطة الطرفية ، ستقوم في النهاية بتشغيل (انتظر رغم ذلك ، لسنا بحاجة إلى القيام بذلك حتى الآن!)
الكمأة تهاجر
سيؤدي هذا إلى تشغيل جميع عمليات الترحيل الموجودة داخل دليل عمليات الترحيل الخاص بمشروعك.
من المثير للاهتمام ملاحظة أن هذا الأمر لن يقوم إلا بتشغيل عمليات الترحيل التي تم إنشاؤها حديثًا. لذلك إذا تم تشغيل الترحيل السابق بنجاح ، فلن يتم إعادة تشغيله. أيضًا ، في حالة عدم وجود عمليات ترحيل جديدة لتشغيلها ، فلن يتم تشغيلها ببساطة. إذا لزم الأمر ، يمكنك استخدام الخيار –reset لتشغيل جميع عمليات الترحيل من البداية.
تم توثيق خيارات الأوامر الأخرى هنا.
ملاحظة: لقد قمنا بالتثبيت في وقت سابق ، ولكن للاختبار المحلي تأكد من أن يكون لديك blockchain اختبار مثل غاناش مثبتة وقيد التشغيل قبل تنفيذ الترحيل.
اختبارات
عندما يتعلق الأمر بكتابة الاختبارات ، فإن الكمأة تأتي محملة ببعض الأدوات الممتازة لجعل هذا الأمر بديهيًا. خاصة إذا كنت تخطط لنشر عقودك على mainnet ، (لكنها ممارسة جيدة ، حتى على testnet) ، فمن المهم جدًا إجراء الاختبارات والتحقق من عقودك بأفضل ما لديك من قدرات. جعلت Truffle من السهل والسهل مراجعة / اختبار التطوير الخاص بك.
يستخدم الكمأة موكا إطار الاختبار و تشاي للتأكيدات لتزويدك بإطار عمل قوي يمكنك من خلاله كتابة اختبارات JavaScript.
ملاحظة: إذا لم تكن معتادًا على كتابة اختبارات الوحدة في Mocha ، فيرجى الاطلاع على وثائق المخا قبل المتابعة.
ملاحظة جانبية: أداة ممتازة لاستخدامها لمراجعة العقود الخاصة بك بدقة أسطورة, خدمة التحليل الأمني الرائدة في المجال التي تقدم مراجعات متعمقة للعقود الذكية. مهمتهم ليست فقط ضمان تجنب الأخطاء المكلفة ولكن جعل Ethereum منصة أكثر أمانًا وجدارة بالثقة بشكل عام.
يجب وضع جميع ملفات الاختبار في. / دليل الاختبار. لن يقوم Truffle إلا بتشغيل ملفات الاختبار بامتدادات الملفات التالية: .js ، .ts ، .es ، .es6 ، .jsx ، و.sol. يتم تجاهل كافة الملفات الأخرى.
لإجراء جميع الاختبارات ، ما عليك سوى تشغيل:
اختبار الكمأة
الآن بعد أن غطينا ما تخلقه بداية الكمأة وسقالات مشروعنا ، فلنبدأ الآن ونضيف عقدنا الذكي إلى مشروعنا!
كتابة عقد ذكي
دعنا ننتقل إلى دليل العقود ونكتب عقدنا الأول الذي نخطط لنشره في بيئة الاختبار المحلية (غاناش)!
سنبدأ بإنشاء ملف our.sol ، والذي سنسميه HelloWorld.sol
بعد ذلك يمكننا إضافة عقدنا الأساسي الذي سيبدو مثل هذا
صلابة براغما >= 0.5.8 <0.7.0 ؛ عقد HelloWorld {سلسلة الرسائل العامة ؛ المُنشئ (سلسلة ذاكرة initMessage) public {message = initMessage؛ } تحديث الوظيفة (string memory newMessage) public {message = newMessage؛ }}
بالنظر إلى عقدنا عن قرب ، يمكننا تفصيل بعض العناصر
تذكر أن العقد عبارة عن مجموعة من الوظائف والبيانات (حالتها).
يمكن استخدام الكلمة الأساسية pragma لتمكين بعض ميزات المترجم أو عمليات التحقق. يكون توجيه pragma دائمًا محليًا لملف المصدر ، لذلك عليك إضافة pragma إلى جميع ملفاتك إذا كنت تريد تمكينه في مشروعك. بدون إعلان براغما في بداية ملف الصلابة الخاص بنا (أو أي ملف صلابة) ، لن يعرف عقدنا كيفية التجميع.
(هنا عبارة عن رابط إلى مستندات الصلابة لمعرفة مداخل وعموم الفروق الدقيقة في الصلابة)
في النهاية ، العقد عبارة عن مجموعة من الوظائف والبيانات (حالتها) الموجودة في عنوان محدد على Ethereum blockchain.
بالنظر إلى وظيفة عقدنا ، يمكننا أن نرى أننا نضع رسالتنا لتكون سلسلة عامة قابلة للعرض.
تتيح الكلمة الرئيسية “عامة” إمكانية الوصول إلى المتغيرات من خارج العقد وتنشئ وظيفة يمكن أن تستدعيها العقود أو مجموعات تطوير البرامج (SDK) الأخرى للوصول إلى الرسالة العامة لسلسلة القيمة.
عقد HelloWorld {سلسلة الرسائل العامة ؛
هذه وظيفة تعمل فقط أثناء إنشاء العقد
المُنشئ (سلسلة ذاكرة initMessage) public {message = initMessage؛ }
يأخذ قيمة سلسلة ويخزن القيمة في منطقة تخزين بيانات الذاكرة ، ويضبط الرسالة على رسالة القيمة هذه ، مثل initMessage.
يمكننا بعد ذلك تهيئة رسالة يتم تمريرها كمعامل ويمكن تغييرها / تحديثها باستخدام وظيفة التحديث.
هذه وظيفة متاحة للجمهور وتتخذ سلسلة كمعامل وتقوم بتحديث “الرسالة” (انظر أدناه).
تحديث الوظيفة (string memory newMessage) عام {message = newMessage؛ }}
إليكم الأمر ، عقد HelloWorld أساسي ولكنه قابل للفهم!
الآن بعد أن أضفنا عقدنا ، يمكننا الآن التأكد من أن لديه القدرة على التجميع!
توجه إلى مجلد الترحيل في مشروعنا وسنقوم الآن بإنشاء ملف a.js مخصص لعقد HelloWorld.
سننشئ ملفًا جديدًا واسمه 2_deploy_contracts.js
تذكر الملاحظة على اصطلاحات التسمية من وقت سابق!
const HelloWorld = artifacts.require ("مرحبا بالعالم") ؛ module.exports = function (publisher) {publisher.deploy (HelloWorld, "خيط") ؛ } ؛
عمل جيد! نحن جاهزون تقريبًا لنشر عقدنا ، ولكن نحتاج أولاً إلى التأكد من أن ملفات truffle-config الخاصة بنا تعرف من نتحدث إليه. كما ذكرنا سابقًا ، سنركز على بيئتنا المحلية في هذا القسم ، ولكن في القسم 3 (spolier) ، لا نقوم فقط بإنشاء ونشر محليًا ، بل نقوم بإحضاره إلى شبكة اختبار!
قم بالتمرير لأسفل في ملف truffle-config.js حتى ترى القسم المتعلق بالشبكات
uncomment / أضف ما يلي
الشبكات: {التطوير: {host: "127.0.0.1", المنفذ: 8545 ، معرّف الشبكة: "*", },
الآن يجب أن يبدو ملفك مثل هذا:
ما يحدث هنا هو أننا نخبر توجيهات ملف التكوين الخاصة بنا حول ما يجب الاتصال به. في هذه الحالة كما سترى قريبًا ، سنقوم بالاتصال بأداة ganache-cli الخاصة بنا.
ابدأ Ganache
مع ذلك ، دعونا نمضي قدمًا ونبدأ تشغيل الغاناش
في المحطة الطرفية الخاصة بك ، المضي قدمًا والركض
غاناش- CLI
تحقق من ذلك! أنت الآن تشغل TestRPC الخاص بك هناك في جهازك الطرفي!
(المزيد عن هذا هنا)
ملاحظة: احتفظ بعلامة التبويب هذه في الجهاز الطرفي مفتوحًا ، ولكن انطلق وافتح علامة تبويب جديدة للعمل بها.
مراجعة سريعة
دعنا نعود إلى مشروعنا ونراجع سريعًا ما أنجزناه.
- أنشأنا مشروعًا جديدًا
- الكمأة المبدئية
- أخذ جولة سريعة في السقالات
- تم إنشاء عقد HelloWorld الخاص بنا
- تمت إضافة منطق إلى مجلد الترحيلات الخاص بنا لعقدنا
- انتقل إلى ملف التكوين الخاص بنا وقم بتعديل معلومات شبكتنا
حان الوقت للحصول على عقدنا وتشغيله!
في نافذة المحطة الجديدة الخاصة بنا (نظرًا لأن لدينا ganache يعمل في الآخر)
دعونا نمضي قدما ونجري
الكمأة
يجب أن ترى هذا الآن كنتيجة في جهازك:
إذا انتقلت الآن إلى مشروعك ، فسترى أن لديك الآن مجلد بناء / عقود أعلى مجلد عقدك يحتوي على ملفين json. يجب أن ترى:
- HelloWorld.json
- Migrations.json
يصف ملف json عالي المستوى العقد المنشور ووظائفه. يسمح لنا بوضع العقد في سياقه واستدعاء وظائفه.
إذا ألقينا نظرة في الداخل ، يمكننا رؤية مجموعة كاملة من المعلومات:
نتعمق في هذه المعلومات بشكل أعمق في الخطوة الثالثة ولكن الشيء المهم الذي يجب إلقاء نظرة عليه هو ABI.
الواجهة الثنائية للتطبيق عبارة عن مخطط لترميز البيانات يستخدم في Ethereum للعمل مع العقود الذكية.
إلقاء نظرة على المعلومات التي يسهل فهمها نسبيًا. يحدد ABI أيضًا كيف يمكن للمستخدم استدعاء الوظائف – أي موقع الوظيفة بالنسبة لعنوان العقد الذكي. التلخيص عالي المستوى هو ABI هو وصف واجهة العقد. لا يحتوي على رمز وليس لديه القدرة على التشغيل بمفرده. ثم لديك الرمز الثانوي ، وهو رمز EVM القابل للتنفيذ ولكنه في حد ذاته بدون سياق.
حان وقت الهجرة
موافق!
والآن بعد أن بدأنا تشغيل ganache-cli وقمنا بتجميع عقدنا الذكي ، لذا حان الوقت الآن لترحيل عقودنا!
في المحطة الطرفية الخاصة بك ، المضي قدمًا وتشغيل
الكمأة تهاجر
نعم! أنت فعلت ذلك!
يمكننا أن نرى أننا نشرنا عقدنا الذكي بنجاح. يمكنك رؤية بعض المعلومات المفيدة التي تم إنشاؤها ، وإذا توجهت إلى علامة التبويب الأخرى مع تشغيل ganachi-cli ، فيجب أن ترى إيصال المعاملة (ألق نظرة بنفسك).
اختبار ETH
قبل أن نتوجه إلى Remix ، نحتاج إلى الحصول على بعض الاختبارات من ETH حتى نتمكن من دفع رسوم الغاز على Remix (لا تقلق من أن هذا لن يكلفك المال فعليًا).
رئيس لأكثر من هذا الصنبور وأخذ بعض Rinkeby. نتعمق في اختبار ETH في الخطوة 3 ، ولكن في هذه الخطوة ، نعلم فقط أننا سنستخدم Rinkeby وهي شبكة إثبات السلطة على عكس Ropsten التي تعد اختبارًا لشبكة إثبات العمل (والتي تشبه إلى حد كبير الشبكة العامة الرئيسية) صافي). بعد إكمال الخطوتين 2 و 3 ، سيكون لديك بعضهما في محفظة MetaMask لتجربتهما!
ريمكس
حسنًا ، بعد أن أجرينا بعض الاختبارات على EHT ، حان الوقت للتوجه إلى Remix ونشر عقدنا خارج بيئتنا المحلية وحتى لدينا القدرة على التفاعل معها!
“ما هو ريمكس بحق؟”
سعيد لأنك سألت!
Remix هي أداة قوية ومفتوحة المصدر تساعدك على كتابة عقود Solidity مباشرة من المتصفح. أحد العناصر المدهشة حقًا على وجه الخصوص حول Remix هو أنه يدعم الاستخدام في المتصفح ومحليًا! يدعم Remix الاختبار وتصحيح الأخطاء ونشر العقد لتسمية بعض الميزات الرئيسية. يجب اعتبار ريمكس أداة أساسية للمطور في عملية البناء الخاصة به. يعد البدء بالنشر المحلي (كما فعلنا سابقًا) باستخدام ganache أساسًا ممتازًا ، والانتقال من النشر المحلي يمكننا التجربة والتفاعل مع عقدنا على Remix.
يمكن أن يؤدي أخذ الإقناع المناسب والاختبار (مرارًا وتكرارًا) إلى تطويرك قبل الإطلاق المحتمل لشبكة ethereum الرئيسية إلى توفير أكثر من مجرد صداع!
دعونا الآن نأخذ نفس العقد وننشره خارج بيئتنا المحلية باستخدام Remix
نهاية لهذه الغاية هنا
عقدنا
انقر على ملف جديد ودعنا نسميه HelloWorld.sol
(هذا هو العقد الذي سنستخدمه مرة أخرى)
صلابة براغما >= 0.5.8 <0.7.0 ؛ عقد HelloWorld {سلسلة الرسائل العامة ؛ المُنشئ (سلسلة ذاكرة initMessage) public {message = initMessage؛ } تحديث الوظيفة (string memory newMessage) public {message = newMessage؛ }}
يمكننا الآن المضي قدمًا وإضافة عقدنا في هذا المجال. (تحقق من ذلك أدناه)
الآن دعنا نتحقق من القائمة اليسرى التي تطلب إصدار المترجم الذي اخترته.
مترجم
ضع في اعتبارك أنه ضمن عقدنا أعلنا عن نطاق المترجم لدينا.
تذكر أن الكلمة الأساسية pragma تُستخدم لتمكين بعض ميزات المترجم أو عمليات التحقق.
حتى نتمكن من ضبط المترجم لدينا على 0.6.0 والذي يقع بين النطاق المتاح لدينا (انظر ضربة)
يجب أن يتم تجميع عقدنا تلقائيًا ، إذا لم يتم المضي قدمًا والنقر فوق Compile HelloWorld.sol
بعد ذلك سنقوم بإعداد بيئتنا لنشر عقدنا!
نشر وتشغيل المعاملات
بيئة
ستلاحظ بعض الخيارات المختلفة عند تحديد بيئتك:
جافا سكريبت VM: سيتم تنفيذ جميع المعاملات في sandbox blockchain في المتصفح. هذا يعني أنه لن يتم الاستمرار في أي شيء عند إعادة تحميل الصفحة. JsVM هو blockchain الخاص به وفي كل عملية إعادة تحميل ، سيبدأ بلوكشين جديد ، ولن يتم حفظ القديم.
مزود الحقن: سيتم توصيل Remix بموفر web3 المحقون. ميتاماسك هو مثال على مزود يضخ web3.
مزود Web3: سيتم توصيل Remix بعقدة بعيدة. ستحتاج إلى تقديم عنوان URL إلى المزود المحدد: geth أو parity أو أي عميل Ethereum.
في هذا المثال سوف نستخدم: Injected Web3
سوف نستخدم محفظة MetaMask الخاصة بنا ونتأكد من أننا متصلون بشبكة اختبار Rinkeby الخاصة بنا
يمكننا أن نرى على الجانب الأيسر أننا متصلون بـ Rinkeby ونرى أيضًا عنوان حسابنا المتصل!
بمجرد الانتهاء من إعداد كل شيء ، دعنا نمضي قدمًا ونشر عقدنا!
&# 127881 ؛ لقد فعلنا ذلك! &# 127881 ؛
تحقق من الجهاز المتوفر ويمكنك رؤية التأكيد
الآن لدينا القدرة على عرض عقدنا المنشور ، يمكننا تحديث رسالتنا (يتعين علينا التوقيع ودفع رسوم الغاز لهذا لأننا نقوم بتحديث الحالة)
بمجرد حصولنا على التأكيد ، يمكننا رؤية رسالتنا قد تم تحديثها!
&# 129395 ؛ أتقنه! &# 129395 ؛
لقد أخذنا العقد الذي بدأناه في البداية محليًا ونشرنا هذا العقد على Remix للحصول على تمثيل مرئي لتفاعل العقد. يعد هذا تدفقًا صحيًا للمطورين عندما يبدأون في البناء في هذه المساحة. يعد Remix أداة رائعة يجب استخدامها كثيرًا. في الخطوة 3 ، سنذهب إلى أبعد من ذلك ونربط جميع المعلومات التي تعلمناها في الخطوات 1 & 2 واربطي ترافل + إنفورا + تفاعل معًا!
- إعداد المطور: الخطوة الأولى
إعداد المطور: الخطوة الأولى
إعداد المطور: الخطوة 3
إعداد المطور: الخطوة 3
10-Minute Ethereum Orientation