From 0c76aab11012f5cc0a364f5efdf0a006142e1090 Mon Sep 17 00:00:00 2001 From: mlibre Date: Mon, 3 Jun 2024 17:44:00 +0330 Subject: [PATCH] persian tranlsation --- readme-fa.md | 151 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 94 insertions(+), 57 deletions(-) diff --git a/readme-fa.md b/readme-fa.md index 8f57e39..71dbbe2 100644 --- a/readme-fa.md +++ b/readme-fa.md @@ -1,50 +1,52 @@ # GoodChain -به **GoodChain** خوش آمدید، یک پلتفرم بلاکچین طراحی شده برای مبتدیان و افراد با تجربه که به دنبال سادگی و انعطاف پذیری هستند. ساخته شده با `TypeScript` و `LevelDB(به زودی)`, GoodChain یک محیط قابل تنظیم برای آزمایش الگوریتم‌های اجماع فراهم می‌کند، از جمله گزینه پیش فرض **اثبات کار (PoW)**. +به **GoodChain** خوش آمدید، یک پلتفرم بلاکچین که برای کاربران مبتدی و حرفه‌ای طراحی شده است و به دنبال سادگی و انعطاف‌پذیری است. با استفاده از `TypeScript` و `LevelDB`، **GoodChain** محیطی قابل تنظیم برای آزمایش الگوریتم‌های اجماع ارائه می‌دهد که شامل گزینه پیش‌فرض **اثبات کار ساده (PoW)** است. -ا **GoodChain** یک دفتر کل توزیع شده است که معاملات امن و غیرقابل بازگشت را در یک شبکه همتا به همتا از گره‌ها امکان‌پذیر می‌سازد و اطمینان از یکپارچگی داده‌ها را فراهم می‌کند. +**GoodChain** یک دفتر کل توزیع‌شده است که امکان انجام تراکنش‌های امن و غیرقابل بازگشت را در یک شبکه همتا به همتای توزیع‌شده از نودها فراهم می‌کند و از یکپارچگی داده‌ها اطمینان حاصل می‌کند. ## ویژگی‌های کلیدی 🚀 -- **اجماع پلاگینی**: با الگوریتم‌های اجماع خودتان سرگرم شوید یا از پیاده‌سازی پیش فرض PoW استفاده کنید -- ا **API RESTful**: سیستم‌های خارجی را با API کاربر پسند GoodChain به راحتی یکپارچه کنید -- **مدیریت کیف پول**: مدیریت کیف پول‌های دیجیتال -- **کشف و همگام سازی گره‌ها**: کشف و همگام‌سازی با سایر گره‌ها در شبکه برای حفظ وضعیت یکنواخت بلاکچین -- **استخر معاملات**: مدیریت استخر تراکنش ها -- **اعتبارسنجی زنجیره‌ای**: بررسی یکپارچگی بلاکچین با اعتبارسنجی بلوک‌ها و معاملات +- **اجماع پلاگینی**: با الگوریتم‌های اجماع خود آزمایش کنید یا از پیاده‌سازی پیش‌فرض PoW استفاده کنید +- **API RESTful**: به راحتی سیستم‌های خارجی را با API کاربرپسند `GoodChain` یکپارچه کنید +- **مدیریت کیف پول**: به‌طور کارآمد کیف پول‌های دیجیتال را مدیریت کنید، موجودی‌ها را ردیابی کنید و تراکنش‌ها را انجام دهید +- **کشف و همگام‌سازی نودها**: نودهای دیگر در شبکه را کشف و با آنها همگام شوید تا یک حالت ثابت در سراسر بلاکچین حفظ شود +- **استخر تراکنش‌ها**: تراکنش‌های در انتظار را با استخر تراکنش‌های داخلی مدیریت کنید +- **اعتبارسنجی زنجیره**: از یکپارچگی بلاکچین با اعتبارسنجی بلاک‌ها و تراکنش‌ها اطمینان حاصل کنید +- **EKVS**: `پایگاه داده‌های کلید-مقدار پایدار قابل تعبیه` پایگاه داده‌هایی هستند که می‌توانند در برنامه شما تعبیه شوند. این بدان معنی است که `نیاز به سرور جداگانه` یا فرایند برای مدیریت پایگاه داده نیست. `LevelDB` یک مثال محبوب از `EKVS` است. `GoodChain` از کتابخانه `Level`، یک رابط `Node.js` برای `LevelDB` استفاده می‌کند. ## شروع به کار 🛠️ -برای آغاز ماجراجویی خود در `GoodChain`، به سادگی مخزن را کلون کنید و وابستگی‌ها را نصب کنید: +برای شروع ماجراجویی خود با `GoodChain`، مخزن را کلون کنید و وابستگی‌ها را نصب کنید: ```bash +# مخزن را کلون کنید git clone https://github.com/mlibre/GoodChain.git cd GoodChain -# نصب TypeScript، tsx، nodemon و Eslint +# نصب وابستگی‌های جهانی +sudo npm install -g nodemon tsx typescript eslint vitest -sudo npm install -g nodemon tsx typescript eslint -# نصب وابستگی‌ها +# نصب وابستگی‌های پروژه npm install -# تولید کلیدهای ماینر خود برای اولین بار +# کلیدهای ماینر خود را برای اولین بار تولید کنید tsx src/test/generateKeys.ts -# ماین اولین بلوک +# اولین بلاک را استخراج کنید tsx src/test/init.ts -# شما همچنین می‌توانید فایل‌های Nodejs را مستقیماً اجرا کنید +# می‌توانید فایل‌های Node.js را مستقیماً اجرا کنید node dist/test/init.js -# اجرای گره GoodChain +# نود GoodChain را اجرا کنید npm run dev ``` -## API REST +## REST API -### اجرای API REST 🌐 +### اجرای REST API 🌐 -سرور `RESTful API` را راه‌اندازی کنید: +سرور `RESTful API` را شروع کنید: ```bash npm run dev @@ -52,66 +54,101 @@ npm run dev npm start -- --host "http://localhost:3000" --nodes "http://localhost:3001" --dbPath "./assets/db/" --minerKeysFile "./assets/keys/miner.json" --name "GoodChain" ``` -### اجرای چندین گره REST 🌟 +### اجرای چندین نود REST 🌟 -با اجرای چندین گره در شبکه GoodChain سرگرم شوید! هر گره دارای هویت منحصربه‌فرد خود خواهد بود و به جادوی غیرمتمرکز کمک خواهد کرد. به عنوان مثال: +چندین نود در شبکه GoodChain اجرا کنید! هر نود هویت منحصر به فرد خود را دارد و به شبکه غیرمتمرکز کمک می‌کند. برای مثال: ```bash -# گره 1 +# نود 1 npm run 3000 -# گره 2 +# نود 2 npm run 3001 -# گره 3 +# نود 3 npm run 3002 ``` -هر گره داده‌های بلاکچین، کیف پول‌ها و لیست گره‌های خود را خواهد داشت، اما آن‌ها می‌توانند با یکدیگر ارتباط برقرار کنند و همگام شوند تا وضعیت یکنواختی را حفظ کنند. - -### نقاط پایانی API REST 🛣️ - -`GoodChain` یک گنجینه از نقاط پایانی **http API** را برای تعاملات بلاکچینی شما فراهم می‌کند. کاوش کنید، آزمایش کنید و از ساخت برنامه‌های شگفت‌انگیز لذت ببرید! - -| نقطه پایانی | روش | توضیحات | -| --------------------- | ---- | ------------------------------------------------------------------------------ | -| `/block` | GET | اطلاعات یک بلوک خاص یا آخرین بلوک را در صورت عدم ارائه پارامترها بازیابی می‌کند | -| `/block` | POST | یک بلوک جدید به بلاکچین اضافه می‌کند | -| `/block/broadcast` | GET | آخرین بلوک را به تمام گره‌های شبکه منتشر می‌کند | -| `/chain` | GET | کل بلاکچین را بازیابی می‌کند | -| `/chain/update` | POST | بلاکچین محلی را با بازیابی بلوک‌ها از گره‌های دیگر به‌روزرسانی می‌کند | -| `/mine` | GET | یک بلوک جدید را ماین کرده و به بلاکچین اضافه می‌کند | -| `/node` | GET | اطلاعات همه گره‌های شبکه را بازیابی می‌کند | -| `/node` | POST | یک گره جدید به شبکه اضافه می‌کند | -| `/node/update` | POST | اطلاعات محلی گره را با بازیابی داده‌ها از گره‌های دیگر به‌روزرسانی می‌کند | -| `/node/broadcast` | GET | گره محلی را به تمام گره‌های شبکه معرفی می‌کند | -| `/transaction` | GET | معاملات در حال انتظار را بازیابی می‌کند | -| `/transaction` | POST | یک معامله جدید به استخر معاملات اضافه می‌کند | -| `/transaction/update` | GET | استخر معاملات محلی را با بازیابی معاملات از گره‌های دیگر به‌روزرسانی می‌کند | -| `/transaction/sign` | POST | یک معامله را با یک کلید خصوصی امضا می‌کند | -| `/wallet` | GET | اطلاعات کیف پول‌های موجود در بلاکچین را بازیابی می‌کند | +هر نود داده‌های بلاکچین، کیف پول‌ها و فهرست نودهای خود را دارد، اما می‌توانند با یکدیگر ارتباط برقرار کنند و هماهنگ شوند تا یک حالت ثابت را حفظ کنند. + +### نقاط انتهایی RESTful API 🛣️ + +`GoodChain` مجموعه‌ای غنی از نقاط انتهایی **HTTP API** را برای تعاملات بلاکچین شما فراهم می‌کند. کشف کنید، آزمایش کنید و برنامه‌های شگفت‌انگیز بسازید! + +| نقطه انتهایی | متد | توضیحات | +| --------------------- | ---- | ------------------------------------------------------------------------------------- | +| `/block` | GET | اطلاعات مربوط به یک بلاک خاص یا آخرین بلاک در صورت عدم ارائه پارامتر را بازیابی می‌کند | +| `/block` | POST | یک بلاک جدید به بلاکچین اضافه می‌کند | +| `/block/broadcast` | GET | آخرین بلاک را به همه نودهای شبکه پخش می‌کند | +| `/chain` | GET | کل بلاکچین را بازیابی می‌کند | +| `/chain/update` | POST | بلاکچین محلی را با بازیابی بلاک‌ها از نودهای دیگر به‌روزرسانی می‌کند | +| `/mine` | GET | یک بلاک جدید استخراج می‌کند و به بلاکچین اضافه می‌کند | +| `/node` | GET | اطلاعات مربوط به همه نودهای شبکه را بازیابی می‌کند | +| `/node` | POST | یک نود جدید به شبکه اضافه می‌کند | +| `/node/update` | POST | دانش نود محلی از شبکه را با بازیابی داده‌ها از نودهای دیگر به‌روزرسانی می‌کند | +| `/node/broadcast` | GET | نود محلی را به همه نودهای دیگر در شبکه معرفی می‌کند | +| `/transaction` | GET | تراکنش‌های در انتظار را بازیابی می‌کند | +| `/transaction` | POST | یک تراکنش جدید به استخر تراکنش‌ها اضافه می‌کند | +| `/transaction/update` | GET | استخر تراکنش‌های محلی را با بازیابی تراکنش‌ها از نودهای دیگر به‌روزرسانی می‌کند | +| `/transaction/sign` | POST | یک تراکنش را با یک کلید خصوصی امضا می‌کند | +| `/wallet` | GET | اطلاعات مربوط به کیف پول‌های بلاکچین را بازیابی می‌کند | + +## تست پروژه 🧪 + +برای اطمینان از قابلیت اطمینان و درستی پروژه `GoodChain`، می‌توانید تست‌ها را اجرا کنید. + +### اجرای تمامی تست‌ها + +کل مجموعه تست‌ها را با استفاده از `vitest` اجرا کنید: + +```bash +npm run test +# یا +vitest run +``` + +### اجرای تست‌ها با رابط کاربری + +برای تجربه تست تعاملی، از رابط کاربری `vitest` استفاده کنید: + +```bash +npm run test-ui +# یا +vitest --ui +``` + +### اجرای تست‌های خاص + +برای اجرای یک فایل تست خاص، به عنوان مثال، تست‌های بلاکچین: + +```bash +npm run test src/test/blockchain.test.ts +``` ## پشتیبانی و منابع 🤝 -برای شروع سریع با درخواست‌های API، مجموعه **Bruno** را در پوشه `assets` بررسی کنید. +برای شروع سریع با درخواست‌های API، مجموعه **Bruno** را در پوشه `assets` بررسی کنید. برای کمک بیشتر، می‌توانید از صفحه [مسائل GitHub](https://github.com/mlibre/GoodChain/issues) ما بازدید کنید. ## مجوز 📜 -این پروژه تحت مجوز عمومی همگانی GNU مجوز داده شده است +این پروژه تحت مجوز عمومی همگانی گنو منتشر شده است. + +## تاریخچه نسخه‌ها + +### نسخه 1 -## نسخه 1 +اولین نسخه `GoodChain` یک پیاده‌سازی ساده بلاکچین بود که برای یادگیری فناوری بلاکچین استفاده می‌شد. از فایل‌های `json` برای ذخیره داده‌های بلاکچین استفاده می‌کرد. کد را در [انتشارها](https://github.com/mlibre/GoodChain/releases/tag/1.0.5) بررسی کنید. -اولین نسخه `GoodChain` یک پیاده‌سازی ساده بلاکچین بود که برای یادگیری فناوری بلاکچین استفاده می‌شد. به سادگی از فایل‌های `json` برای ذخیره داده‌های بلاکچین استفاده می‌کرد. می‌توانید [نسخه‌ها](https://github.com/mlibre/GoodChain/releases/tag/1.0.5) را برای مشاهده کد بررسی کنید. +### نسخه 2 -## نسخه 2 (آخرین نسخه) +نسخه دوم `GoodChain` با استفاده از `Node.js` و `Express.js` ساخته شد و از `git` برای ذخیره داده‌های بلاکچین استفاده می‌کرد. کد را در [انتشارها](https://github.com/mlibre/GoodChain/releases/tag/2.0.2) بررسی کنید. -نسخه دوم `GoodChain` جانشین نسخه اول است. با استفاده از `Node.js` و `Express.js` ساخته شده و از `git` برای ذخیره داده‌های بلاکچین استفاده می‌کند. +### نسخه 3 (آخرین نسخه) -## نسخه 3 (در حال پیشرفت) +نسخه سوم `GoodChain` با استفاده از `TypeScript`، `Express.js` و `LevelDB` ساخته شده است. -نسخه سوم `GoodChain` جانشین نسخه دوم است. با استفاده از `TypeScript`، `Express.js` و `TypeORM` ساخته شده است. +## کمک مالی 💖 -## اهدای 💖 +اگر `GoodChain` را مفید یافتید و مایل به حمایت از توسعه آن هستید، می‌توانید ETH را به آدرس زیر اهدا کنید: -ETH: > 0xc9b64496986E7b6D4A68fDF69eF132A35e91838e \ No newline at end of file