درحال حاضر سیگنالی وجود ندارد

همه چیز درباره سالیدیتی(Solidity)؛ زبان برنامه نویسی قراردادهای هوشمند بلاک چین اتریوم

شایسته اسکندری
1401/01/02
بلاک چین

سالیدیتی (Solidity)، یک زبان برنامه نویسی کاملاً جدید است که توسط اتریوم، بزرگترین بازار سرمایه گذاری ارزهای دیجیتال پس از بیت کوین، توسعه یافته است.

همه چیز درباره سالیدیتی(Solidity)؛ زبان برنامه نویسی قراردادهای هوشمند بلاک چین اتریوم | سیبنال

سالیدیتی (Solidity)، یک زبان برنامه نویسی کاملاً جدید است که توسط اتریوم، بزرگترین بازار سرمایه گذاری ارزهای دیجیتال پس از بیت کوین، توسعه یافته است. در ادامه این مقاله به بررسی بیشتر زبان برنامه نویسی سالیدیتی و اجزای مهم آن خواهیم پرداخت.

همه چیز درباره سالیدیتی(Solidity)، زبان برنامه نویسی قراردادهای هوشمند بلاکچین اتریوم

زبان برنامه نویسی سالیدیتی چیست؟

به زبان ساده، سالیدیتی یک زبان برنامه نویسی شی گرا است که به طور ویژه و انحصاری توسط تیم شبکه اتریوم برای ساخت و طراحی قراردادهای هوشمند بر روی پلتفرم های بلاکچین ایجاد شده است. از این برنامه برای ایجاد قراردادهای هوشمند که منطق کسب و کار (business logic) را اعمال و زنجیره ای از سوابق تراکنش را در سیستم بلاکچین ایجاد می کنند، استفاده می شود.
سالیدیتی به عنوان ابزاری برای ایجاد کد ماشینی و جمع آوری آن در ماشین مجازی اتریوم (EVM) عمل می کند. این زبان شباهت های زیادی با زبان های برنامه نویسی C و C++  دارد و یادگیری و درک آن بسیار ساده است. به عنوان مثال، یک "main" در C معادل "contract" در سالیدیتی است. مانند سایر زبان های برنامه نویسی، برنامه نویسی Solidity نیز دارای متغیرها، توابع، کلاس ها، عملیات حسابی و بسیاری مفاهیم دیگر است.

EVM و قراردادهای هوشمند چیست؟

1) EVM یا ماشین مجازی اتریوم

ماشین مجازی اتریوم (EVM) یک محیط برای اجرای قراردادهای هوشمند اتریوم فراهم می کند. این سیستم از طریق استفاده از شبکه بین المللی گره ها یا نودهای عمومی به تضمین امنیت و اجرای برنامه های غیرقابل اعتماد می پردازد.
ماشین مجازی اتریوم در پیشگیری از حملات محروم ‌سازی از سرویس تخصص دارد. همچنین اطمینان حاصل می کند که برنامه‌ها به وضعیت یکدیگر دسترسی ندارند و بدون تداخل احتمالی ارتباط برقرار می‌کند.

2) قراردادهای هوشمند

منظور از قراردادهای هوشمند کد های برنامه سطح بالایی است که قبل از ارسال به بلاکچین اتریوم برای اجرا در EVM سازمان دهی شده اند. قراردادهای هوشمند شما را قادر می سازد تا معاملات را به صورت کاملا قابل اعتماد و بدون دخالت شخص ثالث انجام دهید. این معاملات قابل ردیابی و برگشت ناپذیر هستند. زبان های برنامه نویسی که معمولا برای ایجاد و نوشتن قراردادهای هوشمند استفاده می شوند عبارتند از: Serpent، Solidity، Mutan و LLL.

EVM و قراردادهای هوشمند چیست؟

انواع داده در زبان برنامه نویسی سالیدیتی

این زبان از انواع داده های رایج که در سایر زبان های OOP دیده می شود پشتیبانی می کند. در ادامه به معرفی این نوع داده ها می پردازیم.

گزاره (Boolean): بسته به وضعیت، "1" نمایانگر شرط درست و "0" نمایانگر شرط نادرست است.

عدد صحیح(Integer): می توانید مقادیر صحیح را در سالیدیتی با علامت یا بدون علامت کنید. همچنین از استثناهای زمان اجرا و کلمات کلیدی "uint8" و "uint256" پشتیبانی می کند.

رشته (String): نقل قول های منفرد یا دوتایی می توانند یک رشته را نشان دهند.

توصیف کننده (modifier): قبل از اجرای کد برای یک قرارداد هوشمند، یک توصیف کننده اغلب تأیید می کند که هر شرطی منطقی است.

آرایه (Array): نحوه برنامه نویسی سالیدیتی مانند سایر زبان های OOP است و از آرایه های تک بعدی و چند بعدی پشتیبانی می کند.

 

چگونه برنامه نویسی با Solidity را شروع کنیم؟

1) ورژن پراگما (Version Pragma)

ورژن پراگما (Version Pragma)

پراگماها دستورالعمل هایی برای کامپایلر در مورد نحوه مدیریت کد هستند. هر خط از سورس کد باید با " Version Pragma" شروع شود تا مشخص کند که از کدام ورژن کامپایلر سالیدیتی استفاده شده است.

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

2) کلمه کلیدی قرارداد (The Contract Keyword)

کلمه کلیدی قرارداد، مشخص کننده قراردادی است که چهارچوب کد را تعریف می کند.

کلمه کلیدی قرارداد (The Contract Keyword)

