import type {DocArticle} from './types';

/** Source-based network documentation. Implementation is not a claim of live deployment. */
export const networkDocs: DocArticle[] = [
  {
    "slug": "network-overview",
    "group": "network",
    "title": "معماری شبکه و مرز مسئولیت‌ها",
    "description": "ارتباط شبکه Besu، کنترل‌گر Admin Main، ایستگاه سازمانی و مارکت‌پلیس؛ با تفکیک کد موجود از استقرار عملیاتی.",
    "status": "implemented",
    "audience": "توسعه‌دهندگان، مدیران زیرساخت و نهادهای همکار",
    "sections": [
      {
        "id": "layers",
        "title": "چهار بخش مستقل",
        "paragraphs": [
          "مارکت‌پلیس رابط انتخاب دارایی، حساب کاربری و درخواست‌های تجاری است. پنل مدیریت وب محتوای همین محصول و اتصال‌های آن را اداره می‌کند. Admin Main محصول زیرساختی دیگری برای مدیریت شبکه Besu، اعتبارسنج‌ها و گردش کنترل قراردادهاست؛ این دو پنل نقش و سطح دسترسی یکسان ندارند.",
          "Plank Station محیط کاری محدود به نقش سازمان است. نصب Station لزوماً نود بلاک‌چین، عضویت اجماع یا اختیار مدیریت کل شبکه ایجاد نمی‌کند. نسخه Remote نیز برای مشاهده اطلاعات سرور طراحی شده و دفترکل کامل را روی رایانه کاربر دانلود نمی‌کند."
        ],
        "table": {
          "headers": [
            "جزء",
            "مسئولیت اصلی",
            "مرز دسترسی"
          ],
          "rows": [
            [
              "مارکت‌پلیس و مدیر وب",
              "دارایی‌ها، حساب و اتصال‌های تجاری",
              "مجوزهای برنامه وب"
            ],
            [
              "Admin Main",
              "هویت شبکه، زیرساخت و چرخه اعتبارسنج",
              "دسترسی اپراتور مجاز زیرساخت"
            ],
            [
              "Station سازمانی",
              "عضویت، وظایف و منابع متصل به ایستگاه",
              "نقش‌های تأییدشده همان سازمان"
            ],
            [
              "Besu",
              "اجرای EVM، دفترکل و اجماع QBFT",
              "پیکربندی و مجموعه اعتبارسنج شبکه"
            ]
          ]
        }
      },
      {
        "id": "identity",
        "title": "هویت شبکه از کجا مشخص می‌شود؟",
        "paragraphs": [
          "در نسخه تولیدی، هویت مورد انتظار شبکه با Chain ID و هش بلاک آغازین پیکربندی می‌شود. پاسخ RPC باید با این مقادیر تطبیق داشته باشد؛ پاسخ‌دادن یک سرویس یا تشابه نام شبکه کافی نیست. برخی مسیرها Network ID را نیز کنترل می‌کنند.",
          "هش بلاک صفر که از RPC خوانده می‌شود با SHA-256 فایل genesis.json دو شاهد متفاوت است. اولی برای تطبیق زنجیره و دومی در بعضی مجوزها برای اتصال تصمیم به فایل پیکربندی به کار می‌رود. مستند اتصال هر مؤلفه مشخص می‌کند کدام‌یک مورد نیاز است."
        ]
      },
      {
        "id": "consensus",
        "title": "Besu و اجماع مجوزدار",
        "paragraphs": [
          "سورس Admin Main تصویر Besu با نسخه ثابت 26.7.1 و تولید Genesis مبتنی بر QBFT را نشان می‌دهد. اجرای قراردادها با EVM و خواندن داده از JSON-RPC انجام می‌شود. دوره بلاک، دوره بلاک خالی و مهلت درخواست، تنظیمات شبکه هستند و نباید به‌عنوان یک زمان قطعی عمومی برای همه نصب‌ها معرفی شوند.",
          "پیکربندی تولیدشده epoch برابر ۳۰٬۰۰۰ و zeroBaseFee دارد. وجود این گزینه در مولد شبکه به‌تنهایی ثابت نمی‌کند هر شبکه موجود همین تنظیمات را دارد یا کارمزد تجاری همه خدمات صفر است؛ تنظیمات واقعی باید از Genesis همان استقرار بررسی شوند."
        ]
      },
      {
        "id": "evidence",
        "title": "سه سطح شواهد",
        "paragraphs": [
          "این مجموعه میان قابلیت پیاده‌شده در سورس، خروجی بسته‌بندی‌شده و کارکرد تأییدشده در محیط عملیاتی تفاوت می‌گذارد. وجود قرارداد، فایل نصب یا آزمون محلی، استقرار آن روی شبکه واقعی را اثبات نمی‌کند.",
          "گزارش‌های نسخه‌ای داخل پروژه مرجع تاریخی بررسی‌ها هستند. در تهیه این مستندات کد و گزارش‌ها خوانده شده‌اند؛ اتصال به سرور، رأی اجماع، نصب سرویس و اجرای تراکنش تولیدی انجام نشده است."
        ],
        "note": {
          "kind": "info",
          "title": "وضعیت زنده از این صفحه به دست نمی‌آید",
          "text": "تعداد اعتبارسنج فعال، ارتفاع بلاک، آدرس RPC و قراردادهای مستقر باید از محیط مجاز همان شبکه دریافت شوند. این مستندات برای این مقادیر عدد یا نشانی عملیاتی فرض نمی‌کنند."
        }
      },
      {
        "id": "integration",
        "title": "اتصال برنامه‌ها به یکدیگر",
        "paragraphs": [
          "شناخت سلامت Admin Main، ثبت یک نود در رجیستری، عضویت رسمی QBFT و داشتن نقش تجاری چهار موضوع جدا هستند. هیچ‌کدام را نباید از دیگری نتیجه گرفت. برای نمونه، سازمان می‌تواند Station فعال داشته باشد و اصلاً اعتبارسنج نباشد.",
          "برای راه‌اندازی یک خدمت کامل باید قرارداد API، نقش سازمان، منبع RPC، امضاکننده و ثبت نتیجه تراکنش در هر دو سوی اتصال مشخص شوند. اتصال‌های قیمت مارکت‌پلیس نیز به‌خودی‌خود دسترسی مدیریت شبکه یا تسویه روی زنجیره ایجاد نمی‌کنند."
        ]
      }
    ],
    "sources": [
      "admin-main-new/backend/app/production.py",
      "admin-main-new/backend/app/services/network_service.py",
      "plank-station-new/agent/app.py",
      "plank-station-mac-remote/server/gateway.py"
    ],
    "related": [
      "main-admin",
      "station",
      "validators",
      "network-api"
    ]
  },
  {
    "slug": "main-admin",
    "group": "network",
    "title": "Admin Main؛ کنترل‌گر شبکه پلانک",
    "description": "قابلیت‌های کنترل شبکه، ابزارهای تشخیص، مدیریت قرارداد و تفاوت Admin Main با پنل مدیر مارکت‌پلیس.",
    "status": "implemented",
    "audience": "اپراتور شبکه و مدیر فنی",
    "sections": [
      {
        "id": "product",
        "title": "محصول و ساختار فنی",
        "paragraphs": [
          "نسخه بررسی‌شده admin-main-new با شناسه نسخه 0.18.7-production.2 یک محصول مستقل با رابط React و TypeScript، ساخت Vite و سرویس Python/FastAPI است. لایه بلاک‌چین از Web3 و ابزارهای امضای اتریوم استفاده می‌کند. فایل‌های قرارداد Solidity و خروجی ABI نیز در همین محصول وجود دارند.",
          "پنل مدیر مارکت‌پلیس وظایفی مانند محتوا و تنظیم ارائه‌دهندگان داده دارد؛ Admin Main با نود، Genesis، رأی QBFT و عملیات قرارداد سروکار دارد. استفاده از واژه «مدیر» در هر دو برنامه نباید به معنای اشتراک نشست، حساب یا اختیار آن‌ها تعبیر شود."
        ]
      },
      {
        "id": "operations",
        "title": "عملیات موجود در سورس",
        "paragraphs": [
          "سرویس‌های شبکه برای ساخت تنظیمات، کار با Docker، بازیابی نصب شناخته‌شده، نصب و تشخیص اعتبارسنج راه‌دور و پیگیری عملیات طولانی وجود دارند. زیرسامانه‌های خواندن بلاک، تراکنش، انتقال توکن، اطلاعات قرارداد و شاخص‌های امضاکنندگان از RPC استفاده می‌کنند.",
          "ابزار تشخیص، سلامت فرایند، RPC واقعی، ارتباط همتا، همگام‌سازی، هویت زنجیره و عضویت اجماع را جدا می‌سنجد. تست وضعیت یک مسیر خواندنی است؛ بازیابی یا راه‌اندازی مجدد، عملیات جدا و صریح اپراتور است."
        ]
      },
      {
        "id": "governance",
        "title": "نقش سازمانی و گردش قرارداد",
        "paragraphs": [
          "کنترل‌گر شامل رجیستری سازمان، سیاست تأیید پروژه، تأیید نهایی، کنترل ضرب، توکن فعال، اوراکل، قیمت و درخواست عرضه عمومی است. این مدل مراحل پروژه را ثبت می‌کند، اما صرف تغییر وضعیت محلی معادل انجام یک تراکنش موفق روی زنجیره نیست.",
          "در محیط تولید، ساخت خودکار نقش‌های آزمایشی و امضای شبیه‌سازی‌شده سازمان‌ها غیرفعال می‌شود. تصمیم واقعی باید از مرجع مجاز و مسیر امضای واقعی برسد؛ فعال‌کردن گزینه تولید، اتصال کامل Station و امضاکننده را خودکار ایجاد نمی‌کند."
        ]
      },
      {
        "id": "startup",
        "title": "پیش‌شرط‌های تولید",
        "paragraphs": [
          "محافظ آغاز به کار تولیدی، مسیر داده پایدار، اتصال محدود به loopback، مبدأ عمومی HTTPS، RPC مرجع، Chain ID معتبر، هش Genesis و مبدأهای مجاز مشخص را بررسی می‌کند. توکن برنامه نیز باید پیکربندی شود. CORS با مقدار wildcard برای این حالت پذیرفته نیست.",
          "پروب canonical سپس اتصال، Chain ID، هش بلاک صفر و مجموعه اعتبارسنج‌ها را می‌خواند. خطای این مرحله نباید با داده نمایشی جبران شود. دسترسی بیرونی باید از درگاه مصوب عبور کند و RPC مدیریتی برای کاربران عمومی منتشر نشود."
        ]
      },
      {
        "id": "release",
        "title": "آنچه بسته و گزارش اثبات می‌کنند",
        "paragraphs": [
          "گزارش پایه تولیدی از موفقیت ۱۴۴ آزمون و ساخت رابط و قراردادها سخن می‌گوید و استقرار سرور را انجام‌نشده اعلام می‌کند. یادداشت 0.18.7-production.2 موفقیت ۱۴۸ آزمون و ساخت را ثبت کرده و نشان می‌دهد healthy بودن کانتینر، موفقیت RPC را تضمین نمی‌کند. این اعداد گزارش تاریخی همان نسخه‌اند؛ در این بررسی دوباره اجرا نشده‌اند.",
          "کد Electron قدیمی در درخت سورس باقی است و به backend اجرایی ویندوز اشاره می‌کند؛ اما package.json نسخه جاری مسیر ساخت و اجرای سروری دارد. حضور آن فایل‌ها مدرک انتشار نصب‌کننده دسکتاپ امضاشده برای نسخه جاری نیست."
        ]
      }
    ],
    "sources": [
      "admin-main-new/package.json",
      "admin-main-new/backend/app/main.py",
      "admin-main-new/backend/app/services/control_plane_service.py",
      "admin-main-new/backend/app/production.py",
      "admin-main-new/electron/main.ts",
      "admin-main-new/VERIFICATION_NEW_FA.md",
      "admin-main-new/RELEASE_NOTES_v0.18.7-production.2_FA.md"
    ],
    "related": [
      "network-overview",
      "network-contracts",
      "network-security",
      "network-operations"
    ]
  },
  {
    "slug": "station",
    "group": "network",
    "title": "Plank Station؛ ایستگاه کاری سازمان",
    "description": "عضویت مستقل، نقش‌های سازمانی، وظایف، اتصال اختیاری نود و مرز آمادگی امضا.",
    "status": "implemented",
    "audience": "نهادهای همکار و کاربران سازمانی",
    "sections": [
      {
        "id": "identity",
        "title": "هویت سازمان از هویت نود جداست",
        "paragraphs": [
          "Station نسخه 1.2.0-production.1 یک رابط React و عامل محلی Python با داده SQLite است. نام نمایشی و مشخصات سازمان به Station تعلق دارند؛ هویت اعتبارسنج متصل از منبع کشف نود می‌آید و با تغییر نام سازمان بازنویسی نمی‌شود.",
          "عضویت فعال Station می‌تواند بدون Node، Validator یا Signer برقرار باشد. در این حالت بررسی‌های RPC، همگام‌سازی و تولید بلاک «نامرتبط» گزارش می‌شوند؛ نبود نود اختیاری به‌تنهایی خرابی یا رد عضویت سازمان نیست."
        ]
      },
      {
        "id": "roles",
        "title": "نقش‌های پشتیبانی‌شده",
        "paragraphs": [
          "مدل نقش شامل نهاد دولتی، بانک، ناظر مقرراتی، مالی، حقوقی، ثبت، فنی و مشاهده‌گر است. انتخاب نوع سازمان تنها نقش‌های درخواستی را مشخص می‌کند؛ اختیار واقعی پس از رسید معتبر و نقش‌های تأییدشده مرجع شبکه فعال می‌شود.",
          "یک نقش مانند LEGAL_APPROVER برای تصمیم حقوقی با عضویت در مجموعه Validatorهای QBFT یکسان نیست. همچنین نقش NODE_OBSERVER به معنی دسترسی به کلید اجماع یا اختیار تغییر اعضای شبکه نیست."
        ]
      },
      {
        "id": "membership",
        "title": "درخواست و رسید عضویت",
        "paragraphs": [
          "جریان عضویت شامل شناسه درخواست، شناسه ایستگاه، شبکه، سازمان، روش تأیید و نقش‌های درخواستی است. فعال‌سازی، رسید امضاشده Ed25519 را با کلید عمومی مرجع مورد اعتماد بررسی می‌کند و تطبیق همین شناسه‌ها و روش تأیید را می‌سنجد.",
          "رسید تکراری یا قدیمی با شماره توالی رد می‌شود؛ زمان صدور و انقضا نیز بررسی می‌شوند. در تأیید عضویت، نقش‌های مصوب باید زیرمجموعه نقش‌های درخواست‌شده باشند. کلید عمومی مرجع باید از مسیر معتبر دریافت شود، نه صرفاً از یک فایل همراه نامشخص."
        ]
      },
      {
        "id": "tasks",
        "title": "تصمیم و امضا دو مرحله‌اند",
        "paragraphs": [
          "برای ثبت تصمیم روی وظیفه، نسخه سیاست و شناسه درخواست بررسی می‌شوند و وظیفه پایان‌یافته دوباره تصمیم‌پذیر نیست. وظیفه‌ای که امضای سازمانی لازم دارد می‌تواند به READY_FOR_SIGNATURE برسد؛ این وضعیت اثبات ایجاد امضا یا ثبت تراکنش نیست.",
          "اتصال HSM، MPC یا Web3Signer با شناسه عمومی کلید، نشانی و مسیر فایل‌های اعتماد پیکربندی می‌شود. در این سورس، بررسی آمادگی و صف تصمیم موجود است؛ اجرای کامل امضا و ارسال نیازمند قرارداد واقعی سرویس و آزمون یکپارچه همان سازمان است."
        ]
      },
      {
        "id": "state",
        "title": "حالت تولید و وضعیت بررسی",
        "paragraphs": [
          "در حالت تولید، Demo و ایجاد Software Vault رد می‌شوند، مسیر runtime باید پایدار و مطلق باشد و عامل فقط روی loopback اجرا شود. گزارش عمومی، جزئیات حساس را کنار می‌گذارد و گزارش قدیمی شبکه به‌صورت وضعیت نامشخص یا قدیمی نمایش داده می‌شود.",
          "گزارش Station New موفقیت ۴۲ آزمون و ساخت رابط را ثبت کرده است، اما عضویت واقعی، پروب RPC واقعی و نصب سرویس Linux را تأییدشده نمی‌داند. این مستندات نیز صرفاً سورس را بررسی کرده‌اند و چنین اتصالی ایجاد نکرده‌اند."
        ]
      }
    ],
    "sources": [
      "plank-station-new/package.json",
      "plank-station-new/agent/app.py",
      "plank-station-new/SECURITY.md",
      "plank-station-new/VERIFICATION_NEW_FA.md"
    ],
    "related": [
      "observer",
      "node-lifecycle",
      "network-security",
      "network-api"
    ]
  },
  {
    "slug": "node-lifecycle",
    "group": "network",
    "title": "انواع نود و چرخه راه‌اندازی",
    "description": "تفاوت نقش‌های نود، کشف منابع موجود، اتصال محدود و مرز درخواست توسعه با نصب واقعی.",
    "status": "implemented",
    "audience": "اپراتور Station و مدیر زیرساخت",
    "sections": [
      {
        "id": "resources",
        "title": "نقش‌های فنی متفاوت",
        "paragraphs": [
          "کاتالوگ توسعه Station چند نوع منبع را توصیف می‌کند. این کاتالوگ مشخص می‌کند هر درخواست به چه اطلاعات و مجوزی نیاز دارد؛ وجود نام یک نوع منبع در رابط به معنی نصب‌شدن خودکار آن نیست."
        ],
        "table": {
          "headers": [
            "منبع",
            "کارکرد",
            "حق اجماع"
          ],
          "rows": [
            [
              "Validator",
              "اجرای نود عضو و مشارکت QBFT",
              "فقط پس از عضویت canonical"
            ],
            [
              "Standby Validator",
              "آمادگی برای جایگزینی کنترل‌شده",
              "تا پیش از رأی و عضویت ندارد"
            ],
            [
              "Full / RPC Node",
              "کنترل مستقل زنجیره یا ارائه RPC خصوصی",
              "ندارد"
            ],
            [
              "Mini / Operational Node",
              "منبع عملیاتی با داده کم‌حجم‌تر",
              "عنوان Mini به معنای Light Client نیست"
            ],
            [
              "Observer / Archive",
              "مشاهده یا نگهداری تاریخچه state",
              "ندارد"
            ],
            [
              "Bootnode",
              "کشف همتایان",
              "نقش خودکار اعتبارسنج ندارد"
            ],
            [
              "Monitoring Agent",
              "پایش و گزارش وضعیت",
              "ندارد"
            ]
          ]
        }
      },
      {
        "id": "discover",
        "title": "ابتدا منابع موجود شناسایی می‌شوند",
        "paragraphs": [
          "Inventory سرور به‌صورت محدود و پاک‌سازی‌شده تولید می‌شود. Station ابتدا نامزدهای موجود را می‌خواند و نود انتخاب‌شده را به خود متصل می‌کند. وجود اعتبارسنج قابل استفاده، مسیر ساخت موازی اعتبارسنج تازه را محدود می‌کند.",
          "تطبیق شامل هویت نود، وضعیت فرایند، RPC اختصاصی، Chain ID، Genesis و در صورت وجود مرجع، هش در ارتفاع مشترک است. نام یک کانتینر یا یک رکورد محلی به‌تنهایی هویت canonical را اثبات نمی‌کند."
        ]
      },
      {
        "id": "request",
        "title": "درخواست توسعه، استقرار نیست",
        "paragraphs": [
          "فرم توسعه می‌تواند نوع منبع، نام فنی، پورت‌ها، حالت همگام‌سازی FULL یا SNAP، سیاست داده PRUNED/FULL/ARCHIVE و مرجع بسته ادمین را ثبت کند. نشانی عمومی RPC به‌عنوان یک قابلیت خودکار مجاز فرض نشده است.",
          "خروجی درخواست بر اساس اطلاعات و سیاست می‌تواند WAITING_ADMIN_PACKAGE، WAITING_NETWORK_GOVERNANCE یا DRAFT_READY باشد. این وضعیت‌ها پیش‌نویس و انتظار را توصیف می‌کنند؛ تولید Genesis، دریافت مجوز و ساخت کانتینر واقعی مراحل جدا هستند."
        ]
      },
      {
        "id": "runtime",
        "title": "کنترل فقط منبع متصل",
        "paragraphs": [
          "عامل Station برای start، stop و restart از مسیر محدود کنترل نود استفاده می‌کند. helper نصب‌شده باید مالک root داشته باشد؛ سرویس درخواستی را با binding همان Station و Inventory مورد اعتماد تطبیق می‌دهد و نوع کانتینر Besu را بررسی می‌کند.",
          "این اختیار، دسترسی عمومی به همه کانتینرهای میزبان نیست. در نسخه Remote macOS حتی همین کنترل محدود runtime نیز وجود ندارد و فقط خواندن اطلاعات مجاز است."
        ]
      },
      {
        "id": "removal",
        "title": "توقف محلی، خروج از شبکه و حذف داده",
        "paragraphs": [
          "مدل چرخه عمر میان غیرفعال‌سازی محلی، درخواست خروج از شبکه و پاک‌سازی سرور تفاوت می‌گذارد. خاموش‌کردن کانتینر، آدرس را از مجموعه QBFT حذف نمی‌کند و حذف یک رکورد رابط نیز جای رأی شبکه را نمی‌گیرد.",
          "شرایط اقدام باید از وضعیت تازه بررسی شوند: binding معتبر، رمز محلی، حضور در Inventory، وضعیت اجرا و تأیید خروج از مجموعه canonical. پیش از هر پاک‌سازی، هویت و داده بازیابی باید در برنامه عملیاتی مستقل حفاظت شوند."
        ]
      }
    ],
    "sources": [
      "plank-station-new/agent/app.py",
      "plank-station-new/scripts/refresh-node-inventory.py",
      "plank-station-new/scripts/node-runtime-control.sh",
      "plank-station-new/deploy/install-ubuntu-24.04.sh"
    ],
    "related": [
      "station",
      "validators",
      "network-operations"
    ]
  },
  {
    "slug": "validators",
    "group": "network",
    "title": "اعتبارسنج‌ها و حاکمیت QBFT",
    "description": "مجوز سازمانی، رأی اجماع، عضویت canonical و مشارکت در تولید بلاک را جدا دنبال کنید.",
    "status": "implemented",
    "audience": "مدیران شبکه و ناظران فنی",
    "sections": [
      {
        "id": "authority",
        "title": "دو نوع مجوز مستقل",
        "paragraphs": [
          "Admin Main دو سیاست QBFT_STANDARD و ADMIN_GATED_QBFT را می‌شناسد. در سیاست دوم، مجوز سازمانی ادمین پیش‌شرط عملیات است، اما همچنان جای رأی اعضای QBFT را نمی‌گیرد. سیاست پیش‌فرض برای رکوردهای قدیمی، حالت دارای دروازه ادمین است.",
          "مجوز ادمین به عملیات افزودن یا حذف، آدرس هدف، Chain ID، هش فایل Genesis، زمان اعتبار و nonce متصل می‌شود. نتیجه موفق مصرف مجوز را ثبت می‌کند تا یک تأیید سازمانی به مجوز دائمی برای عملیات نامرتبط تبدیل نشود."
        ]
      },
      {
        "id": "threshold",
        "title": "اکثریت تغییر عضو و حد نصاب بلاک",
        "paragraphs": [
          "در منطق همین پیاده‌سازی، تغییر مجموعه اعتبارسنج با اکثریت بیش از نصف اعضای فعلی محاسبه می‌شود: floor(n/2)+1. حد نصاب ثبت بلاک جداست و با ceil(2n/3) محاسبه می‌شود. بنابراین «تعداد رأی لازم برای عضویت» و «حد نصاب ادامه تولید بلاک» یک شمارنده نیستند.",
          "این محاسبات برای ارزیابی ایمنی عملیات در کد به کار می‌روند. تعداد اعضای واقعی و وضعیت آنلاین آن‌ها باید از شبکه همان لحظه خوانده شود؛ مستندات تعداد ثابت یا تضمین تحمل خرابی برای استقرار فعلی اعلام نمی‌کنند."
        ]
      },
      {
        "id": "states",
        "title": "ماشین حالت عملیات",
        "paragraphs": [
          "مسیر افزودن از ثبت درخواست و در صورت لزوم انتظار تأیید ادمین، به راه‌اندازی، همگام‌سازی، آمادگی رأی و رأی‌گیری می‌رسد. پس از اثبات عضویت، پایش مشارکت ادامه پیدا می‌کند. خطا باید با مرحله و شواهد قابل پیگیری همراه باشد.",
          "ذخیره عملیات پایدار و کلید idempotency از ایجاد کارهای هم‌زمان تکراری جلوگیری می‌کنند. پس از قطع backend، کار بدون thread فعال «قطع‌شده» گزارش می‌شود؛ نباید از یک وضعیت running ذخیره‌شده، اجرای واقعی همچنان فعال را نتیجه گرفت."
        ]
      },
      {
        "id": "proof",
        "title": "عضویت با شواهد Besu تأیید می‌شود",
        "paragraphs": [
          "مجموعه latest و نمای pending از روش‌های QBFT خوانده می‌شوند. رجیستری داخلی یا پیام موفق رابط منبع نهایی عضویت نیست. مقایسه شاخه زنجیره در ارتفاع مشترک انجام می‌شود تا عقب‌بودن نود با fork اشتباه نشود.",
          "سلامت فرایند، دسترسی RPC، peers، sync، عضویت و مشارکت proposer مستقل‌اند. اعتبارسنج عضو ممکن است هنوز نوبت پیشنهاد بلاک نداشته باشد؛ برعکس سابقه پیشنهاد یک بلاک ثابت نمی‌کند همین حالا آنلاین و همگام است."
        ]
      },
      {
        "id": "remote",
        "title": "اعتبارسنج راه‌دور و محدودیت تأیید",
        "paragraphs": [
          "تشخیص راه‌دور شامل بررسی اتصال امن، پاسخ RPC محدود و شواهد فرایند است. یادداشت نسخه جدید صریحاً healthy بودن کانتینر را برای تأیید سلامت RPC کافی نمی‌داند. تست خواندنی نباید برای سبزشدن کارت، خودکار رأی یا restart اجرا کند.",
          "سورس و آزمون‌های تشخیصی موجودند، اما سلامت هر اعتبارسنج واقعی وابسته به اجرای کنترل‌شده پروب در محیط مجاز است. نشانی میزبان، شناسه enode و کلیدها در مستند عمومی منتشر نمی‌شوند."
        ]
      }
    ],
    "sources": [
      "admin-main-new/ARCHITECTURE_v0.14.0_FA.md",
      "admin-main-new/backend/app/services/validator_governance_service.py",
      "admin-main-new/backend/app/services/validator_lifecycle_service.py",
      "admin-main-new/backend/app/services/operation_store.py",
      "admin-main-new/backend/app/services/validator_diagnostics_service.py"
    ],
    "related": [
      "main-admin",
      "node-lifecycle",
      "network-security",
      "network-operations"
    ]
  },
  {
    "slug": "network-contracts",
    "group": "network",
    "title": "قراردادها و کنترل‌های روی زنجیره",
    "description": "خانواده قراردادهای موجود، محدودیت‌های توکن و تفاوت ثبت محلی، اجرای EVM و پیام میان‌زنجیره‌ای.",
    "status": "implemented",
    "audience": "توسعه‌دهندگان قرارداد و ارزیابان فنی",
    "sections": [
      {
        "id": "inventory",
        "title": "دوازده قرارداد در زنجیره ابزار",
        "paragraphs": [
          "درخت سورس خانواده‌ای شامل PlankToken، ProjectGovernance، PlankOrganizationRegistry، PlankProjectRegistry، PlankApprovalManager، PlankMintController، PlankActiveTokenRegistry، PlankOracleReportRegistry، PlankTokenPriceRegistry، PlankPublicizationController و دو قرارداد CCIP Sender/Receiver دارد.",
          "فایل Solidity و artifact قرارداد نشان‌دهنده وجود کد قابل کامپایل است. برای معرفی قرارداد مستقر باید آدرس، Chain ID، نسخه bytecode و تراکنش استقرار همان شبکه به‌صورت جدا ثبت و تأیید شوند؛ فهرست نام قراردادها جای این شواهد را نمی‌گیرد."
        ]
      },
      {
        "id": "token",
        "title": "توکن پایه و حاکمیت پروژه",
        "paragraphs": [
          "PlankToken موجودی و allowance، انتقال، ضرب، سوزاندن، سقف عرضه، توقف، تنظیم انتقال، نقش minter و قفل زمانی موجودی را پیاده می‌کند. دقت ثابت توکن ۱۸ رقم اعشار است. فراداده دارایی و سیاست درآمد و تبدیل نیز در مدل قرارداد وجود دارند.",
          "ProjectGovernance دو الگوی رأی بر اساس وزن توکن و یک کیف‌پول/یک رأی دارد. وجود این امکان در قرارداد اثبات هویت یکتای اشخاص یا ارزش حقوقی یک رأی نیست؛ معیار مشارکت و سازوکار احراز باید برای همان پروژه روشن شوند."
        ]
      },
      {
        "id": "mint",
        "title": "کنترل عرضه و مجوز ضرب",
        "paragraphs": [
          "Mint Controller پیش از ضرب، اختیار operator، وضعیت توقف، گیرنده، شناسه مجوز و عدم استفاده قبلی مجوز را کنترل می‌کند. رجیستری پروژه باید امکان ضرب مقدار موردنظر را تأیید کند و ثبت نتیجه نیز انجام می‌شود.",
          "عرضه مجاز، عرضه ضرب‌شده و عرضه توزیع‌شده مفاهیم متفاوت‌اند. وضعیت محلی پروژه باید با رویداد و نتیجه تراکنش زنجیره تطبیق داده شود؛ گزارش داخلی به‌تنهایی اثبات موجودی قابل معامله کاربران نیست."
        ]
      },
      {
        "id": "publicization",
        "title": "گزارش اوراکل و عرضه عمومی",
        "paragraphs": [
          "کنترل‌گر عرضه عمومی وضعیت‌هایی مانند انتظار مشاهده‌گر، مجاز، اجراشده، لغوشده و منقضی دارد و به اعتبار پروژه و گزارش اوراکل وابسته است. در کد، سیاست و شواهد پیش از انتقال وضعیت بررسی می‌شوند.",
          "ثبت داده اوراکل صحت دارایی بیرونی را خودکار تضمین نمی‌کند. منبع، تازگی داده، سیاست پذیرش و اعتبار امضا باید جدا تعریف شوند؛ امکان نگهداری گزارش در قرارداد جای ارزیابی حقوقی یا مالی دارایی را نمی‌گیرد."
        ]
      },
      {
        "id": "ccip",
        "title": "مرز پیام میان‌زنجیره‌ای",
        "paragraphs": [
          "قراردادهای CCIP بررسی‌شده برای پیام داده و شواهد طراحی شده‌اند. Sender مسیر و گیرنده مجاز و محدودیت ارسال دارد؛ Receiver روتر، شبکه و فرستنده مجاز، جلوگیری از تکرار و اعتبار payload را کنترل می‌کند. مسیر دریافت، انتقال توکن همراه پیام را پشتیبانی‌شده فرض نمی‌کند.",
          "پس این کد را نباید «پل آماده انتقال همه دارایی‌ها» معرفی کرد. فعال‌سازی واقعی نیازمند شبکه و مسیر پشتیبانی‌شده ارائه‌دهنده، قراردادهای مستقر، پیکربندی و آزمون ارسال و تأیید مقصد است. آزمون محلی EVM یا mock روتر، موفقیت مسیر واقعی را ثابت نمی‌کند."
        ]
      }
    ],
    "sources": [
      "admin-main-new/contracts/PlankToken.sol",
      "admin-main-new/contracts/ProjectGovernance.sol",
      "admin-main-new/contracts/PlankMintController.sol",
      "admin-main-new/contracts/PlankPublicizationController.sol",
      "admin-main-new/contracts/PlankCCIPSender.sol",
      "admin-main-new/contracts/PlankCCIPReceiver.sol",
      "admin-main-new/backend/tests/test_onchain_control_plane.py"
    ],
    "related": [
      "main-admin",
      "network-api",
      "network-history"
    ]
  },
  {
    "slug": "macos",
    "group": "network",
    "title": "پلانک روی macOS",
    "description": "تفاوت Station محلی قدیمی و بسته بومی Remote، نیازمندی‌ها و وضعیت واقعی امضا و آزمون.",
    "status": "configured",
    "audience": "کاربران macOS و مسئولان توزیع سازمانی",
    "sections": [
      {
        "id": "editions",
        "title": "دو مسیر جدا برای مک",
        "paragraphs": [
          "بسته تاریخی Plank Station 1.0.0 برای macOS، توزیع سورس با setup و run است: عامل Python و رابط محلی را اجرا و مرورگر را باز می‌کند. این بسته با محصول جدید Plank Station Remote 1.3.0 یکسان نیست.",
          "Remote از سورس Station 1.2 جدا شده، اما نقطه ورود و درگاه متفاوت دارد. فایل‌های عامل و رابط قدیمی برای ردیابی در سورس باقی‌اند؛ در بسته بومی جدید اجرا نمی‌شوند. Remote جایگزین کامل قابلیت‌های نوشتن Station سازمانی نیست."
        ]
      },
      {
        "id": "native",
        "title": "ساخت و محتوای بسته Remote",
        "paragraphs": [
          "اسکریپت ساخت، Swift را برای arm64 و x86_64 با حداقل macOS 12 کامپایل و خروجی Universal ایجاد می‌کند. برنامه از AppKit، WebKit و Security استفاده می‌کند؛ رابط React از منابع داخل بسته و scheme اختصاصی بارگذاری می‌شود.",
          "در خروجی بومی برای اجرای برنامه به Python، Node، Docker، Besu یا وب‌سرور localhost روی مک نیاز نیست. دفترکل روی سرور می‌ماند و برنامه خلاصه وضعیت، بلاک‌های اخیر و بلاک انتخابی را می‌خواند. این رفتار، نود کامل یا light client با اثبات مستقل نیست."
        ]
      },
      {
        "id": "transport",
        "title": "اتصال و دسترسی",
        "paragraphs": [
          "دو مسیر ارتباط HTTPS و SSH با forced command وجود دارند. در مسیر SSH، بررسی هویت میزبان اجباری است و forwarding، PTY و فرمان محلی دلخواه فعال نمی‌شوند. مسیر HTTPS تغییرمقصد خودکار و گواهی نامعتبر را راه‌حل اتصال نمی‌داند.",
          "توکن دسترسی Station با کلید SSH، کلید کیف پول و کلید اجماع متفاوت است. نقش و دامنه دسترسی از سرور می‌آیند. تنظیمات عمومی در فایل اتصال و توکن به انتخاب کاربر در حافظه یا Keychain اختصاصی محصول نگهداری می‌شود؛ lock نشست حافظه را پاک می‌کند."
        ]
      },
      {
        "id": "verification",
        "title": "وضعیت ساخت و امضا",
        "paragraphs": [
          "گزارش نسخه 1.3.0 موفقیت ۱۸ آزمون درگاه، ساخت React و ساخت Universal را ثبت می‌کند. خودآزمایی منطق بومی روی arm64 و بررسی ساختار امضای ad-hoc نیز در همان گزارش آمده است.",
          "این بسته Developer ID و notarization اپل ندارد. آزمون نهایی پنجره WebKit و مسیرهای SSH/Keychain در نشست عادی کاربر و اتصال کامل به تولید در گزارش تأیید نشده‌اند. وجود باینری x86_64 داخل Universal به معنی آزمون اجرایی مستقل روی مک Intel نیست."
        ],
        "note": {
          "kind": "warning",
          "title": "بسته محلی با انتشار عمومی فرق دارد",
          "text": "برای توزیع عمومی قابل اعتماد، امضای ناشر، notarization، کنترل نسخه و آزمون پذیرش هنوز باید تکمیل شوند. غیرفعال‌کردن Gatekeeper یا بررسی TLS بخشی از راهنمای اتصال نیست."
        }
      },
      {
        "id": "onboarding",
        "title": "راه‌اندازی سازمانی",
        "paragraphs": [
          "مدیر شبکه باید درگاه را جداگانه روی سرور آماده کند، هویت Station و کلید دسترسی اختصاصی بدهد و Chain ID، Network ID و هش بلاک صفر مورد انتظار را از مسیر معتبر تحویل دهد. نمایش فرم اتصال یا نصب برنامه به‌تنهایی عضویت یا مجوز نمی‌سازد.",
          "اسکریپت بسته‌بندی runtime، محیط‌ها، دیتابیس، وابستگی‌های ساخت و تنظیمات واقعی درگاه را از بسته سورس کنار می‌گذارد. پیش‌فرض‌ها و مثال‌های تاریخی باید هنگام تحویل بازبینی شوند؛ در مستند عمومی از نشانی عملیاتی، آدرس اعتبارسنج یا کلید واقعی استفاده نمی‌شود."
        ]
      }
    ],
    "sources": [
      "plank-station-mac-remote/package.json",
      "plank-station-mac-remote/macos/Station.swift",
      "plank-station-mac-remote/scripts/build-mac.mjs",
      "plank-station-mac-remote/scripts/package-release.mjs",
      "plank-station-mac-remote/server/gateway.py",
      "plank-station-mac-remote/VERIFICATION_REMOTE_FA.md",
      "Plank-Station-macOS-v1.0.0/tools/run.mjs"
    ],
    "related": [
      "network-api",
      "network-security",
      "windows",
      "linux"
    ]
  },
  {
    "slug": "windows",
    "group": "network",
    "title": "پلانک روی Windows",
    "description": "آنچه در بسته Windows نسخه 1.0.0 موجود است و آنچه درباره نصب‌کننده، امضا و سازگاری هنوز تأیید نشده است.",
    "status": "reference",
    "audience": "کاربران Windows و تیم بسته‌بندی",
    "sections": [
      {
        "id": "package",
        "title": "ماهیت بسته موجود",
        "paragraphs": [
          "مرجع بررسی‌شده Windows نسخه 1.0.0، سورس Station با فایل‌های setup.cmd، setup.ps1 و run.cmd است. این بسته رابط React و عامل Python را روی رایانه اجرا می‌کند و مرورگر را به رابط محلی می‌برد.",
          "در محدوده بررسی‌شده، مدرک نصب‌کننده MSI یا EXE امضاشده برای Station جاری پیدا نشد. بنابراین عبارت «پشتیبانی ویندوز» در این نسخه باید به مسیر اجرای سورس و launcher ویندوز اشاره کند، نه انتشار عمومی یک نرم‌افزار بومی نصب‌شونده."
        ]
      },
      {
        "id": "requirements",
        "title": "پیش‌نیازهای راه‌اندازی",
        "paragraphs": [
          "اسکریپت setup حداقل Node.js 20 و Python را بررسی می‌کند. در صورت نبود وابستگی، مسیر نصب با winget برای Node.js LTS و Python 3.12 در کد پیش‌بینی شده است. سپس محیط مجازی Python ساخته و وابستگی‌های Python و npm نصب می‌شوند.",
          "اسکریپت در ادامه آزمون و ساخت رابط را فراخوانی می‌کند. وجود این گام‌ها در فایل نصاب، نتیجه موفق روی یک دستگاه Windows مشخص را اثبات نمی‌کند؛ نسخه سیستم‌عامل، معماری، سیاست PowerShell و گزارش اجرای واقعی باید در پذیرش انتشار ثبت شوند."
        ]
      },
      {
        "id": "runtime",
        "title": "اجرای روزمره",
        "paragraphs": [
          "run.cmd ابزار مشترک Node را اجرا می‌کند. این ابزار runtime برنامه را انتخاب کرده، حالت Demo را خاموش نگه می‌دارد، عامل و رابط را بالا می‌آورد و پس از آماده‌شدن صفحه مرورگر را باز می‌کند. اجرای نخست با نقش، کیف پول و شبکه خالی آغاز می‌شود.",
          "نصب این Station باعث نصب Besu یا فعال‌شدن Validator نمی‌شود. منابع شبکه، عضویت سازمان و امضاکننده باید از مسیرهای مستقل پیکربندی شوند. اسکریپت‌های Linux که در بسته تاریخی باقی‌اند نیز قابلیت بومی Windows محسوب نمی‌شوند."
        ]
      },
      {
        "id": "security",
        "title": "اعتبار بسته و داده محلی",
        "paragraphs": [
          "اطلاعات محیط اجرا، دیتابیس Station، توکن نشست و مراجع امضاکننده جزو داده‌های عملیاتی‌اند. این داده‌ها نباید همراه بسته عمومی یا گزارش خطا منتشر شوند. مسیر اجرای سورس با اجرای یک باینری دارای امضای ناشر و زنجیره به‌روزرسانی امضاشده یکسان نیست.",
          "در سورس تاریخی، محدودیت امضای واقعی و تنظیم امضاکننده بیرونی توضیح داده شده است. هیچ رمز یا کلید عمومیِ اشتراکی برای ورود کاربران نباید به‌عنوان پیش‌فرض مستند شود. اطلاعات واقعی هر سازمان باید از مسئول مجاز همان سازمان دریافت شود."
        ]
      },
      {
        "id": "gaps",
        "title": "محدودیت و مسیر تکمیل",
        "paragraphs": [
          "آزمون نصب پاک Windows، گزارش سازگاری نسخه‌های سیستم‌عامل، امضای Authenticode، نصب‌کننده رسمی، حذف امن برنامه و به‌روزرسانی امضاشده در شواهد این بررسی تأیید نشده‌اند. این موارد باید پیش از معرفی نسخه آماده انتشار به کاربران عمومی تکمیل شوند.",
          "کد Electron موجود در خانواده Admin Main به backend اجرایی Windows اشاره می‌کند، اما محصول و جریان ساخت آن با Station متفاوت است. از این فایل نمی‌توان وجود یک نسخه نصب‌شونده جاری Station یا هم‌سطح بودن قابلیت‌های آن با Remote macOS را نتیجه گرفت."
        ]
      }
    ],
    "sources": [
      "Plank-Station-Windows-v1.0.0/package.json",
      "Plank-Station-Windows-v1.0.0/setup.cmd",
      "Plank-Station-Windows-v1.0.0/setup.ps1",
      "Plank-Station-Windows-v1.0.0/run.cmd",
      "Plank-Station-Windows-v1.0.0/tools/run.mjs",
      "admin-main-new/electron/main.ts"
    ],
    "related": [
      "station",
      "macos",
      "linux",
      "network-history"
    ]
  },
  {
    "slug": "linux",
    "group": "network",
    "title": "نسخه‌های Linux و شبکه مستقل",
    "description": "توزیع Station، سرویس‌های سروری و شاخه مستقل Admin Main برای ساخت یک شبکه جدید بدون دست‌زدن به شبکه قبلی.",
    "status": "configured",
    "audience": "مدیران Linux و تیم استقرار",
    "sections": [
      {
        "id": "editions",
        "title": "سه کاربرد Linux",
        "paragraphs": [
          "بسته تاریخی Station 1.0.0 مسیر اجرای سورس محلی دارد. Station New 1.2.0-production.1 نصاب Ubuntu 24.04، عامل systemd، تولید Inventory و reverse proxy ارائه می‌دهد. Admin Main Linux New Network 0.18.7-linux-newnet.1 شاخه مستقلی برای شروع یک شبکه تازه است.",
          "این نسخه‌ها قابل جایگزینی بی‌برنامه نیستند. هرکدام هویت سرویس، مسیر داده، تنظیمات و هدف عملیاتی خودش را دارد. وجود یک فایل نصب در یک بسته به معنی سازگاری همان فایل با همه نسخه‌ها و همه توزیع‌های Linux نیست."
        ]
      },
      {
        "id": "station-services",
        "title": "نصب Station سروری",
        "paragraphs": [
          "نصاب Station New حساب سرویس اختصاصی، محیط Python، خروجی رابط، سرویس Inventory و helper محدود کنترل نود را آماده می‌کند. عامل به loopback متکی است و دسترسی بیرونی باید از مسیر خصوصی یا reverse proxy با TLS معتبر فراهم شود.",
          "نصاب پس از آماده‌سازی، سرویس تازه را خودکار فعال نمی‌کند. پیکربندی مبدأها، هویت شبکه، اتصال Admin Main و رسید عضویت باید بازبینی شوند. گروه‌ها و مجوزهای helper نیز بخشی از محدوده اعتماد همان نصب‌اند."
        ]
      },
      {
        "id": "new-network",
        "title": "Admin Main برای شبکه تازه",
        "paragraphs": [
          "شاخه Linux New Network از Admin Main جدا شده و با manifest خالی آغاز می‌کند. ساخت Genesis و شروع کانتینرها دو عملیات مستقل‌اند؛ شکست start نباید باعث بازتولید کلید یا بازنویسی Genesis شود. دسترسی به پروژه‌ها و RPC شبکه قبلی در لایه هویت نسخه محدود شده است.",
          "کد مالکیت پوشه، marker، مسیر واقعی و نبود پیوندهای ناسازگار را بررسی می‌کند. پیش‌بررسی پورت، نام کانتینر و شبکه Docker تداخل را شناسایی می‌کند و برای آزادکردن منابع، سرویس قبلی را خودکار متوقف نمی‌کند."
        ]
      },
      {
        "id": "requirements",
        "title": "پیش‌نیاز و اختیار میزبان",
        "paragraphs": [
          "نصاب Linux New Network به Python 3.11 تا 3.13، Docker و Compose فعال، nginx و گواهی معتبر نیاز دارد. خروجی رابط باید از قبل ساخته شده باشد. حساب سرویس این شاخه عضو گروه Docker است؛ چنین دسترسی‌ای از نظر اختیار میزبان گسترده است و برای یک میزبان اختصاصی باید برنامه‌ریزی شود.",
          "ساخت شبکه فقط آدرس عمومی مدیر را برای تخصیص آغازین می‌گیرد؛ دریافت کلید خصوصی مدیر پیش‌شرط این ورودی نیست. کلیدهای نود هنگام آماده‌سازی همان شبکه ایجاد می‌شوند و نباید از نصب قدیمی کپی یا در بسته عمومی توزیع شوند."
        ]
      },
      {
        "id": "verification",
        "title": "دامنه آزمون ثبت‌شده",
        "paragraphs": [
          "گزارش ۱۴ سپتامبر ۲۰۲۶ موفقیت ۱۸۲ آزمون، ساخت ۱۲ قرارداد و خروجی رابط را ثبت می‌کند. تولید کلید و Genesis در فضای موقت، کنترل تداخل و رد پروژه و RPC بیگانه نیز در آزمون‌ها پوشش داده شده‌اند.",
          "همان گزارش تصریح می‌کند آزمون‌ها روی محیط ساخت macOS اجرا شده‌اند، عملیات تغییردهنده Docker mock بوده و نصب systemd/nginx، شروع واقعی Besu، استقرار راه‌دور، آزمون بار و بازیابی سرور Linux هنوز تأیید نشده‌اند. نسخه آماده آزمون پذیرش است؛ نه گواهی استقرار بی‌نقص تولید."
        ]
      }
    ],
    "sources": [
      "plank-station-new/deploy/install-ubuntu-24.04.sh",
      "plank-station-new/deploy/plank-station-new-agent.service",
      "admin-main-linux-newnet/package.json",
      "admin-main-linux-newnet/backend/app/new_network.py",
      "admin-main-linux-newnet/deploy/install-linux-newnet.sh",
      "admin-main-linux-newnet/deploy/linux-newnet-api.service",
      "admin-main-linux-newnet/VERIFICATION_LINUX_NEWNET_FA.md"
    ],
    "related": [
      "node-lifecycle",
      "network-operations",
      "network-security",
      "network-history"
    ]
  },
  {
    "slug": "observer",
    "group": "network",
    "title": "مشاهده‌گرها و نسخه LIB Observer",
    "description": "تفاوت نقش مشاهده‌گر سازمانی، نود مشاهده‌گر و Station Remote و اطلاعات لازم برای عضویت.",
    "status": "configured",
    "audience": "نهادهای نظارتی، کتابخانه و حسابرسان",
    "sections": [
      {
        "id": "edition",
        "title": "LIB Observer چه چیزی از پیش دارد؟",
        "paragraphs": [
          "نسخه LIB Observer شاخه‌ای از Station New با هویت نمایشی اولیه و نقش درخواستی NODE_OBSERVER است. نام سازمانی و نوع مشاهده‌گر برای ساده‌ترشدن راه‌اندازی فرم آماده‌اند؛ این پیش‌تنظیم‌ها مجوز شبکه یا رسید عضویت نیستند.",
          "در راهنمای Edition، وضعیت اولیه عضویت NOT_REQUESTED است. Network ID، شناسه رسمی سازمان، کلید عمومی مرجع، کد عضویت و رسید امضاشده باید بعداً از مرجع مجاز دریافت شوند. نشانی نمونه در مستند یا تصویر نباید به‌عنوان سرویس واقعی استفاده شود."
        ]
      },
      {
        "id": "three-observers",
        "title": "سه معنای متفاوت مشاهده‌گر",
        "paragraphs": [
          "Station سازمانی مشاهده‌گر یک هویت و نقش کاری است. Observer Node منبعی است که داده زنجیره را همگام و مشاهده می‌کند، ولی عضو رأی‌دهنده QBFT نیست. Remote Station برنامه‌ای است که اطلاعات مجاز را از درگاه سرور می‌خواند و خودش دفترکل را همگام نمی‌کند.",
          "هیچ‌یک از این عنوان‌ها به‌تنهایی نشانه اعتبارسنج‌بودن نیست. برای تشخیص اختیار باید نقش تأییدشده، نوع منبع متصل و عضویت canonical به‌صورت جدا بررسی شوند."
        ],
        "table": {
          "headers": [
            "مدل",
            "دفترکل محلی",
            "رأی اجماع"
          ],
          "rows": [
            [
              "Station سازمانی",
              "الزامی نیست",
              "از نقش مشاهده‌گر حاصل نمی‌شود"
            ],
            [
              "Observer Node",
              "وابسته به منبع Besu متصل",
              "ندارد"
            ],
            [
              "Station Remote",
              "دفترکل کامل روی کلاینت ندارد",
              "عملیات رأی در درگاه ندارد"
            ]
          ]
        }
      },
      {
        "id": "membership",
        "title": "فعال‌سازی بدون نود اجباری",
        "paragraphs": [
          "LIB Observer نیز از همان رسید عضویت امضاشده Station استفاده می‌کند. تطبیق درخواست، سازمان، شبکه، نقش‌ها و شماره توالی لازم است. راهنما تأکید می‌کند Node، Validator و Signer پیش‌شرط فعال‌شدن عضویت این Edition نیستند.",
          "نیاز به امضا در یک وظیفه مشخص موضوع جداگانه‌ای است. فعال‌بودن عضویت مشاهده‌گر اجازه ساخت امضای سازمان دیگر، کنترل نود نامرتبط یا استفاده از کلید اجماع را ایجاد نمی‌کند."
        ]
      },
      {
        "id": "reports",
        "title": "گزارش سلامت و دید شبکه",
        "paragraphs": [
          "Station فهرست وضعیت مرکزی را با قرارداد عمومی محدود می‌خواند: شناسه ایستگاه، نقش، نوع منبع، زمان گزارش و خلاصه کنترل‌ها. فیلدهای خارج از قرارداد کنار گذاشته می‌شوند و قدیمی‌بودن گزارش روی سطح اطمینان نمایش اثر دارد.",
          "وقتی فقط Head و عضویت canonical قابل خواندن‌اند، وضعیت همه ایستگاه‌ها «سالم» فرض نمی‌شود. حالت‌های دید کامل، دید قدیمی، فقط عضویت، فقط محلی و ناموجود از یکدیگر متمایز هستند."
        ]
      },
      {
        "id": "acceptance",
        "title": "معیار پذیرش نسخه مشاهده‌گر",
        "paragraphs": [
          "آزمون پذیرش باید هویت خالی یا اولیه، رد رسید نامعتبر، محدودبودن نقش، انقضای داده و عدم دسترسی به منابع دیگر را پوشش دهد. ثبت نقش در سورس یا فرم، موفقیت عضویت در شبکه تولیدی را اثبات نمی‌کند.",
          "وجود سرویس‌های نصب و فرم‌های تولید برای این Edition مشاهده شده است. در این بررسی هیچ رسید واقعی، کلید یا پیکربندی عملیاتی وارد نشده و ادعایی درباره فعال‌بودن یک سازمان مشخص در شبکه مطرح نمی‌شود."
        ]
      }
    ],
    "sources": [
      "plank-station-lib-observer-new/LIB_OBSERVER_EDITION_FA.md",
      "plank-station-lib-observer-new/package.json",
      "plank-station-lib-observer-new/agent/app.py",
      "plank-station-lib-observer-new/deploy/plank-station-lib-observer-new-agent.service",
      "plank-station-mac-remote/server/gateway.py"
    ],
    "related": [
      "station",
      "node-lifecycle",
      "network-api"
    ]
  },
  {
    "slug": "network-security",
    "group": "security",
    "title": "امنیت شبکه، نشست و کلیدها",
    "description": "تفکیک دامنه‌های کلید، خزانه Admin Main، رسید Station و دسترسی خواندنی Remote؛ همراه حدود واقعی پیاده‌سازی.",
    "status": "implemented",
    "audience": "مدیر امنیت، اپراتور و توسعه‌دهنده یکپارچه‌سازی",
    "sections": [
      {
        "id": "domains",
        "title": "کلیدها کاربرد یکسان ندارند",
        "paragraphs": [
          "کلید اجماع نود برای هویت و مشارکت در شبکه، کلید تراکنش برای عملیات کیف پول یا قرارداد، امضاکننده سازمانی برای تصمیم نقش و توکن Station برای دسترسی به برنامه استفاده می‌شوند. جایگزین‌کردن یکی با دیگری مرز اعتماد را از بین می‌برد.",
          "کلید عمومی مرجع عضویت نیز با توکن ورود تفاوت دارد: Station با آن امضای رسید را بررسی می‌کند. فایل‌های محیط، runtime، دیتابیس، پیکربندی درگاه و مسیرهای زیرساخت اطلاعات عمومی مستندات نیستند."
        ]
      },
      {
        "id": "admin-vault",
        "title": "خزانه و نشست Admin Main",
        "paragraphs": [
          "کد امنیت Admin Main رمز اولیه را در راه‌اندازی صریح می‌گیرد، حداقل طول تعیین می‌کند و مشتق‌سازی رمز را با PBKDF2 انجام می‌دهد. کلید اصلی به‌صورت بسته رمز‌شده AES-GCM نگهداری می‌شود و مسیر مهاجرت کلید اصلی قدیمی به نگهداری رمز‌شده وجود دارد.",
          "نشست امنیتی کوتاه‌عمر، امکان دسترسی به امضاکننده خزانه را فراهم می‌کند. بعضی مسیرهای امنیتیِ دارای تأیید رمز عمداً اطلاعات حساس خزانه را برای مدیریت یا بازیابی برمی‌گردانند؛ بنابراین نباید همه پاسخ‌های Admin Main را «عمومی و بدون کلید» فرض کرد. این مسیرها باید صرفاً در محدوده مدیریتی حفاظت‌شده استفاده شوند."
        ]
      },
      {
        "id": "station-signing",
        "title": "Station و امضاکننده بیرونی",
        "paragraphs": [
          "در Station تولیدی، ایجاد Software Vault ممنوع است. ثبت کیف پول تولیدی بر نشانی عمومی، نقش و مرجع امضاکننده بیرونی تکیه دارد. برای HSM، MPC و Web3Signer، کد مدل تنظیمات و کنترل آمادگی دارد؛ دریافت PIN، share خصوصی یا محتوای کلید TLS به‌عنوان ورودی عادی تنظیمات پیش‌بینی نشده است.",
          "کد تاریخی مهاجرت یا بازیابی خزانه محلی با مسیر پیشنهادی تولید یکسان نیست. همچنین آماده‌بودن تنظیم امضاکننده با انجام امضای واقعی و تأیید تراکنش فرق دارد؛ صف READY_FOR_SIGNATURE باید همین محدودیت را روشن نگه دارد."
        ]
      },
      {
        "id": "transport",
        "title": "درگاه‌ها و محدودیت دسترسی",
        "paragraphs": [
          "Admin Main و Station تولیدی اتصال عامل به loopback، مبدأهای صریح و مسیر HTTPS خارج از loopback را کنترل می‌کنند. نصب‌های Linux از سرویس اختصاصی و reverse proxy استفاده می‌کنند. عضویت در گروه Docker یا helper دارای sudo همچنان اختیار عملیاتی مهمی است و نباید با یک sandbox کامل اشتباه شود.",
          "Remote Gateway فقط دو عمل snapshot و block را می‌پذیرد. نشانی منابع و هویت‌ها سمت سرور تعیین می‌شوند؛ کلاینت نمی‌تواند روش دلخواه RPC یا مسیر فایل دلخواه تزریق کند. توکن اختصاصی به‌صورت هش نگهداری و فعال‌بودن و انقضای آن در درخواست بررسی می‌شود."
        ]
      },
      {
        "id": "native",
        "title": "امنیت کلاینت بومی مک",
        "paragraphs": [
          "Remote از نشست شبکه موقت بدون cache پایدار، رد redirect و کنترل مبدأ WebKit استفاده می‌کند. محتوای رابط به منابع بسته محدود است و ارتباط شبکه از لایه بومی انجام می‌شود. ذخیره توکن در Keychain اختیاری است و کاربر می‌تواند آن را حذف کند.",
          "بررسی چند RPC فقط سازگاری منابع مورد اعتماد را بیشتر می‌کند؛ این برنامه light client اثبات‌محور نیست. امنیت TLS/SSH، کلید دسترسی و پیکربندی صحیح سرور همچنان بخشی از حد اعتماد آن است."
        ]
      },
      {
        "id": "assurance",
        "title": "آنچه هنوز باید مستقل تأیید شود",
        "paragraphs": [
          "وجود کنترل امنیتی در سورس یا آزمون محلی، ممیزی مستقل و تست نفوذ را جایگزین نمی‌کند. گزارش Linux New Network آزمون بار، نفوذ و بازیابی را باز اعلام کرده و گزارش Remote اتصال انتهابه‌انتهای تولید و بخشی از تجربه بومی را تأییدنشده می‌داند.",
          "برای گزارش آسیب‌پذیری، نسخه و سناریوی بازتولید با داده پوشانده‌شده کافی است. کلید، credential، نشانی خصوصی، enode یا خروجی کامل خزانه را در مستند عمومی، issue یا تصویر صفحه منتشر نکنید."
        ]
      }
    ],
    "sources": [
      "admin-main-new/backend/app/services/security_service.py",
      "admin-main-new/backend/app/production.py",
      "plank-station-new/agent/app.py",
      "plank-station-new/SECURITY.md",
      "plank-station-mac-remote/macos/Station.swift",
      "plank-station-mac-remote/server/gateway.py",
      "admin-main-linux-newnet/VERIFICATION_LINUX_NEWNET_FA.md"
    ],
    "related": [
      "network-api",
      "network-operations",
      "validators",
      "macos"
    ]
  },
  {
    "slug": "network-api",
    "group": "api",
    "title": "API شبکه و قرارداد ارتباطی Station",
    "description": "لایه‌های JSON-RPC، API کنترل‌گر، عامل Station و درگاه Remote؛ با مثال‌های خواندنی و بدون نشانی عملیاتی.",
    "status": "implemented",
    "audience": "توسعه‌دهندگان یکپارچه‌سازی و اپراتورهای مجاز",
    "sections": [
      {
        "id": "layers",
        "title": "هر API برای یک مخاطب است",
        "paragraphs": [
          "API مارکت‌پلیس با API زیرساخت Admin Main، عامل Station و JSON-RPC Besu متفاوت است. این مستند یک endpoint عمومی واحد برای همه آن‌ها معرفی نمی‌کند؛ مبدأ و احراز هویت باید از مدیر همان استقرار دریافت شود.",
          "روش‌های خواندن Besu داده زنجیره را می‌دهند. API کنترل‌گر می‌تواند عملیات مدیریتی داشته باشد. Agent Station دامنه ایستگاه را اعمال می‌کند و Remote Gateway فقط قرارداد خواندنی محدود خود را در اختیار کلاینت می‌گذارد."
        ]
      },
      {
        "id": "rpc",
        "title": "خواندن هویت و وضعیت Besu",
        "paragraphs": [
          "روش‌های مورد استفاده در سورس شامل eth_chainId، net_version، eth_blockNumber، eth_getBlockByNumber، eth_syncing، net_peerCount، eth_getBalance و qbft_getValidatorsByBlockNumber هستند. بعضی تشخیص‌های مدیریتی از admin_nodeInfo و روش‌های QBFT استفاده می‌کنند؛ این مجوزها نباید بدون نیاز در RPC عمومی قرار گیرند.",
          "پاسخ eth_syncing=false فقط می‌گوید نود در آن لحظه فرایند sync گزارش نمی‌کند؛ تازگی Head، پیشروی بلاک و هم‌خوانی شاخه هنوز باید بررسی شوند. برای تطبیق شبکه، هش بلاک صفر از داده RPC گرفته می‌شود."
        ],
        "code": {
          "language": "json",
          "content": "{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_getBlockByNumber\",\"params\":[\"0x0\",false]}"
        }
      },
      {
        "id": "admin-api",
        "title": "API کنترل‌گر و وضعیت عملیات",
        "paragraphs": [
          "Admin Main مسیرهایی مانند /health، /api/production/readiness و /api/state دارد. APIهای شبکه، قرارداد، خزانه و رأی، عملیات داخلی مدیریتی‌اند. در حالت تولید، توکن برنامه و تنظیم درگاه لازم است و بعضی عملیات حساس نشست امنیتی مستقل می‌خواهند.",
          "عملیات طولانی باید از شناسه کار و نتیجه ثبت‌شده پیگیری شوند. موفقیت پاسخ HTTP آغاز عملیات، با نهایی‌شدن عضویت QBFT یا موفقیت تراکنش برابر نیست. تکرار درخواست نیز باید سیاست idempotency همان endpoint را رعایت کند."
        ]
      },
      {
        "id": "station-api",
        "title": "عضویت و منابع Station",
        "paragraphs": [
          "عامل Station مسیرهای /api/v1/membership/status، /api/v1/membership/request و /api/v1/membership/activation را برای عضویت دارد. اتصال مرجع، امضاکننده و آمادگی در شاخه /api/v1/production مدیریت می‌شوند. کشف و binding در /api/v1/nodes قرار دارند.",
          "ثبت تصمیم وظیفه از مسیر /api/v1/tasks/{task_id}/decisions انجام می‌شود و شناسه درخواست و نسخه سیاست بخشی از کنترل تکرار و هم‌زمانی‌اند. پاسخ READY_FOR_SIGNATURE را نباید امضای تکمیل‌شده یا tx hash معتبر تلقی کرد."
        ]
      },
      {
        "id": "remote-api",
        "title": "قرارداد خواندنی Remote",
        "paragraphs": [
          "درگاه Remote بدنه‌ای با action برابر snapshot یا block می‌پذیرد؛ برای block شماره غیرمنفی در محدوده Head لازم است. روش RPC از کلاینت دریافت نمی‌شود. سرور برای هر درخواست توکن، زمان اعتبار، نقش و هویت مجاز را تعیین می‌کند.",
          "پاسخ شامل نسخه قرارداد، زمان تولید، هویت مجاز همان ایستگاه، شبکه، منابع، وضعیت Admin Main، خلاصه نود و بلاک‌های عمومی است. تعداد منابع بین یک تا چهار محدود می‌شود؛ منابع باید Chain ID، Network ID و Genesis یکسان داشته باشند و هش ارتفاع مشترک آن‌ها تطبیق کند."
        ],
        "code": {
          "language": "json",
          "content": "{\"action\":\"snapshot\"}"
        }
      },
      {
        "id": "integration-status",
        "title": "پیش‌شرط اتصال واقعی",
        "paragraphs": [
          "برای یکپارچه‌سازی، محیط، نسخه سرویس، نقش، دامنه دسترسی، سیاست خطا و انقضا باید ثبت شوند. مقدار unknown یا unavailable باید حفظ شود؛ اتصال قطع‌شده نباید با یک پاسخ موفق نمونه پوشانده شود.",
          "درگاه Remote در گزارش انتشار مستقرشده روی تولید معرفی نشده است و مسیر امضای سازمانی Station نیز به سرویس واقعی وابسته است. نمونه‌های این صفحه قرارداد داده را توضیح می‌دهند و هیچ آدرس، credential یا دستور تراکنش واقعی در خود ندارند."
        ]
      }
    ],
    "sources": [
      "admin-main-new/backend/app/main.py",
      "admin-main-new/backend/app/services/rpc_service.py",
      "plank-station-new/agent/app.py",
      "plank-station-mac-remote/server/gateway.py",
      "plank-station-mac-remote/src/remote.ts",
      "plank-station-mac-remote/VERIFICATION_REMOTE_FA.md"
    ],
    "related": [
      "network-overview",
      "station",
      "network-security",
      "main-admin"
    ]
  },
  {
    "slug": "network-operations",
    "group": "network",
    "title": "بهره‌برداری، پشتیبان‌گیری و بازیابی",
    "description": "چگونگی خواندن سلامت، نگهداری هویت شبکه و برنامه‌ریزی بازیابی بدون اشتباه‌گرفتن ابزار موجود با سرویس پشتیبان کامل.",
    "status": "configured",
    "audience": "مدیر زیرساخت و مسئول تداوم خدمت",
    "sections": [
      {
        "id": "health",
        "title": "سلامت را چندبعدی بخوانید",
        "paragraphs": [
          "پایش باید فرایند، RPC، ارتباط همتا، sync، هویت شبکه، مجموعه اعضا و مشارکت بلاک را جدا نشان دهد. پاسخ health مربوط به برنامه با سلامت اجماع یکسان نیست؛ همچنین زمان آخرین گزارش برای تفسیر هر وضعیت لازم است.",
          "در Station، گزارش مرکزی قدیمی به وضعیت نامشخص یا محدودیت دید تبدیل می‌شود. نبود گزارش سایر ایستگاه‌ها به‌تنهایی به معنی قطع نود محلی نیست. در شبکه چندمنبعی، هش بلاک‌ها در ارتفاع مشترک مقایسه می‌شود تا تفاوت ارتفاع با تفاوت شاخه اشتباه نشود."
        ]
      },
      {
        "id": "jobs",
        "title": "قطع فرایند و پیگیری عملیات",
        "paragraphs": [
          "Admin Main کارهای طولانی Validator را در فایل پایدار عملیات ثبت می‌کند. شناسه پردازه مالک، زمان به‌روزرسانی و وضعیت قطع‌شده کمک می‌کنند پس از restart یک کار یتیم به‌اشتباه فعال نمایش داده نشود.",
          "برای ادامه، ابتدا نتیجه canonical و مرحله واقعی کار بررسی شود. درخواست تکراری نباید باعث نصب اعتبارسنج دوم، بازتولید کلید یا اجرای موازی رأی شود. این رفتار در محدوده قفل و idempotency کد پیاده شده است؛ جای برنامه بازیابی کل میزبان را نمی‌گیرد."
        ]
      },
      {
        "id": "backup",
        "title": "چه داده‌ای باید حفاظت شود؟",
        "paragraphs": [
          "دامنه پشتیبان شامل هویت شبکه و Genesis، داده زنجیره لازم برای نقش نود، کلیدها در محل مصوب، خزانه رمز‌شده و اطلاعات بازیابی آن، رجیستری‌ها، تنظیم سرویس و داده Station است. این موارد را نباید در یک آرشیو عمومی سورس قرار داد.",
          "SQLite فعال ممکن است فایل‌های WAL داشته باشد؛ کپی ساده یک فایل در زمان نوشتن، تضمین نسخه سازگار نیست. روش snapshot یا توقف کنترل‌شده باید در برنامه پشتیبان همان محیط تعریف شود. نگهداری کلید و رمز بازیابی نیز باید از نسخه داده عادی تفکیک شود."
        ],
        "note": {
          "kind": "info",
          "title": "این بخش برنامه عملیاتی پیشنهادی است",
          "text": "در بررسی سورس، سرویس جامع پشتیبان‌گیری زمان‌بندی‌شده با آزمون restore انتهابه‌انتها تأیید نشده است. نمایش اطلاعات خزانه پس از رمز یا حفظ فایل هنگام خطای start، معادل چنین سرویسی نیست."
        }
      },
      {
        "id": "restore",
        "title": "بازیابی با حفظ هویت",
        "paragraphs": [
          "شاخه Linux New Network مانع بازتولید Genesis و کلید در یک نصب موجود می‌شود و فایل‌های آماده‌شده را پس از شکست start حفظ می‌کند. برای شبکه قبلی، بازیابی باید همان هویت تأییدشده را حفظ کند؛ ساخت شبکه تازه با نام مشابه، بازیابی شبکه قبلی نیست.",
          "پس از restore، تطبیق Chain ID و Genesis، ارتفاع و هش بلاک، مجموعه Validator، مالکیت داده و اتصال امضاکننده باید بررسی شوند. نبود این کنترل‌ها می‌تواند یک سرویس ظاهراً روشن را به منبع داده اشتباه تبدیل کند."
        ]
      },
      {
        "id": "updates",
        "title": "به‌روزرسانی و برگشت نسخه",
        "paragraphs": [
          "در بسته تاریخی Station، updater مبتنی بر Git برای Linux وجود دارد که تغییرات checkout را نگه می‌دارد، نسخه جدید می‌گیرد و نصاب را اجرا می‌کند. این مسیر یک سامانه به‌روزرسانی امضاشده سراسری برای Windows، macOS و Linux نیست؛ حفظ تغییرات Git نیز پشتیبان دیتابیس و کلید محسوب نمی‌شود.",
          "پیش از ارتقا، نسخه برنامه، ساختار داده، نسخه قرارداد و روش بازگشت باید ثبت شوند. بسته جدید نباید runtime قدیمی را بی‌بررسی جایگزین کند. انتشار Remote macOS هنوز امضای ناشر و notarization عمومی ندارد و نباید کانال به‌روزرسانی تأییدشده برای آن فرض کرد."
        ]
      },
      {
        "id": "acceptance",
        "title": "معیار پایان تحویل عملیاتی",
        "paragraphs": [
          "پذیرش باید نصب پاک، شروع و توقف کنترل‌شده، بازیابی نسخه پشتیبان، قطع منبع RPC، انقضای دسترسی، ورود سازمان و خطاهای امضاکننده را در محیط مجاز پوشش دهد. برای شبکه، پیشروی واقعی بلاک و هماهنگی منابع باید شاهد داشته باشد.",
          "گزارش Linux New Network صریحاً آزمون بار، نفوذ و بازیابی را در کارهای باقی‌مانده آورده است. زمان بازیابی، میزان داده قابل ازدست‌رفتن و تعهد دسترس‌پذیری در این سورس‌ها به‌عنوان SLA عمومی تأیید نشده‌اند."
        ]
      }
    ],
    "sources": [
      "admin-main-new/backend/app/services/operation_store.py",
      "admin-main-new/backend/app/services/validator_diagnostics_service.py",
      "admin-main-new/backend/app/services/security_service.py",
      "admin-main-linux-newnet/backend/app/new_network.py",
      "admin-main-linux-newnet/VERIFICATION_LINUX_NEWNET_FA.md",
      "plank-station-new/agent/app.py",
      "Plank-Station-Linux-v1.0.0/deploy/update-ubuntu-24.04.sh"
    ],
    "related": [
      "linux",
      "network-security",
      "validators",
      "network-history"
    ]
  },
  {
    "slug": "network-history",
    "group": "network",
    "title": "تاریخچه نسخه‌ها و سطح آمادگی",
    "description": "نقشه نسخه‌های بررسی‌شده؛ منبع تاریخی، شاخه تولید، بسته محلی و کارهای تأییدنشده.",
    "status": "reference",
    "audience": "تیم محصول، توسعه‌دهنده و مسئول انتشار",
    "sections": [
      {
        "id": "chronology",
        "title": "نسخه‌های موجود در منابع",
        "paragraphs": [
          "نام پوشه تاریخی یا زمان ایجاد آن به‌تنهایی نسخه برنامه نیست. شماره package، نقطه ورود، provenance و گزارش همان انتشار با هم خوانده شده‌اند. شاخه‌های مستقل نیز صرفاً به دلیل جدیدتر بودن تاریخ، جایگزین کامل یکدیگر نیستند."
        ],
        "table": {
          "headers": [
            "خانواده",
            "نسخه درج‌شده در سورس",
            "نقش"
          ],
          "rows": [
            [
              "plank-besu-active",
              "0.18.6",
              "مرجع تاریخی کنترل‌گر شبکه و قرارداد"
            ],
            [
              "Admin Main New",
              "0.18.7-production.2",
              "لایه تولید و تشخیص canonical"
            ],
            [
              "Station بسته‌های macOS/Windows/Linux",
              "1.0.0",
              "توزیع سورس و launcher چندسکویی"
            ],
            [
              "Station New و LIB Observer",
              "1.2.0-production.1",
              "عامل سازمانی با محافظ تولید"
            ],
            [
              "Station Remote macOS",
              "1.3.0",
              "کلاینت بومی خواندنی؛ شاخه مستقل"
            ],
            [
              "Admin Main Linux New Network",
              "0.18.7-linux-newnet.1",
              "شبکه تازه و هویت نصب مستقل"
            ]
          ]
        }
      },
      {
        "id": "proof",
        "title": "شواهد ساخت، به تفکیک نسخه",
        "paragraphs": [
          "گزارش Admin Main New پایه از ۱۴۴ آزمون و یادداشت production.2 از ۱۴۸ آزمون موفق نام می‌برند. Station New گزارش ۴۲ آزمون دارد. Remote گزارش ۱۸ آزمون درگاه و ساخت Universal دارد. گزارش Linux New Network در ۱۴ سپتامبر ۲۰۲۶، ۱۸۲ آزمون و ساخت قراردادها را ثبت کرده است.",
          "این اعداد از گزارش‌های همان پروژه نقل شده‌اند و شمارش آزمون‌های دوباره‌اجراشده در این مستندسازی نیستند. دامنه آزمون‌ها نیز یکسان نیست: آزمون mock، EVM حافظه‌ای، ساخت frontend و اتصال زنده شبکه سطح‌های متفاوتی از شواهد هستند."
        ]
      },
      {
        "id": "progress",
        "title": "تغییرهای مهم در معماری",
        "paragraphs": [
          "در مسیر Admin Main، تأکید از نمایش صرف وضعیت به تفکیک سلامت RPC، sync، عضویت و مشارکت رفته است. مقایسه ارتفاع مشترک و ثبت کار پایدار برای جلوگیری از موفقیت یا شکست کاذب اضافه شده‌اند.",
          "در Station، عضویت سازمانی از وابستگی اجباری به نود و امضاکننده جدا شده است. Remote یک مسیر خواندنی مستقل با هویت صادرشده سرور دارد. Linux New Network نیز از نصب موجود جدا می‌شود تا ساخت آزمایشی یا تازه، شبکه قبلی را بازنویسی نکند."
        ]
      },
      {
        "id": "limits",
        "title": "کارهای باز",
        "paragraphs": [
          "برای Remote، Developer ID، notarization، آزمون کامل پنجره بومی و SSH/Keychain در نشست عادی و اتصال تولید باقی است. برای Windows، انتشار نصب‌کننده امضاشده و ماتریس سازگاری واقعی در شواهد بررسی‌شده وجود ندارد.",
          "برای Linux New Network، نصب روی سرور هدف، اجرای واقعی تصویر Besu، همگام‌سازی همه نودها، استقرار راه‌دور و آزمون بار و restore در گزارش باز هستند. برای گردش سازمانی نیز اتصال واقعی امضاکنندگان و ثبت انتهابه‌انتهای نتیجه نباید از وجود فرم یا صف وظایف نتیجه گرفته شود."
        ]
      },
      {
        "id": "readiness",
        "title": "چگونه نسخه را درست معرفی کنیم؟",
        "paragraphs": [
          "در معرفی فنی، «پیاده‌سازی‌شده» یعنی مسیر در سورس موجود است؛ «بسته‌بندی‌شده» یعنی خروجی مشخص تولید شده؛ «بررسی‌شده» باید نام محیط و آزمون را همراه داشته باشد. عبارت «فعال در تولید» فقط با شواهد همان استقرار قابل استفاده است.",
          "این مستندات نشانی عملیاتی، تعداد فعلی اعتبارسنج، سرمایه یا عرضه واقعی و تضمین دسترس‌پذیری برای شبکه اعلام نمی‌کنند. پیش از تحویل هر نسخه، گزارش عمومی با اطلاعات محرمانه حذف‌شده و نتیجه آزمون پذیرش همان نسخه باید تکمیل شود."
        ]
      }
    ],
    "sources": [
      "plank-besu-active/package.json",
      "admin-main-new/SOURCE_PROVENANCE.md",
      "admin-main-new/VERIFICATION_NEW_FA.md",
      "plank-station-new/SOURCE_PROVENANCE.md",
      "plank-station-new/VERIFICATION_NEW_FA.md",
      "plank-station-mac-remote/SOURCE_PROVENANCE.md",
      "plank-station-mac-remote/VERIFICATION_REMOTE_FA.md",
      "admin-main-linux-newnet/SOURCE_PROVENANCE.md",
      "admin-main-linux-newnet/VERIFICATION_LINUX_NEWNET_FA.md"
    ],
    "related": [
      "network-overview",
      "macos",
      "windows",
      "linux",
      "network-operations"
    ]
  }
];

