video thumb

نکاتی از نحوه خواندن بلاک چین بیت کوین که باید بدانید!

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

بلاک چین یک پایگاه داده تراکنش است. هر گره کاملی که در شبکه بیت کوین مشارکت دارد، دارای همان کپی است. پروتکل بیت کوین، ساختار آن را مشخص می کند و وسیله ای است که از طریق آن هرگره یک کپی را نگه می دارد. به طور کلی، بلاک چین، یک ساختار اطلاعاتی برای ذخیره بلاک هاست. بلاک چین، بلاک ها را در یک مجموعه ذخیره می کند تا همراه با بلاک جنسیس شروع به کار کند.

یک تجزیه کننده بلاک ساده

این مثال یک رویکرد جزئی است. در مجموع ۱۳۸ خط کد پایتون برای ساخت این تجزیه کننده بلاک مورد استفاده قرار می گیرد. در بعضی از نقاط، کدگذاری و اندیان (endianness) ناشناخته و وارونه هستند. با وجود این مسائل جزئی، شکل زیر نشان دهنده یک رویکرد مبتدی به یک تجزیه کننده بلاک بیت کوین است.

این پروژه با ساخت ابزار مورد نیاز برای تجزیه و تحلیل داده های باینری آغاز شد. پروتکل مشخص کننده ابزارهای ضروری می باشد.

این توابع اعداد صحیح بدون علامت را از بلاک چین می خواند. این ابزار برای ساخت کلاس ها به منظور نشان دادن بلاک ها و تراکنش ها استفاده می شود. هر تابع بخشی از بلاک چین را می خواند و داده های باینری را تجزیه می کند.

این تست واحد، اولین بلاک و تراکنش را در یک فایل بلاک می خواند و هنگامی که با داده های ۱۰۰۰۰۰۰بلاک استفاده می شود، خروجی زیر را می دهد:

تجزیه و تحلیل یک تجزیه کننده بلاک

این پروتکل توسعه کلاس ها را هدایت می کند.

ساختار داده های بلاک مطابق با شرح پروتکل است.

تجزیه کننده بلاک با خواندن عدد جادویی شروع می شود. عدد جادویی چهار بایت اول است. که همیشه d9b4bef9 یا f9beb4d9 می باشد. چهار بایت زیر اندازه بلاک است و نشان دهنده تعداد بایت های انتهای بلاک است. ۸۰ بایت زیر هدر بلاک است.

توجه داشته باشید که تنها هش بلاک قبلی و مرکل روت در هدر بلاک قرار دارند. هش بلاک، یک مقدار محاسبه شده است.

بعد از هدر بلاک، یک شمارشگر تراکنش است. شمارشگر یک عدد صحیح متغیر است. تعداد بایت هایی که تغییر می کند بسته به تعداد بایت هایی است که برای کل تراکنش ها مورد نیاز است. تراکنش ها در یک لیست ذخیره می شوند.

برای هر تراکنش، لیستی از ورودی ها و خروجی ها وجود دارد.

یک ورودی، مرجعی برای یک خروجی در تراکنش قبلی است. هویت، نشان دهنده خروجی در تراکنش است. اسکریپت سیگ (ScriptSig) مدرکی از مالکیت بر روی کلید خصوصی است که به خروجی مربوط می شود.

خروجی ها دستورالعملی برای ارسال بیت کوین هستند. ارزش در ساتوشیس تعادل برقرار می کند. ScriptPubKey نیمه اول ScriptSig است، که با همراه ورودی بعدی برای خرج کردن سکه، مورد استفاده قرار می گیرد.

قرار دادن تجزیه کننده بلاک باهم

در اینجا شما می توانید کد سر هم بندی شده تجزیه کننده بلاک من را مشاهده کنید.

این اسکریپت تا پایان فایل اجرا می شود. خروجی نیز همین گونه است.