3) متغیرهای حالت/اعلان (State/Declare Variables)


متغیرهای حالت/اعلان (State/Declare Variables)

متغیرهای حالت بر روی بلاکچین اتریوم نوشته شده و به طور دائم در قرارداد ذخیره و نگهداری می شوند.

خط uint public var1 یک متغیر حالت از نوع uint با نام var1 (عدد صحیح بدون علامت 256 بیتی) را نشان می دهد که بسیار شبیه به افزودن یک slot در دیتابیس است.

4) تعریف تابع (function declaration)


تعریف تابع (function declaration)

تابعی به نام "set" وجود دارد که یک متغیر a و متغیر b از نوع داده uint را به عنوان پارامتر دریافت می کند.

مثال قابل مشاهده نمونه ای از یک قرارداد هوشمند ساده است که مقدار var1 و var2 را به روز می کند. هر کسی که به بلاکچین اتریوم دسترسی دارد می تواند از تابع set برای تغییر مقدار var1 و var2 استفاده کند. همچنین با افزودن مقادیر متغیرهای var1 و var2 می تواند مجموع متغیر را محاسبه کند.

نحوه اجرای کد در برنامه سالیدیتی

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

1)حالت آفلاین

برای اجرای قرارداد هوشمند سالیدیتی در حالت آفلاین، باید node.js، Truffle و ganache-cli را نصب کنید و چهار عمل لازم ذیل را انجام دهید.

✅ یک پروژه truffle  ایجاد کنید و یک شبکه توسعه برای آن راه اندازی کنید.

✅ یک قرارداد هوشمند برای آن ایجاد کنید.

✅ از کمک Truffle قرارداد هوشمند را تنظیم کنید.

✅ برای ارزیابی ویژگی های اولیه برنامه نوشته شده را تست کنید.

2) حالت آنلاین
در حالت آنلاین، معمولاً از Remix IDE برای ایجاد و اجرای قراردادهای هوشمند سالیدیتی استفاده می شود.

مزایای برنامه نویسی Solidity

جدا از عملکرد اصلی برنامه نویسی سالیدیتی، بسیاری از ویژگی های دیگر ارائه شده در زبان برنامه نویسی سالیدیتی باعث برتری آن نسبت به سایر زبان های مبتنی بر اتریوم می شود. به جز انواع داده های بنیادی، برنامه نویسی سالیدیتی اجرای انواع داده های پیچیده و متغیرهای عضو را نیز امکان پذیر می کند.
زبان برنامه نویسی سالیدیتی یک واسط دودویی کاربردی (ABI) به منظور ایمنی ایجاد می کند. در صورتی که کامپایلر(تبدیل گر سورس کد به زبان ماشین) تشخیص دهد که داده های دریافتی از متغیر ها مطابقت ندارند، ABI اخطار می دهد. این مورد به «مشخصه زبان طبیعی» اشاره دارد که برای تبدیل مشخصات کاربر محور به زبان قابل فهم برای ماشین ها استفاده می شود.

مزایای برنامه نویسی Solidity

در این مقاله به معرفی برنامه سالیدیتی که زبان برنامه نویسی ارزهای دیجیتالی مانند اتریوم و ترون بود پرداختیم. شما می توانید نظر خود را در بخش شبکه اجتماعی ارز دیجیتال سیبنال با ما در میان بگذارید.
 

امتیاز دهید : (65)
  • سالیدیتی
  • سالیدیتی چیست
  • برنامه نویسی سالیدیتی
  • برنامه نویسی قراردادهای هوشمند
  • برنامه نویسی بلاک چین اتریوم
  • زبان برنامه نویسی solidity
  • زبان برنامه نویسی شی گرا
  • ماشین مجازی اتریوم (EVM)
  • evm چیست
  • منظور از قراردادهای هوشمند چیست
  • زبان های برنامه نویسی قراردادهای هوشمند
  • قراردادهای هوشمند با چه زبانهایی نوشته میشوند
  • زبان برنامه نویسی سالیدیتی
  • زبان solidity
  • زبان برنامه نویسی Serpent
  • EVM و قراردادهای هوشمند چیست؟
  • انواع داده های زبان سالیدیتی
  • چگونه برنامه نویسی با Solidity را شروع کنیم؟
  • اجرای برنامه solidity
  • مزایای برنامه نویسی سالیدیتی
  • آموزش زبان برنامه نویسی سالیدیتی
  • آموزش زبان برنامه نویسی solidity
  • آموزش سالیدیتی

مطالب مرتبط

Relevent Posts

آشنایی کامل با پروتکل IPFS، پروتکل ابررسانه ای همتا به همتا
  • آشنایی کامل با پروتکل IPFS، پروتکل ابررسانه ای همتا به همتا

  • اگر قصد دارید در مورد ماهیت و عملکرد پروتکل IPFS (سیستم فایل بین سیاره‌ ای) اطلاعات دقیق کسب کنید، این مطلب شروع خوبی برای شما ...
مشاهده مطلب
تاثیر web3 بر نظام بانکی کشورها در اینده
  • تاثیر web3 بر نظام بانکی کشورها در اینده

  • در این مقاله تأثیر بالقوه Web3 بر آینده سیستم‌های بانکی در کشورهای سراسر جهان را بررسی خواهیم کرد. ...
مشاهده مطلب
درخت مرکل چیست؟ مزایا و معایب استفاده از درخت مرکل در بلاکچین
  • درخت مرکل چیست؟ مزایا و معایب استفاده از درخت مرکل در بلاکچین

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