وبلاگ بلیان

Learn Blockchain by Building One : A Concise Path to Understanding Cryptocurrencies

جلد کتاب Learn Blockchain by Building One : A Concise Path to Understanding Cryptocurrencies

معرفی کتاب «Learn Blockchain by Building One : A Concise Path to Understanding Cryptocurrencies» نوشتهٔ Martin Odersky، Lex Spoon، Bill Venners، Frank Sommers و Daniel van Flymen، منتشرشده توسط نشر Apress : Imprint: Apress در سال 2020. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

بسیاری از علاقه‌مندان به فناوری بلاک‌چین و ارزهای دیجیتال، با حجم انبوهی از مفاهیم انتزاعی و پیچیده مواجه می‌شوند که درک آن‌ها را دشوار می‌سازد. کتاب «Learn Blockchain by Building One» نوشتهٔ دانیل ون فلیمن، با رویکردی منحصربه‌فرد و عملی، این مسیر را برای برنامه‌نویسان هموار می‌سازد. این اثر با راهنمایی گام‌به‌گام برای ساخت یک بلاک‌چین با زبان پایتون، به شما امکان می‌دهد تا با لمس کردن کد، قلب تپندهٔ این فناوریِ انقلابی را درک کنید.

دربارهٔ کتاب Learn Blockchain by Building One —

کتاب «با ساختن یک بلاک‌چین، آن را بیاموزید» نوشتهٔ دانیل ون فلیمن، یک راهنمای عملی برای برنامه‌نویسان سطح متوسط است که می‌خواهند مفاهیم بنیادین بلاک‌چین و ارزهای دیجیتال را به‌صورت کاملاً کاربردی فرا بگیرند. هستهٔ مرکزی این کتاب بر این ایدهٔ کلیدی استوار است که بهترین روش برای فهمیدن یک فناوری پیچیده، ساختنِ آن از صفر است. ون فلیمن با تکیه بر دانش خود در این حوزه، خواننده را قدم‌به‌قدم در مسیر پیاده‌سازی یک بلاک‌چین کامل با زبان برنامه‌نویسی پایتون همراهی می‌کند و مفاهیمی مانند اثبات کار (Proof of Work)، هشینگ، رمزنگاری و امضای دیجیتال را در بستر کدهای اجرایی توضیح می‌دهد. این کتاب با ساختاری منظم و فصل‌بندیِ هدفمند، از مبانی هویت‌گذاری دیجیتال شروع کرده و به تدریج به سراغ ساخت زنجیره‌ای از بلوک‌ها، مکانیزم اجماع اثبات کار، و برقراری شبکهٔ همتا‌به‌همتا (Peer-to-Peer) با استفاده از پروتکل TCP می‌رود. فضای کتاب، گرچه بر کدنویسی متمرکز است، با زبانی شیوا و با ارائهٔ مثال‌های عینی از بلاک‌چین‌های واقعی همچون بیت‌کوین و اتریوم، مفاهیم انتزاعی را برای خواننده ملموس می‌سازد. افزودن متن کامل مقالهٔ اصلی بیت‌کوین اثر ساتوشی ناکاموتو در ضمیمهٔ کتاب، از جمله نقاط قوتی است که به درک عمیق‌تر ریشه‌های این فناوری کمک می‌کند.

دربارهٔ نویسنده

دانیل ون فلیمن، نویسندهٔ کتاب، یک متخصص و توسعه‌دهندهٔ نرم‌افزار در حوزهٔ فناوری‌های نوین است که پیش از انتشار این کتاب، با نوشتن مقاله‌ای محبوب در وبسایت مدیوم (Medium) با موضوع ساخت یک بلاک‌چین از صفر، توجه بسیاری را به خود جلب کرده بود. او با گردآوری و گسترش آن نوشته‌های اولیه، این کتاب را به‌عنوان منبعی به‌روز و کامل‌تر برای آموزش عملی بلاک‌چین به برنامه‌نویسان منتشر کرده است.

چرا باید Learn Blockchain by Building One را بخوانید؟

مطالعهٔ این کتاب برای توسعه‌دهندگانی که به دنبال درکی عمیق و ملموس از فناوری بلاک‌چین هستند، بینش‌های ارزشمندی به همراه دارد:
  • یادگیری عمیق و ماندگار: با پیاده‌سازی عملیِ کدها، درک شما از مفاهیمی مانند هشینگ، امضای دیجیتال و اثبات کار، فراتر از سطح تئوری رفته و به حافظهٔ بلندمدت شما منتقل می‌شود.
  • آشنایی با هستهٔ ارزهای دیجیتال: پس از مطالعهٔ کتاب، درک درستی از تفاوت‌ها و نقاط قوت و ضعف بلاک‌چین‌های مطرحی همچون بیت‌کوین و اتریوم پیدا می‌کنید.
  • ایجاد پایه‌ای برای پروژه‌های پیشرفته: با دریافت کدهای یک بلاک‌چین کامل در محیط پایتون، می‌توانید آن را به‌عنوان سکوی پرشی برای توسعهٔ پروژه‌های شخصی و آزمایش‌های بیشتر استفاده کنید.
  • درک مفاهیم شبکه‌های همتا‌به‌همتا: با پیاده‌سازی یک کلاینت-سرور TCP، با نحوهٔ انتشار اطلاعات و پروتکل‌های انتشار (Gossip Protocols) در یک شبکهٔ غیرمتمرکز آشنا می‌شوید.

