آموزش دوره توسعه بیت کوین - کیف پول بیت کوین خود را بسازید!

The Bitcoin Developer Course - Build Your Own Bitcoin Wallet!

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره:

به دوره توسعه بیت کوین خوش آمدید! نام من هامبرتو است و خوشحالم که اولین و تنها دوره آموزشی را به شما ارائه می کنم که در آن با ساخت کیف پول بیت کوین رومیزی بیت کوین را یاد خواهید گرفت!

در این دوره آموزشی، نحوه عملکرد بیت کوین از نقطه نظر فنی را خواهید آموخت. به طور دقیق تر، نحوه عملکرد کیف پول بیت کوین را با جزئیات خواهید آموخت. همچنین، نحوه عملکرد یک گره بیت کوین و نحوه اجرای آن را خواهید آموخت. خواهیم دید که چگونه با کیف پول ما و سایر گره ها تعامل می کند. همچنین خواهیم آموخت که شبکه بیت کوین چگونه کار می کند و چگونه به اجماع دست می یابد.

مفاهیم کلیدی بیت کوین که یاد خواهیم گرفت شامل تراکنش ها، آدرس ها، دانه ها، کلیدها، موجودی ها، بلاک چین، استخراج و کیف پول است.

از آنجایی که ما یک برنامه کاربردی دسکتاپ در طول دوره ایجاد خواهیم کرد، دانشجو این فرصت را خواهد داشت تا مهارت های مهندسی نرم افزار زیر را که در صنعت نرم افزار تقاضای زیادی دارد، تمرین کند:

  • پارادایم برنامه نویسی شی گرا که کیف پول ما بر اساس آن است.
  • توسعه آزمایش محور (TDD). بیشتر ویژگی هایی که ما ایجاد خواهیم کرد از روش TDD برای انجام کارها پیروی می کنند. همانطور که از نام این رویکرد پیداست، برای هر ویژگی، ابتدا آزمایش‌ها را می‌سازیم و آنها توسعه بیشتر ویژگی‌ها را راهنمایی می‌کنند.
  • بهترین شیوه های امنیت برنامه. ما در مورد بهترین شیوه های امنیتی برنامه بسیار نگران خواهیم بود و برنامه را به عنوان یک سیستم ماموریت حیاتی در نظر خواهیم گرفت. من شخصاً روی این برنامه پوسته در بازی دارم و تلاش زیادی برای به حداقل رساندن احتمال از دست دادن سرمایه شخصی با این برنامه انجام دادم.
  • بهترین شیوه های برنامه نویسی. اصول جامد و کد پاک در فرهنگ کد ما نفوذ کرده است. این دوره دارای نمونه های زیادی از بهترین شیوه های برنامه نویسی است.

با انجام دادن بیاموزید. حدود 17 درصد از این درس را تئوری تشکیل می دهد. بقیه از کلاس های عملی تشکیل شده است. این دوره به شدت بر روی کد متمرکز است و در صورت نیاز با برخی ارائه‌ها همراه است. در زیر هر ویدیو، می‌توانید پیوندهای اضافی و مطالب مطالعه را در صفحه منابع پروژه‌ها بیابید. شما یک کیف پول دسکتاپ بیت کوین می سازید و در حین انجام این کار مفاهیم مهم بیت کوین را یاد می گیرید.

توصیه می‌شود که دانش‌آموز قبل از گذراندن این دوره، دانش برنامه‌نویسی شی گرا را داشته باشد. دانش جاوا یا زبان های مشابه مورد نیاز است. اگرچه این دوره مفاهیم مختلف مهندسی نرم افزار را ارائه می دهد، اما ما بر درک بیت کوین تمرکز می کنیم. اگر دانش‌آموز بخواهد برخی از مفاهیم مهندسی نرم‌افزاری که در این دوره به آنها اشاره شده است را با جزئیات بداند، باید از منابع دیگر در طول دوره برای درک بهتر آنها استفاده کند.

