Bitcoin Core و محیط توسعه
فصلهای کتاب · ۶۱ پرسش
کلید، seed و عبارت بازیابی همهٔ مثالهای منتشرشده عمومیاند؛ هرگز برای پول واقعی استفاده نشوند. این مجموعه و کدهایش پیادهسازی تولیدی کیف پول یا مرجع مستقل اجماع نیستند.
Bitcoin Core چه نقشی در بیتکوین دارد؟
نقش پیادهسازی مرجع
Bitcoin Core پیادهسازی متنباز پرکاربردی برای اعتبارسنجی، شبکه و مدیریت کیف پول است. نرمافزار قواعد را اجرا میکند، اما توسعهدهندگان آن با انتشار نسخه جدید نمیتوانند نودهای دیگر را مجبور به پذیرش آن نسخه کنند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:2–25ch03_bitcoin-core.adoc:26–66
«پیادهسازی مرجع» به معنی مرجع حقوقی یا مدیر شبکه است؟
نقش پیادهسازی مرجع
خیر. این عبارت به نقش فنی و تاریخی پیادهسازی اشاره دارد. اعتبار یک پرداخت برای نود کاربر از اجرای قواعد نرمافزار منتخب او میآید، نه از تأیید شخصی یک سازمان یا توسعهدهنده.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:2–25ch03_bitcoin-core.adoc:26–66
چرا جداکردن کیف پول از نود مفید است؟
نقش پیادهسازی مرجع
نود میتواند بدون نگهداری کلید خصوصی، داده و اعتبارسنجی فراهم کند و امضا در محیط دیگری انجام شود. این جداسازی سطح دسترسی هر جزء را محدود میکند؛ خرابی سرور داده نباید خودبهخود دسترسی به کلید خرج ایجاد کند.