این کتاب برای چه کسانی مناسب است؟

کتاب «Learn Blockchain by Building One» برای برنامه‌نویسان سطح متوسط (Intermediate) در هر حوزه‌ای از مالی گرفته تا دانشگاه طراحی شده است. مخاطب اصلی این کتاب، کسانی هستند که با زبان پایتون آشنایی مقدماتی دارند و می‌توانند کدهای آن را بخوانند و بنویسند. اگر به دنبال درکی سطحی و انتزاعی نیستید و می‌خواهید با دست‌آلوده کردن به کد، نحوهٔ کار بلاک‌چین را از بنیان درک کنید، این کتاب می‌تواند نقطهٔ شروعی عالی برای شما باشد.

سوالات متداول

آیا با خواندن این کتاب می‌توانم یک بلاک‌چین کاملاً غیرمتمرکز برای استفادهٔ واقعی بسازم؟

هدف اصلی این کتاب، آموزش مفاهیم بنیادین از طریق ساخت یک نمونهٔ آموزشی (Toy Model) از بلاک‌چین است. برخی از منتقدان اشاره کرده‌اند که کتاب برای ساخت یک شبکهٔ کاملاً غیرمتمرکز و آمادهٔ تولید، کافی نیست و مباحثی مانند اجماع کامل یا ساختار کیف‌پول‌های واقعی را پوشش نمی‌دهد. با این حال، این کتاب پایه‌ای محکم برای درک هستهٔ فناوری و شروع مسیر یادگیری فراهم می‌آورد.

سطح دشواری کدهای کتاب چگونه است و آیا با اشکالات نگارشی مواجه خواهم شد؟

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

آیا این کتاب با وجود نقدهای مختلف، هنوز هم منبع ارزشمندی برای شروع است؟

بله، با وجود نقدهای واردشده به برخی از جنبه‌های ویرایشی و عمقِ پوششِ موضوعات، رویکرد اصلی کتاب یعنی «یادگیری از طریق ساخت» به‌عنوان یک روشِ فوقالعاده مؤثر تحسین شده است. برای کسی که می‌خواهد با یک پروژهٔ عملی، مفاهیم کلیدی را درک کند و از سطح یک کاربر معمولی ارزهای دیجیتال فراتر رود، این کتاب همچنان یک نقطهٔ شروع ارزشمند و منحصربه‌فرد محسوب می‌شود.

