مقدمه
برای نوشتن برنامه هایی که با موفقیت اجرا شوند، نیازی به دانستن چیزهای زیادی در مورد عملکرد درونی شبکه Internet Computer ندارید. با این حال، یادگیری چند مفهوم کلیدی به شما کمک میکند تا از ویژگیهای منحصربهفردی که Internet Computer برای شما فراهم میکند نهایت استفاده را ببرید. دانستن اطلاعاتی در مورد طراحی و معماری آن می تواند درک مزایایی را که با اهداف شما مطابقت دارد را برای شما آسان تر کند.
عناوین این بخش مؤلفه ها و اصطلاحات کلیدی را معرفی می کند تا به شما در درک معماری و عملکرد Internet Computer(IC) کمک کند. پس از خواندن این متن یک نمای کلی از IC و گره ها و مراکز داده ای که آن را تغذیه می کنند را به دست خواهید آورد و میتوانید درباره سبدها، نحوه و چرایی ساخت برنامههای غیرمتمرکز که به طور کامل روی زنجیره میزبانی میشوند اطلاعات بیشتری کسب کنید.
Internet Computer یک زنجیره بلوکی است که توسعه دهندگان، سازمان ها و کارآفرینان را قادر می سازد تا سبدی ایمن، مستقل، ضد دستکاری و تکامل یافته ای از قراردادهای هوشمند، بسازند و مستقر کنند.
Internet Computer دارای ویژگی های کلیدی زیر است:
Internet Computer یک بلاک چین است که بر روی گره هایی میزبانی میشود که توسط طرفهای مستقل اداره میشوند و در مراکز داده جغرافیایی مختلف و توزیعشده قرار دارند. گرهها پروتکل Internet Computer را اجرا میکنند، یک پروتکل رمزارز پیشرفته مقاوم در برابر خطا که تضمین میکند قراردادهای هوشمند در حال اجرا بر روی بلاک چین نمیتوانند دستکاری یا متوقف شوند. Internet Computer از زنجیره های بلوکی زیرشبکه ای تشکیل شده است که به صورت موازی اجرا می شوند و با استفاده از رمزنگاری کلید زنجیره ای به هم متصل می شوند. این بدان معناست که سبدهایی که روی یک زیرشبکه اجرا میشوند، میتوانند بهطور یکپارچه سبدهای میزبانی شده در هر زیرشبکه دیگری از بلاک چین Internet Computer را فراخوانی کنند.
یکی دیگر از ویژگی های مهم Internet Computer این است که تحت کنترل یک سیستم مدیریت غیرمتمرکز مستقل به نام سیستم عصبی شبکه (NNS) اجرا می شود که کاملا روی زنجیره اجرا می شود. NNS می تواند در مورد چندین موضوع مختلف تصمیم گیری کند که از جمله آن ها میتوان به کوچک کردن Internet Computer از طریق ایجاد بلاک چین های زیرشبکه جدید، به روز رسانی ماشین های گره، و پیکربندی پارامترهای مورد استفاده در پروتکل آن اشاره کرد. هرکسی میتواند در تصمیمات حاکمیتی شرکت کند و پیشنهادهای جدید را به NNS ارائه کند یا به پیشنهادات جاری رأی دهد. برای انجام این کار، کاربران باید ICP، که توکن های ابزار Internet Computer هستند را استیک کنند و یک نورون با NNS ایجاد کنند.
پروتکل Internet Computer خطرات مبتنی بر پلتفرم را کاهش می دهد و راه را برای نوآوری با تجسم مجدد نحوه ساخت، استقرار و دسترسی به نرم افزار هموار می کند. برای مثال، با استفاده از Internet Computer ، توسعهدهندگان میتوانند روی نوشتن کد با استفاده از سبدها تمرکز کنند، بدون اینکه نیاز باشد حواسشان با عوامل مرتبط با محیط مانند موارد زیر باشد:
Internet Computer با توانمند ساختن توسعه دهندگان برای تمرکز بر ساخت برنامه ها و ارائه ارزش، به ساده سازی فرآیند توسعه، کاهش زمان ورود به بازار و تقویت نوآوری کمک می کند.
برای کاربران نهایی، Internet Computer یک محیط امن برای دسترسی به dapp ها با خطرات کمتر را فراهم می کند. به دلیل امنیت ذاتی بلاک چین، برنامههای در حال اجرا در Internet Computer نمیتوانند توسط کدهای مخرب ربوده شوند، که این هزینه کل مالکیت را برای کاربران نهایی برنامه یا سازمانها کاهش میدهد.
علاوه بر این، از آنجایی که dapp ها می توانند مستقل و عمومی باشند، توسعه دهندگان می توانند خدماتی را بنویسند که با یکدیگر ارتباط برقرار کرده و عملکردها را به روش هایی به اشتراک بگذارند تا بهره وری و کارایی را افزایش دهد و در عین حال فضایی برای نوآوری و بهبود پروژه ها با اطمینان باقی بگذارد.
Internet Computer توسعه دهندگان را نیز قادر می سازد تا از احراز هویت های امن برای اعمال کنترل های دسترسی استفاده کنند و نیاز به تکیه بر نام های کاربری و رمزهای عبور یا افزونه های مدیریت هویت را کاهش دهند.
بلاک چین های زیرشبکه بلاک چین Internet Computer ، سخت افزار و منابع فیزیکی مانند CPU و حافظه را برای انجام عملیات نرم افزاری فراهم می کنند. هر زیرشبکه یک زنجیره بلوکی است که از تعدادی ماشین غیرمتمرکز، مستقل و تحت کنترل تشکیل شده است، یعنی رایانه های متصل به نام گره ها؛ که اجزای نرم افزاری پروتکل بلاک چین Internet Computer را اجرا می کنند.
مؤلفههای نرمافزار بلاکچین Internet Computer که روی هر گره اجرا میشوند، replica نامیده میشوند، زیرا آنها حالت و محاسبات را در تمام گرههای یک بلاک چین زیرشبکه تکرار میکنند.
اجزای اصلی یک replica در لایه های منطقی زیر سازماندهی می شوند:
یک لایه شبکه همتا به همتا (P2P) که پیامهای کاربران، سایر گرهها در بلاک چین زیرشبکه خود و سایر بلاکچینهای زیرشبکه را جمعآوری و تبلیغ میکند. پیام های دریافت شده توسط لایه همتا به همتا برای اطمینان از امنیت، قابلیت اطمینان و انعطاف پذیری در تمام گره های زیرشبکه تکرار می شود.
برای یک توسعهدهنده، نیازی به دانستن جزئیات در مورد اینکه چگونه dappها و تعاملات کاربر با برنامههای شما از طریق معماری بلاکچین Internet Computer هدایت میشوند یا در شبکه بلاک چین تکرار میشوند، نیست. با این حال، درک کلی از اجزای کلیدی می تواند مفید باشد زیرا محیط توسعه شامل اجزای مشابه برای ارائه یک محیط اجرایی به منظور استقرار و ایجاد یک حس واقعی از گردش کار برای استقرار تولید است.
تعریف زیر شبکه:
یک زیرشبکه مجموعهای از کپیها است که نمونهای جداگانه از مکانیسم اجماع را اجرا میکنند تا بلاک چین خود را ایجاد کنند که مجموعهای از سبدها بتوانند روی آن اجرا شوند. هر زیر شبکه می تواند با زیرشبکه های دیگر ارتباط برقرار کند و توسط زیرشبکه ریشه کنترل می شود که از رمزنگاری کلید زنجیره ای برای تفویض اختیار خود به زیرشبکه های مختلف استفاده می کند.
Internet Computer از زیرشبکهها استفاده میکند تا به آن امکان مقیاس نامحدود را بدهد. مشکل بلاک چین های سنتی (و زیرشبکه های فردی) این است که آنها توسط قدرت محاسباتی یک ماشین گره محدود می شوند، زیرا هر گره برای مشارکت در الگوریتم اجماع باید هر اتفاقی را که روی بلاک چین می افتد اجرا کند. اجرای چندین زیرشبکه مستقل به صورت موازی به Internet Computer اجازه می دهد تا از این مانع تک ماشینی عبور کند.
از آنجایی که همه سبدها دارای امنیت، اندازه یا ویژگیهای مورد نیاز یکسان نیستند، هر زیرشبکهای، پیکربندی یکسانی ندارد. برای مثال، زیرشبکه سیستم (که شامل NNS و تعدادی سرویس حیاتی دیگر است)، هیچ چرخهای برای سبدهای خود دریافت نمیکند، زیرا این سبدها باید در هر شرایطی در دسترس باشند. برای مثال، سایر زیرشبکهها میتوانند ویژگیهای مختلفی را فعال یا غیرفعال کنند (مانند ادغام شبکه بیتکوین).
در زمان نگارش این متن، دو نوع زیرشبکه اصلی وجود دارد: زیر شبکه سیستم و زیر شبکه برنامه. تقریبا همه سبد ها روی زیرشبکه های برنامه اجرا می شوند. در مقایسه با زیر شبکه برنامه، زیرشبکه سیستم دارای ویژگی های زیر است:
بلاک چین Internet Computer یک سخت افزار فیزیکی نیست که نیاز به یک مکان فیزیکی داشته باشد، بلکه این بلاک چین، منابع محاسباتی ارائه شده توسط مراکز داده مستقل در سراسر جهان را ترکیب می کند.
بر خلاف یک شبکه cloud عمومی یا خصوصی، بلاک چین Internet Computer متعلق به یک شرکت خصوصی نیست. بلکه یک ابزار عمومی با به روز رسانی و عملیات است که از طریق یک سیستم حاکمیتی الگوریتمی و غیرمتمرکز تعریف شده در پروتکل مدیریت می شود. معماری آن چندین کامپیوتر را قادر می سازد تا مانند یک ماشین مجازی بسیار قدرتمند عمل کنند.
گره های واقع در مراکز داده در سراسر جهان که Internet Computer را تشکیل می دهند در زنجیره های بلوکی زیر شبکه سازماندهی شده اند که با استفاده از رمزنگاری کلید زنجیره ای به یکدیگر متصل می شوند. معماری توزیع شده ارتباط ایمن بدون فایروال یا فناوری هایی که در برابر حمله آسیب پذیر هستند را امکان پذیر می کند. اپراتورهای گره ها به مراکز داده مبالغی پرداخت می کنند تا گره های خود را میزبانی کنند و برای کمک به ظرفیت محاسباتی و خدمات میزبانی، به منظور پشتیبانی از dapp های در حال اجرا در بلاک چین Internet Computer، پاداش دریافت می کنند.
مجموعه پروتکلهای توزیع شده ECDSA Internet Computer به سبدها اجازه میدهد تا کلیدهای عمومی ECDSA را به دست آورند و با استفاده از رمزنگاری کلید زنجیرهای، پیامها را زیر آن کلید عمومی به طور ایمن امضا کنند. بنابراین سبد ها می توانند یک کلید عمومی بیت کوین، یعنی آدرس بیت کوین داشته باشند و تراکنش های بیت کوین را امضا کنند.
برای آسان کردن این کار، ادغام بیت کوین به سبد ها دسترسی مستقیم به مجموعه UTXO بیت کوین را می دهد و همچنین به سبد ها اجازه می دهد تا تراکنش ها را به شبکه بیت کوین ارسال کنند. این امر با برداشتن جدیدترین بلوکها از ماینرهای مختلف بیتکوین توسط کپیهای یک زیرشبکه (و دستیابی به اجماع در مورد مجموعه فعلی UTXO) و با ارسال کپیهایی که تراکنشهایی با امضای یک سبد به شبکه بیتکوین ارسال میکنند، به دست میآید. توجه داشته باشید که این ادغام مستقیم با بلاک چین بیت کوین به هیچ طرف واسطه ای مانند پل متکی نیست و از این رو به هیچ فرض به واسط و نیاز به اعتماد به آن ندارد.
توسعه دهندگان می توانند با استفاده از IC Bitcoin API با پیش نمایش توسعه دهندگان، که شامل پروژه های نمونه در Rust و Motoko است، توسعه قراردادهای هوشمند را شروع کنند. پیشنمایش دهندگان را میتوان به صورت محلی برای بررسی API بیتکوین اجرا کرد. در پیشنمایش دهندگان ، شبکه بیتکوین با یک گره بیتکوین واحد محلی جایگزین میشود که میتواند به طور کامل توسط کاربر برای اهداف تست قرارداد هوشمند کنترل شود.
عملکرد بیت کوین در Internet Computer زمانی که این ویژگی به طور کلی در شبکه اصلی در دسترس باشد و به شکل سبد های مجازی و ارائه می شود. API ممکن است کمی تغییر کند، اما انتظار میرود که اساسا بین پیشنمایش دهندگان و انتشار شبکه اصلی یکسان باقی بماند، بنابراین ممکن است هنگام تغییر به نسخه اصلی بعدا نیاز به تطبیقهای جزئی کد در کد سبد باشد.