بیت کوین یک پروژه منبع باز است و کد منبع تحت مجوز Open (MIT) در دسترس است ، برای بارگیری و استفاده برای هر منظور رایگان است. منبع باز به معنای استفاده بیش از حد رایگان است. همچنین این بدان معناست که بیت کوین توسط یک جامعه باز از داوطلبان ساخته شده است. در ابتدا ، آن جامعه فقط از Satoshi Nakamoto تشکیل شده بود. تا سال 2016 ، کد منبع بیت کوین بیش از 400 مشارکت کننده با حدود ده ها توسعه دهنده مشغول کار بر روی کد تقریباً تمام وقت و چندین ده نفر دیگر به صورت پاره وقت بود. هر کسی می تواند در کد کمک کند - از جمله شما!
هنگامی که بیت کوین توسط Satoshi Nakamoto ایجاد شد ، این نرم افزار در واقع قبل از نوشتن تصویر سفید در [Satoshi_whitepaper] تکمیل شد. ساتوشی می خواست مطمئن شود که قبل از نوشتن در مورد آن کار می کند. این اولین اجرای ، سپس به سادگی با عنوان "بیت کوین" یا "مشتری Satoshi" شناخته می شود ، به شدت اصلاح و بهبود یافته است. برای تمایز آن از سایر پیاده سازی های سازگار ، به آنچه که به عنوان هسته بیت کوین شناخته می شود ، تکامل یافته است. Bitcoin Core اجرای مرجع سیستم بیت کوین است ، به این معنی که این مرجع معتبر در مورد نحوه اجرای هر بخش از فناوری است. Bitcoin Core تمام جنبه های بیت کوین ، از جمله کیف پول ، یک موتور اعتبار سنجی معامله و بلوک و یک گره کامل شبکه را در شبکه بیت کوین همتا به همتا پیاده سازی می کند.
حتی اگر Bitcoin Core شامل اجرای مرجع کیف پول باشد ، این در نظر گرفته نشده است که به عنوان یک کیف پول تولید برای کاربران یا برنامه های کاربردی مورد استفاده قرار گیرد. به توسعه دهندگان برنامه توصیه می شود که با استفاده از استانداردهای مدرن مانند BIP-39 و BIP-32 ، کیف پول بسازند (به [mnemonic_code_words] و [hd_wallets] مراجعه کنید). BIP مخفف پیشنهاد بهبود بیت کوین است.

