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

قراردادهای هوشمند نحوه تجارت شما در اقتصاد غیرمتمرکز جدید را تسهیل می کند. بیشتر قراردادهای هوشمند در سیستم عامل DApp (برنامه غیرمتمرکز) مانند Ethereum ، Lisk یا Cardano بسته می شود و شرکت های بزرگ فناوری مانند IBM در حال ساختن مشاغل شخصی خود هستند. این منطقی است ، زیرا شرکت های زیادی وجود دارند که ترجیح می دهند به یک غول فناوری مانند IBM اعتماد داشته باشند تا محصولی را برای آنها بسازند تا اینکه خودشان یک فناوری جدید را کنترل کنند.

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

توسعه دهندگان Javascript نباید توسط بلاکچین مرعوب شوند. با کمی درک بیشتر ، بلاکچین مانند بیشتر چارچوب های دیگری است که معمولاً پیاده سازی می کنید.

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

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

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

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

گزینه های بستر های نرم افزاری DApp

مورد بعدی برای انتخاب این است که کدام یک از پلت فرم های DApp برای ساخت قرارداد است.

اتریوم بزرگترین و تثبیت شده ترین پلت فرم است. همچنین دارای فعال ترین پایگاه کاربری است و در هر نوع توسعه ، جامعه فعال برای پاسخگویی به س questionsالات شما کلید اصلی اتمام محصول شماست. اگرچه یک نقطه ضعف این است که برای نوشتن قراردادها از زبان خود با نام Solidid استفاده می کند.

گزینه ای دیگر, خطر, یک پلت فرم DApp است که در Javascript مستقر شده است ، بنابراین شما هیچ نحوی جدیدی که به سمت شما پرتاب شود پیدا نخواهید کرد. همچنین فروشگاه DApp مخصوص خود را دارد (فکر کنید Google play یا فروشگاه iTunes باشد) که پس از پایان کار می توانید برنامه خود را منتشر کنید.

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

در حال حاضر ، اجازه دهید از Ethereum یا Lisk به عنوان بستر انتخابی استفاده کنیم.

به عنوان یک توسعه دهنده Javascript ، Lisk ممکن است یک تصمیم منطقی به نظر برسد زیرا شما قبلاً در این زبان تجربه کرده اید.

با این حال ، Ethereum را حساب نکنید. جامعه توسعه آنقدر قوی است که می توانید با اطلاعات اضافی موجود ، سو Sol تفاهم در مورد Solidid را جبران کنید. Ethereum همچنین شامل چارچوب Truffle ، ایجاد شده توسط Consensys است که به راحتی به شما امکان می دهد برنامه قرارداد هوشمند خود را ادغام و آزمایش کنید.

چارچوب های قرارداد هوشمند ethereum

ساختن قرارداد هوشمند

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

هنگام ساخت اولین قرارداد Ethereum شما توصیه می کنیم از محیط توسعه در استفاده کنید remix.solidity.org. این یک محیط تعاملی را برای استقرار قرارداد خود و تعامل با آن از حساب های مختلف Ethereum فراهم می کند. یک منوی کشویی به شما امکان می دهد با فشار دادن دکمه های مربوطه حساب ها را تغییر داده و از هرگونه تماس عملکردی قرارداد خود استفاده کنید.

به چه چیزهایی توجه کنیم

نکته منحصر به فرد در مورد Solidid استفاده از آدرس دهی آن است. تمام حساب های Ethereum آدرس های منحصر به فردی دارند و این آدرس ها طرفین موافقت کننده با قرارداد را نشان می دهند.

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

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

همچنین لازم به ذکر است که در Solidid ، همه تماس های قراردادی رایگان نیستند. برای تغییر اطلاعات در قرارداد ، به عنوان مثال خرید یا استفاده از بلیط ، شبکه دستگاههایی که اتهام اجرای قرارداد “گاز” را تأیید می کنند. در واقع گاز برای استفاده از توان محاسباتی شبکه عوارضی است.

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

اتصال به جاوا اسکریپت

چالش برانگیزترین قسمت کار در Solidity ادغام قرارداد شما با Javascript است. این همه با استفاده از چارچوب ترافل.

اولین قدم در ادغام قرارداد شما استقرار آن و انتقال آن به شبکه آزمایشی شماست. Truffle RPC اختصاصی خود را ارائه می دهد ، یک شبکه آزمایش Ethereum جداگانه ، به نام Ganache. این فرایند به شما یک نسخه JSON از قرارداد را می دهد که می توانید با استفاده از آدرس های شبکه تست خود از طریق برنامه Javascript تماس بگیرید.

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

جعبه های ترافل

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

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

گرچه blockchain مشابه یک پایگاه داده است ، اما کاملاً یکسان نیست. این یک پروتکل کاملاً منحصر به فرد دارد که شامل معاملات ، هش کردن و ایجاد بلاک است. این ممکن است سخت ترین قسمت توسعه Ethereum باشد. در مثال بلیط ما ، شما باید یک تماس قراردادی برای خرید بلیط متفاوت از تماس برای استفاده از بلیط تنظیم کنید. Ethereum Virtual Machine در مورد این تماس ها بسیار جذاب است.

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

نتیجه

این مقاله به منظور یادگیری نحوه شروع نوشتن مقاله جامدادی نبود. درعوض ، این بود که به شما اطلاعاتی در مورد اینکه یک قرارداد هوشمند چیست و چگونه می توانید آن را در برنامه جاوا اسکریپت پیاده کنید ، ارائه دهید. ساختن بلاکچین برای هر کسی که توسعه وب را می داند امکان پذیر است.

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