سالیدیتی

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

یکی از ویژگی های اتریوم که منجر به افزایش محبوبیت و کاربردهای این شبکه شده است، قابلیت راه اندازی قرارداد هوشمند است. قراردادهای هوشمند بستری را جهت برنامه نویسی بر روی بلاک چین این رمز ارز فراهم میکند. زبان برنامه نویسی ethereum، برای راه اندازی قرارداد های هوشمند سالیدیتی (Solidity) نام دارد. سالیدیتی از زمانی که برای اولین بار در سال 2014 معرفی شد و بعداً توسط تیم سالیدیتی شبکه ETH توسعه یافت، مسیری طولانی را طی کرده است. صدها هزار توسعه دهنده وجود دارند که از زبان برنامه نویسی برای ایجاد خدمات مبتنی بر بلاک چین برای انواع کاربرد ها استفاده می کنند.

سالیدیتی چیست

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

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

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

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

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

اکثر مفاهیم استفاده شده در زبان سالیدیتی در زبان های دیگر برنامه نویسی استفاده شده اند. به عنوان مثال، solidity مفاهیمی مانند متغیرها، توابع، کلاس ها،عملیات های محاسباتی، رشته ها و…  استفاده میکند.

یکی دیگر از ویژگی های این زبان برنامه نویسی، ویژگی وراثت (Inheritance) است. بدین معنی که امکان استفاده توابع، متغیرها و دیگر ویژگی هایی که در یک قرارداد هوشمند قرار دارند در قرارداد هوشمند دیگری فراهم میشود.

Solidity یک زبان برنامه نویسی متن باز است تیم توسعه دهنده آن پیشرفت رو به افزایشی دارد و به طور روزانه ارائه پروژه‌های بسیار زیادی با این زبان برنامه نویسی صورت میگیرد.

کد های سالیدیتی

سالیدیتی چگونه کار می کند؟

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

هر ساله دنیا میلیاردها دلار صرف راه حل های بلاک چین می کند. بسیاری از این راه حل ها با استفاده از زبان Solidity ایجاد می شوند. قراردادهای هوشمند ساخته شده با استفاده از سالیدیتی را می توان راهی برای خودکارسازی فرآیندهای تجاری و غیر تجاری بین افراد مختلف دانست. این قرارداد ها در واقع این اطمینان را به کاربران تراکنش های بلاک چین می دهند که نگران خطراتی مانند کلاهبرداری یا اشتباه در تراکنش ها نباشند.

یکی از مولفه های کلیدی که اجرای کد Solidity را ممکن می کند پردازشگر مجازی اتریوم (EVM) است. EVM به عنوان یک رایانه مجازی در بلاک چین توصیف می شود که ایده های افراد را به کدی تبدیل می کند که برنامه ها را در بلاک چین اجرا می کند.

قراردادهای هوشمند بر روی پردازشگر مجازی اتریوم (Ethereum Virtual Machine) قابل اجرا هستند. امکان دسترسی پردازشگر مجازی اتریوم تنها برای قراردادهای هوشمندی که بر روی آن اجرا شده اند فراهم میشود. به جز این دسترسی به هیچ اطلاعات دیگری امکان دسترسی ندارد.

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

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

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

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

استانداردهای مختلفی در حال ظهور است که تعیین می کند چگونه قراردادهای هوشمند سالیدیتی برای ساخت برنامه ها در Ethereum استفاده می شود. این استانداردها به استانداردهای ERC که مخفف عبارت Ethereum Request for Comment می باشد، معروف هستند. این استانداردها براساس سندی تهیه شده اند که حاوی رهنمودهایی در مورد توابع مورد نیاز و محدودیت در نحوه رفتار کد است.

استانداردهای ERC که تعیین می کنند چطور Solidity کار می کند شامل موارد زیر است:

  • ERC20
  • ERC165
  • ERC721
  • ERC223
  • ERC621
  • ERC777
  • ERC827
  • ERC884
  • ERC865
  • ERC1155
ویژگی های solidity

ویژگی های سالیدیتی

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

بعضی از ویژگی های پایه سالیدیتی که کاربرد ها عملکرد این زبان را ممکن می سازد عبارتند از:

  •  اصلاح کننده توابع (Function Modifier)
  • رویدادها (Events)
  • تعیین سطح دسترسی
  • آرایه‌های داخل حافظه
  • کتابخانه‌ها
  • امکان Import کردن
  • قرارداد و رابط‌ها (Interfaces)
  • نوع داده‌ای ایستا
  • تبدیل نوع داده‌ای به صورت صریح

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

نکته دیگر بحث هزینه ها و کارمزد ها است. بابت استفاده از Solidity در شبکه اصلی اتریوم لازم است هزینه ها و کارمزد های اضافی پرداخت شود. این کارمزد ها معمولا بر اساس سیستم گس در شبکه اتریوم محاسبه می شود که برای تأمین امنیت شبکه بلاک چین به ماینرها اختصاص می یابد.

4.5 / 5. تعداد نظر : 2

اشتراک در
اطلاع از
guest
0 Comments
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها