میهن بلاکچین
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
  • نشان‌شده‌ها
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
  • نشان‌شده‌ها
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین
No Result
مشاهده همه‌ی نتایج
میهن بلاکچین آموزش مقالات عمومی

مقدمه‌ای بر زبان برنامه‌نویسی تزوس و نوشتن قرارداد هوشمند (بخش ۲)

نگارش:‌ایوب کریمی
27 اردیبهشت 1401 - 20:55
در مقالات عمومی
زمان مطالعه: 4 دقیقه
0
برنامه نویسی روی شبکه تزوس

در مقاله قبل به بررسی زبان برنامه‌نویسی تزوس (Tezos) یعنی Michelson پرداختیم و در این مقاله قصد داریم توضیحات بیشتری در مورد این زبان برنامه‌نویسی بدهیم. در این مقاله به بررسی ابزاری خارق العاده می‌پردازیم که به نوشتن، اشکال‌زدایی و بررسی کد Michelson بسیار کمک می‌کند. این ابزار Jupyter notebook with the Michelson Kernel نام دارد. ما در این نوشتار قصد داریم یک قرارداد هوشمند جدید را در Michelson بنویسیم که در آن از رسته‌ای استفاده می‌شود که پارامتر آن توسط کاربر انتقال داده شده است. شایان ذکر است که مفهوم قرارداد هوشمند را اولین بار اتریوم (Ethereum) وارد فضای ارز دیجیتال کرد.

توصیه می‌شود که قبل از خواندن این مقاله، حتما بخش اول را مطالعه کنید زیرا در آن به توضیح مفهوم قرارداد هوشمند در زبان برنامه‌نویسی تزوس پرداخته می‌شود. در ابتدا به بررسی بهترین ابزاری می‌پردازیم که برای کد‌گذاری Michelson موجود است.

آنچه در این مطلب می‌خوانید

Toggle
  • Jupyter Notebook ابزاری برجسته برای کدگذاری زبان برنامه‌نویسی تزوس
  • مدیریت پارامتر‌ها در یک قرارداد هوشمند تزوس
  • نتیجه‌گیری

Jupyter Notebook ابزاری برجسته برای کدگذاری زبان برنامه‌نویسی تزوس

تیم بیکینگ بد (Baking Bad) یک کامپایلر (compiler) آنلاین را توسعه داده که کاری بسیار فرا‌تر از کامپایل کردن کد Michelson انجام می‌دهد. آن به برجسته کردن خط نوشتاری کد، اشکال‌زدایی و تجسم مرحله به مرحله پشته کمک می‌کند. می‌توانید قبل از اینکه فایل MichelsonTutorial-Demo.ipynb را انتخاب نمایید، این ابزار را از طریق این لینک باز کنید. این فایل به دو قسمت تقسیم می‌شود:

۱- قسمت اول کد درون خطی (inline code) است که در آن، کل قرارداد هوشمند در داخل یک واحد خاص قرار می‌گیرد. شما می‌توانید با نوشتن RUN %default parameter storage در واحد زیر، آن را کامپایل و راه‌اندازی کنید.

تزوس

بعد از راه‌اندازی این قرارداد هوشمند، توضیحات مفصلی برای هر مرحله موجود است. در نهایت، انبارش جدید شما به انجام می‌رسد.

۲- کد مرحله به مرحله، می‌توانید آموزش‌ها را برای تغییر پشته یکی یکی وارد کنید و تاثیر آنها را بر هر مرحله مورد بررسی قرار دهید.

تزوس

در هر قرارداد هوشمند از زبان برنامه‌نویسی تزوس یا همان Michelson، با تعیین پارامتر (parameter) و انبارش شروع می‌کنید. سپس BEGIN parameter storage را تایپ کنید تا اجرا آغاز شود.

بعد از این مرحله تنظیمات، می‌توانید دستورالعمل‌ها را یکی یکی وارد کنید و با استفاده از فرمان CMD/CTRL + SHIFT آنها را راه‌اندازی کنید. در واحد out […]، ارزش حال حاضر در بالای پشته برای شما ارائه می‌شود.

وقتی که می‌خواهید اجرای قرارداد هوشمند را خاتمه دهید، باید COMMIT را وارد کنید و آن انبارش جدید را برگشت خواهد داد. البته به شرطی که خطایی در کد شما نباشد. اگر خطایی در هر مرحله از اجرا موجود باشد، شما با پیامی مواجه می‌شوید و می‌توانید آن خطا را فورا اصلاح کنید.

مدیریت پارامتر‌ها در یک قرارداد هوشمند تزوس