As cryptocurrencies and their underlying data structure, blockchains, become further intertwined in our daily lives, a full understanding of them is essential to anyone who wants to keep up and remain informed of the future of finance. There is no better learning method than a hands-on one, and __Learn Blockchain by Building One__ offers just that. Develop your own blockchain using Python with step-by-step instructions from author Daniel van Flymen, an expert in the field. You will come away with a confident working knowledge of popular cryptocurrencies such as Bitcoin and Ethereum and which foundations make them work. Through helpful exercises and real-world examples, you will understand the core concepts of peer-to-peer networking, proof of work, hashing, encryption, and digital signatures. __Learn Blockchain by Building One__ gives you timely, real-world lessons in blockchain and cryptocurrencies that you will need as our modern society becomes increasingly digitally sophisticated. The lasting implications of such technology, including the security of personal transactions and the role of government regulation, are not to be underestimated. Stay ahead of the curve and become a confident blockchain builder now! **What You Will Learn** * Develop a fully-fledged blockchain in Python * Obtain a ground-up understanding of of Proof of Work * Grasp core cryptographic concepts, such as hashing, encryption, and digital signatures * Understand how gossip protocols and peer-to-peer networking works by implementing a TCP client-server * Realize the differences and trade-offs between popular blockchains such as Bitcoin and Ethereum **Who This Book Is For** This book is aimed at intermediate programmers in any area from finance to academia. Readers should be comfortable reading and writing basic Python. Table of Contents 5 About the Author 10 About the Technical Reviewer 11 Acknowledgments 12 Introduction 13 Chapter 1: Getting Ready for Application Development 16 Installing Python 17 Windows installation 17 macOS installation 18 Linux installation 18 How Python programs run 19 Managing project dependencies 20 Installing Poetry 20 Creating a Python project with Poetry 23 Installing dependencies 24 Activating the virtualenv 25 Example: Getting the Bitcoin price 27 Summary 28 Chapter 2: A Way to Identify Everything 29 Project setup 29 Hash functions 31 Example 1: Hashing in Python 31 Example 2: Hashing images 34 Analogies 36 Irreversibility 37 Example 3: Sending untamperable emails 37 The Problem 37 The solution 37 How preventing spam led to proofs of work 40 Summary 42 Chapter 3: Blockchains 43 What does a block look like? 43 Immutability and the importance of hashes 44 A basic blockchain in Python 45 Representing a blockchain using a class 45 Supporting transactions 46 Adding blocks 48 Complete blockchain.py code 50 Chapter 4: Proof of Work 53 Interacting with the blockchain class using iPython 53 Introduction to proof of work 54 A trivial example of Proof of Work 56 An analogy: Jigsaw puzzles 57 Implementing Proof of Work 60 Monetary Supply 67 Chapter 5: Networking 68 A brief moment of appreciation for the Internet 68 Concurrency in Python 70 A rapid introduction to asyncio 72 Building a chat server from the ground up 74 Building the chat server 77 Protocols 92 Groundwork for building a blockchain 93 Gossip 94 Chapter 6: Cryptography 101 96 Sending messages with integrity 97 Symmetric cryptography 98 Caesar’s Cipher 98 Public key cryptography 99 An Example in Python 100 Digital signatures 103 Verification 105 Wallets on the Blockchain 107 Chapter 7: Creating a Transactional Node 108 Transactions and Work Summary 109 A departure from Bitcoin’s UTXO Model 109 The role of a miner 109 How we’ll be implementing transactions 110 Creating a project for our full node 111 Installing dependencies 111 Creating the file structure 114 Structuring our node 115 Delegating responsibilities 115 The server module 118 The blockchain module 124 The connections module 128 The peers module 131 Messaging 138 Using Marshmallow to validate our messages 141 Implementing and validating types 143 Defining the messages (and their schema) 146 Bringing it all together 152 Finding your external IP address 152 Chapter 8: Comparisons to Real-World Decentralized Networks 156 Why blockchain engineering is hard 156 The shortcomings of funcoin 160 The networking layer 161 Peer Discovery 165 Naming 167 Distance functions 167 Routing 168 Data persistence 169 Alternative consensus: Proof of stake 170 Smart contracts 171 What does a smart contract look like? 173 Appendix A: Bitcoin: A Peer-to-Peer Electronic Cash System by Satoshi Nakamoto 179 Abstract 179 Introduction 180 Transactions 181 Timestamp Server 182 Proof-of-Work 183 Network 184 Incentive 185 Reclaiming Disk Space 186 Simplified Payment Verification 187 Combining and Splitting Value 188 Privacy 188 Calculations 189 Conclusion 193 References 194 Index 195 As crytpocurrencies and their underlying data structure, blockchains, become further intertwined in our daily lives, a full understanding of them is essential to anyone who wants to keep up and remain informed of the future of finance. There is no better learning method than a hands-on one, and Learn Blockchain by Building One offers just that. Develop your own blockchain using Python with step-by-step instructions from author Daniel van Flyman, an expert in the field. You will come away with a confident working knowledge of popular cryptocurrencies such as Bitcoin and Ethereum and which foundations make them work. Through helpful exercises and real-world examples, you will understand the core concepts of peer-to-peer networking, Proof of Work, hashing, encryption, and digital signatures. Learn Blockchain by Building One gives you timely, real-world lessons in blockchain and cryptocurrencies that you will need as our modern society becomes increasingly digitally sophisticated. The lasting implications of such technology, such as the security of personal transactions and the role of government regulation, are not to be underestimated. Stay ahead of the curve and become a confident blockchain builder now! What You Will Learn Develop a fully-fledged blockchain in Python Obtain a ground-up understanding of of Proof of Work Grasp core cryptographic concepts, such as hashing, encryption, and digital signatures Understand how gossip protocols and peer-to-peer networking works by implementing a TCP client-server Realize the differences and trade-offs between popular blockchains such as Bitcoin and Ethereum Who This Book Is For This book is aimed at intermediate programmers in any area from finance to academia. Readers should be comfortable reading and writing basic Python Front Matter ....Pages i-xix Getting Ready for Application Development (Daniel van Flymen)....Pages 1-13 A Way to Identify Everything (Daniel van Flymen)....Pages 15-28 Blockchains (Daniel van Flymen)....Pages 29-38 Proof of Work (Daniel van Flymen)....Pages 39-53 Networking (Daniel van Flymen)....Pages 55-82 Cryptography 101 (Daniel van Flymen)....Pages 83-94 Creating a Transactional Node (Daniel van Flymen)....Pages 95-142 Comparisons to Real-World Decentralized Networks (Daniel van Flymen)....Pages 143-165 Back Matter ....Pages 167-185
دانلود کتاب Learn Blockchain by Building One : A Concise Path to Understanding Cryptocurrencies