محیط توسعه بیت کوین
اگر یک توسعه دهنده هستید ، می خواهید یک محیط توسعه را با تمام ابزارها ، کتابخانه ها و نرم افزار پشتیبانی برای نوشتن برنامه های بیت کوین تنظیم کنید. در این فصل بسیار فنی ، ما به مرحله به مرحله از آن فرآیند خواهیم رفت. اگر این ماده خیلی متراکم شود (و شما در واقع یک محیط توسعه را تنظیم نمی کنید) احساس راحتی کنید که به فصل بعدی بروید ، که کمتر فنی است.
گردآوری هسته بیت کوین از کد منبع
کد منبع Bitcoin Core را می توان به عنوان یک بایگانی یا با کلون کردن مخزن منبع معتبر از Github بارگیری کرد. در صفحه بارگیری Core Bitcoin ، جدیدترین نسخه را انتخاب کرده و بایگانی فشرده شده کد منبع ، به عنوان مثال ، بیت کوی ن-0. 15. 0. 2. 2. gz را بارگیری کنید. از طرف دیگر ، از خط فرمان GIT برای ایجاد یک کپی محلی از کد منبع از صفحه Bitcoin Github استفاده کنید.
در بسیاری از مثالهای موجود در این فصل ، ما از رابط خط فرمان سیستم عامل (که به عنوان "پوسته" نیز شناخته می شود) استفاده خواهیم کرد ، که از طریق یک برنامه "ترمینال" قابل دسترسی است. پوسته سریع نمایش می دهد. شما یک دستور را تایپ می کنید. و پوسته با برخی از متن ها و یک درخواست جدید برای دستور بعدی شما پاسخ می دهد. سریع ممکن است در سیستم شما متفاوت به نظر برسد ، اما در مثالهای زیر با یک نماد $ مشخص شده است. در مثالها ، وقتی متن را بعد از یک نماد $ مشاهده می کنید ، نماد $ را تایپ نکنید بلکه دستور را بلافاصله پس از آن تایپ کنید ، سپس Enter را فشار دهید تا دستور را اجرا کنید. در مثالها ، خطوط زیر هر دستور پاسخ سیستم عامل به آن دستور است. وقتی پیشوند $ بعدی را می بینید ، می دانید که این یک دستور جدید است و باید روند کار را تکرار کنید.
در این مثال ، ما از دستور git برای ایجاد یک کپی محلی ("کلون") کد منبع استفاده می کنیم:
GIT پرکاربردترین سیستم کنترل نسخه توزیع شده ، بخش اساسی از ابزار ابزار توسعه دهنده نرم افزار است. اگر قبلاً آن را ندارید ، ممکن است نیاز به نصب دستور GIT یا یک رابط کاربری گرافیکی برای GIT بر روی سیستم عامل خود داشته باشید.
هنگامی که عملیات کلونینگ GIT به پایان رسید ، یک نسخه کامل محلی از مخزن کد منبع در دایرکتوری بیت کوین خواهید داشت. با تایپ ** CD Bitcoin ** در سریع به این فهرست تغییر دهید:
انتخاب نسخه اصلی بیت کوین
به طور پیش فرض ، نسخه محلی با جدیدترین کد هماهنگ می شود ، که ممکن است نسخه ناپایدار یا بتا بیت کوین باشد. قبل از تهیه کد ، با بررسی یک برچسب نسخه ، یک نسخه خاص را انتخاب کنید. با این کار ، کپی محلی با یک عکس فوری خاص از مخزن کد که توسط یک برچسب کلمه کلیدی مشخص شده است ، همگام می شود. برچسب ها توسط توسعه دهندگان برای علامت گذاری نسخه های خاص کد بر اساس شماره نسخه استفاده می شود. اول ، برای یافتن برچسب های موجود ، از دستور git tag استفاده می کنیم:
لیست برچسب ها تمام نسخه های منتشر شده بیت کوین را نشان می دهد. طبق کنوانسیون ، نامزدهای انتشار ، که برای آزمایش در نظر گرفته شده اند ، پسوند "RC" را دارند. نسخه های پایدار که می توانند در سیستم های تولید اجرا شوند ، هیچ پسوند ندارند. از لیست قبلی ، بالاترین نسخه نسخه را انتخاب کنید که در زمان نوشتن V0. 15. 0 بود. برای همگام سازی کد محلی با این نسخه ، از دستور Checkout Git استفاده کنید:
می توانید تأیید کنید که نسخه مورد نظر "بررسی شده" را با صدور وضعیت GIT Command دارید:
پیکربندی ساخت هسته بیت کوین
کد منبع شامل مستندات است که می توان در تعدادی از پرونده ها یافت. مستندات اصلی واقع در readme. md را در فهرست بیت کوین با تایپ ** بیشتر readme. md ** در سریع و با استفاده از نوار فضایی برای پیشرفت به صفحه بعدی مرور کنید. در این فصل ، ما مشتری بیت کوین خط فرمان را که به عنوان بیت کوین در لینوکس نیز شناخته می شود ، خواهیم ساخت. با تایپ ** بیشتر Doc/Build-Unix. MD ** دستورالعمل های تهیه مشتری خط فرمان Bitcoind را بر روی سیستم عامل خود مرور کنید. دستورالعمل های جایگزین برای MACOS و ویندوز را می توان به ترتیب در فهرست DOC به عنوان Build-Osx. md یا Build-Windows. md یافت.
پیش نیازهای ساخت را که در قسمت اول مستندات ساخت قرار دارند ، با دقت مرور کنید. اینها کتابخانه هایی هستند که باید قبل از شروع به کامپایل کردن بیت کوین در سیستم شما حضور داشته باشند. اگر این پیش نیازها از بین نرود ، روند ساخت با خطا شکست می خورد. اگر این اتفاق بیفتد زیرا پیش نیاز را از دست داده اید ، می توانید آن را نصب کرده و سپس روند ساخت را از جایی که ترک کرده اید از سر بگیرید. با فرض نصب پیش نیازها ، شما با تولید مجموعه ای از اسکریپت های ساختمانی با استفاده از اسکریپت autogen. sh ، فرآیند ساخت را شروع می کنید.
اسکریپت autogen. sh مجموعه ای از اسکریپت های پیکربندی اتوماتیک را ایجاد می کند که سیستم شما را بازجویی می کند تا تنظیمات صحیح را کشف کرده و از تمام کتابخانه های لازم برای تهیه کد استفاده کنید. مهمترین آنها اسکریپت پیکربندی است که تعدادی گزینه مختلف را برای سفارشی سازی فرآیند ساخت ارائه می دهد. برای دیدن گزینه های مختلف: نوع **./پیکربندی - -Help ** را مشاهده کنید:
اسکریپت پیکربندی به شما این امکان را می دهد تا با استفاده از پرچم های --enable-FEATURE و --disable-FEATURE ویژگی های خاصی از بیت کوین را فعال یا غیرفعال کنید، جایی که FEATURE با نام ویژگی جایگزین می شود، همانطور که در خروجی راهنما فهرست شده است. در این فصل، کلاینت بیت کوین را با تمام ویژگی های پیش فرض می سازیم. ما از پرچم های پیکربندی استفاده نخواهیم کرد، اما باید آن ها را بررسی کنید تا متوجه شوید چه ویژگی های اختیاری بخشی از مشتری هستند. اگر در یک محیط آکادمیک هستید، ممکن است محدودیت های آزمایشگاه کامپیوتر از شما بخواهد که برنامه ها را در فهرست اصلی خود نصب کنید (به عنوان مثال، با استفاده از --prefix=$HOME).
در اینجا چند گزینه مفید وجود دارد که رفتار پیش فرض اسکریپت پیکربندی را نادیده می گیرند:
این محل نصب پیش فرض (که /usr/local/ است) را برای فایل اجرایی به دست می آورد. از $HOME برای قرار دادن همه چیز در فهرست اصلی یا مسیر دیگری استفاده کنید.
این برای غیرفعال کردن اجرای کیف پول مرجع استفاده می شود.
اگر در حال ساخت کیف پول هستید، اجازه استفاده از نسخه ناسازگار کتابخانه DB برکلی را بدهید.
رابط کاربری گرافیکی را که به کتابخانه Qt نیاز دارد، ایجاد نکنید. این فقط بیت کوین سرور و خط فرمان را می سازد.
در مرحله بعد، اسکریپت پیکربندی را اجرا کنید تا به طور خودکار تمام کتابخانه های لازم را کشف کرده و یک اسکریپت ساخت سفارشی برای سیستم خود ایجاد کنید:
اگر همه چیز به خوبی پیش برود، دستور پیکربندی با ایجاد اسکریپت های ساخت سفارشی که به ما امکان می دهد بیت کوین را کامپایل کنیم به پایان می رسد. اگر کتابخانه یا خطایی وجود نداشته باشد، دستور configure به جای ایجاد اسکریپت های ساخت، با یک خطا خاتمه می یابد. اگر خطایی رخ می دهد، به احتمال زیاد به دلیل وجود یک کتابخانه از دست رفته یا ناسازگار است. دوباره مستندات ساخت را بررسی کنید و مطمئن شوید که پیش نیازهای گمشده را نصب کرده اید. سپس دوباره configure را اجرا کنید و ببینید که آیا خطا برطرف می شود یا خیر.
ساخت ابزارهای اجرایی هسته بیت کوین
در مرحله بعد، کد منبع را کامپایل خواهید کرد، فرآیندی که بسته به سرعت CPU و حافظه موجود، ممکن است تا یک ساعت طول بکشد. در طول فرآیند کامپایل، شما باید خروجی را هر چند ثانیه یا هر چند دقیقه یک بار مشاهده کنید، یا اگر مشکلی پیش بیاید یک خطا وجود دارد. اگر خطایی رخ داد، یا فرآیند کامپایل قطع شد، می توان هر زمان که خواستید با تایپ مجدد make آن را از سر گرفت. برای شروع کامپایل برنامه اجرایی، **make** را تایپ کنید:
در یک سیستم سریع با بیش از یک پردازنده ، ممکن است بخواهید تعداد مشاغل کامپایل موازی را تنظیم کنید. به عنوان مثال ، Mak e-J 2 در صورت موجود بودن از دو هسته استفاده می کند. اگر همه چیز خوب پیش برود ، اکنون Bitcoin Core گردآوری شده است. برای اطمینان از شکسته شدن کتابخانه های مرتبط به روشهای آشکار ، باید مجموعه تست واحد را با ساخت بررسی کنید. مرحله آخر نصب اجرایی مختلف بر روی سیستم خود با استفاده از دستور Make Install است. ممکن است از رمز عبور کاربر خود خواسته شود ، زیرا این مرحله به امتیازات اداری نیاز دارد:
نصب پیش فرض Bitcoind آن را در/usr/local/bin قرار می دهد. می توانید تأیید کنید که Bitcoin Core با درخواست سیستم برای مسیر اجرایی ، به طور صحیح نصب شده است ، به شرح زیر:
در حال اجرا یک گره هسته بیت کوین
شبکه همتا به همتا بیت کوین از "گره های شبکه" تشکیل شده است ، که بیشتر توسط داوطلبان و برخی از مشاغل ایجاد کننده برنامه های بیت کوین اجرا می شود. کسانی که گره های بیت کوین را اجرا می کنند ، دارای یک دیدگاه مستقیم و معتبر از blockchain بیت کوین هستند ، با یک نسخه محلی از تمام معاملات ، به طور مستقل توسط سیستم خودشان تأیید می شوند. با اجرای یک گره ، برای اعتبارسنجی یک معامله به شخص ثالث اعتماد ندارید. علاوه بر این ، با اجرای یک گره بیت کوین ، شما با قوی تر کردن آن به شبکه بیت کوین کمک می کنید.
با این حال ، اجرای یک گره نیاز به یک سیستم به طور دائم با منابع کافی برای پردازش تمام معاملات بیت کوین دارد. بسته به اینکه آیا شما می خواهید همه معاملات را فهرست بندی کنید و یک نسخه کامل از blockchain را نگه دارید ، ممکن است به فضای دیسک و رم زیادی نیز احتیاج داشته باشید. از اوایل سال 2018 ، یک گره تمام شاخص به 2 گیگابایت رم و حداقل 160 گیگابایت فضای دیسک نیاز دارد (به https://blockchain. info/charts/blocks-size مراجعه کنید). گره های بیت کوین همچنین معاملات و بلوک های بیت کوین را منتقل و دریافت می کنند و از پهنای باند اینترنت استفاده می کنند. اگر اتصال اینترنت شما محدود است ، دارای یک کلاه داده کم است ، یا اندازه گیری شده است (توسط گیگابیت شارژ می شود) ، احتمالاً نباید یک گره بیت کوین را روی آن اجرا کنید ، یا آن را به گونه ای اجرا کنید که پهنای باند آن را محدود کند (به پیکربندی نمونه A مراجعه کنیدسیستم محدود شده منابع).
Bitcoin Core یک نسخه کامل از blockchain را به طور پیش فرض نگه می دارد ، با معامله Evrery که از زمان آغاز به کار در سال 2009 در شبکه بیت کوین رخ داده است. این مجموعه داده ها ده ها گیگابایت در اندازه است و بسته به چند روز یا هفته ها به تدریج بارگیری می شود. سرعت CPU و اتصال به اینترنت. Bitcoin Core تا زمان بارگیری مجموعه داده های کامل blockchain قادر به پردازش معاملات یا به روزرسانی مانده حساب نخواهد بود. اطمینان حاصل کنید که فضای دیسک ، پهنای باند و زمان کافی برای تکمیل هماهنگ سازی اولیه دارید. شما می توانید Bitcoin Core را پیکربندی کنید تا با دور زدن بلوک های قدیمی ، اندازه blockchain را کاهش دهید (به پیکربندی نمونه یک سیستم محدود شده از منابع مراجعه کنید) ، اما هنوز هم کل مجموعه داده ها را قبل از دور انداختن داده ها بارگیری می کند.
با وجود این منابع منابع ، هزاران داوطلب گره بیت کوین را اجرا می کنند. برخی از آنها روی سیستم هایی به سادگی به عنوان یک Raspberry Pi (یک رایانه 35 دلار USD به اندازه یک بسته کارت) کار می کنند. بسیاری از داوطلبان همچنین گره های بیت کوین را روی سرورهای اجاره ای اجرا می کنند ، معمولاً برخی از انواع لینوکس. از یک سرور خصوصی مجازی (VPS) یا نمونه سرور محاسبات ابری می توان برای اجرای یک گره بیت کوین استفاده کرد. چنین سرورهایی را می توان با قیمت 25 تا 50 دلار در هر ماه از انواع ارائه دهندگان اجاره کرد.
چرا می خواهید یک گره را اجرا کنید؟در اینجا برخی از متداول ترین دلایل وجود دارد:
اگر در حال توسعه نرم افزار بیت کوین هستید و برای دسترسی قابل برنامه ریزی (API) به شبکه و blockchain باید به یک گره بیت کوین اعتماد کنید.
اگر در حال ساخت برنامه هایی هستید که باید معاملات را طبق قوانین اجماع بیت کوین تأیید کنند. به طور معمول ، شرکت های نرم افزاری بیت کوین چندین گره را اجرا می کنند.
اگر می خواهید از بیت کوین پشتیبانی کنید. اجرای یک گره باعث می شود شبکه قوی تر و قادر به ارائه کیف پول بیشتر ، کاربران بیشتر و معاملات بیشتر باشد.
اگر نمی خواهید برای پردازش یا اعتبارسنجی معاملات خود به شخص ثالث اعتماد کنید.
اگر این کتاب را می خوانید و علاقه مند به تهیه نرم افزار بیت کوین هستید ، باید گره خود را اجرا کنید.
پیکربندی گره هسته بیت کوین
Bitcoin Core در هر شروع به دنبال یک فایل پیکربندی در فهرست داده های خود خواهد بود. در این بخش گزینه های مختلف پیکربندی را بررسی خواهیم کرد و یک فایل پیکربندی را تنظیم می کنیم. برای یافتن پرونده پیکربندی ، Bitcoin d-printtoconsole را در ترمینال خود اجرا کنید و به دنبال اولین خطوط باشید.
پس از تعیین محل فایل پیکربندی، می توانید Ctrl-C را فشار دهید تا گره را خاموش کنید. معمولاً فایل پیکربندی در دایرکتوری داده بیت کوین. در فهرست اصلی کاربر شما قرار دارد. فایل پیکربندی را در ویرایشگر دلخواه خود باز کنید.
Bitcoin Core بیش از 100 گزینه پیکربندی را ارائه می دهد که رفتار گره شبکه، ذخیره سازی بلاک چین و بسیاری از جنبه های دیگر عملکرد آن را تغییر می دهد. برای مشاهده لیستی از این گزینه ها، bitcoind --help را اجرا کنید:
در اینجا برخی از مهم ترین گزینه هایی که می توانید در فایل پیکربندی یا به عنوان پارامترهای خط فرمان برای بیت کوین تنظیم کنید، آورده شده است:
یک دستور یا اسکریپت مشخص را برای ارسال هشدارهای اضطراری به صاحب این گره، معمولاً از طریق ایمیل، اجرا کنید.
یک مکان جایگزین برای فایل پیکربندی. این فقط به عنوان یک پارامتر خط فرمان برای بیت کوین منطقی است، زیرا نمی تواند در فایل پیکربندی که به آن اشاره می کند باشد.
دایرکتوری و فایل سیستمی را انتخاب کنید که تمام داده های بلاک چین در آن قرار گیرد. به طور پیش فرض، این فهرست فرعی بیت کوین دایرکتوری اصلی شما است. مطمئن شوید که این فایل سیستم دارای چندین گیگابایت فضای خالی است.
با حذف بلوک های قدیمی، فضای دیسک مورد نیاز را به این تعداد مگابایت کاهش دهید. از این در گره ای با محدودیت منابع استفاده کنید که نمی تواند با بلاکچین کامل مطابقت داشته باشد.
یک شاخص از تمام معاملات را حفظ کنید. این به معنای یک کپی کامل از بلاک چین است که به شما امکان می دهد هر تراکنش را به صورت برنامه ریزی شده توسط ID بازیابی کنید.
اندازه کش UTXO. پیش فرض 300 مگابایت است. این مقدار را روی سخت افزارهای رده بالا افزایش دهید و اندازه آن را در سخت افزارهای رده پایین کاهش دهید تا به قیمت کاهش سرعت IO دیسک، حافظه ذخیره شود.
حداکثر تعداد گره هایی را تنظیم کنید که از آنها اتصالات را بپذیرید. کاهش این مقدار از حالت پیش فرض باعث کاهش مصرف پهنای باند شما می شود. در صورت داشتن سقف داده یا پرداخت با گیگابایت استفاده کنید.
استخر حافظه تراکنش را به این تعداد مگابایت محدود کنید. از آن برای کاهش استفاده از حافظه در گره های محدود به حافظه استفاده کنید.
بافر حافظه هر اتصال را به این چند برابر 1000 بایت محدود کنید. در گره های محدود به حافظه استفاده کنید.
حداقل نرخ کارمزد را برای تراکنشی که رله خواهید کرد، تنظیم کنید. زیر این مقدار، تراکنش غیراستاندارد تلقی می شود، از مخزن تراکنش رد می شود و انتقال نمی یابد.
به طور پیش فرض، Bitcoin Core یک پایگاه داده می سازد که فقط شامل تراکنش های مربوط به کیف پول کاربر است. اگر می خواهید بتوانید با دستوراتی مانند getrawtransaction به هر تراکنش دسترسی داشته باشید (به کاوش و رمزگشایی تراکنش ها مراجعه کنید)، باید بیت کوین Core را برای ایجاد یک شاخص تراکنش کامل پیکربندی کنید، که با گزینه txindex قابل دستیابی است. txindex=1 را در فایل پیکربندی Bitcoin Core تنظیم کنید. اگر ابتدا این گزینه را تنظیم نکنید و بعداً آن را روی نمایه سازی کامل تنظیم کنید، باید بیت کوین را با گزین ه-reindex مجدداً راه اندازی کنید و منتظر بمانید تا ایندکس دوباره بسازد.
پیکربندی نمونه یک گره با نمایه کامل نشان می دهد که چگونه می توانید گزینه های قبلی را با یک گره کاملاً نمایه سازی شده ترکیب کنید، که به عنوان پشتیبان API برای یک برنامه بیت کوین اجرا می شود.
استراتژی ترید...
ما را در سایت استراتژی ترید دنبال می کنید
برچسب :
نویسنده : مرجان شیرمحمدی
بازدید : 51
تاريخ : سه
شنبه
15 فروردين
1402 ساعت: 17:36