مدیریت ورودی کاربران در تزوس بسیار آسان است. ما در اینجا با قراردادی کار می‌کنیم که در jupyter Notebook ارائه شد و در بالا آن را معرفی کردیم. به دنباله‌رویی از notebook بپردازید و دستور العمل‌ها را یکی یکی انجام دهید تا درک بهتری از ظاهر پشته بعد از هر دستور العمل داشته باشید. شکل کامل این قرارداد هوشمند به صورت زیر است:

تزوس

اگر به یاد داشته باشید، جفتی شامل پارامتر و انبارش به طور خودکار، بعد از فراخوانی قرارداد در بالای پشته انتقال داده می‌شود. ما در این جفت می‌توانیم به پارامتر دسترسی داشته و از آن استفاده کنیم. نحوه عملکرد آن در ادامه توضیح داده خواهد شد.

ابتدا اجازه دهید که پشته را راه‌اندازی کنیم:

تزوس

در این مرحله به یک پشته تازه دسترسی پیدا می‌کنیم که شامل جفتی از پارامتر و انبارش است. هدف نهایی ما این است که این دو رسته را ادغام کنیم و آنها را برگردانیم.

در مرحله بعد، عنصر بالای پشته را کپی می‌کنیم زیرا به پارامتر و انبارش در دو عنصر جداگانه پشته نیاز داریم و از این طریق قادر خواهیم بود که آنها را در یک رسته خاص و کنار هم قرار دهیم.

تزوس

زبان برنامه‌نویسی تزوس دارای متغیر نیست و ماهیتا غیر قابل تغییر است. عناصر جدید پشته را می‌توان با روش‌های مختلفی ایجاد کرد. توجه داشته باشید که در هر مرحله از اجرا، شما با عنصر برجسته پشته سر و کار خواهید داشت. در این مرحله، تنها با آن می‌توانید کار کنید.

حال اجازه دهید که با اولین عنصر پشته شروع کنیم، و اجازه دهید پارامتر را از جفت بیرون کنیم. ما از دستور العمل CAR استفاده می‌کنیم که هدف آن تجزیه یک عنصر نوع pair و برگشت دادن سمت چپ این جفت است. بعد از اجرای CAR، رسته World در بالای پشته باقی می‌ماند.

تزوس

حال ممکن است در شگفت باشید که اگر زبان برنامه‌نویسی تزوس تنها با اولی سر و کار داشته باشد، چگونه می‌توان با عنصر دوم پشته کار کرد؟ خیلی آسان است. با استفاده از دستور العمل SWAP، عنصر دوم را در بالا قرار دهید و دیگری را برای بعد نگه دارید.

تزوس

وقتی که از دستور العمل SWAP استفاده می‌کنید، به زبان برنامه‌نویسی تزوس می‌گویید که من در حال حاضر به عنصر اول نیاز ندارم و می‌خواهم بر روی دومی کار کنم. Michelson عنصر اول را به موقعیت دوم می‌برد و عنصر دوم را نیز به موقعیت اول می‌آورد.

حالا جفت دومی که در ابتدا کپی کردیم در بالا قرار دارد، ما می‌توانیم از یک CAR معکوس برای دسترسی به بخش صحیح جفت استفاده کنیم.

تزوس

دستور العمل CDR مانند دستور العمل CAR کار می‌کند، اما در این حالت، سمت راست جفت دستکاری شده را نگه می‌دارید. بعد از آن می‌بینیم که پشته آن از دو عنصر تشکیل شده است. در موقعیت اول رسته Hello موجود است و در موقعیت دوم نیز رسته World موجود است.

حال باید آنها را کنار هم بگذاریم!

تزوس

در برنامه‌نویسی کامپیوتر، عملکرد کنار هم قرار دادن دو رسته concatenation نامیده می‌شود. دستور العمل کنار هم قرار دادن دو رسته در Michelson به CONTACT معروف است. این عملکرد دو رسته حال حاضر را به بالای پشته می‌برد و یک رسته خاص را برگشت می‌دهد. برای اینکه این عملکرد موفقیت‌آمیز باشد، دو شرط باید محقق شود:

اولا باید دو عنصر بر بالای پشته داشته باشید. اگر عناصر بیشتری موجود باشد، آن تنها با دو عنصر بالا سر و کار خواهد داشت.

دوما این دو عنصر بالای پشته باید رسته باشند.

حال اگر آنچه را که در بخش اول در موردش صحبت کردیم به یاد داشته باشید، می‌دانید که قرار است چه اتفاقی بیافتد. ما باید یک جفت را با یک لیست و انبارش جدید ایجاد کنیم و اجرای قرارداد هوشمند را پایان دهیم.

ابتدا اجازه دهید یک لیست خالی را به بالای پشته انتقال دهیم:

