حزمة تطوير ARC-89 لبيانات الأصول جاهزة على Testnet، وسجل MainNet ما زال بلا موعد
حزمة تطوير TypeScript التي أصدرتها مؤسسة Algorand لمعيار ARC-89 تخزّن أوصاف الأصول في مساحة الصناديق (box storage) لتطبيق السجل بدلاً من ملف خارج السلسلة. وهي تعمل على Testnet، حيث احتوى السجل على 20 سجلاً حتى 27 أكتوبر، بينما ما زال إدخال النشر على MainNet في المواصفات يحمل عبارة TBD.

يمكن الآن لأي مطوّر يريد أن يبقى وصف أصل Algorand على السلسلة نفسها بدلاً من استضافته في ملف على خادم خارجي أن يستخدم حزمة TypeScript مخصصة لذلك. فحزمة asa-metadata-registry-ts1 هي عميل لمعيار ARC-892، أي سجل بيانات ASA، وهو تطبيق واحد تحتفظ مساحة box storage الخاصة به بسجل واحد لكل أصل، مفتاحه معرّف الأصل المكون من ثمانية بايتات. وتتولى مؤسسة Algorand3 رعاية المعيار ونشر الحزمة.
بحسب وثائقها، تقرأ الحزمة السجل عبر استدعاء واحد لعقدة، أو عبر محاكاة تعيد ما يراه العقد الذكي. وتنشئ السجلات وتستبدلها وتحذفها، كما تقسّم البيانات الوصفية الكبيرة إلى أجزاء، وتنقل الأصول الموصوفة وفق الأعراف الأقدم ARC-3 وARC-19 وARC-69. أما الإصدار الذي أوصلها إلى هذه الحالة فهو طفيف: إذ يقتصر v1.0.0-beta.104، الصادر في 21 أكتوبر، على إصلاح خلل واحد وترقية أداة بناء لمعالجة تنبيه أمني عالي الخطورة. أما التغيير الجوهري فقد وقع في اليوم السابق، مع الإصدار v1.0.0-beta.95، وهو إصدار غير متوافق مع الإصدارات السابقة يستهدف عقود السجل v1.0.0 على AVM 13 بحسب ملاحظات الإصدار.
كيف يُحفظ السجل على السلسلة
تُثبَّت الحقول الوصفية لـ Algorand Standard Asset عند الإنشاء، وهي الاسم والوحدة والعرض الكلي والكسور العشرية والرابط. أما ما يقرؤه المشتري من صورة ووصف وسمات فكان يُحفظ في مكان آخر، إما في ملف IPFS يقع خلف الرابط، أو في ملاحظة JSON ضمن معاملة الإعداد. ويضع السجل الجزء الأصغر والمنظّم داخل حالة السلسلة. ولكل سجل ترويسة ثابتة من 516 بايتاً، تحمل أعلام القابلية للعكس وعدمها، وتجزئة (hash) تربط محتواه. وتتم القراءة عبر algod، أي واجهة برمجة العقدة، أو مباشرة من عقد ذكي آخر على AVM.
يستحق المسار الأخير وقفة خاصة. فالعقد القادر على قراءة سجل أصل ضمن المجموعة نفسها التي تنقل الأصل يمكنه أن يتصرف بناءً على سماته عند التسوية، بدلاً من الاعتماد على مصدر بيانات خارج السلسلة. وقد أضاف AVM 137، الذي صدر مع Go-Algorand 5.0.08 في أغسطس، رموز 'foreign' للصناديق تتيح قراءة صناديق تطبيق آخر.
التكلفة
المبلغ المطلوب هنا وديعة وليس رسوماً. ففي دليل الاستخدام الخاص بالحزمة، يُظهر إنشاء سجل بحجم 117 بايتاً دفعة حد أدنى للرصيد قدرها 72,9009 microALGO، أي 0.0729 ALGO. ويُرجع مثال الحذف فيها مبلغ 37,70010 microALGO لسجل أصغر. وتحدد المواصفات المبلغ بحساب رسم ثابت مضافاً إليه معدل لكل بايت مضروباً في حجم التغيير، مع احتساب مفتاح الصندوق والترويسة والبيانات الوصفية، وتتيح المواصفات للعملاء قراءة المعاملين معاً. وتُسترد الوديعة عند حذف السجل.
الفراغ الذي كان يُفترض أن يملأه MainNet
ثلاثة مواضع يُفترض أن تحمل اسم سجل MainNet، وهي كلها فارغة. فجدول النشر في المواصفات يكتب 'TBD' أمام MainNet، وملف النشر في الـ SDK يضبط معرّف تطبيق الشبكة الرئيسية على null مع التعليق 'mainnet app id is TBD'. أما مسألة مفتوحة11 التي تسرد خطوات المتابعة بعد انتهاء النشر، فتنتهي بالسطر التالي: Blocked on the MainNet deployment of the registry.12
لكن صاحب المعيار يصوّر الأمر على أنه وشيك. فقد كتب Cosimo Bassi، الذي ينشر باسم @cusma_b، في 20 أكتوبر أن ARC-89 'يقترب من MainNet'، وأن حزمتي Python وTypeScript 'حُدّثتا إلى v1.0.013 وتقتربان من الإصدار'. ويقول طلب دمج دمجه في المواصفات إنه 'يغلق آخر الثغرات في ARC-89 قبل نشر MainNet14'.
سجلان على Testnet، واحد منهما محدّث
تشير الحزمة إلى تطبيق Testnet رقم 77296835415. وهذا التطبيق موجود على Testnet ولم يُحذف، وتحتوي مساحة صناديقه على 20 سجلاً وصفياً، وذلك وفق القراءة في 27 أكتوبر. أما صفحة ARC-89 في بوابة مطوّري Algorand فما زالت تذكر التطبيق 7533240841617، وتسمّي حقل إصدار السجل 'Last Modified Round'. بينما تستخدم المواصفات والحزمة الرقم 772968354 والاسم 'Revision'. والتطبيقان موجودان على Testnet ولم يُحذف أيٌّ منهما. والمطوّر الذي يتبع البوابة يكتب شيفرته للتطبيق الأقدم.
وكان Lora18، المستكشف المرفق مع AlgoKit، قد قرأ سجلاً في السجل وفق نسخة 2.4.019-beta، وذلك بحسب ما أفاد به PXke في أغسطس.
التثبيت الافتراضي يعطي نسخة مؤقتة
هناك تفصيل في التغليف يستحق الانتباه قبل التثبيت. فعلى npm، يُظهر سجل الحزمة20 أن الوسمين 'latest' و'beta' يشيران إلى 0.0.1-beta.0، وهو إصدار صدر في 27 مارس ويصف نفسه بأنه 'asa-metadata-registry-sdk placeholder for Algorand'. أما الشيفرة العاملة فموجودة على الوسم 'main'، عند الإصدار 1.0.0-beta.10. وبحسب أوقات النشر على npm، لم يظهر أي إصدار بين 27 أبريل و20 أكتوبر. غير أن المستودع كان يتحرك، إذ تشير صفحة الإصدار beta.5 إلى 11521 التزاماً أُضيفت إلى main منذ ذلك الإصدار.
ما يضمنه السجل وما لا يضمنه
يفرض السجل من يحق له الكتابة، وحجم السجل الأقصى، وهل يمكن تغييره. وتُمنح الصلاحية لعنوان مدير الأصل لا لمنشئه. ويمكن للمدير أن يعلن السجل غير قابل للتغيير، وتنص المواصفات على أن السجل نفسه لا يجوز تحديثه بعد نشره. ويتعامل السجل مع متن البيانات الوصفية كبايتات غير مفسَّرة، لذلك يجب على المستهلكين التحقق من السجل وادعاءات أعلامه قبل الوثوق بها. ولا تذكر المواصفات ولا مستودع المرجع ولا مستودع TypeScript أي تدقيق أمني.
حجم الاستخدام
الاستخدام صغير لكنه قابل للقياس. فقد سجلت حزمة npm 36 عملية تنزيل في الأسبوع الأخير و96 في الشهر الأخير، وذلك حتى 27 أكتوبر.
- سجلات البيانات الوصفية على TestNet: 20 سجلات.
- الحد الأدنى للرصيد لسجل صغير: 72,900 microALGO.
- عمليات تنزيل SDK الشهر الماضي: 96 عمليات تنزيل.
ولا يسرد ملف التبني22 الخاص بالمعيار أي محافظ أو أدوات أو بنية تحتية أو تطبيقات لامركزية حتى الآن، سوى مستكشف واحد قيد التطوير. ما زالت الواجهة الأولية للمواصفات تحمل عبارة 'Last Call' مقابل موعد نهائي هو 1 فبراير 2026.23
والمطوّر الذي يجرّب الحزمة اليوم يثبّت الوسم main، ويشير إلى التطبيق 772968354، ويعمل على Testnet.
المصادر
- Release v1.0.0-beta.10 · algorandfoundation/asa-metadata-registry-ts · GitHub4
- github.com1
- ARCs/ARCs/arc-0089.md at main · algorandfoundation/ARCs · GitHub2
- Release v1.0.0-beta.9 · algorandfoundation/asa-metadata-registry-ts · GitHub5
- registry.npmjs.org20
- feat(deployments): add the MainNet registry deployment · Issue #133 · algorandfoundation/asa-metadata-registry-ts1124
- raw.githubusercontent.com: /algorandfoundation/ARCs/main/adoption/arc-0089.yaml22
- ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 ·25
- raw.githubusercontent.com: /algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md26
- Release v1.0.0 · algorandfoundation/arc89 · GitHub27
- MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand28
- x.com29
- Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub30
- Issues · algorandfoundation/asa-metadata-registry-ts · GitHub31
تم التحقق من 18 رقمًا في هذه القصة. قُرئ منها رقمان مباشرة من السلسلة.عرض كل عمليات التحقق
المصادر
- 1asa-metadata-registry-ts github.com↩
- 2ARC-89 github.com↩
- 3مؤسسة Algorand github.com↩
- 4v1.0.0-beta.10 github.com↩
- 5v1.0.0-beta.9 github.com↩
- 11مسألة مفتوحة github.com↩
- 15772968354 lora.algokit.io↩
- 16753324084 lora.algokit.io↩
- 18Lora lora.algokit.io↩
- 20سجل الحزمة registry.npmjs.org↩
- 22ملف التبني raw.githubusercontent.com↩
- 25ARC-89: AVM 13, global revision tracker, content-only metadata hash, canonical discovery by cusma · Pull Request #481 · github.com↩
- 26raw.githubusercontent.com/algorandfoundation/asa-metadata-registry-ts/main/docs/cookbook.md raw.githubusercontent.com↩
- 27Release v1.0.0 · algorandfoundation/arc89 · GitHub github.com↩
- 28MainNet and TestNet Update: Go-Algorand 5.0.0 - Announcements - Algorand forum.algorand.co↩
- 29x.com/cusma_b/status/2112579605584355771 x.com↩
- 30Release v1.0.0-beta.5 · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩
- 31Issues · algorandfoundation/asa-metadata-registry-ts · GitHub github.com↩