وبلاگ

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

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

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

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

  1. هر آنچه که باید در مورد اتریوم بدانید
  2. قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
  3. توسعه قرارداد هوشمند در محیط ریمیکس
  4. کاربردهای برنامه نویسی سالیدیتی
  5. چگونه یک برنامه نویس سالیدیتی شویم؟

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

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

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

مشاهده  عملگرها در برنامه نویسی سالیدیتی
رویدادها در برنامه نویسی سالیدیتی
رویدادها در برنامه نویسی قرارداد هوشمند سالیدیتی

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

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

رویدادهای Solidity مانند رویدادهای هر زبان برنامه نویسی دیگری هستند. رویداد عضوی ارثی از قرارداد است که آرگومان‌های ارسال شده در گزارش‌های تراکنش را هنگام انتشار ذخیره می‌کند.

آموزش سالیدیتی برنامه نویسی قرارداد هوشمند Smart contracts

همانطور که می‌دانید، کلیه اطلاعات در بلاکچین عمومی هستند و کاربران می‌توانند با بررسی دقیق تراکنش‌ها، اطلاعات لازم در مورد همه فعالیت‌ها را کسب کنند. اما رویدادها روشی میانبر بوده و می‌توان با استفاده از آنها به روشی ساده و آسان قراردادهای هوشمند را توسعه دارد.

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

  • رویدادها با استفاده از کلمه کلیدی “event” اعلام می شوند.
  •  برای انتشار یک رویداد در یک تابع از کلمه کلیدی “emit” استفاده کنید.
  •  رویدادها در لاگ تراکنش های بلاکچین ثبت می شوند.
  •  رویدادها برای ذخیره لز متغیرها ارزان‌تر هستند.
  •  قراردادهای هوشمند نمی توانند مستقیماً به گزارش رویدادها دسترسی داشته باشند.
مشاهده  توابع بازگشتی در سالیدیتی

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

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

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

  • قراردادهای هوشمند را برای متغیرهای خاص مورد آزمایش قرار دهید
  • فهرستی از متغیرها برای بازسازی وضعیت زخیره‌سازی ایجاد کنید
  • برای تغییر فرانت‌اند از آنها استفاده کنید
  • برای بررسی و خواندن سریع داده‌ها، زیرگراف ایجاد کنید

آموزش سالیدیتی برنامه نویسی قرارداد هوشمند Smart contracts

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

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

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

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

event <eventName>(parameters) ;

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

// Solidity program to demonstrate
// creating an event
pragma solidity ^0.4.21;

// Creating a contract
contract eventExample {

	// Declaring state variables
	uint256 public value = 0;

	// Declaring an event
	event Increment(address owner);

	// Defining a function for logging event
	function getValue(uint _a, uint _b) public {
		emit Increment(msg.sender);
		value = _a + _b;
	}
}
تصویر خروجی کدهای رویداد در سالیدیتی
رویدادها در برنامه نویسی سالیدیتی
رویدادها در برنامه نویسی سالیدیتی

سخن پایانی رویداد ها در Solidity

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

مشاهده  دستور Enums در برنامه نویسی سالیدیتی
منبع:وب سایت geeksforgeeks

دیدگاه خود را اینجا قرار دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

محبوب ترین دوره ها

برچسب های محبوب

Mapping Solidity Inheritance آموزش برنامه نویسی سالیدیتی آموزش سالیدیتی آموزش قرارداد هوشمند اجزای قرارداد هوشمند ارز دیجیتال اتریوم ارز دیجیتال یونی ارزهای متاورسی الگوریتم اثبات کار الگوریتم اجماع امنیت کیف پول اهمیت قرارداد هوشمند اپلیکیشن متمرکز برنامه نویس سالیدیتی برنامه نویسی اتریوم برنامه نویسی بلاکچین برنامه نویسی ریمیکس برنامه نویسی سالیدیتی برنامه نویسی شی‌ گرا برنامه نویسی قرارداد هوشمند بلاکچین بلاک چین اتریوم بهترین ارزهای دیجیتال ترون چیست توسعه دهنده سالیدیتی صرافی های ارزدیجیتال صرافی‌ غیرمتمرکز قرارداد هوشمند قیمت پولکادات متاورس مزایای قرارداد هوشمند نوشتن سیستم رای گیری با سالیدیتی نوشتن قرارداد هوشمند واقعیت مجازی متاورس ویژگی‌های اتریوم پلتفرم های ارزدیجیتال پیش نیاز قرارداد هوشمند کاربرد قرارداد هوشمند کد نویسی سالیدیتی کسب درآمد با قرارداد هوشمند کسب درآمد در متاورس کیف پول ارزدیجیتال کیف پول الکترونیکی کیف پول نرم‌افزاری