در طول دوره، برنامه کیف پول بیت کوین رومیزی خود را خواهید ساخت. همچنین، شما این فرصت را خواهید داشت که برنامه به دست آمده را با سایر دانش آموزان و ما به اشتراک بگذارید! برای این کار بر روی دکمه ایجاد پروژه در انتهای همین صفحه کلیک کنید. سپس، به صفحه‌ای هدایت می‌شوید که می‌توانید عنوان پروژه، توضیحات، پیوند، ویدیوی یوتیوب یا تصویری را در آن پست کنید. در زیر چند پیشنهاد از مواردی که می توانید در پایان دوره با ما به اشتراک بگذارید آمده است:

  • پیوند GitHub حاوی مخزن برنامه‌ای که ایجاد کرده‌اید، به همراه دستورالعمل‌هایی در مورد نحوه اجرای آن؛
  • ویدیویی که در آن با کیف پول خود در محیط های Reg Test یا Test Net بازی می کنید. برای مثال، می‌توانید به شما نشان دهید که بیت کوین‌ها را با کیف پول خود ارسال یا دریافت می‌کنید؛
  • رابط کاربری برنامه ما بی مزه به نظر می رسد. اگر احساس می کنید الهام گرفته اید، می توانید آن را بهبود بخشید و تصویری از نتیجه ارسال کنید؛
  • می توانید میزان اطلاعات تراکنش نشان داده شده در کادر گفتگوی تراکنش ارسال را بهبود ببخشید. یا می‌توانید پنجره جدیدی اضافه کنید که اطلاعات بیشتری را از تراکنش‌های گذشته نشان می‌دهد و نتیجه را به ما نشان می‌دهد؛
  • اگر احساس ماجراجویی می‌کنید، می‌توانید ویژگی‌های جدیدی را اضافه کنید، مانند پشتیبانی از چند امضا یا ریشه ریشه، و توضیح دهید که چگونه این کار را انجام می‌دهید. کتابخانه bitcoin-java در حال حاضر از آنها پشتیبانی می کند. از تخیل خود استفاده کنید!

پس از اشتراک‌گذاری پروژه‌تان، برای دیدن آن در جامعه ما در دسترس خواهد بود.

کیف پول بیت کوین BYOW

بیایید کمی بیشتر در مورد کیف پولی که می‌سازید صحبت کنیم. در طول دوره، من به این کیف پول به عنوان BYOW اشاره می کنم، مخفف عبارت "کیف پول خود را بسازید". ما توسعه این برنامه را با جاوا 16 شروع خواهیم کرد، اما بعداً در دوره آموزشی آن را به نسخه 19 به روز خواهیم کرد. ما از فریمورک بوت فنری نسخه 2.5.4 استفاده خواهیم کرد که یک ظرف تزریق وابستگی و امکانات زیادی برای کمک به شما ارائه می دهد. ما اپلیکیشن خود را می سازیم بعداً در دوره، ما آن را به نسخه 2.7.5 به روز خواهیم کرد.

ما از Java FX نسخه 16 در پروژه استفاده خواهیم کرد. بعداً آن را به نسخه 19 به‌روزرسانی می‌کنیم. این کتابخانه کلاس‌هایی را ارائه می‌کند که به ما در ساختن رابط کاربری گرافیکی برنامه، که به عنوان gooey نیز شناخته می‌شود، کمک می‌کند. برای آزمایش، از groovy، چارچوب Spock و تست FX استفاده می کنیم. برای ایجاد دانه‌های کیف پول، آدرس‌ها، تراکنش‌ها و سایر عملیات بیت‌کوین، از کتابخانه جاوای بیت‌کوین منبع باز استفاده می‌کنیم که مخصوصاً برای این دوره ساخته‌ام.

ما از نود هسته بیت کوین نسخه 22 برای ارتباط با بلاک چین استفاده خواهیم کرد. بعداً در دوره، ما آن را به نسخه 23 به روز خواهیم کرد. اگرچه گره هسته بیت کوین می تواند کیف پول و آدرس تولید کند، ما از آن فقط برای بازیابی داده ها و ارسال داده ها به بلاک چین استفاده خواهیم کرد. عملیاتی مانند تولید دانه‌ها، آدرس‌ها، ساخت و امضای تراکنش‌ها توسط اپلیکیشن ما انجام می‌شود. استثنا برای آزمون ها خواهد بود. در این موارد، ما از گره هسته بیت کوین RPC API برای تولید آدرس ها، ارسال تراکنش ها و استخراج بلوک ها در محیط های آزمایشی استفاده می کنیم. بنابراین، ما با مهم‌ترین روش‌های RPC API گره هسته بیت‌کوین آشنا می‌شویم و یک کلاینت برای برقراری ارتباط با آن از برنامه‌مان ایجاد می‌کنیم.

به عنوان پایگاه داده، از اجرای جاوا SQL HSQLDB استفاده خواهیم کرد. ما از ادغام صاف آن با کتابخانه JPA داده بوت فنری برای برقراری ارتباط با پایگاه داده استفاده خواهیم کرد. در نهایت، ما از Intellij IDEA به عنوان IDE برای ساخت این پروژه استفاده خواهیم کرد.

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

منابع:

دانلود، پیکربندی و اجرای نود هسته بیت کوین و دانلود IntelliJ IDEA

- وب سایت Bitcoin Core:

- دستورالعمل های نصب هسته بیت کوین:

برای ویندوز:

برای لینوکس:

برای سیستم عامل مک:

- مکان bitcoin.conf:

- وب سایت دانلود IntelliJ IDEA:

- محتوای bitcoin.conf:

testnet=1

datadir=جایگزین مسیری که می‌خواهید بلاک چین را در آن ذخیره کنید

سرور=1

rpcuser=byow

rpcpassword=byow

txindex=1

fallbackfee=0.00001

zmqpubrawtx=tcp://127.0.0.1:29000

zmqpubhashblock=tcp://127.0.0.1:29000

بیت کوین چیست؟

- بیت کوین: یک سیستم نقدی الکترونیکی همتا به همتا، توسط ساتوشی ناکاموتو:

شبکه بیت کوین، اکوسیستم و اصول

- اصول بیت کوین:

- کد منبع اصلی بیت کوین:

شروع پروژه

- Spring Initializr:

پیکربندی رابط کاربری گرافیکی

-  تفاوت‌های کد:

ایجاد اولین آزمون ما

- تفاوت کد:

دانه های یادگاری

- BIP 39:

ایجاد پنجره گفتگوی Wallet

-  تفاوت‌های کد:

ایجاد دانه یادگاری

- کد منبع کتابخانه جاوا بیت کوین:

- تفاوت کد:

ایجاد دکمه‌های پنجره گفتگوی کیف پول و اعتبارسنجی

- تفاوت کد:

کیف پول فعلی قابل مشاهده

- تفاوت‌های کد:

برگه دریافت بیت کوین

-  تفاوت‌های کد:

آدرس بیت کوین و کیف پول HD

- BIP 13:

- BIP 32:

- BIP 44:

- BIP 84:

- BIP 49:

- SLIP 44:

ایجاد کلیدهای عمومی گسترده کیف پول ما

- دانه یادگاری برای آزمایش سرویس کیف پول ایجاد:

"رها کردن رها کردن رها کردن رها کردن رها کردن رها کردن رها کردن رها کردن رها کردن در مورد"

- موارد آزمایشی برای تست خدمات گسترده pubkey:

- وب سایت ایان کلمن:

- تفاوت کد:

ایجاد آدرس‌های Segwit

- آدرس مورد آزمایشی مولد متوالی:

"zpub6tmUiGj1DxgtbyrfYZUgfrVLuU2gyFPZMkSof4MdWNJaKuas4R1DB9D2arQ52ThKRxfpMbHQeYig45Mt8eNhd5zkFSx81CQWy7Y"،

- موارد آزمایشی مولد آدرس Segwit:

- تفاوت کد:

درک آدرس های Segwit و مقدمه ای بر محیط های شبکه بیت کوین

- BIP 173:

ایجاد آدرس‌های Segwit – قسمت دوم

- تفاوت کد:

افزودن پشتیبانی برای Main Net، Test Net و Reg Test Environments

- تفاوت کد:

ایجاد Node Client برای ایجاد و فهرست کردن کیف پول

- مستندات روش ایجاد کیف پول بیت کوین Core Node RPC:

- مستندات روش listwalletdir بیت کوین Core Node RPC:

- مستندات روش لیست کیف پول‌های لیست نود بیت کوین Core Node RPC:

- تفاوت کد:

Node Clients برای بارگیری کیف پول، دریافت آدرس جدید، بررسی موجودی ما و استخراج بیت کوین در محیط تست Reg

- مستندات روش loadwallet RPC Core Node Bitcoin:

- مستندات متد getnewaddress RPC گره هسته بیت کوین:

- مستندات روش دریافت تعادل RPC Core Node Bitcoin:

- مستندات روش آدرس آدرس RPC تولید بیت کوین Core Node:

- تفاوت کد:

ارسال بیت کوین از گره به برنامه. گره هسته بیت کوین CLI

- اسناد روش ارسال آدرس آدرس RPC Core Bitcoin:

- تفاوت کد:

جدول آدرس ها

-  تفاوت‌های کد:

وارد کردن آدرس های برنامه ما به گره بیت کوین ما

- مستندات روش چندگانه import RPC Core Bitcoin:

- آدرس هایی برای آزمایش کلاینت آدرس ورودی چندگانه Node:

bcrt1qkqn37nzqtp6wt9hnkkkc4a6pu704t883dxq02j

bcrt1qv579hpgz6h92lwpudyw4q4pwts2rhxe9kwft82

bcrt1q84t8hyycfwvw79zrxhhkhdcepyscxvshulr8zw

- تفاوت کد:

فراخوانی گره بیت کوین ما به صورت ناهمزمان

-  تفاوت‌های کد:

گوش دادن به تراکنش ها از Node با ZeroMQ

-  تفاوت‌های کد:

تراکنش های بیت کوین: ورودی ها، خروجی ها، اسکریپت ها و مجموعه UTXO

- مستندات روش لیست هزینه شده RPC گره هسته بیت کوین:

دریافت UTXO از گره و فیلتر کردن آنها

- تفاوت کد:

به روز رسانی آدرس های کیف پول فعلی

- تفاوت کد:

نمایش اطلاعات آدرس در جدول آدرس ها

- تفاوت کد:

سناریوهای آزمایشی بیشتر برای دریافت بیت کوین و جلوگیری از استفاده مجدد از آدرس

- تفاوت کد:

بهبود دریافت تست های بیت کوین. دریافت تراکنش های بیشتر از آدرس ها

- تفاوت کد:

ایجاد آدرس های بیشتر

- تفاوت کد:

تأییدیه های آزمایشی

- تفاوت کد:

جدول معاملات

- تفاوت کد:

پر کردن جدول معاملات

- تفاوت کد:

بهبود تست‌ها برای جدول معاملات و اجرای برنامه ما در محیط شبکه آزمایشی

- شیر آب تست بیت کوین:

- Net Blockchain Explorer را آزمایش کنید:

- تفاوت کد:

گوش دادن به بلوک ها و قالب بندی موجودی ها

- تفاوت کد:

موجودی مجموع کیف پول

- تفاوت کد:

محاسبه و نمایش کل موجودی کیف پول

- تفاوت کد:

افزودن آزمایش‌های بیشتر برای ویژگی کل موجودی

- تفاوت کد:

برگه ارسال بیت کوین

- تفاوت کد:

کارمزد و اندازه تراکنش

