مقدمة في Truffle Suite

قبل التحدث عن  Solidity ، نريد التأكد من أن لدينا مكانًا يمكنك من خلاله التلاعب و تجربة كود Solidity الذي سنبدأ في تعلمه. هنا يأتي دور Truffle Suite !

تعد Truffle أداة ممتازة لتعلم تطوير Solidity ،كما أنها  تحتوي أيضًا على ميزات متقدمة. لا تنخدع بمدى سهولة ذلك!

التاريخ والتطور

كما هو الحال مع أي نظام بيئي ناشئ ، كانت الأدوات في الأيام الأولى لتطوير dapp القائم على EVM بدائية إلى حد ما. طُلب من المطورين تثبيت واستخدام أدوات وخدمات متعددة ومفككة ، مما يؤدي إلى سير عمل معقد مع منحنى تعليمي حاد.

لقد قطعت الأمور شوطًا طويلاً منذ ذلك الحين ، مع أدوات وخدمات مثل Codefi و Infura و Metamask و OpenZeppelin Contracts التي تبسط عددًا كبيرًا من مراحل دورة حياة تطوير برامج العقود الذكية.

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

لماذا Truffle Suite؟

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

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

تشمل الأسباب الإضافية التي قد تجعل المطورين يستخدمون Truffle لبناء dapps الخاصة بهم ما يلي …

  • دعم مدمج لتجميع ونشر وربط عقدك
  • إطار اختبار عقد آلي مبني على Mocha و Chai
  • وحدة تحكم مدمجة تسمح لك بالتفاعل المباشر مع العقود الخاصة بك

هذا مجرد خدش السطح ؛ كما سترى عندما نتعمق ، فإن Truffle Suite والنظام البيئي للأدوات الأوسع يجعل حياتك كمطور dapp منتجة وممتعة على حد سواء!

التنصيب

يرشدك ما يلي طريقة تثبيت كل من Truffle CLI و Ganache.

Truffle CLI

يتطلب The Truffle Suite ما يلي …

  • Node.js v8.9.4 أو أحدث
  • NPM v5.0.3 أو أحدث
  • Windows أو Linux أو Mac OS X

يتطلب Truffle أيضًا أن يكون لديك عميل Ethereum قيد التشغيل يدعم واجهة برمجة تطبيقات JSON RPC القياسية (وهي جميعها تقريبًا). في حين أن هناك العديد من العملاء ، فإن Truffle Suite يأتي أيضًا مع Ganache ، وهو أساسًا عقدة blockchain قائمة على EVM بنقرة واحدة للاختبار المحلي.

بمجرد تثبيت Node و npm المناسبين ، يرجى تشغيل الأمر التالي من الجهاز الطرفي لتثبيت Truffle:

$ npm install -g truffle

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

Ganache

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

يمكن تثبيت Ganache CLI عن طريق ما يلي:

$ npm install -g ganache-cli

يتوفر Ganache UI للتنزيل هنا. يمكنك أيضًا تثبيت أحدث إصدار تجريبي (في وقت كتابة هذا المقال) يتضمن دعم Filecoin هنا.

تهانينا! لقد قمت للتو بتثبيت Truffle و Ganache بنجاح وأنت على استعداد لبدء التطوير.

التعرف على Truffle Suite

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

دعم الشبكة

كما ناقشنا سابقًا ، نحن نعيش في عالم متعدد السلاسل بشكل متزايد. هناك العديد من شبكات blockchain العامة الشائعة ويهدف Truffle Suite إلى خدمة أكبر عدد ممكن من هذه الشبكات الواقعية.

في وقت كتابة هذا المقال، كان Truffle Suite يدعم التطوير على الشبكات التالية:

  • Ethereum
  • Quorum
  • Hyperledger Fabric
  • Corda
  • Filecoin
  • Tezos
  • Polygon
  • Arbritrum
  • Optimism PBC

ومع ذلك ، فإن أغنى دعم لـ Truffle هو دعم blockchain القائم على Ethereum Virtual Machine. ويرجع ذلك جزئيًا إلى نسب Truffle وحقيقة أن دعم كل blockchain سيكون بلا جدوى ، لا سيما بالنظر إلى التطور السريع للمجال.

دعم اللغة

كما أوضحنا سابقًا ، من بين العديد من الأشياء الأخرى ، يتعامل Truffle مع تجميع العقود الخاصة بك من لغة ذات مستوى أعلى إلى Ethereum bytecode ، وهي اللغة “المنطوقة” بواسطة العقد على الشبكة.

من خارج الصندوق ، يدعم Truffle ما يلي:

  • Solidity
  • Vyper
  • Yul

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

أوامر Truffle الأساسية

تم بناء Truffle حول مجموعة كبيرة من الأوامر التي يتم استخدامها كجزء من سير عمل تطوير العقد. ومن الأمثلة على ذلك:

  • truffle init
  • truffle compile
  • truffle test
  • truffle debug
  • truffle migrate

لاحظ أنه يمكنك رؤية قائمة كاملة بالأوامر المتاحة عن طريق تشغيل truffle help.

صناديق Truffle 

يوفر Truffle أيضًا صناديق ، أو قوالب مسبقة الصنع وقواعد أكواد Truffle تسمح لك بالتركيز إما على تعلم المزيد حول تطوير العقود الذكية أو البناء بسرعة. بالإضافة إلى كود Truffle ، يمكن أن تحتوي Truffle Boxes على وحدات أخرى مفيدة ، وعقود ومكتبات Solidity ، وعروض للواجهة الأمامية والمزيد ؛ على طول الطريق حتى أمثلة كاملة dapps.

صناديق Truffle 

حتى الآن كنا نكتب كل الكود والنصوص والتهيئة بأنفسنا وبينما يتبع هذا شعار “التعلم بالممارسة” ، هناك مورد رائع آخر تحت تصرفك وهو صناديق Truffle. التعلم باستخدام صناديق Truffle وفقًا للوصف ، تعتبر الصناديق “نماذج مرجعية مفيدة” تتكون من نماذج العقود ، ورمز الواجهة الأمامية (باستخدام مجموعة متنوعة من أطر العمل المختلفة) ، و الصناديق المطبقة التي تركز على موضوع أو بروتوكول معين مثل L2. من وجهة نظر التعلم ، فهي وسيلة مفيدة لزيادة التعلم عن طريق التدريب العملي على الفور.

في وقت كتابة بعض الصناديق التي من شأنها أن تكون مفيدة

الطبقة الثانية (أمثلة تستهدف Optimism و Arbitrum و Polygon على التوالي) Filecoin Aave Flashloan مثال Oracles مع ChainLink

يعد تثبيت الصندوق بسهولة استخدام الأمر unbox ، على سبيل المثال:

truffle unbox optimism

بعد ذلك ، ما عليك سوى قراءة readme ..

سنناقش صناديق أكثر عندما نتعمق أكثر في أدوات المطور وأكثر تقدمًا في Truffle ، لكن لا تتردد في استكشاف الصناديق المتاحة. صندوقان شهيران للأشخاص الجدد في Truffle هما Petshop و Metacoin.

في المقال التالي ، سنتخذ عقدًا ذكيًا بسيطًا ونستخدمه لاستكشاف الأوامر الأولية للتطوير باستخدام Truffle

إضافة تعليق