Skip to content

Commit

Permalink
persian tranlsation
Browse files Browse the repository at this point in the history
  • Loading branch information
mlibre committed Jun 3, 2024
1 parent 5ee353e commit 0c76aab
Showing 1 changed file with 94 additions and 57 deletions.
151 changes: 94 additions & 57 deletions readme-fa.md
Original file line number Diff line number Diff line change
@@ -1,117 +1,154 @@
# 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
# یا
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

0 comments on commit 0c76aab

Please sign in to comment.