- وب سایت هزینه بیت کوین:

- وب سایت Mempool Space:

- گره هسته بیت کوین RPC مستندات روش هزینه هوشمند را برآورد می کند:

ایجاد ماشین حساب اندازه تراکنش و کارمزد هوشمند Node Estimate

- تفاوت کد:

ایجاد ماشین حساب اندازه تراکنش و کارمزد هوشمند Node Estimate

- تفاوت کد:

انتخاب سکه و گرد و غبار

- ارزیابی استراتژی‌های انتخاب سکه، توسط مارک ارهارت:

- سیاست گرد و غبار هسته بیت کوین:

پیاده سازی Dust Calculator و سایر ابزارهای کاربردی

- تفاوت کد:

اجرای انتخاب‌کننده سکه قرعه‌کشی تصادفی

- Utxo و آدرس‌های تست انتخاب کننده سکه به صورت تصادفی:

Utxo جدید(

            «95ca08e71b5b8149b3c70f363e4a29e6a541850be3f143216d85b4b8429183a1،

            0،

            «bcrt1qr8z6uh0pjymq7u70s2xt0vpz5y8kvula632qh6،

            «»،

            «001419c5ae5de191360f73cf828cb7b022a10f6673fd،

            Satoshi.toBtc(مقدار)،

            1،

            null،

            null

)

string addressToSend = "bcrt1q3d5nn9qw9s44cr6g6mh75m0cf4tr7prsfrm5c6"

String changeAddress = "bcrt1qgykwpz3ql696ct5denuqavk7xcmh6lzwmpcyuk"

- موارد آزمایشی برای تست انتخاب کننده سکه به صورت تصادفی:

            ورودی‌های مورد انتظار | خروجی های انتظار می رود | inputAmounts

            1               | 1                | [100_002_090]

            1               | 1                | [100_002_091]

            1               | 1                | [100_002_383]

            1               | 1                | [100_002_384]

            1               | 1                | [100_002_678]

            1               | 1                | [100_002_679]

            1               | 1                | [100_002_972]

            1               | 2                | [100_002_973]

            2               | 1                | [50_001_691، 50_001_691]

            2               | 1                | [50_001_691, 50_001_692]

            2               | 1                | [50_001_691، 50_001_984]

            2               | 1                | [50_001_691، 50_001_985]

            2               | 1                | [50_001_691، 50_002_279]

            2                | 1                | [50_001_691، 50_002_280]

            2               | 1                | [50_001_691، 50_002_573]

            2               | 2                | [50_001_691, 50_002_574]

            3               | 1                | [33_334_891، 33_334_891، 33_334_892]

            3               | 1                | [33_334_891، 33_334_891، 33_334_893]

            3               | 1                | [33_334_891، 33_334_891، 33_335_185]

            3               | 1                | [33_334_891، 33_334_891، 33_335_186]

            3               | 1                | [33_334_891، 33_334_891، 33_335_480]

            3               | 1                | [33_334_891، 33_334_891، 33_335_481]

            3               | 1                | [33_334_891، 33_334_891، 33_335_774]

            3               | 2                | [33_334_891، 33_334_891، 33_335_775]                        

- تفاوت کد:

اجرای تراکنش خالق

- موارد آزمایشی برای تست خدمات ایجادکننده تراکنش:

- تفاوت کد:

پنجره گفتگوی ارسال تراکنش

- تفاوت کد:

نمایش داده های تراکنش در پنجره گفتگوی ارسال بیت کوین

- تفاوت کد:

کیف پول و نود ما چگونه تراکنش های ارسالی را انجام خواهند داد

- مستندات روش ارسال تراکنش RPC Core Node Bitcoin:

- مستندات روش لیست معاملات RPC نود هسته بیت کوین:

امضا و ارسال تراکنش‌های Segwit

- تفاوت کد:

تصحیح جداول و موجودی تراکنش ها و آدرس ها

- تفاوت کد:

