Skip to content

Latest commit

 

History

History
154 lines (103 loc) · 9.44 KB

readme-fa.md

File metadata and controls

154 lines (103 loc) · 9.44 KB

GoodChain

به GoodChain خوش آمدید، یک پلتفرم بلاکچین که برای کاربران مبتدی و حرفه‌ای طراحی شده است و به دنبال سادگی و انعطاف‌پذیری است. با استفاده از TypeScript و LevelDB، GoodChain محیطی قابل تنظیم برای آزمایش الگوریتم‌های اجماع ارائه می‌دهد که شامل گزینه پیش‌فرض اثبات کار ساده (PoW) است.

GoodChain یک دفتر کل توزیع‌شده است که امکان انجام تراکنش‌های امن و غیرقابل بازگشت را در یک شبکه همتا به همتای توزیع‌شده از نودها فراهم می‌کند و از یکپارچگی داده‌ها اطمینان حاصل می‌کند.

ویژگی‌های کلیدی 🚀

  • اجماع پلاگینی: با الگوریتم‌های اجماع خود آزمایش کنید یا از پیاده‌سازی پیش‌فرض PoW استفاده کنید
  • API RESTful: به راحتی سیستم‌های خارجی را با API کاربرپسند GoodChain یکپارچه کنید
  • مدیریت کیف پول: به‌طور کارآمد کیف پول‌های دیجیتال را مدیریت کنید، موجودی‌ها را ردیابی کنید و تراکنش‌ها را انجام دهید
  • کشف و همگام‌سازی نودها: نودهای دیگر در شبکه را کشف و با آنها همگام شوید تا یک حالت ثابت در سراسر بلاکچین حفظ شود
  • استخر تراکنش‌ها: تراکنش‌های در انتظار را با استخر تراکنش‌های داخلی مدیریت کنید
  • اعتبارسنجی زنجیره: از یکپارچگی بلاکچین با اعتبارسنجی بلاک‌ها و تراکنش‌ها اطمینان حاصل کنید
  • EKVS: پایگاه داده‌های کلید-مقدار پایدار قابل تعبیه پایگاه داده‌هایی هستند که می‌توانند در برنامه شما تعبیه شوند. این بدان معنی است که نیاز به سرور جداگانه یا فرایند برای مدیریت پایگاه داده نیست. LevelDB یک مثال محبوب از EKVS است. GoodChain از کتابخانه Level، یک رابط Node.js برای LevelDB استفاده می‌کند.

شروع به کار 🛠️

برای شروع ماجراجویی خود با GoodChain، مخزن را کلون کنید و وابستگی‌ها را نصب کنید:

# مخزن را کلون کنید
git clone https://github.com/mlibre/GoodChain.git
cd GoodChain

# نصب وابستگی‌های جهانی
sudo npm install -g nodemon tsx typescript eslint vitest

# نصب وابستگی‌های پروژه
npm install

# کلیدهای ماینر خود را برای اولین بار تولید کنید
tsx src/test/generateKeys.ts

# اولین بلاک را استخراج کنید
tsx src/test/init.ts

# می‌توانید فایل‌های Node.js را مستقیماً اجرا کنید
node dist/test/init.js

# نود GoodChain را اجرا کنید
npm run dev

REST API

اجرای REST API 🌐

سرور RESTful API را شروع کنید:

npm run dev
# یا
npm start -- --host "http://localhost:3000" --nodes "http://localhost:3001" --dbPath "./assets/db/" --minerKeysFile "./assets/keys/miner.json" --name "GoodChain"

اجرای چندین نود REST 🌟

چندین نود در شبکه GoodChain اجرا کنید! هر نود هویت منحصر به فرد خود را دارد و به شبکه غیرمتمرکز کمک می‌کند. برای مثال:

# نود 1
npm run 3000

# نود 2
npm run 3001

# نود 3
npm run 3002

هر نود داده‌های بلاکچین، کیف پول‌ها و فهرست نودهای خود را دارد، اما می‌توانند با یکدیگر ارتباط برقرار کنند و هماهنگ شوند تا یک حالت ثابت را حفظ کنند.

نقاط انتهایی 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 اجرا کنید:

npm run test
# یا
vitest run

اجرای تست‌ها با رابط کاربری

برای تجربه تست تعاملی، از رابط کاربری vitest استفاده کنید:

npm run test-ui
# یا
vitest --ui

اجرای تست‌های خاص

برای اجرای یک فایل تست خاص، به عنوان مثال، تست‌های بلاکچین:

npm run test src/test/blockchain.test.ts

پشتیبانی و منابع 🤝

برای شروع سریع با درخواست‌های API، مجموعه Bruno را در پوشه assets بررسی کنید. برای کمک بیشتر، می‌توانید از صفحه مسائل GitHub ما بازدید کنید.

مجوز 📜

این پروژه تحت مجوز عمومی همگانی گنو منتشر شده است.

تاریخچه نسخه‌ها

نسخه 1

اولین نسخه GoodChain یک پیاده‌سازی ساده بلاکچین بود که برای یادگیری فناوری بلاکچین استفاده می‌شد. از فایل‌های json برای ذخیره داده‌های بلاکچین استفاده می‌کرد. کد را در انتشارها بررسی کنید.

نسخه 2

نسخه دوم GoodChain با استفاده از Node.js و Express.js ساخته شد و از git برای ذخیره داده‌های بلاکچین استفاده می‌کرد. کد را در انتشارها بررسی کنید.

نسخه 3 (آخرین نسخه)

نسخه سوم GoodChain با استفاده از TypeScript، Express.js و LevelDB ساخته شده است.

کمک مالی 💖

اگر GoodChain را مفید یافتید و مایل به حمایت از توسعه آن هستید، می‌توانید ETH را به آدرس زیر اهدا کنید:

0xc9b64496986E7b6D4A68fDF69eF132A35e91838e