diff --git a/CONFORMANCE.ar.md b/CONFORMANCE.ar.md new file mode 100644 index 0000000..49979bb --- /dev/null +++ b/CONFORMANCE.ar.md @@ -0,0 +1,53 @@ +> ترجمة مجتمعية (مسوّدة) — سياسة NTARI رقم P2-002، البث العالمي المتعدد اللغات. المصدر: CONFORMANCE.md (الأصل الإنجليزي، لقطة بتاريخ 2026-10-05). مسوّدة مجتمعية بمساعدة آلية، في انتظار مراجعة المشرف الإقليمي وفق §3.1 من P2-002. تبقى المواصفات التقنية الأساسية بالإنجليزية وفق §2.2. +> +> تصحيحات الترجمة مساهمات نرحّب بها ونقدّرها كسائر المساهمات، فإذا لاحظت خطأً +> في هذه الترجمة فيمكنك إصلاحه بنفسك عبر إنشاء fork للمستودع وفتح pull +> request: https://github.com/NTARI-RAND/Agrinet + +> الأصل الإنجليزي هو النص المعياري. تُقدَّم هذه الترجمة للقراءة لا للتفسير: فحيثما اختلفت عن `CONFORMANCE.md`، فالحُكم للنص الإنجليزي. وتبقى الكلمات المفتاحية المعيارية (MUST، MUST NOT، SHOULD، SHOULD NOT، MAY) وأسماء الحقول والوسوم والمعرّفات بالإنجليزية لأنها تمثّل عقد المطابقة. + +# المطابقة — العمارة ذات الوجهين (Janus-Facing Architecture) + +وصف المستودع لنفسه بمصطلحات العمارة ذاتها، مذكورًا **قبل** أي شيء خاص بالمنتج، وفقًا لقاعدة الترتيب في العمارة. وكل ادّعاء مطابقة مربوط بالآلية والفحص اللذين يفرضانه، وإلا وُسِم بأنه بديل مؤقت أو قيد المراجعة. فالنثر غير المربوط تسويق. + +العمارة هي **العمارة ذات الوجهين (Janus-Facing Architecture, JFA)** — وثيقة العمارة الموحّدة لـ NTARI، وهي توثيق حرّ ضمن مشاع المشروع المرخّص بـ AGPL-3.0. + +## إعلان الدور + +Agrinet هو **اقتصاد** من اقتصادات **طبقة الاقتصاد والتعليم (Economy & Education layer)** في JFA — وهو مثيل الاقتصاد المرجعي: تنسيق زراعي وتبادل، يطبّق الطبقات الأربع التي تحته (الركيزة، والسجل، والعهد، والحَكامة) على نشاط اجتماعي-اقتصادي محدّد. ويحمل مثيلًا خاصًا به من السجل لكل مشغّل، ويتبنّى مقياسَ التقييم الخاص بالعهد على المستوى الاقتصادي. + +| مصطلح هذا المستودع | الدور في العمارة | +|---|---| +| Mycelium | **دفتر الحوار الخاص بكل مشغّل** — إضافيّ فقط، مسلسل بالتجزئة، مختوم بالحوار | +| المشغّل (Operator) | **مشغّل**: مثيل منصّة واحد يحفظ سجله الخاص | +| تبنّي LBTAS | **العهد** على المستوى الاقتصادي — توزيعات، لا متوسطات أبدًا | +| تسوية الضمان (Escrow settlement) | وضع الاقتصاد في **المرحلة الأولى**: الضمان الآن، والائتمان لاحقًا، بقرار الحَكامة | + +## الثوابت وارتباطاتها — بحسب `main` + +الصراحة أولًا: **آلية اقتصاد الأعضاء في JFA قيد المراجعة، وليست على `main`.** فتحديد نطاق السجل لكل مشغّل، والصيغة الأولية لنقطة تحقّق الشاهد، ونموذج المشغّل، ومحاسبة التبادل ذات المحصّلة الصفرية، كلها موجودة على فروع إعادة هيكلة مفتوحة؛ و`main` اليوم هو التطبيق من دونها. ويرتبط كل ثابت أدناه عند دمج فرعه، ويُحدَّث هذا الجدول في طلب الدمج (PR) نفسه (قاعدة المرافقة). + +| الثابت (في العمارة) | الحالة | الآلية الملتزَم بها | +|---|---|---| +| الدفتر **إضافيّ فقط**؛ والتصحيحات قيود جديدة؛ والإسقاط يضيف تعليقًا، ولا يمحو أبدًا | قيد المراجعة (In review) | Mycelium: سجلات لكل تبادل مسلسلة بالتجزئة؛ لا تحديث ولا حذف | +| الوحدة الذرّية هي **الحوار**، المختوم مكتملًا وساكنًا | قيد المراجعة (In review) | ختم الحوار يبقى مفتوحًا بفعل ادّعاءات الضرر غير المحسومة؛ ويُسنَد إلى غير المقيّمين قيمة افتراضية موسومة | +| **لا معلومات تعريف شخصية (PII) في المشاع** | قيد المراجعة (In review) | تُثبِّت السلسلةُ شكلَ التبادل؛ أما السرد فيُشار إليه، ويبقى محليًا لدى العضو، وقابلًا للمحو | +| كل مشغّل يحفظ **سجله الخاص**؛ لا سلسلة عالمية | قيد المراجعة (In review) | تحديد نطاق السجل لكل مشغّل؛ والشهادة (لا الإجماع) بوصفها نموذج عدم المراوغة | +| الشهادة مع الاستقلالية؛ وعمليات النشر ذات الشاهد الواحد **موسومة بأنها بدائل مؤقتة** | قيد المراجعة، بديل مؤقت (In review (stand-in)) | الصيغة الأولية لنقطة تحقّق الشاهد؛ والاتحاد هو المسألة المفتوحة 2 | +| السمعة محمولة بوصفها **توزيعًا كاملًا**، ولا يُحسَب لها متوسط أبدًا | قيد المراجعة (In review) | LBTAS v2 (الإصدار الخالي من حساب المتوسطات) هو الحدّ الأدنى للتبنّي | +| الأرصدة **دالّة حتمية للسجل المختوم**؛ وتتصافى التبادلات إلى الصفر | قيد المراجعة (In review) | محاسبة التبادل ذات المحصّلة الصفرية | +| التسوية **بالضمان (escrow)**؛ ومفتاح الائتمان من شأن الحَكامة، ولا يكون أبدًا قيمة افتراضية في الشيفرة | وضع قائم (Standing posture) | الضمان أولًا؛ وأي انتقال إلى ائتمان يُصدره الأعضاء يتطلّب موافقة مجلس الإدارة، وإخطار الأعضاء، واستكمال مراجعة تنظيمية | + +## البدائل المؤقتة والمسائل المتبقية المفتوحة + +- **البديل المؤقت ذو الشاهد الواحد.** إلى أن يوقّع شهود مستقلون مصادقةً على نقاط تحقّق المشغّل، يبقى عدم المراوغة في السجل مُقرًّا ذاتيًا، ويُوسَم بذلك. +- **الائتمان غير مُفعَّل.** الضمان نقيض الائتمان، ويُوصَف بذلك صراحةً؛ والإطلاق ذو المراحل الثلاث (الحجم والنزاهة المعروضة أولًا) هو ما يحكم متى يتغيّر ذلك. +- **الاتحاد بين المشغّلين** موجود في صيغة مرحلية (أقران مسجّلون في سجلّ القيد (registry)، ومعالجة مرحلية مُعلَنة للتعارضات)؛ ونقاط التحقّق المشهودة هي الهدف المُسمّى لعدم المراوغة بين المشغّلين. + +## إعلان الاعتماديات + +يتبنّى مقياسَ العهد (LBTAS، بحدّ أدنى v2) ويحمل مثيلًا خاصًا به من السجل. وهو مستقل عن منسّق ركيزة الحوسبة — فالاقتصاد يعتمد على الطبقات التي تحته، ولا يعتمد أبدًا على اقتصاد شقيق أو على منسّق بعينه. + +## ملاحظات خاصة بالمنتج (أخيرًا، وفقًا لقاعدة الترتيب) + +الاقتصاد المرجعي. ونموذج المشغّل/الاتحاد فيه هو المرجع المُسمّى لهدف التصميم في الركيزة المتمثّل في الواجهة الأمامية بوصفها مشغّلًا. diff --git a/CONFORMANCE.es.md b/CONFORMANCE.es.md new file mode 100644 index 0000000..023f654 --- /dev/null +++ b/CONFORMANCE.es.md @@ -0,0 +1,53 @@ +> Traducción comunitaria (borrador) — Política P2-002 de NTARI, Difusión Multilingüe Global. Fuente: CONFORMANCE.md (original en inglés, instantánea del 2026-10-05). Borrador comunitario asistido por máquina, pendiente de revisión por mantenedores regionales conforme a P2-002 §3.1. Las especificaciones técnicas centrales permanecen en inglés conforme a §2.2. +> +> ¿Encontraste un error en esta traducción? Tu corrección es una contribución +> bienvenida y valorada: haz un fork del repositorio y abre un pull request en +> https://github.com/NTARI-RAND/Agrinet. + +> **El original en inglés es normativo.** Esta traducción se ofrece para lectura, no para interpretación: donde difiera de `CONFORMANCE.md`, rige el inglés. Las palabras clave normativas (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY), los nombres de campos, las etiquetas y los identificadores se mantienen en inglés porque constituyen el contrato de conformidad. + +# Conformidad — Janus-Facing Architecture + +La autodescripción del repositorio en los propios términos de la arquitectura, expuesta **antes** de cualquier cosa específica del producto, según la regla de orden de la arquitectura. Cada afirmación de conformidad está vinculada al mecanismo y a la verificación que la hacen cumplir; de lo contrario, se etiqueta como suplencia o como en revisión. La prosa no vinculada es marketing. + +La arquitectura es **Janus-Facing Architecture (JFA)**: el documento de arquitectura unificada de NTARI, documentación libre bajo el bien común AGPL-3.0 del proyecto. + +## Declaración de rol + +Agrinet es una **economía** de la **capa de Economía y Educación** de JFA — la instancia de economía de referencia: coordinación e intercambio agrícolas, que aplica las cuatro capas inferiores (sustrato, registro, pacto, gobernanza) a una actividad socioeconómica específica. Mantiene su propia instancia de registro por operador y adopta la escala de evaluación del pacto en el nivel económico. + +| Término de este repositorio | Rol en la arquitectura | +|---|---| +| Mycelium | la **bitácora de diálogos por operador** — de solo adición, encadenada por hashes, sellada por diálogo | +| Operador | un **operador**: una instancia de plataforma que mantiene su propia bitácora | +| Adopción de LBTAS | el **pacto** en el nivel económico — distribuciones, nunca promedios | +| Liquidación en depósito de garantía (escrow) | la postura de **fase uno** de la economía: depósito de garantía ahora, crédito después, por gobernanza | + +## Invariantes y sus vínculos — según el estado de `main` + +Honestidad primero: **la maquinaria de economía de miembros de JFA está en revisión, no en `main`.** El alcance de la bitácora por operador, el stub de checkpoint del testigo, el modelo de operador y la contabilidad de intercambio de saldo neto cero viven en ramas de refactorización abiertas; `main` es hoy la aplicación sin ellos. Cada invariante de abajo queda vinculado cuando su rama se integra, y esta tabla se actualiza en el mismo PR (la regla de viajar juntos, *rides-along rule*). + +| Invariante (arquitectura) | Estado | Mecanismo comprometido | +|---|---|---| +| La bitácora es **de solo adición**; las correcciones son entradas nuevas; una desestimación anota, nunca borra | En revisión | Mycelium: bitácoras por intercambio encadenadas por hashes; sin actualización, sin borrado | +| La unidad atómica es el **diálogo**, sellado cuando está completo y en reposo | En revisión | Sello del diálogo mantenido abierto por reclamos de daño no resueltos; a quienes no emiten calificación se les asigna un valor por defecto marcado | +| **Ninguna PII en el bien común** | En revisión | La cadena consigna la forma de un intercambio; la narrativa se referencia, es local del miembro y borrable | +| Cada operador mantiene su **propia bitácora**; no hay cadena global | En revisión | Alcance de bitácora por operador; atestiguamiento (no consenso) como modelo de no equivocación | +| Atestiguamiento con independencia; los despliegues de un solo testigo son **suplencias etiquetadas** | En revisión (suplencia) | Stub de checkpoint del testigo; la federación es el problema abierto 2 | +| La reputación se lleva como una **distribución completa**, nunca promediada | En revisión | LBTAS v2 (la versión sin promedios) es el piso de adopción | +| Los saldos son una **función determinista del registro sellado**; los intercambios se compensan a cero | En revisión | Contabilidad de intercambio de saldo neto cero | +| La liquidación es en **depósito de garantía**; el paso a crédito es una decisión de gobernanza, nunca un valor por defecto del código | Postura permanente | Depósito de garantía primero; cualquier paso a crédito emitido por miembros requiere aprobación de la Junta, aviso a la membresía y una revisión regulatoria completada | + +## Suplencias y residuos abiertos + +- **Suplencia de un solo testigo.** Hasta que testigos independientes contrafirmen los checkpoints del operador, la no equivocación del registro es autoatestiguada y se etiqueta como tal. +- **El crédito no está activado.** El depósito de garantía es lo opuesto al crédito y se describe llanamente como tal; el arranque en tres fases (primero el volumen y la integridad mostrada) rige cuándo cambia eso. +- **La federación entre operadores** existe en forma provisional (pares inscritos en un registro, manejo de conflictos provisional y reconocido como tal); los checkpoints atestiguados son el objetivo declarado para la no equivocación entre operadores. + +## Declaración de dependencias + +Adopta la escala del pacto (LBTAS, piso v2) y mantiene su propia instancia de registro. Es independiente del coordinador del sustrato de cómputo: una economía depende de las capas inferiores a ella, nunca de una economía hermana ni de un coordinador en particular. + +## Notas específicas del producto (al final, según la regla de orden) + +La economía de referencia. Su modelo de operador/federación es la referencia declarada para el objetivo de diseño de frontend-como-operador del sustrato. diff --git a/CONFORMANCE.fr.md b/CONFORMANCE.fr.md new file mode 100644 index 0000000..4471a90 --- /dev/null +++ b/CONFORMANCE.fr.md @@ -0,0 +1,54 @@ +> Traduction communautaire (brouillon) — politique NTARI P2-002, Diffusion multilingue mondiale. Source : CONFORMANCE.md (original anglais, instantané du 2026-10-05). Brouillon communautaire assisté par machine, en attente de relecture par le mainteneur régional conformément à P2-002 §3.1. Les spécifications techniques essentielles restent en anglais conformément au §2.2. +> +> Vous avez remarqué une erreur de traduction ? N'hésitez pas à la corriger +> vous-même : forkez le dépôt https://github.com/NTARI-RAND/Agrinet et +> ouvrez une pull request. Les corrections de traduction sont des +> contributions précieuses, tout autant que le code. + +> L'original anglais est normatif. Cette traduction est proposée pour la lecture, non pour l'interprétation : là où elle diverge de `CONFORMANCE.md`, l'anglais prévaut. Les mots-clés normatifs (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY), les noms de champs, les libellés et les identifiants sont conservés en anglais, car ils constituent le contrat de conformité. + +# Conformité — Janus-Facing Architecture + +L'autodescription du dépôt dans les termes propres à l'architecture, énoncée **avant** tout élément propre au produit, conformément à la règle d'ordonnancement de l'architecture. Chaque affirmation de conformité est rattachée au mécanisme et à la vérification qui la font respecter ; à défaut, elle est étiquetée comme substitution ou comme en cours de revue. Une prose non rattachée relève du marketing. + +L'architecture est **Janus-Facing Architecture (JFA)** — le document d'architecture unifié de NTARI, documentation libre placée sous les communs AGPL-3.0 du projet. + +## Déclaration de rôle + +Agrinet est une **économie** de la **couche Économie et Éducation** de JFA — l'instance économique de référence : coordination et échange agricoles, appliquant les quatre couches sous-jacentes (substrat, registre, pacte, gouvernance) à une activité socio-économique précise. Elle porte sa propre instance de registre par opérateur et adopte l'échelle d'évaluation du pacte au niveau économique. + +| Terme de ce dépôt | Rôle dans l'architecture | +|---|---| +| Mycelium | le **registre de dialogues par opérateur** — en ajout seul, chaîné par hachage, scellé par dialogue | +| Opérateur | un **opérateur** : une instance de plateforme tenant son propre journal | +| Adoption de LBTAS | le **pacte** au niveau économique — des distributions, jamais des moyennes | +| Règlement sous séquestre | la posture de **phase un** de l'économie : séquestre maintenant, crédit plus tard, par décision de gouvernance | + +## Invariants et leurs rattachements — état de `main` + +L'honnêteté d'abord : **la machinerie d'économie de membres de JFA est en cours de revue, et non sur `main`.** La délimitation du journal par opérateur, l'ébauche de point de contrôle des témoins, le modèle d'opérateur et la comptabilité d'échange à somme nulle se trouvent sur des branches de refactorisation ouvertes ; `main` est aujourd'hui l'application sans ces éléments. Chaque invariant ci-dessous est rattaché lorsque sa branche est fusionnée, et ce tableau est mis à jour dans la même PR (la règle d'accompagnement). + +| Invariant (architecture) | Statut | Mécanisme engagé | +|---|---|---| +| Le registre est **en ajout seul** ; les corrections sont de nouvelles entrées ; un rejet annote, n'efface jamais | En revue | Mycelium : journaux par échange chaînés par hachage ; aucune mise à jour, aucune suppression | +| L'unité atomique est le **dialogue**, scellé lorsqu'il est complet et au repos | En revue | Scellement du dialogue maintenu ouvert par des plaintes pour préjudice non résolues ; les non-évaluateurs reçoivent une valeur par défaut marquée | +| **Aucune donnée personnelle (PII) dans les communs** | En revue | La chaîne engage la forme d'un échange ; le récit est référencé, local au membre, effaçable | +| Chaque opérateur tient son **propre journal** ; pas de chaîne globale | En revue | Délimitation du journal par opérateur ; l'attestation par témoins (et non le consensus) comme modèle de non-équivocation | +| Attestation par témoins indépendants ; les déploiements à témoin unique sont des **substitutions étiquetées** | En revue (substitution) | Ébauche de point de contrôle des témoins ; la fédération est le problème ouvert 2 | +| La réputation est portée sous forme de **distribution complète**, jamais moyennée | En revue | LBTAS v2 (la version sans moyenne) est le plancher d'adoption | +| Les soldes sont une **fonction déterministe du registre scellé** ; les échanges s'équilibrent à zéro | En revue | Comptabilité d'échange à somme nulle | +| Le règlement se fait **sous séquestre** ; le passage au crédit relève de la gouvernance, jamais d'une valeur par défaut du code | Posture permanente | Séquestre d'abord ; tout passage au crédit émis par les membres exige l'approbation du Conseil d'administration, une notification aux membres et un examen réglementaire achevé | + +## Substitutions et résidus ouverts + +- **Substitution à témoin unique.** Tant que des témoins indépendants ne contresignent pas les points de contrôle de l'opérateur, la non-équivocation du registre est auto-attestée et étiquetée comme telle. +- **Le crédit n'est pas activé.** Le séquestre est le contraire du crédit et est décrit sans détour comme tel ; l'amorçage en trois phases (volume et intégrité affichée d'abord) détermine quand cela change. +- **La fédération inter-opérateurs** existe sous une forme provisoire (pairs inscrits à l'annuaire, gestion provisoire des conflits reconnue comme telle) ; les points de contrôle attestés par témoins sont la cible désignée pour la non-équivocation inter-opérateurs. + +## Déclaration de dépendances + +Adopte l'échelle du pacte (LBTAS, plancher v2) et porte sa propre instance de registre. Indépendante du coordinateur du substrat de calcul — une économie dépend des couches qui se trouvent sous elle, jamais d'une économie sœur ni d'un coordinateur particulier. + +## Notes propres au produit (en dernier, conformément à la règle d'ordonnancement) + +L'économie de référence. Son modèle opérateur/fédération est la référence désignée pour la cible de conception « frontend en tant qu'opérateur » du substrat. diff --git a/CONFORMANCE.hi.md b/CONFORMANCE.hi.md new file mode 100644 index 0000000..d53db3b --- /dev/null +++ b/CONFORMANCE.hi.md @@ -0,0 +1,54 @@ +> सामुदायिक अनुवाद (मसौदा) — NTARI नीति P2-002, Global Multilingual Broadcast (वैश्विक बहुभाषी प्रसारण)। स्रोत: CONFORMANCE.md (अंग्रेज़ी मूल, स्नैपशॉट 2026-10-05)। P2-002 §3.1 के अनुसार क्षेत्रीय अनुरक्षक की समीक्षा हेतु लंबित, मशीन-सहायता से तैयार सामुदायिक मसौदा। §2.2 के अनुसार मूल तकनीकी विनिर्देश अंग्रेज़ी में ही रहते हैं। +> +> अनुवाद में कोई त्रुटि दिखे तो कृपया उसे स्वयं सुधारने में मदद करें: +> रिपॉज़िटरी को फ़ॉर्क (fork) करें और अपना सुधार पुल रिक्वेस्ट (pull request) +> के रूप में भेजें — https://github.com/NTARI-RAND/Agrinet। अनुवाद-सुधार +> हमारे लिए किसी भी अन्य योगदान जितने ही मूल्यवान हैं, और उनका सदा स्वागत है। + +> **प्राथमिकता-सूचना।** अंग्रेज़ी मूल ही मानकीय (normative) है। यह अनुवाद पढ़ने के लिए प्रस्तुत है, व्याख्या के लिए नहीं: जहाँ यह `CONFORMANCE.md` से भिन्न हो, वहाँ अंग्रेज़ी पाठ ही मान्य होगा। मानकीय कुंजीशब्द (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY), फ़ील्ड नाम, लेबल और पहचानकर्ता अंग्रेज़ी में ही रखे गए हैं, क्योंकि वही अनुरूपता का अनुबंध हैं। + +# अनुरूपता — Janus-Facing Architecture + +संरचना की अपनी शब्दावली में इस रिपॉज़िटरी का आत्म-विवरण, संरचना के क्रम-नियम के अनुसार किसी भी उत्पाद-विशिष्ट बात से **पहले** प्रस्तुत। अनुरूपता का हर दावा उसे प्रवर्तित करने वाले तंत्र और जाँच से आबद्ध है, अन्यथा उसे स्टैंड-इन (stand-in) या समीक्षाधीन (in-review) के रूप में लेबल किया जाता है। आबद्धता-रहित गद्य विपणन है। + +यह संरचना **द्विमुखी संरचना — Janus-Facing Architecture (JFA)** है — NTARI का एकीकृत संरचना-दस्तावेज़, जो परियोजना के AGPL-3.0 साझा कोष (commons) के अंतर्गत मुक्त प्रलेखन है। + +## भूमिका-घोषणा + +Agrinet, JFA के **अर्थव्यवस्था एवं शिक्षा (Economy & Education) स्तर** की एक **अर्थव्यवस्था** है — संदर्भ अर्थव्यवस्था-उदाहरण (reference economy instance): कृषि समन्वय और विनिमय, जो अपने नीचे के चार स्तरों (आधार, अभिलेख, प्रतिज्ञा, अभिशासन) को एक विशिष्ट सामाजिक-आर्थिक गतिविधि पर लागू करती है। यह अपना प्रति-संचालक अभिलेख-उदाहरण (record instance) स्वयं वहन करती है और आर्थिक स्तर पर प्रतिज्ञा के आकलन-पैमाने को अपनाती है। + +| इस रिपॉज़िटरी का शब्द | संरचना में भूमिका | +|---|---| +| Mycelium | **प्रति-संचालक संवाद बहीखाता (per-operator dialog ledger)** — केवल-संवर्धी (append-only), हैश-श्रृंखलित, संवाद-मुहरबंद | +| संचालक (Operator) | एक **संचालक (operator)**: एक प्लेटफ़ॉर्म-उदाहरण जो अपना लॉग स्वयं रखता है | +| LBTAS अंगीकरण (LBTAS adoption) | आर्थिक स्तर पर **प्रतिज्ञा** — वितरण, औसत कभी नहीं | +| एस्क्रो निपटान (Escrow settlement) | अर्थव्यवस्था की **प्रथम-चरण** स्थिति: अभी एस्क्रो, ऋण बाद में, अभिशासन द्वारा | + +## अपरिवर्तनीय नियम (invariants) और उनके बंधन — `main` की स्थिति के अनुसार + +ईमानदारी पहले: **JFA की सदस्य-अर्थव्यवस्था की कार्य-प्रणाली समीक्षाधीन है, `main` पर नहीं।** प्रति-संचालक लॉग स्कोपिंग, साक्षी चेकपॉइंट स्टब, संचालक मॉडल और शुद्ध-शून्य (net-zero) विनिमय लेखांकन खुली रिफ़ैक्टर शाखाओं पर हैं; आज `main` इनके बिना वाला अनुप्रयोग है। नीचे दिया गया प्रत्येक अपरिवर्तनीय नियम तब आबद्ध होता है जब उसकी शाखा शामिल (land) होती है, और यह तालिका उसी PR में अद्यतन की जाती है (साथ-चलने का नियम — rides-along rule)। + +| अपरिवर्तनीय नियम (संरचना) | स्थिति | प्रतिबद्ध तंत्र | +|---|---|---| +| बहीखाता **केवल-संवर्धी** है; सुधार नई प्रविष्टियाँ होते हैं; खारिजी (dismissal) टिप्पणी जोड़ती है, कभी मिटाती नहीं | In review (समीक्षाधीन) | Mycelium: हैश-श्रृंखलित प्रति-विनिमय लॉग; कोई अद्यतन नहीं, कोई विलोपन नहीं | +| परमाणविक इकाई **संवाद** है, जो पूर्ण-और-शांत (complete-and-quiescent) होने पर मुहरबंद होता है | In review (समीक्षाधीन) | अनसुलझे हानि-दावे संवाद की मुहर को खुला रखते हैं; रेटिंग न देने वालों को एक चिह्नित डिफ़ॉल्ट दिया जाता है | +| **साझा कोष (commons) में कोई PII नहीं** | In review (समीक्षाधीन) | श्रृंखला किसी विनिमय के स्वरूप को प्रतिबद्ध करती है; विवरण (narrative) संदर्भित, सदस्य-स्थानीय और मिटाने-योग्य होता है | +| प्रत्येक संचालक अपना **स्वयं का लॉग** रखता है; कोई वैश्विक श्रृंखला नहीं | In review (समीक्षाधीन) | प्रति-संचालक लॉग स्कोपिंग; विरोधाभास-निषेध (non-equivocation) के मॉडल के रूप में साक्ष्यकरण (सर्वसम्मति/consensus नहीं) | +| स्वतंत्रता के साथ साक्ष्यकरण; एकल-साक्षी परिनियोजन **स्टैंड-इन के रूप में लेबल** किए जाते हैं | In review (stand-in) (समीक्षाधीन, स्टैंड-इन) | साक्षी चेकपॉइंट स्टब; संघ (federation) खुली समस्या 2 है | +| प्रतिष्ठा **पूर्ण वितरण** के रूप में वहन की जाती है, कभी औसत नहीं की जाती | In review (समीक्षाधीन) | LBTAS v2 (औसत-रहित रिलीज़) अंगीकरण की न्यूनतम सीमा है | +| शेष-राशियाँ **मुहरबंद अभिलेख का नियतात्मक फलन** हैं; विनिमयों का शुद्ध योग शून्य होता है | In review (समीक्षाधीन) | शुद्ध-शून्य विनिमय लेखांकन | +| निपटान **एस्क्रो** है; ऋण-स्विच अभिशासन का विषय है, कोड का डिफ़ॉल्ट कभी नहीं | Standing posture (स्थायी स्थिति) | एस्क्रो-प्रथम; सदस्य-निर्गमित ऋण की ओर किसी भी कदम के लिए बोर्ड की स्वीकृति, सदस्यता को सूचना, और पूर्ण की गई नियामक समीक्षा आवश्यक है | + +## स्टैंड-इन और खुले अवशेष + +- **एकल-साक्षी स्टैंड-इन।** जब तक स्वतंत्र साक्षी संचालक के चेकपॉइंटों पर प्रति-हस्ताक्षर नहीं करते, तब तक अभिलेख का विरोधाभास-निषेध स्व-प्रमाणित है और उसी रूप में लेबल किया गया है। +- **ऋण चालू नहीं है।** एस्क्रो ऋण का विपरीत है और उसे स्पष्ट रूप से ऐसा ही बताया जाता है; त्रि-चरणीय बूटस्ट्रैप (पहले मात्रा और प्रदर्शित अखंडता) तय करता है कि यह कब बदलेगा। +- **संचालकों के आर-पार संघ (cross-operator federation)** अंतरिम रूप में मौजूद है (रजिस्ट्री में नामांकित पीयर, स्वीकृत अंतरिम विरोध-निपटान); साक्षीकृत चेकपॉइंट संचालकों के आर-पार विरोधाभास-निषेध के लिए नामित लक्ष्य हैं। + +## निर्भरता-घोषणा + +प्रतिज्ञा-पैमाने (LBTAS, v2 न्यूनतम सीमा) को अपनाती है और अपना अभिलेख-उदाहरण स्वयं वहन करती है। संगणन आधार के कोऑर्डिनेटर से स्वतंत्र — कोई अर्थव्यवस्था अपने नीचे के स्तरों पर निर्भर करती है, किसी सहोदर अर्थव्यवस्था या किसी विशेष कोऑर्डिनेटर पर कभी नहीं। + +## उत्पाद-विशिष्ट टिप्पणियाँ (अंत में, क्रम-नियम के अनुसार) + +संदर्भ अर्थव्यवस्था। इसका संचालक/संघ मॉडल आधार स्तर के "फ़्रंटएंड-संचालक के रूप में" (frontend-as-operator) डिज़ाइन लक्ष्य के लिए नामित संदर्भ है। diff --git a/CONFORMANCE.pt.md b/CONFORMANCE.pt.md new file mode 100644 index 0000000..c8cad14 --- /dev/null +++ b/CONFORMANCE.pt.md @@ -0,0 +1,53 @@ +> Tradução comunitária (rascunho) — Política NTARI P2-002, Transmissão Multilíngue Global (Global Multilingual Broadcast). Fonte: CONFORMANCE.md (original em inglês, snapshot de 2026-10-05). Rascunho comunitário assistido por máquina, pendente de revisão por mantenedor regional conforme P2-002 §3.1. As especificações técnicas centrais permanecem em inglês conforme §2.2. +> +> Notou algum erro nesta tradução? Correções de tradução são contribuições +> valiosas e muito bem-vindas: faça um fork do repositório e abra um pull +> request em https://github.com/NTARI-RAND/Agrinet. + +> O original em inglês é normativo. Esta tradução é oferecida para leitura, não para interpretação: onde ela divergir de `CONFORMANCE.md`, prevalece o inglês. As palavras-chave normativas (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY), os nomes de campos, os rótulos e os identificadores são mantidos em inglês porque constituem o contrato de conformidade. + +# Conformidade — Arquitetura de Dupla Face (Janus-Facing Architecture) + +A autodescrição do repositório nos próprios termos da arquitetura, apresentada **antes** de qualquer coisa específica do produto, conforme a regra de ordenação da arquitetura. Toda alegação de conformidade está vinculada ao mecanismo e à verificação que a fazem cumprir, ou então é rotulada como provisória (stand-in) ou em revisão. Prosa sem vínculo é marketing. + +A arquitetura é a **Arquitetura de Dupla Face (Janus-Facing Architecture, JFA)** — o documento de arquitetura unificada da NTARI, documentação livre sob o commons AGPL-3.0 do projeto. + +## Declaração de papel + +O Agrinet é uma **economia** da **camada de Economia e Educação** da JFA — a instância econômica de referência: coordenação e troca agrícolas, aplicando as quatro camadas subjacentes (substrato, registro, pacto, governança) a uma atividade socioeconômica específica. Ele mantém sua própria instância de registro por operador e adota a escala de avaliação do pacto no nível econômico. + +| Termo deste repositório | Papel na arquitetura | +|---|---| +| Mycelium | o **livro-razão de diálogos por operador** — somente de adição, encadeado por hash, selado por diálogo | +| Operador | um **operador**: uma instância de plataforma que mantém seu próprio log | +| Adoção do LBTAS | o **pacto** no nível econômico — distribuições, nunca médias | +| Liquidação em custódia (escrow) | a postura de **fase um** da economia: custódia agora, crédito depois, por decisão de governança | + +## Invariantes e seus vínculos — conforme `main` + +Honestidade em primeiro lugar: **o maquinário de economia de membros da JFA está em revisão, não em `main`.** O escopo de log por operador, o stub de checkpoint de testemunha, o modelo de operador e a contabilidade de trocas de soma zero estão em branches de refatoração abertas; hoje, `main` é a aplicação sem eles. Cada invariante abaixo passa a vincular quando sua branch for integrada, e esta tabela é atualizada no mesmo PR (a regra de acompanhamento). + +| Invariante (arquitetura) | Status | Mecanismo adotado | +|---|---|---| +| O livro-razão é **somente de adição**; correções são novas entradas; um arquivamento anota, nunca apaga | Em revisão | Mycelium: logs por troca encadeados por hash; sem atualização, sem exclusão | +| A unidade atômica é o **diálogo**, selado quando completo e quiescente | Em revisão | Selo do diálogo mantido aberto por alegações de dano não resolvidas; quem não avalia recebe um valor padrão marcado | +| **Nenhuma PII no commons** | Em revisão | A cadeia consigna o formato de uma troca; a narrativa é referenciada, local ao membro, apagável | +| Cada operador mantém seu **próprio log**; não há cadeia global | Em revisão | Escopo de log por operador; testemunho (não consenso) como modelo de não equivocação | +| Testemunho com independência; implantações com uma única testemunha são **rotuladas como provisórias** | Em revisão (provisório) | Stub de checkpoint de testemunha; a federação é o problema em aberto 2 | +| Reputação mantida como uma **distribuição completa**, nunca como média | Em revisão | LBTAS v2 (a versão sem médias) é o piso de adoção | +| Saldos são uma **função determinística do registro selado**; as trocas têm saldo líquido zero | Em revisão | Contabilidade de trocas de soma zero | +| A liquidação é em **custódia**; a mudança para crédito é decisão de governança, nunca um padrão do código | Postura permanente | Custódia em primeiro lugar; qualquer passagem para crédito emitido pelos membros exige aprovação do Conselho, notificação aos membros e uma revisão regulatória concluída | + +## Provisórios e resíduos em aberto + +- **Provisório de testemunha única.** Até que testemunhas independentes contra-assinem os checkpoints do operador, a não equivocação do registro é autoatestada e rotulada como tal. +- **O crédito não está ativado.** A custódia é o oposto do crédito e é descrita claramente como tal; o bootstrap em três fases (primeiro volume e integridade exibida) rege quando isso muda. +- **A federação entre operadores** existe em forma provisória (pares inscritos no cadastro (registry), tratamento provisório de conflitos reconhecido como tal); checkpoints testemunhados são o alvo declarado para a não equivocação entre operadores. + +## Declaração de dependências + +Adota a escala do pacto (LBTAS, piso v2) e mantém sua própria instância de registro. É independente do coordenador do substrato de computação — uma economia depende das camadas subjacentes a ela, nunca de uma economia irmã nem de um coordenador específico. + +## Notas específicas do produto (por último, conforme a regra de ordenação) + +A economia de referência. Seu modelo de operador/federação é a referência declarada para o alvo de projeto frontend-como-operador do substrato. diff --git a/CONFORMANCE.tok.md b/CONFORMANCE.tok.md new file mode 100644 index 0000000..7813b8f --- /dev/null +++ b/CONFORMANCE.tok.md @@ -0,0 +1,57 @@ +# lipu pi nasin sama — Janus-Facing Architecture (toki pona) + +> **toki lili pi lipu ni:** lipu ni li lipu pi kulupu, li tan nasin NTARI "P2-002". lipu suli li lipu Inli "CONFORMANCE.md" (tenpo pi 2026-10-05). ilo sona li pali e lipu ni; kulupu li wile lukin e ona kepeken nasin "P2-002" kipisi "3.1". +> +> **Note:** This is a community rendering under NTARI policy P2-002. The complete document is the English original CONFORMANCE.md (snapshot 2026-10-05). Machine-assisted draft pending community review per P2-002 section 3.1. +> +> sina lukin e pakala lon toki ni la o pona e ona: o pali e "fork" lon +> https://github.com/NTARI-RAND/Agrinet, o pana e "pull request". pana sina +> li pona tawa mi mute. +> +> **lipu Inli li lawa.** lipu ni li tawa lukin, li tawa ala sona pi nasin lawa: lipu ni li ante tan `CONFORMANCE.md` la lipu Inli li lawa. nimi lawa (MUST, MUST NOT, SHOULD, SHOULD NOT, MAY), nimi pi poki sona, nimi sitelen en nimi ilo li awen lon toki Inli, tan ni: ona li lipu lawa pi nasin sama. + +--- + +lipu ni la poki lipu li toki e ona sama kepeken nimi pi nasin JFA. ona li toki e ni **lon open**, li toki ala e ijo pi ilo Agrinet taso lon open, tan nasin pi nanpa toki pi nasin JFA. toki ale pi nasin sama li linja tawa ilo en lukin ni: ilo en lukin li wawa e toki ni. linja li lon ala la sitelen li toki e ni: toki ni li ijo pi tenpo lili (stand-in) anu ijo pi lon lukin (in review). toki pi linja ala li toki esun. + +nasin ni li **Janus-Facing Architecture (JFA)** — lipu wan pi nasin ilo pi kulupu NTARI. jan ale li ken kepeken lipu ni; ona li lon poki pi jan ale pi poki ni (nasin "AGPL-3.0"). + +## toki pi pali + +ilo Agrinet li **esun** lon **kipisi esun en sona** (Economy & Education layer) pi nasin JFA — ona li esun pi nasin lukin: ona li wan e pali pi kasi pan, li esun e ijo pi kasi pan. ona li kepeken kipisi tu tu anpa (kipisi ilo, kipisi sona, kipisi pi toki awen, kipisi lawa) lon pali wan pi esun en kulupu. ona li jo e kipisi sona ona sama tawa jan pi ilo suli wan wan, li kepeken nasin nanpa pi kipisi pi toki awen lon esun. + +| nimi pi poki ni | pali lon nasin JFA | +|---|---| +| Mycelium | **lipu toki pi jan pi ilo suli wan wan** — toki sin taso li ken kama lon ona; nanpa "hash" li linja e ona; toki li pini la ona li kama awen | +| Operator | **jan pi ilo suli**: ilo suli wan li awen e lipu ona sama | +| LBTAS adoption | **kipisi pi toki awen** lon esun — mute pi pana li awen; nanpa meso li lon ala | +| Escrow settlement | nasin esun pi **tenpo nanpa wan**: tenpo ni la mani awen; tenpo kama la mani pi kulupu — kulupu lawa li toki e ni | + +## nasin awen en linja ona — lon `main` + +toki lon li nanpa wan: **ilo JFA pi esun kulupu li lon lukin, li lon ala `main`.** ijo ni li lon palisa pali open (refactor): poki lipu pi jan pi ilo suli wan wan, ilo lili open pi jan lukin (witness checkpoint stub), nasin pi jan pi ilo suli, en nanpa esun pi ala (net-zero). tenpo ni la `main` li ilo li jo ala e ijo ni. palisa li kama lon `main` la nasin awen ona li kama jo e linja. jan li ante e lipu leko ni lon "PR" sama (nasin pi tawa sama). + +| nasin awen (nasin JFA) | lon seme | ilo pi linja | +|---|---|---| +| lipu suli li **kama suli taso**; pona pi pakala li toki sin; jan li weka e toki la ona li pana e toki lon poka, li weka ala e ona | lon lukin (In review) | Mycelium: lipu pi esun wan wan, nanpa "hash" li linja e ona; ante ala, weka ala | +| kipisi lili nanpa wan li **toki**. toki li pini ale, li kama lape, la ona li kama awen | lon lukin (In review) | toki pi pakala pi pini ala li lon la toki li ken ala kama awen; jan li pana ala e nanpa la ona li jo e nanpa pi nasin open, e sitelen pi ni | +| **sona pi jan ("PII") li lon ala poki pi jan ale** | lon lukin (In review) | linja li awen e selo pi esun; toki suli li lon ala linja: linja li pana e nasin tawa ona; ona li lon poki pi jan kulupu; jan li ken weka e ona | +| jan pi ilo suli ale li awen e **lipu ona sama**; linja wan pi ma ale li lon ala | lon lukin (In review) | poki lipu pi jan pi ilo suli wan wan; nasin pi jan lukin (nasin pi wile sama pi jan ale ala) li nasin ni: lipu li ken ala toki tu ante (non-equivocation) | +| jan lukin li lon, li lawa ala tan jan ante; ilo li jo e jan lukin wan taso la **sitelen li toki e ni: ona li ijo pi tenpo lili** | lon lukin, ijo pi tenpo lili (In review, stand-in) | ilo lili open pi jan lukin; kulupu pi ilo mute (federation) li wile sona nanpa tu pi pini ala | +| nimi pi jan (pona anu ike) li awen kepeken **mute ale pi pana**, li kama ala nanpa meso | lon lukin (In review) | LBTAS v2 (pana pi nanpa meso ala) li nanpa anpa pi kepeken | +| mani pi jan li **kama tan lipu awen taso, kepeken nasin pi ante ala**; esun ale li kama ala (0) lon nanpa | lon lukin (In review) | nanpa esun pi ala (net-zero) | +| esun li pini kepeken **mani awen**; kulupu lawa li ken open e mani pi kulupu; ilo li open ala e ona tan nasin open ona | nasin ni li awen (Standing posture) | mani awen li nanpa wan; tawa ale tawa mani pi jan kulupu li wile e ni: kulupu lawa suli (Board) li toki "pona", jan ale pi kulupu li kama sona, lukin pi nasin lawa pi ma li pini | + +## ijo pi tenpo lili en wile sona pi pini ala + +- **jan lukin wan taso li ijo pi tenpo lili.** jan lukin ante (jan ante li lawa ala e ona) li sitelen sin ala e nimi ona lon ilo open pi jan pi ilo suli la, toki ni: "lipu awen li toki tu ante ala" li toki pi lipu awen sama taso, li jo e sitelen pi ni. +- **mani pi kulupu li open ala.** mani awen li ante ale tan mani pi kulupu; lipu li toki e ni kepeken toki pi len ala. nasin open pi tenpo tu wan (nanpa wan la esun mute en pona pi lukin) li lawa e tenpo pi ante ni. +- **kulupu pi jan pi ilo suli mute** li lon kepeken nasin pi tenpo lili (jan sama li lon lipu nimi; nasin pi tenpo lili tawa utala li lon, jan li sona e ni). lipu li toki e ni: ilo open pi jan lukin li ijo wile tawa ni: jan pi ilo suli mute li toki ala tu ante. + +## toki pi ijo wile + +ona li kepeken nasin nanpa pi kipisi pi toki awen (LBTAS, nanpa anpa li v2), li jo e kipisi sona ona sama. ona li wile ala e ilo insa pi kipisi ilo pi nanpa pali — esun li wile e kipisi anpa ona taso; ona li wile ala e esun ante pi kipisi sama, li wile ala e ilo insa wan. + +## toki pi ilo Agrinet taso (lon pini, tan nasin pi nanpa toki) + +esun pi nasin lukin. nasin ona pi jan pi ilo suli en kulupu ilo li nasin lukin pi nimi tawa wile pali ni pi kipisi ilo: lupa lukin li jan pi ilo suli. diff --git a/CONFORMANCE.zh.md b/CONFORMANCE.zh.md new file mode 100644 index 0000000..84922f0 --- /dev/null +++ b/CONFORMANCE.zh.md @@ -0,0 +1,52 @@ +> 社区翻译(草稿)——NTARI 政策 P2-002《全球多语言广播》。来源:CONFORMANCE.md(英文原文,2026-10-05 快照)。本文为机器辅助的社区翻译草稿,依照 P2-002 §3.1 待区域维护者审校。根据 §2.2,核心技术规范仍以英文为准。 +> +> 如发现译文有误,欢迎 fork 仓库并提交 Pull Request +> 来改进翻译:https://github.com/NTARI-RAND/Agrinet。翻译修正与代码贡献同样宝贵,我们诚挚欢迎。 + +> 英文原文具有规范效力。本译文仅供阅读,不作解释之用:凡与 `CONFORMANCE.md` 存在分歧之处,以英文为准。规范性关键词(MUST、MUST NOT、SHOULD、SHOULD NOT、MAY)、字段名、标签与标识符均保留英文,因为它们构成符合性契约。 + +# 符合性——雅努斯双面架构 + +本仓库以该架构自身的术语所作的自我描述,依照架构的顺序规则,在任何产品特定内容**之前**陈述。每一项符合性声明都绑定到执行它的机制与检查,否则即被标注为暂代或审查中。未经绑定的文字就是营销。 + +该架构即**雅努斯双面架构(Janus-Facing Architecture,JFA)**——NTARI 的统一架构文档,是本项目 AGPL-3.0 公域下的自由文档。 + +## 角色声明 + +Agrinet 是 JFA **经济与教育层(Economy & Education layer)**中的一个**经济体**——即参考经济实例:农业协调与交换,将其下的四个层(基质、记录、约定、治理)应用于一项特定的社会经济活动。它承载自己的按运营者划分的记录实例,并在经济层面采纳约定的评估量表。 + +| 本仓库术语 | 架构角色 | +|---|---| +| Mycelium | **按运营者划分的对话账本**——仅可追加、哈希链接、经对话密封 | +| 运营者(Operator) | 一个**运营者**:一个保存自身日志的平台实例 | +| LBTAS 采纳 | 经济层面的**约定**——只用分布,绝不取平均 | +| 托管结算 | 该经济体的**第一阶段**姿态:现在托管,以后信用,由治理决定 | + +## 不变式及其绑定——截至 `main` 的状态 + +诚实优先:**JFA 成员经济机制尚在审查中,不在 `main` 上。** 按运营者划分的日志范围限定、见证者检查点桩(stub)、运营者模型以及净零交换核算,都位于开放的重构分支上;如今的 `main` 是不含这些内容的应用程序。下列每项不变式在其分支合入时开始绑定,且本表在同一个 PR 中更新(随附规则,rides-along rule)。 + +| 不变式(架构) | 状态 | 已承诺的机制 | +|---|---|---| +| 账本**仅可追加**;更正是新的条目;驳回只作标注,绝不抹除 | In review(审查中) | Mycelium:哈希链接的逐笔交换日志;无更新,无删除 | +| 原子单位是**对话**,在完整且静止时密封 | In review(审查中) | 存在未解决的伤害主张时,对话密封保持开启;未评级者被赋予一个带标记的默认值 | +| **公域中无 PII** | In review(审查中) | 链提交的是交换的形态;叙述以引用方式存在,保留在成员本地,且可擦除 | +| 每个运营者保存**自己的日志**;不存在全局链 | In review(审查中) | 按运营者划分的日志范围限定;以见证(而非共识)作为防双重陈述(non-equivocation)模型 | +| 见证具有独立性;单见证者部署是**带标注的暂代** | In review (stand-in)(审查中,暂代) | 见证者检查点桩;联邦是开放问题 2 | +| 声誉以**完整分布**携带,绝不取平均 | In review(审查中) | LBTAS v2(不取平均的版本)是采纳下限 | +| 余额是**密封记录的确定性函数**;交换净额为零 | In review(审查中) | 净零交换核算 | +| 结算采用**托管**;信用开关由治理决定,绝不是代码默认值 | Standing posture(常设姿态) | 托管优先;任何转向成员发行信用的举措,都需要理事会批准、向成员发出通知,并完成监管审查 | + +## 暂代与未决残余问题 + +- **单见证者暂代。** 在独立见证者为运营者的检查点会签之前,记录的防双重陈述性属于自我证明,并如实标注为自我证明。 +- **信用尚未开启。** 托管是信用的反面,并被如实地这样描述;三阶段引导(先是交易量与可见的完整性)决定这一点何时改变。 +- **跨运营者联邦**以过渡形式存在(经注册表登记的对等节点、公开承认的过渡性冲突处理);经见证的检查点是跨运营者防双重陈述的既定目标。 + +## 依赖声明 + +采纳约定量表(LBTAS,以 v2 为下限),并承载自己的记录实例。独立于计算基质的协调者——一个经济体依赖于其下的各层,绝不依赖于同级经济体或某个特定的协调者。 + +## 产品特定说明(依照顺序规则,置于最后) + +参考经济体。其运营者/联邦模型是基质“前端即运营者”设计目标的既定参考。 diff --git a/README.pt.md b/README.pt.md new file mode 100644 index 0000000..ad427b2 --- /dev/null +++ b/README.pt.md @@ -0,0 +1,192 @@ +> Tradução comunitária (rascunho) — política P2-002 da NTARI, Transmissão Multilíngue Global. Fonte: README.md (original em inglês, snapshot de 2026-10-05). Rascunho comunitário assistido por máquina, pendente de revisão do mantenedor regional conforme P2-002 §3.1. As especificações técnicas centrais permanecem em inglês conforme §2.2. +> +> Notou algum erro nesta tradução? Correções de tradução são contribuições +> valiosas e muito bem-vindas: faça um fork do repositório e abra um pull +> request em https://github.com/NTARI-RAND/Agrinet. + +# Agrinet - Marketplace Agrícola Descentralizado 🌱 + +## Visão geral + +O Agrinet é uma plataforma descentralizada de comércio e serviços agrícolas, criada para aumentar a transparência, a confiança e a eficiência nos mercados agrícolas. Ele conecta produtores, consumidores e prestadores de serviços, garantindo transações seguras, avaliações baseadas em reputação e sustentabilidade econômica local. + +## Funcionalidades + +#### Sistema de marketplace 🏪 + +- Acesso direto ao mercado: produtores anunciam produtos, serviços e contratos. +- Integração com agroturismo: agricultores podem oferecer visitas à fazenda, eventos e oficinas educativas. +- Marketplace de serviços: usuários podem prestar ou solicitar serviços agrícolas (por exemplo, logística, manutenção). + +#### Transações seguras 🔒 + +- LBTAS (Leveson-Based Trade Assessment Scale, escala de avaliação comercial baseada em Leveson): garante um sistema de avaliação baseado em confiança. +- Gravador de diálogo: registra os principais detalhes das transações para fins de segurança e auditoria. +- Módulo de depuração automática (Machine Scrub): filtra e verifica os dados das transações. + +#### Sistema de chaves e autenticação 🔑 + +- Geração de chaves McEliese: garante a identificação segura dos usuários. +- Limites de transmissão de chaves: aposentadoria automática após 3, 6, 9, 12 ou 365 transmissões. +- Verificação multifator: validação por e-mail/telefone com segurança de novas tentativas e bloqueio. + +#### Sistema PING 📡 + +- Relatórios de progresso da produção: permitem que compradores de contratos acompanhem o status dos pedidos. +- Notificações em tempo real: atualizações sobre tendências de mercado, alterações de contratos e solicitações de serviço. + +#### Acesso por SMS 📱 + +- Consulte dados de mercado e de clima por SMS usando comandos de texto simples. +- Oferece suporte a idiomas locais e enfileira mensagens offline, com confirmação de entrega. + +#### Transações financeiras 🏦 + +- Depósitos e doações para a conta da NTARI: apoia o financiamento descentralizado. +- Pagamentos automatizados: garantem desembolsos seguros de fundos após a conclusão da transação. + +#### Gestão descentralizada de dados 🌍 + +- Perfis e logs de usuários: mantém logs de emissão de chaves paralelos aos perfis de usuário. +- Filtragem geográfica e otimização de busca: permite a visibilidade no mercado com base na localização. + +#### Calculadora de horta em pés quadrados (Square Foot Gardening) 🌿 + +- Recomendações de espaçamento entre plantas para culturas comuns. +- Matriz de compatibilidade para planejar o plantio consorciado. +- Projeções de crescimento e calendários sazonais, com layouts visuais em grade. + +## Stack tecnológica + +- Frontend: React com Next.js (estrutura de site responsiva) +- Backend: Node.js (tratamento da API) +- Banco de dados: Amazon DynamoDB (para armazenar usuários, contratos e transações) +- Segurança: OAuth 2.0 / criptografia de chaves McEliese +- Processamento em tempo real: webhooks e sistema PING + +## Instalação e configuração + +1. Clone o repositório +``` +git clone https://github.com/YOUR_USERNAME/Fruitful.git +cd Agrinet +``` + +2. Configure o backend +``` +cd backend +npm install +node server.js +``` + +3. Implante o frontend +``` +cd frontend +npm install +npm run dev +``` + +Para desenvolvimento local, defina a variável de ambiente `NEXT_PUBLIC_BACKEND_URL` com a URL do seu backend antes de executar o frontend, por exemplo: +``` +NEXT_PUBLIC_BACKEND_URL=http://localhost:5000 npm run dev +``` +Somente as variáveis de ambiente com o prefixo `NEXT_PUBLIC_` são expostas ao navegador, por isso esse prefixo é obrigatório. +Como alternativa, configure um proxy para que as requisições para `/api` sejam encaminhadas ao backend. + +### Variáveis de ambiente + +O backend agora usa o Amazon DynamoDB. Defina as seguintes variáveis no seu ambiente ou no arquivo `.env`: + +- `AWS_ACCESS_KEY_ID` +- `AWS_SECRET_ACCESS_KEY` +- `AWS_REGION` +- `DYNAMODB_ENDPOINT` *(opcional, para o DynamoDB Local, por exemplo `http://localhost:8000`)* +- `TWILIO_SID` +- `TWILIO_AUTH_TOKEN` +- `TWILIO_FROM_NUMBER` +- `TWILIO_STATUS_CALLBACK_URL` *(opcional, para confirmação de entrega)* + +## Uso do Square Foot Gardening + +O backend inclui um utilitário para planejar hortas em pés quadrados. + +```javascript +const { planSeason } = require('./backend/utils/squareFootGardening'); + +const layout = [ + ['tomato', 'basil'], + ['lettuce', null], +]; + +const plan = planSeason(layout, '2024-03-01', 'spring'); +console.log(plan.grid); +console.log(plan.schedule); +``` + +O planejador valida o plantio consorciado, projeta cronogramas de crescimento e renderiza uma grade ASCII da horta. + +## Endpoints da API + +Endpoints adicionais da interface de chat (por exemplo, `/conversations`, `/messages/:id`, `/stream/:id`) e as estruturas JSON +esperadas estão documentados diretamente nos componentes do frontend +[`Sidebar.jsx`](frontend/chat-ui/src/components/Sidebar.jsx) e +[`ChatWindow.jsx`](frontend/chat-ui/src/components/ChatWindow.jsx). +### Cadastro de usuário +#### POST /userRegistration +``` +{ + "name": "John Doe", + "email": "johndoe@example.com", + "location": "Kentucky, USA", + "role": "producer" +} +``` + +### Criar contrato +#### POST /createContract +``` +{ + "producerId": "user123", + "type": "Tomato", + "variety": "Roma", + "category": "food", + "amountNeeded": "500 lbs", + "dateNeeded": "2025-03-15", + "pingRate": "weekly" +} +``` + +### Enviar avaliação LBTAS +#### POST /submitRating +``` +{ + "transactionId": "tx987", + "rating": 4 +} +``` + +## Como contribuir +Contribuições da comunidade são bem-vindas! 🚀 + +1. Faça um fork do repositório +2. Crie um branch de funcionalidade +3. Envie um pull request + +### Verificação de URLs fixas no código + +Execute o script a seguir para detectar quaisquer referências a `localhost` fixas no código antes de fazer commit: + +```bash +./scripts/list-hardcoded-urls.sh +``` + +O script lista as linhas problemáticas e encerra com status diferente de zero se alguma for encontrada. +As referências existentes reconhecidas como seguras são registradas em `scripts/hardcoded-url-allowlist.txt`. + +## Licença +AGPL, GNU-3� + +## Contato e suporte +- NTARI https://www.ntari.org/ +- E-mail - tech@ntari.org +- Slack - [Participe da nossa comunidade para discussões!](https://ntari.slack.com)