الورقة البيضاء · 10
حالات الاستخدام
ستة سيناريوهات توضح كيف تغطي الواجهات الأربع في A-REX Core، مع الخطافات، المواقف التي تواجهها فعليًا صومعة حبوب وتعاونية ومُصدِّر ومُقرِض وجهة تنظيمية. ويسمّي كل سيناريو الاستدعاءات المعنية.
1. الحبوب المخزّنة وإيصالات المستودعات
الوضع. تستلم صومعة تعاونية 250 طنًا من القمح من أحد الأعضاء، وتصدر شهادة إيداع، ثم تبيع الدفعة لاحقًا على جزأين.
على السلسلة.
createBatch({commodity: HS:100199, unit: KGM, producedAt: harvest, expiresAt: 0, originRef: hash(certificate #CD-88213), metadataHash, uri}, 250_000, member)— يشير الرمز إلى الإيصال القانوني؛ ولا يحلّ محله إلى أن تقرّ الولاية القضائية بذلك.setBatchStatus(id, 1 /* IN_STORAGE */, ref("SILO-3"))من الصومعة (STATUS_ROLE).transform(member, buyerA, [id], [100_000], [same commodity/unit], [100_000], ref("SALE-1"))— إعادة تكوين للدفعة، ولا حاجة إلى دور؛ وparentsOf(newId) == [id].- البيع الثاني بالطريقة نفسها؛ ويبقى 50 طنًا من الكمية المتبقية في المعرّف الأصلي.
- عند السحب المادي تُحرق كميات المشتري:
burn(buyerA, newId, 100_000)؛ وتسحب الصومعة الدفعة الأم من التداول عندما تفرغ.
لماذا يهم ذلك. المعروض دقيق (totalSupply)، وسجل المنشأ سلسلة من أحداث BatchTransformed، ويبقى سجل الإيصالات هو المرجع.
2. التمويل ما قبل الحصاد (CPR، وعقد آجل، ووارانت على محصول مستقبلي)
الوضع. يصدر منتج برازيلي CPR إلكترونيًا مقابل 1,000 طن من فول الصويا المقرر حصاده في أبريل؛ ويقدّم مُقرِض تمويلًا مقابله.
على السلسلة.
createBatch({commodity: HS:120190, unit: TNE, producedAt: 0, expiresAt: 0, originRef: hash(CPR-e registry id), …}, 1000, producer)— تمثّل القيمةproducedAt == 0في المعيار دفعة مستقبلية.ExpiryHook(allowPreHarvestTransfers = true)كي يمكن إحالة المستحقات؛ أما السوق الفورية فتنشره بالقيمةfalse.- الحق الضماني للمُقرِض:
setFrozenTokens(producer, id, 1000)منENFORCER_ROLE(المنصة التي تتصرف بموجب اتفاقية الرهن). ويحتفظ المنتج بالملكية لكنه لا يستطيع تحريك الكميات. - عند الحصاد:
setBatchMetadataمع تذكرة الوزن؛ وsetBatchStatus(id, 2 /* HARVESTED */)؛ وتسجّل المنصةproducedAtفي البيانات الوصفية (فالحقل على السلسلة غير قابل للتغيير بحكم التصميم؛ وتغيّر الحالة هو الواقعة على السلسلة). - السداد:
setFrozenTokens(producer, id, 0). التعثر:forcedTransfer(producer, lender, id, 1000)بموجب الرهن.
لماذا يهم ذلك. أكثر واقعتين ائتمانيتين شيوعًا في الزراعة — الرهن والتنفيذ — هما استدعاءان، كلاهما قابل للتدقيق، وكلاهما متوافق مع "السيطرة" بموجب المادة 12 من UCC ومع الأدوات القائمة على السجلات.
3. تصدير البن بموجب EUDR
الوضع. يشحن مُصدِّر كولومبي 20 طنًا من البن الأخضر إلى محمّصة في هامبورغ بعد 30 ديسمبر 2026.
على السلسلة.
createBatch({commodity: HS:090111, unit: KGM, producedAt: harvest, originRef: hash(DDS reference), …}, 20_000, exporter). وتبقى مضلّعات قطع الأراضي في نظام معلومات الاتحاد الأوروبي وفي التخزين المقيَّد لدى المُصدِّر.- مسؤول الامتثال لدى المُصدِّر جهة إصدار موثوقة للموضوع
EUDR:DDS:attest(id, EUDR:DDS, hash(DDS reference), 0). AttestationHook(HS:090111 → EUDR:DDS) على الرمز: فتُرجع تحويلات البن بلا إفادةATTESTATION_MISSING.- البيع:
safeTransferFrom(exporter, roaster, id, 20_000, data)؛ وتحتفظ المحمّصة، بوصفها مشغّلًا لاحقًا، بمرجع DDS لخمس سنوات — فهو في البيانات الوصفية للدفعة التي تحوزها الآن. - التحميص:
transform(roaster, roaster, [id], [20_000], [{commodity: HS:090121, …}], [16_800], ref("ROAST-2027-03"))— تشير الدفعات الأم للدفعة المحمّصة إلى الدفعة الخضراء، ومن خلالها إلى DDS.
لماذا يهم ذلك. تبقى سلسلة المراجع في اللائحة قائمة بعد المعالجة، ولا توجد أبدًا على سلسلة عامة البيانات الجغرافية التي يقرر EDPB أنه يجب ألا تكون عليها.
4. المنتجات القابلة للتلف وسلسلة التبريد
الوضع. تشحن شركة تعبئة فراولة عمرها التخزيني 12 يومًا؛ ويُسجَّل انحراف في درجة الحرارة أثناء النقل.
على السلسلة.
createBatch({commodity: GTIN:…, unit: BX, producedAt: packDate, expiresAt: packDate + 12 days, …}, 4_800, packer)؛ وتحمل البيانات الوصفية كود دفعة التتبع وفق FSMA الذي أُسند عند التعبئة الأولية.- يمنع
ExpiryHookأي تحويل بعدexpiresAt(BATCH_EXPIRED)؛ ويظل الحرق ممكنًا لأغراض الشطب. - يُرجع خطاف سلسلة التبريد (
DeliveryHook) القيمةIN_TRANSITأثناء النقل ويسجّل نقاط المرور فيonExecuted. - يُثبِت مزود الخدمات اللوجستية الانحراف بإفادة:
attest(id, COLDCHAIN:EXCURSION, hash(sensor log), 0)؛ ويمكن لخطاف في جانب المشتري أن يرفض الاستلام (سياسةcanReceive) أو أن يسوّي الطرفان الأمر خارج السلسلة مع اعتماد الإفادة دليلًا. - التسليم:
burnمن المستلم، أوsetBatchStatus(id, 255 /* RETIRED */, ref("DELIVERED"))من شركة التعبئة.
لماذا يهم ذلك. العمر التخزيني والحيازة وحوادث الجودة ثلاثة خطافات مستقلة فوق سجل دفعة واحد؛ ولم يتطلب أي منها تغييرًا في الرمز.
5. توزيع التعاونية وتسوية الأعضاء
الوضع. تسوّق تعاونية دفعة مشتركة قدرها 1,000 طن وعليها أن توزّع العائدات والحبوب المتبقية على 40 عضوًا.
على السلسلة.
- يسلّم الأعضاء إلى الدفعة المشتركة: فكل عملية تسليم هي
createBatchللعضو، ثمtransform(member, coop, [ids], [amounts], [pool spec], [amount], ref("POOL-2026"))تدمجها في الدفعة المشتركة (إعادة تكوين دفعة، ولا حاجة إلى دور إذا كانت السلعة ووحدة القياس نفسيهما). - تسرد
parentsOf(pool)كل عملية تسليم من الأعضاء — فمفتاح التوزيع على السلسلة. - بيع الدفعة المشتركة إلى مشترٍ:
safeTransferFromواحدة. - المتبقيات:
transform(coop, coop, [pool], [remaining], [40 outputs], [per-member amounts], ref("RESIDUAL"))وsafeBatchTransferFromإلى الأعضاء.
لماذا يهم ذلك. الدمج في دفعة مشتركة وفكّها، وهما اليوم في دفاتر التعاونيات، عمليتا نسب بكميات دقيقة.
6. سحب المنتج من السوق
الوضع. يجد مختبر أفلاتوكسين فوق الحد المسموح في دفعة ذرة جرى تقسيمها بالفعل ومعالجة جزء منها.
على السلسلة.
- يُثبِت المختبر (جهة إصدار موثوقة للموضوع
LAB:AFLATOXIN) النتيجة بإفادة:attest(id, LAB:AFLATOXIN, hash(report), 0). - تسحب المنصة الدفعة من التداول:
setBatchStatus(id, 255, ref("RECALL-2026-07"))؛ وتتوقف التحويلات فورًا (ARexBatchRetired)، ويظل الحرق (الإتلاف) ممكنًا. - التتبع الأمامي: كل
BatchTransformedتحتويinputIdsفيه علىidتُنتج الدفعات الفرعية؛ وبصورة تعاودية، دفعات الأعلاف والأغذية المتأثرة. التتبع الخلفي:parentsOf. - تتلقى الجهة التنظيمية قائمة بالمعرّفات والحاملين المتأثرين من سجل الأحداث — فيُستوفى اشتراط 24 ساعة باستعلام في المفهرس لا ببحث في السجلات.
لماذا يهم ذلك. نطاق سحب المنتج استعلام رسم بياني على أحداث موحّدة، وهو ما صُمّم حدث التتبع الحرج للتحويل التصنيعي في FSMA 204 لإتاحته.
ما تشترك فيه هذه السيناريوهات
- أربع واجهات وثلاثة خطافات مرجعية وسجل الإفادات تغطي السيناريوهات الستة جميعها؛ ولم يحتج أي سيناريو إلى تغيير في المعيار.
- الأدوات القانونية (الإيصالات، وCPR-e، وDDS، والتقارير المختبرية) يُشار إليها وتُجزَّأ، ولا يُعاد تنفيذها.
- الإنفاذ (التجميد، والتحويل القسري، والسحب من التداول) حاضر في كل سيناريو تمويل وامتثال، وهو دائمًا حدث.
- لا تظهر البيانات الشخصية على السلسلة أبدًا.