تغییر آدرس ها را تغییر دهید. افزودن هشدار خطا برای رمزهای عبور اشتباه

- تفاوت کد:

پیام‌های خطا و آزمایش‌های بیشتر برای ویژگی Send Bitcoin

- ارسال تست های اضافی بیت کوین:

- تفاوت کد:

یک Refactor ضروری

- تفاوت کد:

A Necessary Refactor Part II

- موارد تست ماشین حساب اندازه تراکنش جدید:

- تفاوت کد:

آدرس‌های Segwit تودرتو

- BIP 141:

- BIP 49:

دریافت بیت کوین در آدرس های Segwit تو در تو

- موارد تست ژنراتور آدرس Segwit تودرتو:

- تفاوت کد:

ارسال بیت کوین به آدرس‌های Segwit تودرتو و آزمایش کیف پول ما در محیط شبکه آزمایشی

- موارد تست ماشین حساب اندازه تراکنش برای ورودی ها و خروجی های Segwit تودرتو:

- تفاوت کد:

ارسال بیت کوین به آدرس های قدیمی

- موارد تست ماشین حساب اندازه تراکنش برای ورودی های Segwit و خروجی های قدیمی:

- تفاوت کد:

ذخیره و رمزگذاری کیف پول ما

- وب سایت HSQLDB:

- تفاوت کد:

منوی بارگیری کیف پول

- تفاوت کد:

بارگیری کیف پول

- تفاوت کد:

قابلیت انکار قابل قبول، بازسازی مجدد و آزمایشات بیشتر برای ویژگی Load Wallet

- لیست RPC گره هسته بیت کوین توسط مستندات روش آدرس دریافت شده است:

- تفاوت کد:

رفع آدرس ها، تراکنش ها و موجودی ها

- تفاوت کد:

به روز رسانی تعداد آدرس های تولید شده و بهینه سازی تست ها

- تفاوت کد:

وارد کردن کیف پول با دانه حافظه

- تفاوت کد:

اعتبار سنجی آدرس ها

- موارد تست برای آزمون اعتبار سنجی آدرس در کلاس تست بیت کوین ارسال

- تفاوت کد:

ایجاد نوار پیشرفت

-  تفاوت‌های کد:

به روز رسانی وابستگی ها

- دانلود بیت کوین Core نسخه 23:

- تفاوت کد:

اجرای کیف پول ما در محیط اصلی خالص

- دانلود جاوا 19:

- تفاوت کد:


سرفصل ها و درس ها

