دفینیتی dfx را بازنشسته میکند: نگاهی به انقلاب توسعهدهندگان با ابزار جدید "icp-cli"
بنیاد دفینیتی رسماً در حال انتقال اکوسیستم توسعهدهندگان رایانه اینترنتی از ابزار قدیمی dfx است. با ابزار جدید icp-cli، پیکربندی YAML، محیطهای محلی پروژه و ورود بدون دردسر با هویت اینترنتی از طریق ترمینال آشنا شوید.
نکات کلیدی
- • بنیاد دفینیتی رسماً در حال انتقال اکوسیستم توسعهدهندگان رایانه اینترنتی از ابزار قدیمی dfx است
- • با ابزار جدید icp-cli، پیکربندی YAML، محیطهای محلی پروژه و ورود بدون دردسر با هویت اینترنتی از طریق ترمینال آشنا شوید

دفینیتی dfx را بازنشسته میکند: نگاهی به انقلاب توسعهدهندگان با ابزار جدید "icp-cli"
سالهاست که ابزار خط فرمان dfx ستون فقرات بیچونوچرای جریان کار توسعهدهندگان در رایانه اینترنتی (ICP) بوده است. اما در یک تغییر پارادایم بزرگ، بنیاد دفینیتی رسماً در حال آغاز عصری جدید است. دفینیتی نسخه v0.3.0 از icp-cli را منتشر کرده است؛ آخرین نقطه عطف بتا پیش از انتشار رسمی نسخه v1.0 که نشاندهنده بازنشستگی ابزار قدیمی dfx است.
icp-cli صرفاً یک تغییر نام ساده نیست، بلکه یک بازسازی ساختاری از پایه است که برای رفع مشکلات دیرینه توسعهدهندگان، تضمین ساختهای تکرارپذیر و بهبود چشمگیر تجربه توسعهدهنده (DX) در سطح ترمینال طراحی شده است.
خداحافظ JSON، سلام YAML و "دستورالعملهای" ساخت
اولین تغییر بزرگی که توسعهدهندگان متوجه آن خواهند شد، انتقال از JSON به YAML است. فایلهای پیکربندی پروژه اکنون در icp.yaml قرار دارند. از آن مهمتر، icp-cli ابزار CLI را با استفاده از یک سیستم پیمانهای دستورالعمل (recipe)، از کامپایلرها یا محیطهای زمان اجرای زبانهای برنامهنویسی خاص مستقل میکند.
در گذشته، بهروزرسانی dfx فرآیند حساسی بود زیرا محیطهای ساختِ سفتوسخت و یکپارچهای را درون خود داشت. با icp-cli، ساخت باینریهای وباسمبلی (WASM) مستقیماً به زنجیره ابزارهای زیرین واگذار میشود. دستورالعملهای پینشده و قابل استفاده مجدد (مانند @dfinity/rust یا @dfinity/motoko) تضمین میکنند که فرآیند ساخت کاملاً تکرارپذیر باقی بماند.
بهروزرسانی v0.3.0 این جداسازی را با پلاگینهای همگامسازی (sync plugins) فراتر برده است. کانیسترهای دارایی (Asset canisters) — که پیش از این مستقیماً در باینری CLI تعبیه شده بودند — اکنون از طریق یک پلاگین ایزولهشده (sandboxed) از نوع WASM همگامسازی میشوند. این امر تضمین میکند که ابزار CLI هرگز به دلیل پیکربندیهای قدیمی داراییها دچار کندی نشود.
محیطهای منطقی در برابر شبکههای محلی پروژه
استقرار کد در رایانه اینترنتی نیز دستخوش یک ارتقای مفهومی عظیم شده است:
- محیطهای منطقی (Logical Environments): توسعهدهندگان اکنون به جای استفاده از
--network ic، از پرچم-eیا--environmentاستفاده میکنند (مثلاًicp deploy -e ic). این کار آدرسهای اینترنتی سختکد شده شبکه را از منطق کانیستر جدا میکند و به توسعهدهندگان اجازه میدهد تا چندین محیط مجزا (مانند استیجینگ و پروداکشن) را روی یک شبکه فیزیکی زیربنایی هدف قرار دهند. - شبکههای محلی پروژه (Project-Local Networks): برعکس
dfxکه یک شبکه سراسری مشترک را در پسزمینه اجرا میکرد،icp-cliیک شبکه ایزوله برای هر پروژه را با استفاده از یک پوسته سبک PocketIC اجرا میکند. اجرای دستورicp network start -dیک محیط ایزوله محلی برای پروژه راهاندازی میکند که از قبل با کانیسترهای سیستمی، ICP آزمایشی و سایکلها (cycles) آمادهسازی شده است.

ورود به هویت اینترنتی بهصورت بومی در ترمینال
شاید هیجانانگیزترین پیشرفت برای کارهای روزمره، امکان ورود به سیستم در سطح ترمینال با هویت اینترنتی (Internet Identity) باشد. توسعهدهندگان اکنون میتوانند به صورت برنامهنویسی، یک هویت مبتنی بر وب را به نشست CLI خود متصل کنند. شناسه (principal) ترمینال شما کاملاً با شناسه ایجادشده در فرانتاند وب مطابقت خواهد داشت و دردسر ساخت دستی و تایید کلیدهای توسعهدهنده مجزا را از بین میبرد.
علاوه بر این، icp-cli ویژگی دامنههای محلی کاربرپسند (Friendly Local Domains) را معرفی میکند (دیگر نیازی به کپی و پیست کردن شناسههای طولانی و مبهم کانیسترها در مرورگر نیست) و همچنین ابزار دستیار کندید (Candid Assist) که راهنماییهای تعاملی و تکمیل خودکار را در ترمینال برای نوشتن فراخوانیهای پیچیده کانیستر ارائه میدهد.
نحوه ارتقا
مجموعه ابزار جدید به صورت جهانی در دسترس است. شما میتوانید ابزارهای اصلی را از طریق npm نصب کنید:
npm install -g @icp-sdk/icp-cli @icp-sdk/ic-wasm
یا در سیستمعاملهای macOS و لینوکس با استفاده از Homebrew:
brew install icp-cli
با نزدیک شدن به انتشار رسمی نسخه 1.0، دفینیتی از تمام تیمهای توسعهدهنده فعال میخواهد که راهنمای مهاجرت را مطالعه کرده و پروژههای خود را به icp.yaml منتقل کنند تا برای آینده محاسبات تماماً زنجیرهای (on-chain) آماده شوند.
برچسبها
منابع و ارجاعات مستند
پیشنهاد مطالعه بعدی

باگ «جمعه سیزدهم»: کالبدشکافی رویداد ضرب مضاعف ckBTC

نبرد بر سر ژئوپلیتیک در وب۳: نگاهی به درون پروپوزال رد شده «سابنت G20» رایانه اینترنتی

تغییر به سرعت دوبرابر: چرا هویت اینترنتی رایانه اینترنتی به چرخه انتشار دو بار در هفته منتقل میشود
خوشتان آمد؟ مقاله بعدی را بگیرید
در خبرنامه عضو شوید تا راهنمای بعدی در ایمیلتان باشد — بدون مزاحمت، لغو عضویت در هر زمان.