به 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
سرور 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"
چندین نود در شبکه GoodChain اجرا کنید! هر نود هویت منحصر به فرد خود را دارد و به شبکه غیرمتمرکز کمک میکند. برای مثال:
# نود 1
npm run 3000
# نود 2
npm run 3001
# نود 3
npm run 3002
هر نود دادههای بلاکچین، کیف پولها و فهرست نودهای خود را دارد، اما میتوانند با یکدیگر ارتباط برقرار کنند و هماهنگ شوند تا یک حالت ثابت را حفظ کنند.
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 ما بازدید کنید.
این پروژه تحت مجوز عمومی همگانی گنو منتشر شده است.
اولین نسخه GoodChain
یک پیادهسازی ساده بلاکچین بود که برای یادگیری فناوری بلاکچین استفاده میشد. از فایلهای json
برای ذخیره دادههای بلاکچین استفاده میکرد. کد را در انتشارها بررسی کنید.
نسخه دوم GoodChain
با استفاده از Node.js
و Express.js
ساخته شد و از git
برای ذخیره دادههای بلاکچین استفاده میکرد. کد را در انتشارها بررسی کنید.
نسخه سوم GoodChain
با استفاده از TypeScript
، Express.js
و LevelDB
ساخته شده است.
اگر GoodChain
را مفید یافتید و مایل به حمایت از توسعه آن هستید، میتوانید ETH را به آدرس زیر اهدا کنید:
0xc9b64496986E7b6D4A68fDF69eF132A35e91838e