مقدمه ای بر dappها
آخرین ویرایش: , Invalid DateTime
یک برنامهی غیرمتمرکز (dapp) برنامهای است که روی یک شبکهی غیرمتمرکز ساخته شده است و یک قرارداد هوشمند را با یک رابط کاربری فرانتاند ترکیب میکند. در اتریوم، قراردادهای هوشمند در دسترس و شفاف هستند - مانند وب سرویسهای باز - بنابراین dapp شما حتی میتواند شامل قرارداد هوشمندی که شخص دیگری نوشته است نیز باشد.
پیشنیازها
قبل از یادگیری در مورد dappها، باید اصول زنجیرهی بلوکی را بیاموزید و در مورد شبکهی اتریوم و نحوهی غیرمتمرکز بودن آن مطالعه کنید.
تعریف dapp
یک dapp کد بکاند خود را در یک شبکهی همتا به همتای غیرمتمرکز اجرا میکند. این را با برنامهای مقایسه کنید که کد بکاند آن روی سرورهای متمرکز اجرا میشود.
یک dapp میتواند دارای کد فرانتاند و رابطهای کاربری باشد که به هر زبانی (درست مانند یک برنامه) برای برقراری تماس با بکاند خود نوشته شده است. علاوه بر این، بخش ظاهری آن میتواند در فضای ذخیرهسازی غیرمتمرکز مانند IPFS(opens in a new tab) میزبانی شود.
- غیرمتمرکز - dappها روی اتریوم به عنوان یک پلتفرم غیرمتمرکز عمومی باز کار میکنند که هیچ شخص یا گروهی آن را کنترل نمیکند
- قطعی - dappها صرفنظر از محیطی که در آن اجرا میشوند عملکرد یکسانی دارند
- تورینگ کامل - dappها میتوانند هر عملی را با توجه به منابع مورد نیاز انجام دهند
- ایزوله - dappها در یک محیط مجازی به نام ماشین مجازی اتریوم اجرا میشوند تا اگر قرارداد هوشمند باگ داشته باشد، عملکرد عادی شبکهی زنجیرهی بلوکی را مختل نکند
دربارهی قراردادهای هوشمند
برای معرفی dappها، باید قراردادهای هوشمند را معرفی کنیم - چون اصطلاح بهتری نداریم آن را بکاند برای dapp مینامیم. برای یک نمای کلی دقیق، به بخش ما در مورد قراردادهای هوشمند بروید.
قرارداد هوشمند کدی است که بر روی زنجیرهی بلوکی اتریومی وجود دارد و دقیقاً طبق برنامه اجرا میشود. پس از بکارگیری قراردادهای هوشمند در شبکه، نمیتوانید آنها را تغییر دهید. dappها میتوانند غیرمتمرکز باشند، زیرا منطقی نوشتهشده در قرارداد کنترلشان میکند، نه یک فرد یا شرکت. این مهم همچنین به این معنی است که شما باید قراردادهای خود را با دقت طراحی کنید و آنها را کاملاً آزمایش کنید.
مزایای توسعهی dapp
- خرابی صفر – وقتی قراردادی هوشمند بکارگرفته شده است و روی زنجیرهی بلوکی قرار گرفته است، شبکه بهعنوان یک کل همیشه میتواند به کلاینتهایی که دنبال تعامل با قرارداد هستند خدماترسانی کند. بنابراین فعالان بداندیش نمیتوانند حملات به خدمات را با هدف قرار دادن dappهای منفرد آغاز کنند.
- حریم خصوصی - برای بکارگیری یا تعامل با یک dapp، نیازی به ارائهی هویت واقعی ندارید.
- مقاومت در برابر سانسور – هیچ نهاد واحدی در شبکه نمیتواند کاربران را از ارسال تراکنشها، استقرار dappها یا خواندن دادهها از زنجیرهی بلوکی منع کند.
- صحت و تمامیت کامل داده - دادههای ذخیرهشده در زنجیرهی بلوکی، به لطف رمزنگاریهای اولیه، تغییرناپذیر و غیرقابلانکار هستند. عوامل بداندیش نمیتوانند تراکنشها یا سایر دادههایی را که قبلاً عمومی شدهاند جعل کنند.
- محاسبات بدون اعتماد/رفتار قابل تأیید – قراردادهای هوشمند را میتوان تجزیه و تحلیل کرد و تضمین کرد که به روشهای قابل پیشبینی و بدون نیاز به اعتماد به یک مقام مرکزی اجرا شوند. این مورد در مدلهای سنتی صادق نیست. به عنوان مثال، هنگامی که ما از سیستمهای بانکداری برخط استفاده میکنیم، باید اعتماد کنیم که مؤسسات مالی از دادههای مالی ما سوء استفاده نمیکنند، سوابق را دستکاری نمیکنند یا هک نمیشوند.
معایب توسعهی dapp
- نگهداری – نگهداری از Dappها دشوارتر است زیرا اصلاح کد و دادههای منتشر شده در زنجیرهی بلوکی سختتر است. برای توسعهدهندگان سخت است که بهروزرسانیهای dapp خود (یا دادههای زیربنایی ذخیرهشده توسط dapp) را پس از بکارگیری آنها انجام دهند - حتی اگر اشکالات یا خطرات امنیتی در نسخهی قدیمی شناسایی شده باشند.
- سربار عملکرد - سربار عملکرد بسیار زیادی وجود دارد، و مقیاسپذیری واقعاً سخت است. برای دستیابی به سطح امنیت، صحت و تمامیت، شفافیت و قابلیت اطمینان مورد نظر اتریوم، هر گره هر تراکنش را اجرا و ذخیره میکند. علاوه بر این، اثبات کار نیز زمانبر است. یک محاسبه سر انگشتی، سربار را چیزی در حدود 1,000,000 برابر محاسبات استاندارد فعلی نشان میدهد.
- ازدحام شبکه – وقتی یک برنامه از منابع محاسباتی بیش از حد استفاده میکند، از کل شبکه پشتیبانگیری میشود. در حال حاضر، شبکه فقط میتواند حدود 10-15 تراکنش را در ثانیه پردازش کند. اگر تراکنشها سریعتر از این ارسال شوند، مجموعه تراکنشهای تأیید نشده به سرعت میتواند افزایش یابد.
- تجربهی کاربری – مهندسی تجربیات کاربرپسند ممکن است دشوارتر باشد، زیرا عموماً برای کاربر نهایی عادی سخت است که مجموعهای از ابزار لازم برای تعامل با زنجیرهی بلوکی را به شیوهای واقعاً ایمن را ایجاد کند.
- متمرکز کردن – راهحلهای کاربرپسند و توسعهدهندهپسند ساختهشده بر مبنای لایهی پایه اتریوم ممکن است به هر حال شبیه سرویسهای متمرکز به نظر برسند. بهعنوان مثال، چنین سرویسهایی ممکن است کلیدها یا سایر اطلاعات حساس را در سمت سرور ذخیره کنند، با استفاده از یک سرور متمرکز یک فرانتاند ارائه دهند، یا قبل از نوشتن در زنجیرهی بلوکی، منطق تجاری مهمی را بر روی یک سرور متمرکز اجرا کنند. متمرکزسازی بسیاری از (اگر نه همه) مزایای زنجیرهی بلوکی را نسبت به مدل سنتی حذف میکند.
با تصویر راحتتر یاد میگیرید؟
ابزارهای dapp
Scaffold-ETH - بهسرعت Solidity را با استفاده از یک فرانتاند که با قرارداد هوسمندتان سازگار است آزمایش کنید.
برنامهی اتریومی بسازید - با یک فرمان برنامههای مجهز به اتریوم بسازید.
**Dapp با یک کلیک _- ابزار FOSS برای تولید صفحات فرانت dapp از ABI.
Etherflow - ابزار FOSS برای توسعهدهندگان اتریوم بهمنظور آزمایش گره خود، نوشتن و اشکالزدایی فراخوانیهای RPC از مرورگر.
بیشتر بخوانید
- معماری یک برنامه Web 3.0(opens in a new tab) - پریتی کسیردی
- راهنمای 2021 برای برنامههای غیرمتمرکز(opens in a new tab) - LimeChain
- برنامههای غیرمتمرکز چه هستند؟(opens in a new tab) - Gemini
آیا منبعی اجتماعی میشناسید که به شما کمک کرده باشد؟ این صفحه را ویرایش کنید و آن را اضافه کنید!