کامپیایل قرارداد هوشمند در سالیدیتی
زبان سالیدیتی (Solidity) نیز مانند سایر زبانهای برنامه نویسی دارای کامپایلر مخصوص به خودش است. کدهای سایدیتی داخل کامپایلر خود کامپایل شده و در نتیجه آن 2 قسمت از اطلاعات را جهت استقرار تولید می کند:
الف) ABI ب) Bytecode
ABI و Bytecode چیست؟
ABI یا Application Binary Interface در علم کامپیوتر یعنی یک رابط بین دو ماژول برنامه. همواره Interface ها به یک سطح پایین تر یعنی ABI کامپایل میشوند.
ماشین مجازی اتریوم (EVM) جزء اصلی شبکه اتریوم است (قلب اتریوم) و قرارداد هوشمند ، قطعات کد ذخیره شده در بلاکچین اتریوم است که روی EVM اجرا می شود
حال توجه کنید که کدهای قرارداد هوشمند که به زبان های سطح بالا (مانند سالیدیتی) نوشته شده اند نیاز است کامپایل شوند به EVM Bytecode.
پس میتونیم بگیم: Bytecode یک کد قابل اجرا (سطح پایین) بر روی EVM است و ABI contract یک رابط جهت تعامل با Bytecode.
به عنوان مثال اگر شما بخواهید یک تابع را در قرارداد هوشمند را با کدهای جاوااسکریپت خودتون فراخوانی کنید، اینجاست که ABI یک نقش واسطه بین کدهای جاوااسکریپت و Bytecode در EVM ایفا می کند جهت چی؟ جهت تعامل بایکدیگر. جزئیات بیشتر در مورد قراردادهای هوشمند رو میتونید در پیج sal.chain پیدا کنید.
نکته: Bytecode برای انسان قابل خواندن نیست و تنها برای ماشین قابل خواندن است.
میتونیم بگیم ABI خیلی شبیه به API یا Application Program Interface است. در واقع ABI ها مدها و ساختارهای مورد استفاده برای تعامل با قرارداد را تعریف می کند درست مانند API اما در سطح پایین تر.
مثال: در شکل زیر میتونید نمونه یک قرارداد هوشمند ساده در سالیدیتی و همچینی Bytecode آن را مشاهده کنید:
*سالیدیتی یک زبان برنامه نویسی سطح بالا برای نوشتن قراردادهای هوشمند روی شبکه بلاکچین اتریوم می باشد.
*این زبان از زبان های برنامه نویسی پایتون، سی پلاس پلاس و جاوا اسکریپت الهام گرفته شده و برای پیاده سازی بر روی ماشین مجازی اتریوم (EVM) مورد استفاده قرار می گیرد.
مطالب زیر را حتما بخوانید
-
تبدیل همستر به تون کوین در تون کیپر Tonkeeper
190 بازدید
-
آموزش کیف پول تون کیپر Tonkeeper Wallet (موبایل و کامپیوتر)
163 بازدید
-
آموزش وارپکست و فارکستر – تصویری [صفرتا صد]
1.14k بازدید
-
zkEVM چیست؟
1.47k بازدید
-
دنیای NFT | ان اف تی چیست و کجا زندگی میکنه؟ | قسمت 1
1.66k بازدید
-
ساختار بلاکچین
1.88k بازدید
دیدگاهتان را بنویسید