تزوس

وقتی که لیست خالی در آنجا جای گرفت، می‌توانیم یک جفت با لیست خالی و رسته ایجاد کنیم:

تزوس

در مورد ترتیب عناصر و تایپ آنها بسیار دقت کنید، زبان برنامه‌نویسی تزوس عنصر اول را به سمت چپ جفت انتقال می‌دهد و عنصر دوم را نیز در سمت راست جای می‌دهد. برگشت دادن یک جفت (pair string list (operation)) باعث ایجاد خطا می‌شود.

حال پشته ما صحیح است و شامل یک جفت با لیستی از عملکرد‌ها و یک رسته است. اجرای قرارداد هوشمند در اینجا پایان می‌پذیرد.

نتیجه‌گیری

در این مقاله به بررسی ابزار Jupyter Notebook پرداختیم که در زبان برنامه‌نویسی تزوس مورد استفاده قرار می‌گیرد و به نوشتن، اشکال‌زدایی و اجرای کد بسیار کمک می‌کند.

در این نوشتار، کد‌های جدید عملکردی Michelson مانند CAR، SWAP و غیره معرفی شدند و عملکرد آنها مورد بحث قرار گرفت. شکل‌هایی هم که در این نوشتار آورده شده‌اند به درک بهتر متن و درک بهتر انواع قرارداد هوشمند مورد بحث کمک خواهند کرد. امیدواریم که این راهنما مفید واقع شده باشد. نظرات خود را از ما دریغ نکنید.

تگ: اتریومتزوسزبان برنامه نویسیقرارداد هوشمند
اشتراک‌گذاریتوئیت

نوشته‌های مشابه

کلاهبرداری مهندسی اجتماعی در کریپتو که با پیام اشتباه آغاز شد و به سرقت ۳.۴ میلیون دلاری انجامید
مقالات عمومی

چگونه یک پیام به ظاهر اشتباه منجر به سرقت ۳.۴ میلیون دلاری شد!

14 خرداد 1405 - 20:00
117
فیچر کلاهبرداری و هک در کریپتو
اخبار عمومی

هکر کلاه سفید پس از یک دهه ۲ میلیون دلار اتریوم را نجات داد

11 خرداد 1405 - 13:00
21
تحلیل قیمت اتریوم کاهش قیمت رمز ارز ETH ریزش ارزش اتر Ethereum
اخبار اتریوم

چرا این بار فاندینگ ریت مثبت اتریوم بوی خون می‌دهد؟

9 خرداد 1405 - 09:00
69
بنیاد اتریوم
مقالات عمومی

پشت پرده استعفای مدیراجرایی بنیاد اتریوم؛ تنش قدرت یا چرخش استراتژیک؟

7 اسفند 1404 - 22:00
50
فیچر مینی اپلیکیشن تلگرام
اخبار عمومی

انقلاب در درآمدزایی تلگرام؛ حالا از هولد دارایی‌های دیجیتال سود بگیرید!

7 اسفند 1404 - 17:30
139
پیشنهاد دانک شاردینگ (Proto-danksharding) اتریوم
اخبار اتریوم

نقشه راه ۴ ساله ویتالیک بوترین برای اتریوم چیست؟ ساختاری سریع‌ و مقاوم در برابر کوانتوم

7 اسفند 1404 - 14:00
34
اشتراک
اطلاع از
0 دیدگاه
جدید ترین
قدیمی ترین محبوب ترین
Inline Feedbacks
View all comments

آموزش

عبور بازارهای پیش‌بینی از سد مسدودسازی دولت؛ وقتی هیچ روش فیلترینگی در سنگاپور قطعی نیست
مقالات عمومی

پشت پرده بازارهای پیش‌بینی؛ ابزار تحلیل آینده یا ماشین تولید توهم؟

15 خرداد 1405 - 20:00
22
برترین کامیونیتی های کریپتویی در تلگرام
مقالات عمومی

تلگرام و تون، زیرساخت نسل جدید ایجنت‌های هوش مصنوعی

15 خرداد 1405 - 16:00
69
بررسی بلاکچین های لایه اول
مقالات عمومی

مرگ تدریجی شبکه‌های لایه اول؛ چرا توکن‌های L1 به سمت صفر سقوط می‌کنند؟

15 خرداد 1405 - 12:00
185
کلاهبرداری مهندسی اجتماعی در کریپتو که با پیام اشتباه آغاز شد و به سرقت ۳.۴ میلیون دلاری انجامید
مقالات عمومی

چگونه یک پیام به ظاهر اشتباه منجر به سرقت ۳.۴ میلیون دلاری شد!

14 خرداد 1405 - 20:00
117
تعامل ایجنت‌های هوش مصنوعی با کیف پول‌های دیجیتال و لایه‌های پرداخت در اقتصاد آنچین
مقالات عمومی

ایجنت‌های هوش مصنوعی؛ موتور محرک موج جدید تراکنش‌های آنچین

14 خرداد 1405 - 16:00
40
تقابل وال استریت و بازارهای نوظهور در حوزه دارایی‌های دنیای واقعی (RWA) و توکنیزاسیون.
مقالات عمومی

وال استریت یا بازارهای نوظهور؛ آینده دارایی های دنیای واقعی (RWA) در کجا رقم می‌خورد؟

14 خرداد 1405 - 12:00
68

پیشنهاد سردبیر

فیچر تحریم صرافی های ایرانی و کیف پول

تحریم صرافی های ایرانی و ریسک حضانتی؛ دارایی‌هایمان واقعاً در خطر است؟

13 خرداد 1405 - 15:00
591

گزارش ویژه: اکسکوینو چگونه از اختلالی ادعایی به بحرانی سیستمی رسید؟ کالبدشکافی ورشکستگی پنهان در فین‌تک ایران

۵ گام طلایی برای ردیابی کیف پول‌ نهنگ‌ها و به دست آوردن سرمایه میلیون دلاری

«برای آنچه نیاز دارید، چه بهایی می‌پردازید؟» صورت‌مسئله تازه اقتصاد جهانی و ایران

نقشه بقای سرمایه در ایران: سه سناریو، سه رفتار بازار، هدفی مشترک

اگر تتر فریز می‌شود، چرا باز هم انتخاب اول دولت‌های تحریم‌شده است؟

  • خانه
  • قیمت ارز
  • صرافی ها
  • ماشین حساب
No Result
مشاهده همه‌ی نتایج
  • اخبار
    • همه
    • رمزارز در ایران
    • اخبار بیت کوین
    • اخبار اتریوم
    • اخبار آلتکوین
    • اخبار بلاکچین
    • اخبار عمومی
    • اطلاعیه صرافی‌های داخلی
  • تحلیل
    • همه
    • تحلیل آنچین
    • تحلیل اقتصادی
    • تحلیل تکنیکال
    • تحلیل فاندامنتال
  • آموزش
    • همه
    • کریپتو پدیا
    • کریپتو کده
    • دیفای
    • سرمایه گذاری
    • آموزش همه صرافی های ارز دیجیتال
    • ترید
    • کیف پول
    • بازی
    • استخراج
    • NFT
    • مقالات عمومی
  • ایردراپ
  • هک و کلاهبرداری
  • قیمت ارزهای دیجیتال
  • ماشین حساب ارزهای دیجیتال
  • مقایسه قیمت در صرافی
  • نشان‌شده‌ها

© 2025 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است

سرویس‌ها
لیست قیمت ارزهای دیجیتال مقایسه قیمت صرافی‌ها مقایسه ویژگی صرافی‌ها ماشین حساب ارزهای دیجیتال مقایسه رمزارز‌ها
خبر و آموزش
اخبار آموزش ویدیو پیشنهاد سردبیر
میهن بلاکچین
درباره ما ارتباط با ما تبلیغات و همکاری تجاری قوانین و مقررات سیاست های حریم خصوصی فرصت های شغلی
تگ‌های پربازدید
قانون گذاری سرمایه‌ گذاری افراد معروف صرافی ارز دیجیتال دوج‌کوین بیت‌کوین استیبل کوین رمزارز در ایران پیش بینی بازار تکنولوژی بلاک چین اتریوم ‌کاردانو شیبا هک و کلاهبرداری
سرویس‌ها
لیست قیمت ارزهای دیجیتال مقایسه قیمت صرافی‌ها مقایسه ویژگی صرافی‌ها ماشین حساب ارزهای دیجیتال مقایسه رمزارز‌ها
خبر و آموزش
اخبار آموزش ویدیو پیشنهاد سردبیر
میهن بلاکچین
درباره ما ارتباط با ما تبلیغات و همکاری تجاری قوانین و مقررات سیاست های حریم خصوصی فرصت های شغلی
تگ‌های پربازدید
قانون گذاری سرمایه‌ گذاری افراد معروف صرافی ارز دیجیتال دوج‌کوین بیت‌کوین استیبل کوین رمزارز در ایران پیش بینی بازار تکنولوژی بلاک چین اتریوم ‌کاردانو شیبا هک و کلاهبرداری
میهن بلاکچین دست در دست، بی‌نهایت برای میهن

© 2026 - تمامی حقوق مادی و معنوی این وبسایت نزد میهن بلاکچین محفوظ است.