این نسخه جدید نسخه اصلی است که شامل ویژگی های جدید، رفع اشکالات مختلف و بهبود عملکرد و همچنین ترجمه های به روز شده است.
لطفاً با استفاده از ردیاب مشکل در GitHub، اشکالات را گزارش کنید:
برای دریافت اعلانهای امنیتی و بهروزرسانی، لطفاً مشترک شوید:
نحوه ارتقا
اگر از نسخه قدیمیتری استفاده میکنید، آن را خاموش کنید. صبر کنید تا کاملاً خاموش شود (که ممکن است برای نسخههای قدیمیتر چند دقیقه طول بکشد)، سپس نصبکننده (در ویندوز) را اجرا کنید یا فقط روی /Applications/Bitcoin-Qt (در مک) یا bitcoind / bitcoin-qt (در لینوکس) کپی کنید.).
اولین باری که نسخه 0. 15. 0 یا جدیدتر را اجرا می کنید، پایگاه داده chainstate شما به فرمت جدیدی تبدیل می شود که بسته به سرعت دستگاه شما از چند دقیقه تا نیم ساعت طول می کشد.
توجه داشته باشید که فرمت پایگاه داده بلوک نیز در نسخه 0. 8. 0 تغییر کرده است و هیچ کد ارتقا خودکار از قبل از نسخه 0. 8 به نسخه 0. 15. 0 یا بالاتر وجود ندارد. ارتقاء مستقیم از 0. 7. x و قبل از آن بدون بارگیری مجدد بلاکچین پشتیبانی نمی شود. با این حال، طبق معمول، نسخه های قدیمی کیف پول هنوز پشتیبانی می شوند.
سازگاری
بیت کوین Core بر روی سیستم عامل هایی که از هسته لینوکس، macOS 10. 10+ و ویندوز 7 و جدیدتر استفاده می کنند، پشتیبانی می شود و به طور گسترده آزمایش می شود. استفاده از Bitcoin Core در سیستم های پشتیبانی نشده توصیه نمی شود.
بیت کوین Core باید روی اکثر سیستمهای مشابه یونیکس نیز کار کند، اما اغلب روی آنها آزمایش نمیشود.
علاوه بر پلتفرمهای CPU که قبلاً پشتیبانی میشدند، توزیع از پیش کامپایلشده این نسخه همچنین باینریهایی را برای پلتفرم RISC-V فراهم میکند.
اگر از فایل پیکربندی واحد systemd واقع در contrib/init/bitcoind. service استفاده می کنید، به جای استفاده از /var/lib/bitcoind به عنوان دایرکتوری داده تغییر یافته است.~بیت کوین/. bitcoin . هنگام جابجایی به فایل پیکربندی جدید، لطفاً مطمئن شوید که سیستم فایلی که در آن /var/lib/bitcoind وجود دارد فضای کافی داشته باشد (با استفاده از d f-h /var/lib/bitcoind بررسی کنید)، و به صورت اختیاری در فهرست اطلاعات موجود خود کپی کنید.. برای جزئیات بیشتر به بخش systemd init file مراجعه کنید.
مشکلات شناخته شده
رابط کاربری گرافیکی کیف پول
برای کاربران پیشرفته ای که هر دو (1) ویژگی های کنترل سکه را فعال کرده اند، و (2) از چندین کیف پول بارگذاری شده به طور همزمان استفاده می کنند: گفتگوی انتخاب ورودی کنترل سکه می تواند هنگام تعویض کیف پول با استفاده از منوی کشویی به اشتباه حالت کیف پول اشتباه را حفظ کند. در حال حاضر، توصیه می شود از ویژگی های کنترل سکه با بارگذاری کیف پول های متعدد استفاده نکنید.
تغییرات قابل توجه
معدن
- اگر قانون SEGWIT مشخص نشده باشد ، تماس های GetBlockTemplate شکست خواهد خورد. فراخوانی GetBlockTemplate بدون Segwit مشخص شده تقریباً یک پیکربندی نادرست است زیرا انجام این کار منجر به پاداش پایین تر برای معدنچی می شود. تماس های ناموفق پیام خطایی ایجاد می کند که نحوه فعال کردن قانون SEGWIT را توصیف می کند.
گزینه پیکربندی تغییر می کند
در صورت استفاده از نام بخش ناشناخته در پرونده پیکربندی ، هشدار چاپ می شود. بخش های شناخته شده [تست] ، [اصلی] و [Regtest] هستند.
چهار گزینه جدید برای پیکربندی حداکثر تعداد پیام هایی که ZMQ در حافظه ("علامت آب زیاد") قبل از رها کردن پیام های اضافی در دسترس است ، در دسترس است. مقدار پیش فرض 1000 است ، همان چیزی که برای نسخه های قبلی استفاده شده است. برای جزئیات بیشتر به مستندات ZMQ مراجعه کنید.
از گزینه RPCallowip دیگر نمی توان برای گوش دادن به طور خودکار در تمام رابط های شبکه استفاده کرد. در عوض ، از پارامتر RPCBind برای مشخص کردن آدرس های IP برای گوش دادن باید استفاده شود. گوش دادن به دستورات RPC از طریق اتصال به شبکه عمومی ناامن است و باید غیرفعال شود ، بنابراین در صورت انتخاب کاربر چنین پیکربندی ، اکنون هشدار چاپ می شود. اگر برای استفاده از ابزاری مانند Docker نیاز به افشای RPC دارید ، اطمینان حاصل کنید که فقط RPC را به LocalHost خود متصل می کنید ، به عنوان مثال. Docker Run [.] -p 127. 0. 0. 1:8332:8332 (این یک چیز اضافی است: 8332 بیش از مشخصات درگاه داکر معمولی).
گزینه RPCPassword اکنون در صورتی که رمز عبور در پرونده پیکربندی حاوی یک شخصیت هش (#) باشد ، خطای راه اندازی را ایجاد می کند ، زیرا مبهم است که آیا شخصیت هش برای رمز عبور منظور شده است یا به عنوان یک نظر.
از گزینه WhitelistForcerelay برای انتقال معاملات از همسالان سفیدپوست استفاده می شود حتی در صورت عدم پذیرش در Mempool. این گزینه اکنون به طور پیش فرض برای خاموش بودن است ، به طوری که تغییر در سیاست و قطع رفتار/ممنوعیت باعث ایجاد گره ای نمی شود که در حال سفید کردن دیگری باشد که توسط همسالان کاهش یابد. کاربران هنوز هم می توانند این رفتار را با گزینه خط فرمان فعال کنند (و ممکن است بخواهند تماس با پروژه اصلی بیت کوین را در نظر بگیرند تا در مورد استفاده آنها به ما اطلاع دهند ، زیرا این ویژگی در آینده می تواند کاهش یابد).
پرونده اولیه systemd
پرونده Systemd init (مشارکت/init/bitcoind. service) برای استفاده/var/lib/bitcoind به عنوان دایرکتوری داده به جای آن تغییر یافته است~بیت کوین/. bitcoin. این تغییر باعث می شود هسته بیت کوین با سایر خدمات سازگار باشد و باعث می شود Systemd Init پیکربندی با پیکربندی های موجود در Upstart و OpenRC سازگار باشد.
پیکربندی ، PID و دایرکتوری های داده اکنون کاملاً توسط SystemD اداره می شوند ، که برای اطلاعات بیشتر از ایجاد ، مجوزها و غیره مراقبت می کنند.
هنگام استفاده از پرونده های اولیه ارائه شده تحت مشارکت/INIT ، بر گزینه DataDir در /etc/bitcoin/bitcoin. conf هیچ تاثیری نخواهد داشت. این امر به این دلیل است که آرگومان های خط فرمان مشخص شده در پرونده های اولیه بر گزینه های مشخص شده در /etc/bitcoin/bitcoin. conf اولویت دارند.
مستندات
یک سند کوتاه جدید در مورد رابط JSON-RPC مواردی را توصیف می کند که نتایج RPC ممکن است حاوی ناسازگاری بین داده های موجود از زیر سیستم های مختلف ، مانند وضعیت کیف پول و حالت Mempool باشد. یک یادداشت به مستندات رابط REST اضافه شده است که نشان می دهد همان قوانین اعمال می شود.
اطلاعات بیشتر به مستندات JSON-RPC در مورد چگونگی تأمین امنیت این رابط اضافه می شود.
یک سند جدید در مورد پرونده Bitcoin. conf نحوه استفاده از آن برای پیکربندی هسته بیت کوین را شرح می دهد.
یک سند جدید رابط BIP174 BIP174 BIP174 را که به طور جزئی امضا شده است (PSBT) معرفی می کند ، که از آن استفاده می شود تا برنامه های مختلفی را برای ایجاد مشترک ، امضای و پخش معاملات جدید فراهم کند. این برای کیف پول های آفلاین (ذخیره سازی سرد) ، کیف پول های Multisig ، اجرای Coinjoin و بسیاری از موارد دیگر مفید است که برای ایجاد یک معامله کامل ، دو یا چند برنامه نیاز به تعامل دارند.
مستندات توصیف کننده اسکریپت خروجی با اطلاعاتی در مورد ویژگی های جدید در این زبان هنوز در حال توسعه برای توصیف اسکریپت های خروجی که یک کیف پول یا برنامه دیگر می خواهد اعلان هایی را برای آن دریافت کند ، به روز شده است ، مانند این که آدرس های آن را می خواهد بداند پرداخت های دریافت شده است. این زبان در حال حاضر در چندین RPC های جدید و به روز شده که در این یادداشت های نسخه شرح داده شده است استفاده می شود و انتظار می رود با سایر RPC ها و ساختار کیف پول زیر سازگار باشد.
ایجاد تغییرات سیستم
یک گزینه جدید-BIP70 قابل انتقال ممکن است به ./configure برای جلوگیری از ساخت بیت کوین-QT با پشتیبانی از پروتکل پرداخت BIP70 یا پیوند LIBSSL منتقل شود. از آنجا که پروتکل پرداخت در گذشته Bitcoin Core را در معرض آسیب پذیری های LIBSSL قرار داده است ، سازندگانی که نیازی به پشتیبانی BIP70 ندارند ، تشویق می شوند از این گزینه برای کاهش قرار گرفتن در معرض آسیب پذیری های آینده استفاده کنند.
حداقل نسخه مورد نیاز QT (هنگام ساخت رابط کاربری گرافیکی) از 5. 2 به 5. 5. 1 افزایش یافته است (سیستم وابسته 5. 9. 7 را فراهم می کند)
RPC های جدید
GetNodeAddresses آدرس های همسالان را که به این گره شناخته شده است باز می گرداند. ممکن است از آن برای یافتن گره ها برای اتصال بدون استفاده از بذر DNS استفاده شود.
ListWalletdir لیستی از کیف پول را در فهرست کیف پول (یا فهرست پیش فرض کیف پول یا فهرست تنظیم شده توسط پارامت ر-Walletdir) برمی گرداند.
GetRPCINFO جزئیات زمان اجرا سرور RPC را برمی گرداند. در حال حاضر ، مجموعه ای از دستورات فعال در حال حاضر و مدت زمان اجرای آنها را برمی گرداند.
DeriveAddresses یک یا چند آدرس مربوط به توصیف کننده خروجی را برمی گرداند.
GetDescriptorInfo یک توصیف کننده را می پذیرد و اطلاعات مربوط به آن را از جمله چک محاسبه شده آن باز می گرداند.
JoinPSBTS چندین PSBT های مجزا را در یک PSBT واحد ادغام می کند. PSBT های متعدد باید ورودی های مختلفی داشته باشند. PSBT حاصل حاوی هر ورودی و خروجی از تمام PSBT ها خواهد بود. هرگونه امضای ارائه شده در هر یک از PSBT ها کاهش می یابد.
AnalyzePSBT یک PSBT را بررسی می کند و اطلاعاتی را در مورد آنچه PSBT در آن قرار دارد و مراحل بعدی که برای انجام معامله باید انجام شود ، ارائه می دهد. برای هر ورودی از PSBT ، AnalyzePSBT اطلاعاتی را در مورد اطلاعات موجود برای آن ورودی ارائه می دهد ، از جمله اینکه آیا UTXO نیاز به ارائه دارد ، چه مواردی که هنوز هم باید ارائه شود ، که اسکریپت ها باید ارائه شوند و چه امضایی هنوز مورد نیاز هستند. در هر ورودی نیز ذکر می شود که کدام نقش برای تکمیل آن ورودی لازم است ، و AnalyzEPSBT همچنین نقش بعدی را به طور کلی برای تکمیل PSBT ذکر می کند. در صورت داشتن اطلاعات کافی برای انجام این کار ، AnalyzePSBT همچنین میزان تخمین هزینه و اندازه مجازی تخمین زده شده از معامله تکمیل شده را ارائه می دهد.
UtxoupDatePSBT مجموعه ای از خروجی های معامله ناشناخته (UTXOS) را جستجو می کند تا خروجی های صرف شده توسط معامله جزئی را پیدا کند. PSBT ها باید UTXOS را برای تهیه فراهم کنند زیرا الگوریتم امضای نیاز به اطلاعاتی از UTXO دارد. برای ورودی های Segwit ، فقط خود UTXO لازم است. برای خروجی های غیر Segwit ، کل معامله قبلی مورد نیاز است تا امضا کنندگان مطمئن باشند که آنها در حال امضای چیز صحیح هستند. متأسفانه ، از آنجا که مجموعه UTXO فقط شامل UTXOS و معاملات کامل نیست ، UtxoupDatePSBT فقط UTXO را برای ورودی های SEGWIT اضافه می کند.
RPC های به روز شده
توجه: برخی از تغییرات سطح پایین RPC که عمدتا برای آزمایش مفید است در بخش تغییرات سطح پایین در زیر توضیح داده شده است.
getpeerinfo اکنون یک فیلد minfeefilter اضافی را به فیلتر هزینه BIP133 همتا بازمی گرداند. می توانید از این برای تشخیص اینکه همتاهایی دارید که مایل به پذیرش تراکنش های کمتر از حداقل هزینه رله پیش فرض هستند استفاده کنید.
RPCهای mempool، مانند getrawmempool با verbose=true، اکنون یک مقدار اضافی «bip125-replaceable» را برمیگردانند که نشان میدهد آیا تراکنش (یا اجداد تأییدنشده آن) از گرهها و ماینرها درخواست میکنند تا آن را با هزینههای تراکنش با نرخ بالاتر جایگزین کنند. هر یک از ورودی های مشابه
settxfee قبلاً بیصدا تلاشها را برای تنظیم هزینه کمتر از حداقلهای مجاز نادیده میگرفت. اکنون یک هشدار چاپ می کند. مقدار ویژه "0" همچنان ممکن است برای درخواست حداقل مقدار استفاده شود.
getaddressinfo اکنون یک فیلد ischange ارائه می دهد که نشان می دهد آیا کیف پول از آدرس در خروجی تغییر استفاده کرده است یا خیر.
importmulti برای پشتیبانی از P2WSH، P2WPKH، P2SH-P2WPKH، و P2SH-P2WSH به روز شده است. درخواستهای P2WSH و P2SH-P2WSH یک پارامتر شاهد اسکریپت اضافی را میپذیرند.
importmulti اکنون یک فیلد هشدار اضافی را برای هر درخواست با آرایهای از رشتهها برمیگرداند که در صورت وجود فیلدها نادیده گرفته میشوند یا ناهماهنگ هستند.
getaddressinfo اکنون زمانی که Bitcoin Core از scriptPubKey آدرس، redeemScript اختیاری و شاهد اسکریپت اختیاری اطلاعات کافی داشته باشد، یک فیلد بولی قابل حل اضافی را برمی گرداند تا کیف پول بتواند یک ورودی بدون امضا وجوه مخارج ارسال شده به آن آدرس را ایجاد کند.
RPCهای getaddressinfo، listunspent و scantxoutset اکنون یک فیلد توصیفی اضافی را برمیگردانند که حاوی یک توصیفگر خروجی است که شامل تمام مسیرهای کلید و اطلاعات امضای آدرس (به جز کلید خصوصی) است. فیلد desc فقط برای getaddressinfo برگردانده میشود و زمانی که آدرس قابل حل باشد listunspen میشود.
importprivkey برچسب های تنظیم شده قبلی را برای آدرس ها یا کلیدهای عمومی مربوط به کلید خصوصی وارد شده حفظ می کند. به عنوان مثال، اگر در نسخههای قبلی بیت کوین Core یک آدرس فقط ساعت را با برچسب «کیف پول سرد» وارد کردهاید، پس از وارد کردن کلید خصوصی، بهطور پیشفرض برچسب آدرس به برچسب رشته خالی پیشفرض («») بازنشانی میشود. در این نسخه، برچسب قبلی "کیف پول سرد" حفظ خواهد شد. اگر هنگام فراخوانی importprivkey به صورت اختیاری هر برچسبی را غیر از پیش فرض مشخص کنید، برچسب جدید روی آدرس اعمال می شود.
برای تغییرات getblocktemplate به بخش استخراج مراجعه کنید.
getmininginfo اکنون وقتی بلوکی از طریق RPC در این گره جمعآوری نشده است، currentblockweight و currentblocktx را حذف میکند.
نقاط پایانی GetRawTransaction RPC & REST دیگر UTXO UNPENT UTXO را برای معامله بررسی نمی کند. رفتارهای باقیمانده به شرح زیر است: 1. اگر یک blockhash ارائه شده است ، بلوک مربوطه را بررسی کنید. 2. در صورت عدم ارائه blockhash ، Mempool را بررسی کنید. 3. اگر هیچ گونه blockhash ارائه نشده اما TxIndex فعال است ، TxIndex را نیز بررسی کنید.
OlloadWallet اکنون همزمان است ، به این معنی که تا زمانی که کیف پول کاملاً بارگیری نشود ، برنگردد.
ImportMulti اکنون از واردات آدرس های توصیف کننده ها پشتیبانی می کند. یک پارامتر "DESC" را می توان به جای "ScriptPubkey" در یک درخواست ، و همچنین یک محدوده اختیاری برای توصیف کننده های متنوع برای مشخص کردن شروع و پایان دامنه واردات ارائه داد. توصیف کنندگان با اطلاعات اصلی مبدا وارد شده از طریق ImportMulti ، اطلاعات اصلی مبدا خود را برای استفاده با ایجاد PSBT در کیف پول ذخیره می کنند. اطلاعات بیشتر در مورد توصیف کننده ها را می توان در اینجا یافت.
ListUnspent به گونه ای اصلاح شده است که همچنین شاهد اسکریپت ، اسکریپت شاهد در مورد خروجی P2WSH یا P2SH-P2WSH را نیز برمی گرداند.
CreateWallet اکنون یک استدلال خالی اختیاری دارد که می تواند برای ایجاد یک کیف پول خالی استفاده شود. کیف پول های خالی هیچ کلید یا دانه HD ندارند. آنها را نمی توان در نرم افزار قدیمی تر از 0. 18 باز کرد. هنگامی که یک کیف پول خالی دارای یک مجموعه بذر HD (با استفاده از Sethdseed) یا کلیدهای خصوصی ، اسکریپت ها ، آدرس ها و سایر ساعتهای فقط وارد شده است ، کیف پول دیگر خالی نیست و می تواند در 0. 17. x باز شود. رمزگذاری یک کیف پول خالی نیز یک دانه HD را برای آن تنظیم می کند.
RPC های کاهش یافته یا حذف شده
SignRawTransaction پس از مستهلک شدن و پنهان شدن در پشت گزینه پیکربندی ویژه در نسخه 0. 17. 0 حذف می شود.
API "حساب" پس از کاهش در V0. 17 حذف می شود. API "برچسب" در V0. 17 به عنوان جایگزینی برای حساب ها معرفی شد. برای توضیحات کامل در مورد تغییرات از API "حساب" به API "حساب" ، یادداشت های نسخه V0. 17 را ببینید.
AddWitnessAddress پس از کاهش در نسخه 0. 16. 0 حذف می شود.
تولید کاهش می یابد و در نسخه اصلی بعدی کاملاً حذف می شود. این RPC فقط برای آزمایش استفاده می شود ، اما اجرای آن در زیر سیستم های متعدد (کیف پول و معدن) حاصل می شود ، بنابراین برای ساده سازی رابط کیف پولی ، کاهش می یابد. پروژه هایی که از تولید برای اهداف آزمایش استفاده می کنند ، باید به استفاده از GenerateToaddress RPC منتقل شوند که نیازی به یا استفاده از مؤلفه کیف پول ندارد. فراخوانی GenerateToaddress با آدرس برگشتی توسط GetNewAddress RPC همان عملکرد مشابه RPC قدیمی تولید را می دهد. برای ادامه استفاده از تولید در این نسخه ، BITCOIND را با گزین ه-deprecatedrpc = گزینه Configuration مجدداً راه اندازی کنید.
یادآوری می شود که بخش هایی از دستور validateaddress مستهلک شده و به GetAddressInfo منتقل شده اند. زمینه های مستهلک شده زیر به GetAddressInfo منتقل شده اند: Ismine ، Iswatchonly ، Script ، Hex ، PubKeys ، Sigsrequired ، Pubkey ، Embedded ، IsCompress ، Label ، Timestamp ، Hdkeypath ، HdmasterKeyId.
قسمت آدرس از روشهای RPC ValideAdeaddress و GetAddressInfo حذف شده است. این زمینه از آنجا که به کلیدهای عمومی با استفاده از آدرس P2PKH خود اشاره می کرد گیج کننده بود. مشتریان باید برای بازرسی از شرکت کنندگان در Multisig از قسمت تعبیه شده برای آدرس های بسته بندی شده P2SH یا P2WSH و PubKeys استفاده کنند.
تغییر استراحت
- یک نقطه جدید/استراحت/blockhashbyheight/پایانی برای واکشی هش بلوک در بهترین blockchain فعلی بر اساس ارتفاع آن اضافه شده است (چند بلوک بعد از بلوک پیدایش).
رابط کاربری گرافیکی (GUI)
یک منوی پنجره جدید در کنار پرونده موجود ، تنظیمات و منوها به آنها اضافه می شود. چندین مورد از منوهای دیگر که ویندوزهای جدید را باز کرده اند به این منوی پنجره جدید منتقل شده اند.
در برگه ارسال ، کادر انتخاب "فقط هزینه مورد نیاز" را حذف کرده است. درعوض ، کاربر می تواند به سادگی مقدار را در قسمت Feerate Custom Feerate کاهش دهد تا حداقل هزینه رله پیکربندی شده گره را کاهش دهد.
در برگه نمای کلی ، در صورت ایجاد کیف پول با استفاده از CreateWallet RPC ، تنها تعادل ساعت تنها تعادل نشان داده شده است و پارامتر Disable_Private_Keys روی True تنظیم شده است.
اگر با نسخه MacOSX MIN بیشتر از 10. 11 جمع آوری شود ، گزینه راه اندازی-شروع در MACOS دیگر در دسترس نیست (از CXXFLAGS = "-MMACOSX-VERSION-MIN = 10. 11" CFLAGS = "-MMACOSX-VERSION-MIN = 10. 11" برای تنظیم تنظیم کنید. نسخه SDK استقرار)
ابزار
- اکنون یک ابزار جدید بیت کوین در کنار سایر اجرایی Bitcoin Core توزیع شده است. بدون نیاز به استفاده از RPCS ، این ابزار در حال حاضر می تواند یک فایل کیف پول جدید ایجاد کند یا اطلاعات اساسی را در مورد یک کیف پول موجود نمایش دهد ، مانند اینکه آیا کیف پول رمزگذاری شده است ، چه از بذر HD استفاده کند ، چه تعداد معاملات را شامل می شود و چه تعدادنوشته های کتاب آدرس آن.
تغییرات برنامه ریزی شده
در این بخش تغییرات برنامه ریزی شده در Bitcoin Core توضیح داده شده است که ممکن است سایر نرم افزار و خدمات بیت کوین را تحت تأثیر قرار دهد.
- از زمان نسخه 0. 16. 0 ، کیف پول داخلی Bitcoin Core در هنگام تولید آدرس های SEGWIT بسته بندی شده با P2SH به طور پیش فرض در هنگام کاربران می خواهد پرداخت کند. این آدرس ها با تمام نرم افزارهای بسیار مورد استفاده سازگار هستند. با شروع با Bitcoin Core 0. 20 (انتظار می رود حدود یک سال پس از 0. 18) ، Bitcoin Core به طور پیش فرض به آدرس های SEGWIT بومی (BECH32) که پس انداز هزینه اضافی و سایر مزایا را ارائه می دهد. در حال حاضر ، بسیاری از کیف پول ها و خدمات در حال حاضر از ارسال به آدرس های BECH32 پشتیبانی می کنند ، و اگر پروژه اصلی بیت کوین تصویب کافی را مشاهده کند ، در عوض به طور پیش فرض برای دریافت آدرس BECH32 در Bitcoin Core 0. 19 (تقریباً نوامبر 2019) به طور پیش فرض خواهد بود. در صورت درخواست کاربر در GUI یا RPC ، آدرس های SEGWIT بسته بندی شده P2SH همچنان ارائه می شود ، و هرکسی که نمی خواهد این بروزرسانی بتواند نوع آدرس پیش فرض خود را پیکربندی کند.(به همین ترتیب ، کاربران پیشگام که می خواهند پیش فرض خود را تغییر دهند اکنون ممکن است گزینه پیکربندی AddressType = BEHH32 را در هر نسخه هسته بیت کوین از 0. 16. 0 به بالا تنظیم کنند.)
پیام های P2P مستهلک
- پیام های رد شده BIP 61 اکنون کاهش یافته است. پیام های رد هیچ موردی در شبکه P2P ندارند و فقط برای اشکال زدایی توسط بیشتر گره های شبکه وارد سیستم می شوند. علاوه بر این ، آنها پهنای باند را افزایش می دهند و می توانند برای حفظ حریم خصوصی و امنیت مضر باشند. از زمان V0. 17 با گزین ه-enableBip61 = 0 می توان پیام های BIP 61 را غیرفعال کرد. پیام های BIP 61 به طور پیش فرض در نسخه آینده غیرفعال می شوند ، قبل از اینکه به طور کامل حذف شوند.
تغییرات سطح پایین
در این بخش تغییرات RPC عمدتاً برای آزمایش مفید است ، بیشتر در تولید مرتبط نیست. تغییرات برای کامل بودن ذکر شده است.
SubmitBlock RPC قبلاً دلیل اولین باری که آن بلوک را پردازش کرد ، نامعتبر بود ، اما یک پیام رد "تکراری" عمومی را در موارد بعدی بازگرداند ، همان بلوک را پردازش کرد. اکنون همیشه دلیل اساسی برای رد یک بلوک نامعتبر را برمی گرداند و فقط "تکراری" را برای بلوک های معتبر که قبلاً پذیرفته است ، باز می گرداند.
RPC جدید Submitheader اجازه می دهد تا هدرهای بلوک را به طور مستقل از بلوک خود ارسال کنید. این احتمالاً فقط برای آزمایش مفید است.
RPC های SignRawTransactionWithKey و SignRawTransactionWallet Wallet اصلاح شده اند به گونه ای که آنها همچنین به طور اختیاری یک نسخه شاهدانه را می پذیرند ، اسکریپت شاهد در مورد خروجی P2WSH یا P2SH-P2WSH. این با تغییر به ListUnspent سازگار است.
برای RPC های WalletProcessPSBT و WalletCreateFundedPSBT ، اگر پارامتر BIP32Derivs درست باشد اما ابرداده اصلی برای یک کلید عمومی هنوز به روز نشده است ، پس آن کلید یک مسیر مشتق خواهد داشت که گویی فقط یک کلید مستقل است (به عنوان مثال هیچ مسیر اشتقاق هیچگونه اشتقاق ندارد. و اثر انگشت استاد آن خود است).
پیکربندی
- گزینه پیکربند ی-USHD در نسخه 0. 16 حذف شد. از آن نسخه به بعد ، تمام کیف پول های جدید ایجاد شده کیف پول های قطعی سلسله مراتبی هستند. این نسخه باعث می شود که مشخص شو د-USEHD گزینه پیکربندی نامعتبر است.
شبکه
- این نسخه به همسالان این امکان را می دهد که گره شما به طور خودکار برای رفتار نادرست (به عنوان مثال ارسال داده های نامعتبر) از هم جدا شود تا در صورت داشتن اسلات اتصال ورودی استفاده نشده ، دوباره به گره خود وصل شود. اگر شکافهای شما پر شود ، یک گره نادرست از هم جدا می شود تا جایی برای گره ها بدون سابقه مشکلات ایجاد شود (مگر اینکه گره نادرست به گره شما کمک کند به طریقی دیگر ، مانند اتصال به بخشی از اینترنت که از آن استفاده نمی کنید 'بسیاری از همسالان دیگر). پیش از این ، Bitcoin Core آدرس های IP از همسالان نادرست را برای یک دوره زمانی ممنوع اعلام کرد (پیش فرض 1 روز). این به راحتی توسط مهاجمان با آدرس های IP متعدد دور شد. اگر به طور دستی یک همسالان را ممنوع کنید ، مانند استفاده از Setban RPC ، تمام اتصالات از آن همسالان هنوز رد می شوند.
کیف پول
ابرداده کلیدی برای اولین بار که بذر HD در دسترس است ، باید به روز شود. برای کیف پول های رمزگذاری نشده این کار در بارگیری کیف پول رخ خواهد داد. برای کیف پول های رمزگذاری شده این اولین بار است که کیف پول قفل می شود.
کیف پول های تازه رمزگذاری شده دیگر نیازی به راه اندازی مجدد نرم افزار ندارند. در عوض ، چنین کیف پول ها برای دستیابی به همان اثر کاملاً بارگیری و بارگیری مجدد می شوند.
یک پروژه فرعی از Bitcoin Core اکنون اسکریپت های تعامل کیف پول سخت افزاری (HWI) را ارائه می دهد که به کاربران خط فرمان اجازه می دهد تا از چندین دستگاه مدیریت کلید سخت افزاری محبوب با هسته بیت کوین استفاده کنند. برای جزئیات بیشتر به صفحه پروژه آنها مراجعه کنید.