درس ها Lessons

  • یک Refactor ضروری A Necessary Refactor

  • تراکنش‌های Segwit چگونه ساخته و تأیید می‌شوند How Segwit Transactions are Built and Validated

  • ایجاد دکمه های پنجره گفتگوی کیف پول و اعتبارسنجی Create Wallet Dialog Window Buttons and Validations

  • پیام های خطا و آزمایش های بیشتر برای ویژگی Send Bitcoin More Error Messages and Tests for the Send Bitcoin Feature

  • شبکه بیت کوین، اکوسیستم و اصول The Bitcoin Network, Ecosystem and Principles

  • آشنایی با آدرس های Segwit و مقدمه ای بر محیط های شبکه بیت کوین Understanding Segwit Addresses and Introduction to Bitcoin Network Environments

  • تغییر آدرس های تغییر افزودن هشدار خطا برای رمزهای عبور اشتباه Changing Change Addresses. Adding Error Alert for Wrong Passwords

  • اجرای Transaction Creator Implementing the Transaction Creator

  • افزودن پشتیبانی برای محیط‌های تست اصلی، شبکه تست و Reg Adding Support for Main Net, Test Net, and Reg Test Environments

  • شروع پروژه Starting the Project

  • امضای تراکنش چگونه کار می کند How Transaction Signatures Work

  • گوش دادن به تراکنش ها از Node با ZeroMQ Listening for Transactions from the Node with ZeroMQ

  • وارد کردن کیف پول با بذر Mnemonic Importing a Wallet with the Mnemonic Seed

  • انکار قابل قبول، Refactoring و تست های بیشتر برای ویژگی Load Wallet Plausible Deniability, Refactoring and More Tests for the Load Wallet Feature

  • جدول معاملات The Transactions Table

  • پر کردن جدول معاملات Populating the Transactions Table

  • اصلاح جداول و ترازهای تراکنش و آدرس ها Fixing Transaction and Addresses Tables and Balances

  • پیاده سازی انتخاب کننده سکه قرعه کشی تصادفی Implementing the Single Random Draw Coin Selector

  • منوی بارگیری کیف پول The Load Wallet Menu

  • ایجاد کلیدهای عمومی گسترده کیف پول ما Creating our wallet’s extended public keys

  • موجودی مجموع کیف پول The Total Wallet’s Balance

  • دریافت UTXO از گره و فیلتر کردن آنها Obtaining UTXOs from the Node and Filtering Them

  • برگه ارسال بیت کوین The Send Bitcoin Tab

  • آدرس های Segwit تو در تو Nested Segwit Addresses

  • ایجاد آدرس های Segwit Generating Segwit Addresses

  • A Necessary Refactor Part II A Necessary Refactor Part II

  • به روز رسانی آدرس های کیف پول فعلی Updating the Current Wallet Addresses

  • تراکنش های بیت کوین: ورودی ها، خروجی ها، اسکریپت ها و مجموعه UTXO Bitcoin Transactions: Inputs, Outputs, Scripts, and the UTXO Set

  • انتخاب سکه و گرد و غبار Coin Selection and Dust

  • دانه های یادگاری Mnemonic Seeds

  • امضا و ارسال تراکنش های Segwit Signing and Sending Segwit Transactions

  • محاسبه و نمایش کل موجودی کیف پول Calculating and Showing the Wallet’s Total Balance

  • پیکربندی رابط کاربری گرافیکی Configuring the GUI

  • پنجره گفتگوی ارسال تراکنش The Send Transaction Dialog Window

  • جدول آدرس ها The Addresses Table

  • معرفی Introduction

  • کیف پول و نود ما چگونه تراکنش های ارسالی را مدیریت خواهند کرد How Our Wallet and Node Will Handle Sent Transactions

  • ارسال بیت کوین از گره به برنامه Sending Bitcoins From the Node to the Application

  • ایجاد اولین آزمون ما Creating our First Test

  • ایجاد آدرس های Segwit - قسمت دوم Generating Segwit Addresses – Part II

  • به روز رسانی تعداد آدرس های تولید شده و بهینه سازی تست ها Updating the Number of Generated Addresses and Optimizing Tests

  • دانلود، پیکربندی و اجرای نود هسته بیت کوین و دانلود IntelliJ IDEA Downloading, Configuring and Running the Bitcoin Core Node and IntelliJ IDEA Download

  • بیت کوین چیست؟ What is Bitcoin?

  • افزودن تست‌های بیشتر برای ویژگی تعادل کل Adding More Tests for the Total Balance Feature

  • ایجاد آدرس های بیشتر Generating More Addresses

  • گوش دادن به بلوک ها و قالب بندی ترازها Listening for Blocks and Formatting Balances

  • کیف پول بیت کوین، بلاک چین و استخراج Bitcoin Wallets, the Blockchain and Mining

  • وارد کردن آدرس های برنامه ما به گره بیت کوین ما Importing our Application Addresses to Our Bitcoin Node

  • ارسال بیت کوین به آدرس‌های Segwit تودرتو و تست کیف پول ما در شبکه تست Sending Bitcoin to Nested Segwit Addresses and Testing our Wallet on the Test Net

  • فراخوانی گره بیت کوین ما به صورت ناهمزمان Calling our Bitcoin Node Asynchronously

  • برگه دریافت بیت کوین The Receive Bitcoin Tab

  • ایجاد نوار پیشرفت Creating a Progress Bar

  • تاییدیه های تست Testing Confirmations

  • آدرس بیت کوین و کیف پول HD Bitcoin Addresses and HD Wallets

  • اجرای کیف پول خود در محیط اصلی خالص Running our Wallet on the Main Net Environment

  • Node Client برای بارگیری کیف پول، دریافت آدرس جدید، بررسی موجودی ما و استخراج بیت کوین Node Clients for Loading a Wallet, Get a New Address, Checking our Balance and Mining Bitcoins

  • دریافت بیت کوین در آدرس های Segwit تو در تو Receiving Bitcoin in Nested Segwit Addresses

  • کیف پول فعلی قابل مشاهده The Current Wallet Observable

  • بهبود دریافت تست های بیت کوین دریافت تراکنش های بیشتر از آدرس ها Improving Receiving Bitcoin Tests. Receiving More Transactions Than Addresses

  • تراکنش های بیت کوین و کلیدهای خصوصی Bitcoin Transactions and Private Keys

  • پیاده سازی ماشین حساب گرد و غبار و سایر ابزارها Implementing the Dust Calculator and Other Utilities

  • نمایش داده های تراکنش در پنجره گفتگوی ارسال بیت کوین Showing Transaction Data in the Send Bitcoin Dialog Window

  • رفع آدرس ها، تراکنش ها و موجودی ها Fixing Addresses, Transactions and Balances

  • هزینه ها و اندازه های تراکنش Transaction Fees and Sizes

  • آماده سازی نود اصلی بیت کوین برای برقراری ارتباط با کیف پول ما Preparing our Bitcoin Core Node for Communicating With Our Wallet

  • ایجاد دانه یادگاری Creating the Mnemonic Seed

  • بهبود تست‌ها برای جدول معاملات و اجرای برنامه ما در شبکه آزمایشی Improving Tests for the Transactions Table and Running Our Application on the Test Net

  • نمایش اطلاعات آدرس در جدول آدرس ها Showing Address Information in the Addresses Table

  • ارسال بیت کوین به آدرس های قدیمی Sending Bitcoin to Legacy Addresses

  • ایجاد Node Client برای ایجاد و فهرست کردن کیف پول Creating the Node Client for Creating and Listing Wallets

  • ایجاد پنجره گفتگوی کیف پول Create Wallet Dialog Window

  • اعتبار سنجی آدرس ها Validating Addresses

  • ایجاد ماشین حساب اندازه تراکنش و مشتری کارمزد هوشمند Node Estimate Creating the Transaction Size Calculator and The Node Estimate Smart Fee Client

  • سناریوهای آزمایشی بیشتر برای دریافت بیت کوین و جلوگیری از استفاده مجدد از آدرس More Test Scenarios For Receiving Bitcoins and Avoiding Address Reuse

  • به روز رسانی وابستگی ها Updating Dependencies

  • بارگیری کیف پول Loading a Wallet

  • ذخیره و رمزگذاری کیف پول ما Saving and Encrypting our Wallet

نمایش نظرات

آموزش دوره توسعه بیت کوین - کیف پول بیت کوین خود را بسازید!
جزییات دوره
14h 25m
77
Skillshare (اسکیل شیر) Skillshare (اسکیل شیر)
(آخرین آپدیت)
3
از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Humberto Cezar Humberto Cezar

توسعه دهنده نرم افزار و بیت کوین پلب

من بیش از 5 سال تجربه به عنوان یک توسعه دهنده نرم افزار حرفه ای دارم که به ویژه در صنعت تجارت الکترونیک کار می کنم.

من از سال 2016 به بیت کوین علاقه مند بوده ام. از آن زمان به شدت بیت کوین را مطالعه کرده ام. من کتابخانه منبع باز بیت کوین-جاوا را توسعه داده ام.

من ابتکار آموزش بیت کوین را برای تمرکز بر ارائه آموزش بیت کوین برای توسعه دهندگان در سراسر جهان ساخته ام.