این کتاب فناوری بیت کوین را در سطحی اساسی به شما آموزش میدهد. ولی پویاییهای پولی، اقتصادی یا اجتماعی بیت کوین را پوشش نمیدهد، اما دانستن اینکه بیت کوین چگونه under hood کار میکند بینش بیش-تری نسبت به آنچه ممکن است به شما میدهد. تمایلی به تبلیغات بیت کوین و بلاک چین وجود دارد بدون اینکه واقعاً بفهمیم چه اتفاقی در حال رخ دادن است. این کتاب قرار است پادزهری برای آن گرایش باشد. از این گذشته، کتابهای زیادی در مورد بیت کوین وجود دارد که تاریخچه و جنبههای اقتصادی را پوشش میدهد و توضیحات فنی ارائه میدهد. هدف این کتاب این است که شما را با رمزگذاری تمام اجزای لازم برای کتابخانه بیت کوین آشنا کند. قرار نیست کتابخانه جامع یا کارآمد باشد. هدف کتابخانه کمک به یادگیری شماست. این کتاب برای چه کسانی است؟ این کتاب برای برنامهنویسانی است که میخواهند با کد نویسی بیت کوین یاد بگیرند که چگونه کار میکند. شما بیت کوین را با کد نویسی در سرویسدهنده مجازی "فلز خالی" (bare metal) در کتابخانه بیت کوینی که از ابتدا ایجاد خواهید کرد، یاد خواهید گرفت. این کتاب مرجعی نیست که بتوانید مشخصات یک ویژگی خاص را در آن جستوجو کنید. مطالب این کتاب عمدتاً از سمینار دو روزه من گرفتهشده است که در آن همهچیز را در مورد بیت کوین به توسعهدهندگان آموزش میدهم. مطالب بهطور گسترده اصلاحشده است، زیرا من این دوره را بیش از ۲۰ بار، تا زمان نگارش این کتاب به بیش از ۴۰۰ نفر آموزش دادهام. با خواندن کامل این کتاب، نهتنها میتوانید تراکنشهایی ایجاد کنید، بلکه میتوانید تمام دادههای موردنیاز خود را از همتایان دریافت کنید و تراکنشها را از طریق شبکه ارسال کنید. همهچیز موردنیاز برای انجام این کار را پوشش میدهد، ازجمله ریاضی، تجزیهوتحلیل، اتصال به شبکه و اعتبارسنجی بلوک. چه چیزی باید بدانم؟ پیشنیاز این کتاب این است که برنامهنویسی - بهویژه پایتون - بلد باشید. خود کتابخانه با پایتون ۳ نوشتهشده است و بسیاری از تمرینها را میتوان در یک محیط کنترلشده مانند یک نوت بوک Jupyter انجام داد. دانش متوسط از پایتون اولویت دارد، حتی دانستن مفاهیم اولیه احتمالاً برای دریافت بسیاری از مفاهیم کافی است. سطحی از دانش ریاضی بهخصوص برای فصلهای ۱ و ۲ موردنیاز است که در این فصلها به مفاهیم ریاضی اشارهشده است که احتمالاً برای کسانی که در ریاضیات تحصیلنکردهاند نیاز است. دانش ریاضی در سطح جبر باید برای درک مفاهیم جدید و کد نویسی تمرینات پوشش دادهشده در آن فصلها کافی باشد. اطلاعات عمومی علوم کامپیوتر، بهعنوانمثال، از توابع هش، مفید خواهد بود، اما برای تکمیل تمرینات این کتاب بهشدت ضروری نیست. کتاب چگونه تنظیمشده است؟ این کتاب در ۱۴ فصل تنظیمشده است. قرار است هرکدام بر اساس کتابخانه قبلی ساخته شود، زیرا کتابخانه بیت کوین از ابتدا تا انتها ساخته میشود. بهطورکلی، فصلهای ۱-۴ ابزارهای ریاضی موردنیاز ما را دربر میگیرند. فصلهای ۵ تا ۸ تراکنشها را که واحد اساسی بیت کوین هستند، پوشش میدهند. فصلهای ۹-۱۲ بلوکها و شبکه را پوشش میدهند. دو فصل آخر به ارائه برخی از موضوعات پیشرفته میپردازند، اما درواقع نیازی به نوشتن کد ندارند. فصل ۱ و ۲ برخی از مفاهیم ریاضیات موردنیاز ما را پوشش میدهد. میدانهای محدود و منحنیهای بیضوی برای درک رمزنگاری منحنی بیضوی در فصل ۳ موردنیاز است. پس از ایجاد رمزنگاری کلید عمومی در پایان فصل ۳، فصل ۴ آنالیز و سریال سازی را اضافه میکند که نحوه ذخیره و انتقال رمزنگاریهای اولیه است. فصل ۵ ساختار تراکنشها را پوشش میدهد. فصل ۶ به زبان قراردادهای هوشمند ورای بیت کوین میپردازد که Script نام دارد. فصل ۷ بر اساس تمام فصلهای قبلی است و نحوه اعتبارسنجی و ایجاد تراکنشها بر اساس رمزنگاری منحنی بیضوی از چهار فصل اول را نشان میدهد. فصل ۸ نحوه عملکرد هش اسکریپت پرداخت به اسکریپت p۲sh))را مشخص میکند، که راهی برای ایجاد قراردادهای هوشمند قدرتمندتر است. فصل ۹ بلوکها را پوشش میدهد، که گروهی از تراکنشهای سفارش شده هستند. فصل ۱۰ ارتباطات شبکه در بیت کوین را پوشش میدهد. فصلهای ۱۱ و ۱۲ به این موضوع میپردازند که چگونه یک کلاینت سبک یا نرمافزار بدون دسترسی بهکل بلاک چین، میتواند دادهها را به و از گرههایی که کل بلاک چین را ذخیره میکنند، درخواست و پخش کند. فصل ۱۳ Segwit (سگویت) را پوشش میدهد، یک ارتقاء سازگار با گذشته که در سال ۲۰۱۷ معرفی شد، و فصل ۱۴ پیشنهادهایی برای مطالعه بیشتر ارائه میدهد. این فصلها کاملاً ضروری نیستند، اما بهعنوان روشی گنجاندهشدهاند تا سررشته چیزهای بیشتری را برای یادگیری به شما نشان دهند. فصلهای ۱ تا ۱۲ تمرینهایی دارند که از شما میخواهد کتابخانه را از ابتدا بسازید. پاسخها در ضمیمه الف کتاب و در فهرست فصل مربوطه در مخزن GitHub قرار دارند. بسیاری از کلاسهای پایتون را مینویسید و نهتنها برای اعتبارسنجی تراکنشها/بلاکها، بلکه همچنین تراکنشهای خود را ایجاد کرده و آنها را در شبکه پخش میکنید. آخرین تمرین در فصل ۱۲ بهطور خاص از شما میخواهد که به گره دیگری در شبکه تست نت متصل شوید، آنچه را که میتوانید خرج کنید محاسبه کنید، تراکنش ابداعی خود را بسازید و امضا کنید، و آن را در شبکه پخشکنید. ۱۱ فصل اول اساساً شما را برای این تمرین آماده میکند. تعداد زیادی تست واحد وجود خواهد داشت که کد شما باید آنها را پاس کند. این کتاب به این شکل طراحیشده است تا بتوانید بخش "سرگرمکننده" کد نویسی را انجام دهید. برای کمک به پیشرفت شما، کدها و شکلهای زیادی را در سرتاسر بررسی خواهیم کرد.
با این راهنمای عملی که توسط یکی از اساتید برجسته برنامهنویسی بیت کوین ارائه میشود، به درون فناوری بیت کوین شیرجه بزنید. نویسنده (جیمی سونگ) به برنامه نویسان و توسعهدهندگان پایتون نشان میدهد که چگونه یک کتابخانه بیت کوین را از ابتدا برنامه نویسی کنند. در این کتاب یاد خواهید گرفت که چگونه با اصول اولیه ازجمله ریاضیات، رمزنگاری، بلاک و تراکنشهای ارز دیجیتال محبوب و سیستم پرداخت بلاک چین کار کنید. در پایان کتاب، با کد نویسی تمام اجزای لازم برای کتابخانه بیت کوین، متوجه خواهید شد که چگونه این ارز دیجیتال تحت پوشش لایه نهان کار میکند. نحوه ایجاد تراکنش، دریافت داده از شبکه همتا به همتا و ارسال تراکنشها با استفاده از پروتکل شبکه را میآموزید. چه در حال بررسی برنامههای بیت کوین برای شرکت خود باشید یا یک مسیر شغلی جدید را در نظر داشته باشید، این کتاب کاربردی شما را برای شروع کار راه میاندازد.