اصل ماجرا
مهاجرت از x402 v1 به v2 نیاز به حذف بستههای قدیمی و نصب نسخههای جدید تحت اسکوپ @x402 دارد؛ درخواستهای 402 به هدر PAYMENT-REQUIRED منتقل شده و سرور باید متادیتای کشف مسیرها را ثبت کند. این تغییرات باعث حذف ۲۴ آسیبپذیری npm شد اما مستندات کمی دارد.
متن کامل ترجمهشده
ما FiatDock را اجرا می کنیم - یک USDC غیر ذخیره ای ↔ بانک در / off-ramp که در آن آژانس های AI پرداخت $0.05 در هر تماس از x402. این هفته ما کل پکیج (برنده Express، دریافت مشتری، سرور MCP) را از x402 v1 به پروتکل v2 مهاجرت می کنیم. آن را یک شام طول کشید، همه 24 از آسیب پذیری های npm ما را کشتند، و تقریبا هیچ یک از آنها در هر جا ثبت شده است. اینجا نقشه ای است که ما می خواستیم داشته باشیم. 1. v2 یک ارتقاء نیست - این یک سطح متفاوت است پکیج هایی است که شما استفاده می کنید (x402-express, x402-fetch, x402) خط v1 است و آنها را در 1.2.2 متوقف می کنند. هیچ v2 از آنها وجود ندارد. پروتکل v2 در زیراز طرف سرور: سرور منبع + سیستم ثبت نام v1 یک خط یک خط به طور آشکار می شود - و شما دریافت می شود کشف متادا در هر راه: واردات { پرداختMiddleware, x402ResourceServer } از “@x402/express”; واردات { ExactEvmScheme } از “@x402/evm/exact/server”; واردات { HTTPFacilitatorClient } از “@x402/core/server); استفاده از متادا ( const facilitator = new HTTPFacilitatorClient({ url: "" URL_0” }); سرور const = new x402ResourceServer(facilitator) .register(eip155:84532), جدید ExactEvFacilitatorClient(); app.useMiddleware({اگر شما فایل های خود را با نام دوستانه saybase-sepolia. - URL کمک کننده تغییر نکرده است. https://x402.org/facilitatorserves v2 (/supported,/verify,/settle) پشت یک 308 redirect. Thefacilitator.x402.orghost شما در برخی READMEs نمی بینید حل نمی کند. - Middleware باید نوع های پشتیبانی شده را در راه اندازی (پایان آخرینMiddlewarearg) همگام کنید. بدون آن، حتی ارسال یک چالش باFacilitator به طور دقیق در eip155:84532 پشتیبانی نمی کند. تست های آنلاین شما اکنون نیاز به دسترسی شبکه - برنامه برای آن. 3. چالش 402 مهاجرت به عنوان v1 قرار دادن نیازهای پرداخت در بدن JSON. v2 402es یک بدن خالی دارد; چالش پایه JSON در PAYMENT-REQUاگر شما 402s را به ارگان (ما آنها را به خطای ابزار MCP کپی), به روز رسانی آن راه — کاربران شما به غیر این صورت خواهد دید {} و فایل مسائل پیچیده. 4. طرف مشتری: طرح ها، نه امضا واردات { wrapFetchWithPaymentFromConfig } از “@x402/fetch”; واردات { ExactEvmScheme } از “@x402/evm”; واردات {privateKeyToAccount(KEY)) } از “viem/accounts”; const payFetch = wrapFetchWithPaymentFromConfig(fetch, {schemes: [ شبکه: “eip155:*]، مشتری جدید: ExactEvmScheme(privateKeyToAccount(KEY)) }, }); } e155وی در ادامه با اشاره به این که در این مطلب، به عنوان یکی از مهم ترین موضوعاتی که در این مورد مطرح شده است، می توان گفت که این موضوع در ادامه به عنوان یکی از مهم ترین موضوعاتی است که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، به عنوان یکی از مهم ترین موضوعاتی که در این زمینه مطرح شده است، اشاره شده است.
چرا مهمه؟
این ارتقا امنیت و سازگاری با استانداردهای جدید CAIP‑2 را برای اکوسیستم پرداختهای وب ۴۰۲ بهبود میبخشد.
به درد کی میخوره؟
developers, devops, security_professionals
تو عمل چی کار کنیم؟
توسعهدهندگان باید بستههای قدیمی را حذف، وابستگیهای جدید را نصب و منطق پرداخت را برای هدر PAYMENT-REQUIRED بازنویسی کنند.
نظر Blue IT News
مهاجرت به x402 v2 نه تنها بستهها را به اسکوپ جدید میبرد بلکه ساختار درخواست/پاسخ 402 را به هدر منتقل میکند؛ این تغییرات زیرساختی میتواند باعث بروز خطاهای مخفی در پروژههای موجود شود.
<div class=“disclosure”> این صفحه ترجمه و تفسیر کاملی از گزارش اصلی Dev است که توسط تیم تحریریه بلو آی تی نیوز به فارسی ترجمه و تحلیل شده. برای مشاهده نسخه اصلی، به منبع مراجعه کنید. </div>