تصویر 0301نمای تاریخی معماری Bitcoin Core تصویر منبع، ساختهٔ Eric Lombrozo، یک نمای آموزشی تاریخی است؛ نام مؤلفهها و مرز ماژولها در نسخهها تغییر میکند.
Mastering Bitcoin, third edition; Andreas M. Antonopoulos and David A. Harding. Original image, unchanged. Source credit in the book: Eric Lombrozo.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:2–25ch03_bitcoin-core.adoc:26–66
آیا کد متنباز بهتنهایی نرمافزار را امن میکند؟
نقش پیادهسازی مرجع
خیر. متنبازبودن امکان بررسی، بازتولید و اصلاح را میدهد، اما وجود باگ یا دستکاری فایل دانلودی را نفی نمیکند. امنیت به کیفیت بررسی، فرایند ساخت، احراز اصالت انتشار و رفتار اجرایی نیز وابسته است.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:2–25ch03_bitcoin-core.adoc:26–66
چرا برای تمرین توسعه از شبکه اصلی شروع نمیکنیم؟
محیط توسعه
اشتباه در مقدار، شبکه، کلید یا اسکریپت میتواند روی شبکه اصلی زیان برگشتناپذیر بسازد. محیط آزمایشی اجازه میدهد تولید بلاک، خطا، بازیابی و تعارض تراکنش با دارایی آزمایشی بررسی شود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:67–77
چرا نسخه سیستمعامل و وابستگیهای ساخت باید ثبت شود؟
محیط توسعه
نتیجه ساخت و رفتار ابزارها به کامپایلر، کتابخانهها و گزینههای فعال وابسته است. ثبت نسخهها امکان بازتولید خطا را میدهد؛ عبارت مبهم «روی سیستم من کار کرد» برای تحلیل مشکل یا بررسی امنیت کافی نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:67–77
چرا نباید دستورات ساخت یک چاپ قدیمی را بیتغییر روی شاخه توسعه اجرا کرد؟
انتخاب و احراز نسخه
شاخه توسعه ممکن است ساختار فایل، وابستگی یا سامانه ساخت متفاوتی داشته باشد. مثال کتاب یک نسخه تاریخی را هدف میگیرد؛ باید دستورهای همان نسخه انتخابی را خواند، نه اینکه خطای ناسازگاری را با تغییرات حدسی رفع کرد.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:78–134ch03_bitcoin-core.adoc:135–183
تفاوت انتشار پایدار، نامزد انتشار و شاخه توسعه چیست؟
انتخاب و احراز نسخه
انتشار پایدار خروجی فرایند انتشار مشخص است؛ نامزد انتشار هنوز برای یافتن ایرادهای نهایی عرضه میشود؛ شاخه توسعه تغییرات درحالکار را دارد. انتخاب باید با هدف آزمون یا بهرهبرداری سازگار باشد و نسخه دقیق ثبت شود.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:78–134ch03_bitcoin-core.adoc:135–183
هش فایل دانلودی چه چیزی را ثابت میکند؟
انتخاب و احراز نسخه
تطابق هش نشان میدهد فایل با داده مرجعی که مقایسه کردهایم یکسان است. اگر مهاجم هم فایل و هم هش را جایگزین کند، این آزمون بهتنهایی کافی نیست؛ اصالت مرجع هش یا امضا نیز باید بررسی شود.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:78–134ch03_bitcoin-core.adoc:135–183
امضای انتشار با امضای تراکنش چه تفاوتی دارد؟
انتخاب و احراز نسخه
امضای انتشار برای نسبتدادن فایل یا فهرست هشها به کلید منتشرکننده است؛ امضای تراکنش مجوز خرج مطابق اسکریپت را فراهم میکند. اعتماد به هویت کلید انتشار مسئلهای جدا از اعتبارسنجی زنجیره است.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:78–134ch03_bitcoin-core.adoc:135–183
چرا مشخصکردن tag یا commit برای گزارش باگ مهم است؟
انتخاب و احراز نسخه
رفتار مشاهدهشده باید به یک نسخه دقیق کد نسبت داده شود. نام کلی پروژه یا حتی نام یک شاخه متحرک کافی نیست، زیرا کد آن شاخه میتواند پس از گزارش تغییر کند.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:78–134ch03_bitcoin-core.adoc:135–183
چه تغییری دستورهای Autotools کتاب را در نسخههای جدید نامناسب کرده است؟
پیکربندی ساخت
Bitcoin Core 29.0 سامانه ساخت را به CMake منتقل کرد. بنابراین توالی تاریخی
autogen.shوconfigureرا نباید دستور عمومی همه نسخهها دانست؛ گزینهها و پیشنیازهای ساخت باید از مستندات نسخه انتخابی گرفته شوند.اصلاحات و رفع ابهام
- روش ساخت CoreE-002
منابع اصلی
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:184–292
چرا بعضی قابلیتها هنگام ساخت اختیاریاند؟
پیکربندی ساخت
رابط گرافیکی، اعلانهای ZMQ یا برخی اجزا وابستگی و سطح حمله اضافی دارند. انتخاب قابلیتهای لازم، حجم محیط را کاهش میدهد؛ ولی حذف یک قابلیت ممکن است ابزار یا آزمون موردنیاز برنامه را نیز غیرفعال کند.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
منابع اصلی
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:184–292
چرا باید خروجی پیکربندی ساخت را بررسی کرد؟
پیکربندی ساخت
موفقیت پیکربندی لزوماً به معنی فعالبودن همه قابلیتهای مورد انتظار نیست. خروجی مشخص میکند چه وابستگیها و گزینههایی تشخیص داده شدهاند؛ این بررسی مانع عیبیابی اشتباه در مرحله اجرای برنامه میشود.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
منابع اصلی
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:184–292
تفاوت ساخت، اجرای آزمون و نصب چیست؟
ساخت و آزمون برنامه
ساخت فایل اجرایی را تولید میکند؛ آزمون رفتارهای مشخصی را بررسی میکند؛ نصب آن را در مسیر استفاده قرار میدهد. انجام موفق یک مرحله، موفقیت یا امنیت کامل دو مرحله دیگر را اثبات نمیکند.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:293–347
آیا عبور همه آزمونهای واحد، سازگاری کامل اجماع را ثابت میکند؟
ساخت و آزمون برنامه
خیر. آزمونها فقط ورودیها و رفتارهای پوششدادهشده را بررسی میکنند. در نرمافزار اجماع، آزمونهای مرزی، کاربردی، بردارهای تاریخی و مقایسه پیادهسازیها نیز مهماند؛ هیچ مجموعه محدود آزمون اثبات نبود همه باگها نیست.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:293–347
چرا ساخت موازی گاهی با خطای کمبود حافظه متوقف میشود؟
ساخت و آزمون برنامه
چند فرایند کامپایل همزمان منابع بیشتری مصرف میکنند. چنین شکستی میتواند ناشی از محدودیت محیط باشد، نه خطای کد؛ باید تعداد کارهای موازی و مصرف حافظه را از خطاهای واقعی کامپایل تفکیک کرد.
اصلاحات و رفع ابهام
- روش ساخت CoreE-002
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:293–347
bitcoind، bitcoin-qt و bitcoin-cli چه تفاوتی دارند؟
اجرای نود
bitcoindسرویس نود بدون رابط گرافیکی است؛bitcoin-qtرابط گرافیکی همراه عملکرد نود و کیف پول دارد؛bitcoin-cliدرخواست RPC را به نود درحالاجرا میفرستد. اجرای CLI بهتنهایی زنجیره را همگام نمیکند.پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:348–426
بارگیری اولیه بلاکها چه کاری انجام میدهد؟
اجرای نود
نود داده تاریخچه را دریافت و طبق حالت و تنظیمات اعتبارسنجی بررسی میکند تا وضعیت قابل استفاده بسازد. داشتن فایل بلاک یا رسیدن شمارش سرآیندها به رأس، بهتنهایی به معنی تکمیل اعتبارسنجی همه بلاکها نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:348–426
چرا اعداد فضای دیسک کتاب نباید نیاز سختافزاری امروز فرض شوند؟
اجرای نود
تاریخچه و وضعیت زنجیره رشد میکنند و تنظیمات هرس، شاخصها و کیف پول نیز مصرف را عوض میکنند. عدد مربوط به زمان نگارش باید با تاریخ و پیکربندی همراه باشد؛ برآورد عملی به داده نسخه و شبکه انتخابی نیاز دارد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:348–426
آیا برای اعتبارسنجی، اتصال ورودی از اینترنت لازم است؟
اجرای نود
خیر. نود میتواند با اتصالهای خروجی داده بگیرد و اعتبارسنجی کند. پذیرش اتصال ورودی به دسترسپذیری شبکه کمک میکند، اما بازکردن RPC عمومی برای این هدف لازم نیست و خطر جداگانهای دارد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:348–426
چرا نود را باید با فرایند توقف عادی خاموش کرد؟
اجرای نود
توقف عادی فرصت میدهد وضعیت و پایگاه داده هماهنگ ذخیره شوند. قطع ناگهانی ممکن است زمان بازیابی یا بازسازی را افزایش دهد؛ وجود سازوکار بازیابی پایگاه داده جای مدیریت درست توقف و پشتیبان را نمیگیرد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:348–426
فایل پیکربندی نود چه مزیتی نسبت به دستور موقت دارد؟
پیکربندی، ذخیرهسازی و دسترسی
گزینههای لازم را پایدار و قابل بازبینی میکند و از فراموشی تنظیمات هنگام راهاندازی دوباره میکاهد. باید شبکه، مسیر داده و اولویت گزینههای خط فرمان و فایل را روشن نگه داشت تا نود با تنظیمات ناخواسته اجرا نشود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
چرا داده شبکههای مختلف باید جدا نگهداری شود؟
پیکربندی، ذخیرهسازی و دسترسی
هر شبکه genesis، پارامترها و تاریخچه خودش را دارد. مخلوطکردن مسیرها یا تنظیمات میتواند برنامه را به داده و کیف پول نامربوط وصل کند؛ هم نام شبکه و هم اطلاعات وضعیت نود باید بررسی شوند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
هرس چه چیزی را حذف میکند و چه چیزی را نه؟
پیکربندی، ذخیرهسازی و دسترسی
هرس داده قدیمی برخی بلاکها را پس از پردازش حذف میکند تا مصرف دیسک کاهش یابد. وضعیت لازم UTXO و اطلاعات جاری حفظ میشود؛ اما امکان اسکن دوباره همه تاریخچه یا سرویسدادن همه بلاکهای قدیمی محدود میشود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
آیا هرس، نیاز به پشتیبان کیف پول را حذف میکند؟
پیکربندی، ذخیرهسازی و دسترسی
خیر. بلاکهای عمومی میتوانند دوباره دریافت شوند، ولی کلیدها، گذرواژهها و برخی فراداده خصوصی از شبکه قابل بازسازی نیستند. پشتیبان زنجیره و پشتیبان اختیار خرج دو مسئله جداگانهاند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
txindex چه کاری میکند؟
پیکربندی، ذخیرهسازی و دسترسی
شاخصی برای یافتن تراکنشهای تاریخی با شناسه آنها میسازد. این قابلیت قواعد اعتبارسنجی را تغییر نمیدهد و شاخص موجودی همه آدرسها نیست. هزینه ذخیرهسازی و سازگاری آن با تنظیمات دیگر باید در نسخه مورد استفاده بررسی شود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
چرا txindex را نباید «فهرست موجودی آدرسها» دانست؟
پیکربندی، ذخیرهسازی و دسترسی
کلید جستوجوی آن شناسه تراکنش است، نه هویت مالک یا مجموعه همه اسکریپتهای یک کیف پول. برای یافتن تاریخچه متعلق به یک کاربر، اسکن یا شاخص متناسب با اسکریپتها و توصیفگرها لازم است.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
تفاوت درگاه P2P و RPC چیست؟
پیکربندی، ذخیرهسازی و دسترسی
P2P برای تبادل داده با همتایان است؛ RPC برای فرماندادن به نود و در صورت فعالبودن، کیف پول است. در شبکه اصلی درگاههای پیشفرض معمولاً 8333 و 8332 هستند؛ مجوز دسترسی RPC باید جداگانه و محدود مدیریت شود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
چرا قراردادن RPC روی اینترنت عمومی خطرناک است؟
پیکربندی، ذخیرهسازی و دسترسی
RPC ممکن است فرمانهای حساس یا پرهزینه در اختیار مشتری بگذارد. احراز هویت، محدودسازی شبکه و کانال امن لازماند؛ نیاز به اتصال همتایان به نود، مجوزی برای عمومیکردن رابط مدیریتی نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
احراز هویت cookie چه فایدهای دارد؟
پیکربندی، ذخیرهسازی و دسترسی
برنامه محلی میتواند از راز موقتی تولیدشده توسط نود استفاده کند، بدون اینکه رمز ثابت در کد منبع بنویسد. امنیت آن به مجوز فایل و حسابهای محلی وابسته است؛ هر فرایندی با دسترسی کافی میتواند همان اختیار RPC را کسب کند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
آیا نوشتن رمز RPC در کد نمونه مناسب تولید است؟
پیکربندی، ذخیرهسازی و دسترسی
خیر. کد ممکن است وارد مخزن، گزارش خطا یا نسخه پشتیبان عمومی شود. رازها باید خارج از کد و با دسترسی محدود مدیریت شوند؛ نمونه آموزشی درباره API، الگوی نهایی مدیریت راز نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
چرا اجرای خودکار سرویس به معنی سلامت نود نیست؟
پیکربندی، ذخیرهسازی و دسترسی
مدیر سرویس میتواند فرایند را زنده نگه دارد، ولی نود ممکن است عقبمانده، در شبکه اشتباه یا گرفتار خطای دیسک باشد. پایش باید وضعیت همگامسازی، اتصال، ذخیرهسازی و خطاها را نیز بررسی کند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:427–643
چرا خروجی help همان نسخه، مرجع مهم RPC است؟
رابط برنامهنویسی
نام، پارامتر، واحد و رفتار فرمانها میتواند بین نسخهها تغییر کند.
bitcoin-cli helpو راهنمای همان فرمان، قرارداد نسخه درحالاجرا را نشان میدهد؛ نمونه قدیمی ممکن است پارامتر یا نتیجه متفاوتی داشته باشد.پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:644–709
JSON-RPC چه رابطهای با خط فرمان دارد؟
رابط برنامهنویسی
bitcoin-cliدرخواست را به روش RPC میسازد و پاسخ نود را نمایش میدهد. برنامه دیگر نیز میتواند همان API را از طریق یک مشتری مناسب فراخوانی کند؛ تفاوت اصلی در نحوه بستهبندی و پردازش درخواست است.پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:644–709
چرا برنامه باید خطای RPC را جدا از نتیجه عادی پردازش کند؟
رابط برنامهنویسی
قطع اتصال، ورودی نامعتبر یا نبود داده نباید به موجودی صفر یا نتیجه موفق تبدیل شود. تفکیک خطا از پاسخ، جلوی تصمیم مالی بر مبنای داده ناقص و تکرار ناخواسته عملیات را میگیرد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:644–709
getblockchaininfo برای چه پرسشی مناسب است؟
وضعیت نود
وضعیت زنجیره مورد استفاده نود، پیشرفت و اطلاعات رأس را گزارش میکند. برای تشخیص شبکه و همگامسازی مفید است، اما موجودی کیف پول یا سلامت همه منابع داده برنامه را بهتنهایی ثابت نمیکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:710–774
چرا تعداد headers ممکن است از blocks بیشتر باشد؟
وضعیت نود
دریافت و بررسی اولیه سرآیندها میتواند جلوتر از دریافت و اتصال بلاکهای کامل پیش برود. این فاصله نشانه آن است که شناخت رأس احتمالی با ساخت وضعیت اعتبارسنجیشده یکسان نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:710–774
چرا ارتفاع بهتنهایی برای ثبت وضعیت یک پرداخت کافی نیست؟
وضعیت نود
در یک ارتفاع ممکن است روی شاخههای متفاوت بلاکهای متفاوتی وجود داشته باشد. ذخیره هش بلاک همراه ارتفاع، امکان تشخیص بازسازماندهی و بازبینی تأییدهای وابسته را فراهم میکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:710–774
getrawtransaction و gettransaction چه تفاوتی دارند؟
مشاهده و رمزگشایی تراکنش
اولی برای دریافت تراکنش خام با توجه به داده قابل دسترس نود است؛ دومی اطلاعات تراکنش مرتبط با کیف پول را میدهد. وجود تراکنش در بلاکچین الزاماً به معنی قابل بازیابی بودن آن با هر دو فرمان و بدون شاخص یا زمینه بلاک نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
چرا getrawtransaction ممکن است یک تراکنش تاریخی را پیدا نکند؟
مشاهده و رمزگشایی تراکنش
ممکن است تراکنش در ممپول نباشد و شاخص تراکنش فعال نباشد، یا بلاک مربوط هرس شده باشد. نبود نتیجه از این مسیر اثبات نبود تراکنش در کل تاریخچه نیست؛ زمینه بلاک و قابلیت ذخیرهسازی باید بررسی شود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
decoderawtransaction چه چیزی را تضمین نمیکند؟
مشاهده و رمزگشایی تراکنش
داده را تفسیر و فیلدها را نمایش میدهد، اما موفقیت آن اثبات درستی امضاها، خرجنشدهبودن ورودیها، کفایت کارمزد یا پذیرش در زنجیره نیست. «قابل تجزیه بودن» ضعیفتر از «معتبر بودن» است.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
چرا txid، اندازه خام، وزن و vsize را نباید یکی گرفت؟
مشاهده و رمزگشایی تراکنش
txid شناسه هششده است؛ اندازه خام تعداد بایتهاست؛ وزن به داده غیرشاهد و شاهد ضرایب متفاوت میدهد؛ vsize وزن را به واحد مناسب نرخ کارمزد تبدیل میکند. هرکدام به پرسش متفاوتی پاسخ میدهند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
در مثال ۱۹۴ بایت و ۵۶۹ واحد وزن، اندازه مجازی چقدر است؟
مشاهده و رمزگشایی تراکنش
اندازه مجازی
ceil(569 / 4) = 143vB است. اختلاف با ۱۹۴ بایت از تخفیف وزنی داده شاهد میآید؛ برای نرخ کارمزد بر حسب sat/vB باید از ۱۴۳ استفاده کرد، نه اندازه خام.پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
چرا فیلد address ممکن است در خروجی رمزگشایی وجود نداشته باشد؟
مشاهده و رمزگشایی تراکنش
هر اسکریپت خروجی نمایش آدرسی استاندارد و یکتایی ندارد؛ مثلاً خروجی داده یا برخی اسکریپتهای خام. برنامه باید با خود اسکریپت و نبود فیلدهای اختیاری درست برخورد کند، نه اینکه همیشه یک رشته آدرس فرض کند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:775–890
چرا برای دریافت بلاک معمولاً ابتدا هش آن را میگیریم؟
بررسی بلاک
هش یک بلاک مشخص را معرفی میکند، درحالیکه ارتفاع به شاخه منتخب وابسته است. تبدیل ارتفاع به هش و ثبت هر دو، نتیجه پرسوجو را دقیقتر و قابل پیگیری در برابر تغییر رأس میکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:891–969
سطح verbosity در دریافت بلاک چه اثری دارد؟
بررسی بلاک
مقدار جزئیات پاسخ را تعیین میکند؛ از داده خام تا فهرست شناسهها یا تراکنشهای رمزگشاییشده. پاسخ مفصلتر هزینه انتقال و پردازش بیشتری دارد و الزاماً برای هر کار لازم نیست.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:891–969
آیا جمع مقادیر خروجیهای یک بلاک، درآمد استخراجکننده است؟
بررسی بلاک
خیر. بیشتر خروجیها انتقال یا بازتوزیع ارزش کاربراناند. درآمد مجاز استخراجکننده از یارانه بلاک و کارمزد تراکنشها میآید؛ کارمزد نیز با دانستن مقادیر ورودیهای قبلی محاسبه میشود.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:891–969
چرا در محاسبات بیتکوین از عدد ممیز شناور معمولی پرهیز میکنیم؟
استفاده برنامهای و حسابداری
بسیاری از کسرهای دهدهی در ممیز شناور دودویی دقیق نیستند و خطای گردکردن میتواند به ساتوشی اختلاف برسد. نگهداری مقدار بهصورت عدد صحیح ساتوشی یا Decimal با تبدیل کنترلشده، محاسبه را قابل اتکاتر میکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:970–1126
چرا timeout و تکرار درخواست باید متناسب با نوع RPC باشد؟
استفاده برنامهای و حسابداری
تکرار یک پرسوجوی خواندنی معمولاً با تکرار یک فرمان تغییردهنده وضعیت یکسان نیست. پس از قطع ارتباط ممکن است عملیات انجام شده ولی پاسخ نرسیده باشد؛ برنامه باید پیش از اجرای دوباره وضعیت را بررسی کند تا پرداخت تکراری نسازد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:970–1126
چرا پردازش زنجیره باید امکان برگشت بلاک را داشته باشد؟
استفاده برنامهای و حسابداری
رأس منتخب میتواند بازسازماندهی شود. پایگاه داده برنامه باید اثر بلاکهای جداشده را برگرداند و شاخه جدید را اعمال کند؛ افزودن دائمی هر بلاک بدون مسیر undo، موجودی و تأییدها را نادرست میکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:970–1126
چرا شمارش مجموع خروجیهای همه تراکنشها معیار حجم مبادله اقتصادی نیست؟
استفاده برنامهای و حسابداری
باقیمانده، تجمیع، انتقال داخلی و خرج مکرر همان ارزش در این جمع وارد میشوند. این عدد فعالیت فنی را اندازه میگیرد؛ برای تفسیر اقتصادی باید تعریف و روش حذف دوبارهشماری روشن باشد.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:970–1126
چرا مثال کوتاه اتصال RPC، سامانه مالی آماده تولید نیست؟
استفاده برنامهای و حسابداری
نمونه معمولاً مدیریت راز، محدودسازی دسترسی، بازیابی خطا، تکرار امن، بازسازماندهی و ثبت حسابداری را کامل پیاده نمیکند. درک API لازم است، اما برای اعتماد به نتیجه باید این لایههای عملیاتی نیز طراحی و آزموده شوند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:970–1126
تفاوت کتابخانه بیتکوین با پیادهسازی نود کامل چیست؟
انتخاب کتابخانه و پیادهسازی
کتابخانه ممکن است فقط کلید، اسکریپت یا تراکنش را بسازد و تجزیه کند. نود کامل باید شبکه، وضعیت زنجیره و قواعد اعتبار را نیز مدیریت کند؛ داشتن تابع بررسی امضا به معنی اعتبارسنجی کامل بلاکچین نیست.
اصلاحات و رفع ابهام
- libbitcoinconsensusE-003
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1127–1137ch03_bitcoin-core.adoc:1138–1140
چرا سازگاری اجماع میان پیادهسازیها دشوار است؟
انتخاب کتابخانه و پیادهسازی
حتی اختلاف کوچک در تفسیر بایت، مرز عدد یا استثنای تاریخی میتواند دو نود را درباره اعتبار یک بلاک جدا کند. به همین دلیل پیادهسازی جایگزین به آزمون سازگاری دقیق نیاز دارد، نه فقط اجرای موفق تراکنشهای عادی.
اصلاحات و رفع ابهام
- libbitcoinconsensusE-003
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1127–1137ch03_bitcoin-core.adoc:1138–1140
کتاب چه انواع ابزاری در اکوسیستم JavaScript معرفی میکند؟
ابزارهای JavaScript
bcoin، Bitcore و BitcoinJS را با نقشهای متفاوت معرفی میکند. نتیجه آموزشی این است که ابزار نود، API و کتابخانه تراکنش را نباید همارز گرفت؛ فهرست کتاب معرفی تاریخی است، نه تأیید وضعیت نگهداری یا امنیت نسخههای امروز آنها.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1141–1145
چرا برچسب «full-node» کنار bitcoinj در کتاب نیاز به احتیاط دارد؟
ابزارهای Java
توان اتصال P2P یا داشتن برخی کلاسهای اعتبارسنجی، رفتار هر کیف پول ساختهشده با آن را به نود کامل تبدیل نمیکند. bitcoinj به کاربرد سبک/SPV شناخته میشود؛ باید دقیقاً بررسی کرد برنامه منتخب چه قواعد و چه دادههایی را اعتبارسنجی میکند.
اصلاحات و رفع ابهام
- دامنهٔ bitcoinjE-004
منابع اصلی
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1146–1148
python-bitcoinlib و pycoin چه نقشی در یادگیری دارند؟
ابزارهای Python
ابزارهایی برای کار برنامهای با ساختارها و عملیات بیتکوین فراهم میکنند. استفاده از آنها میتواند فهم نمونهها را آسان کند، اما دامنه اعتبارسنجی، سازگاری نسخه و مدیریت کلید باید جداگانه بررسی شود؛ زبان Python ضمانت امنیت یا ناامنی نیست.
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1149–1152
btcd در فهرست کتاب چه تفاوتی با یک کتابخانه ساخت تراکنش دارد؟
ابزارهای Go
کتاب آن را بهعنوان پیادهسازی نود در Go معرفی میکند، نه فقط چند تابع تراکنش. هنگام انتخاب همچنان باید پوشش قواعد، همگامسازی، ویژگیهای موردنیاز و نسخه دقیق بررسی شود؛ نام «نود» بهتنهایی کیفیت سازگاری را ثابت نمیکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1153–1155
آیا rust-bitcoin خودش یک کیف پول کامل است؟
ابزارهای Rust
خیر. ساختارها و ابزارهای پایه بیتکوین را فراهم میکند، اما سیاست انتخاب سکه، همگامسازی، پایگاه داده، مدیریت پشتیبان و رابط کاربر لایههای دیگریاند. ایمنی حافظه زبان نیز خطای سیاست خرج یا حسابداری را خودکار حذف نمیکند.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1156–1158
معرفی Bitcoin-S و NBitcoin چه درسی برای انتخاب فناوری دارد؟
ابزارهای Scala و .NET
ابزارهای بیتکوین به یک زبان محدود نیستند؛ این دو نمونه اکوسیستمهای Scala و .NET هستند. انتخاب باید بر اساس نقش موردنیاز، پوشش آزمون و توان نگهداری تیم باشد، نه صرفاً تعداد قابلیتهای فهرستشده در معرفی پروژه.
پرسشهای مرتبط
محل موضوع در کتاب: ch03_bitcoin-core.adoc:1159–1161ch03_bitcoin-core.adoc:1162–1176



