<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های هومن صنعتی</title>
        <link>https://virgool.io/feed/@houmansnt</link>
        <description>برنامه نویس web3</description>
        <language>fa</language>
        <pubDate>2026-04-15 05:04:47</pubDate>
        <image>
            <url>https://files.virgool.io/upload/users/17263/avatar/PTTpe4.jpeg?height=120&amp;width=120</url>
            <title>هومن صنعتی</title>
            <link>https://virgool.io/@houmansnt</link>
        </image>

                    <item>
                <title>مفهوم MemPool چیست؟</title>
                <link>https://virgool.io/Solidity/%D9%85%D9%81%D9%87%D9%88%D9%85-mempool-%DA%86%DB%8C%D8%B3%D8%AA-ikrd3pavxbsr</link>
                <description>در هر لحظه افراد زیادی در نقاط مختلف در حال ثبت تراکنش روی شبکه ی بیتکوین هستن اما همه این تراکنش ها یک جا انجام نمیشن. صفی رو در نظر بگیرین که افراد تراکنش به دست ایستادن تا نوبتشون برسه و تراکنششون تایید بشه (مثل عکس بالا) به این صف MemPool گفته میشه.کلمه ی MemPool خلاصه شده ی Memory Pool و یک اتاق انتظار برای تراکنش های تایید نشده محسوب میشه. هر تراکنشی جدیدی که ثبت میشه برای شبکه ارسال میشه و نود ها (که یک سیستم کامپیوتری هستن) این تراکنش های جدید رو بعد از بررسی، تو حافظه ی Ram نگه داری میکنن.تراکنش ها منتظر میمونن تا زمانی که توسط ماینر ها انتخاب بشن و پس از انجام فرایند اثبات کار در بلاک قرار بگیرن (و اینجوری از MemPool حذف میشن).تو این سایت میتونین اطلاعات مربوط به MemPool رو ببینین که من تو عکس زیر میارم:تو این لحظه که من دارم این پست رو مینویسم 7197 تراکنش در MemPool موجود هستش و منتظرن تا توسط ماینرها انتخاب بشن برای تایید.</description>
                <category>هومن صنعتی</category>
                <author>هومن صنعتی</author>
                <pubDate>Mon, 14 Mar 2022 22:28:59 +0330</pubDate>
            </item>
                    <item>
                <title>ماینر ها دقیقا چه مسئله ای رو حل میکنن؟</title>
                <link>https://virgool.io/@houmansnt/%D9%85%D8%A7%DB%8C%D9%86%D8%B1-%D9%87%D8%A7-%D8%AF%D9%82%DB%8C%D9%82%D8%A7-%DA%86%D9%87-%D9%85%D8%B3%D8%A6%D9%84%D9%87-%D8%A7%DB%8C-%D8%B1%D9%88-%D8%AD%D9%84-%D9%85%DB%8C%DA%A9%D9%86%D9%86-qaauwb7kskdc</link>
                <description>میخوام به صورت دستی ماین کردن رو با هم انجام بدیم.باید بدونیم که هر بلاک در بلاکچین هش خودش رو داره. به عنوان مثال بیاین فرض کنیم هش زیر، هش آخرین بلاک در شبکه هستش:00000000004b7191bb0a3e804هش ها رو فرضی و کوتاه شده برای راحتی مثال در نظر گرفتم.اون صفرهایی که اول هش میبینین نشون دهنده ی سختی شبکه هستش. هر چقدر صفر بیشتر سختی شبکه هم بالاتر. (کار ماینر هم سخت تر).حالا فرض کنیم هش های زیر، هش تراکنش هایی هستن که هنوز تایید نشدن:921fda9692
60ba0333b4
dd6ef2d806ماینر میاد و هش آخرین بلاک و هش این سه تا تراکنش رو ورمیداره و کنار هم قرار میده تا هش بلاک جدید رو به دست بیاره:00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806با دوتا خط فاصله هش هارو جدا کردم که بهتر متوجه بشین (در واقعیت وجود ندارن).بیتکوین برای الگوریتم اثبات کارش از تابع هش sha256 استفاده میکنه. یعنی وقتی شما ورودی به این تابع پاس بدین یک هش بهتون در خروجی میده:sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806) = 3BjkZ4wzJNHCgJFzQqYfUnz2j6utmTw //مثلا یک هشیزمانی که ماینر هشی در خروجی بده که تعداد صفر های اولش با صفر های هش بلاک قبلی (در مثال ما 10 تا صفر) برابر باشه یعنی خروجی معتبره و توسط شبکه پذیرفته و بلاک جدید به بلاکچین اضافه میشه.اما یک مشکلی که وجود داره اینه که شما ورودیت ثابته یعنی ورودی ما هش بلاک قبلی و هش سه تا تراکنشه پس خروجی هم ثابته. اگر خروجیش به اندازه کافی صفر نداشت تکلیف چیه؟ اینجاس که nonce مطرح میشه.نانس (nonce) چیست؟نانس صرفا یک عدده که برای متنوع بودن خروجی تابع هش استفاده میشه.یعنی تابع برای رفع مشکلی که بالا گفتم به این شکل در میاد:sha256(data+nonce)حالا کار ماینر اینه که مثلا میاد از nonce = 1 شروع میکنه و تا به خروجی مد نظر شبکه (تعداد صفر های مشخص) نرسیده هی nonce رو افزایش میده و دوباره تابع رو اجرا میکنه. یعنی:sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806----1)
sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806----2)
sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806----3)
...فرض کنیم در nonce = 974 یعنی:sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806----974)به خروجی رسیدیم که اولش 10 تا صفر داره و هش بلاک قبلی هم 10 تا صفر داشته:sha256(00000000004b7191bb0a3e804--921fda9692--60ba0333b4--dd6ef2d806----974) = 000000000033VfWqcsaAW1VPو هوراااا این ماینر برنده میشه بلاکش توسط نود ها به شبکه اضافه میشه و جایزه ی استخراجش رو هم میگیره.کار ماینر ها در واقع آزمون و خطاس، یک عدد رو افزایش میدن و دوباره تو یک تابع قرار میدن.آخرین نکته اینکه بیت کوین در واقعیت از double sha256 استفاده میکنه و فرمول واقعی این هستش:sha256(sha256(data+nonce))(مثال های بالا ساده شده بودن و من یک sha256 در نظر گرفتم در حالیکه دوتاس)راجع به sha256 در یک پست جداگانه به طور مفصل صحبت خواهم کرد.</description>
                <category>هومن صنعتی</category>
                <author>هومن صنعتی</author>
                <pubDate>Wed, 09 Mar 2022 23:14:53 +0330</pubDate>
            </item>
                    <item>
                <title>سختی شبکه بیتکوین چطور تنظیم میشه؟</title>
                <link>https://virgool.io/Solidity/%D8%B3%D8%AE%D8%AA%DB%8C-%D8%B4%D8%A8%DA%A9%D9%87-%D8%A8%DB%8C%D8%AA%DA%A9%D9%88%DB%8C%D9%86-%DA%86%D8%B7%D9%88%D8%B1-%D8%AA%D9%86%D8%B8%DB%8C%D9%85-%D9%85%DB%8C%D8%B4%D9%87-bzrviukubj8x</link>
                <description>سختی شبکه وظیفش اینه که میانگین زمان ایجاد بلاک رو روی 10 دقیقه نگه داره. تقریبا هر دو هفته یک بار سختی شبکه دوباره تنظیم میشه. چرا هر دو هفته؟چون سورس کد بیتکوین اینجوری نوشته شده که بعد از ایجاد 2016 بلاک بیا و سختی شبکه رو دوباره محاسبه کن. حالا چون ایجاد هر بلاک حدود 10 دقیقه طول میکشه:2016 * 10 = 20160 دقیقه
20160 / 60 / 24 = 14 روزیعنی ایجاد 2016 بلاک 14 روز (دو هفته) زمان میبره.حالا وقتی یک چرخه تموم میشه و به بلاک 2016ام میرسیم شبکه بررسی میکنه که این 2015 بلاک قبلی چقدر تولیدشون طول کشیده. اگر بیشتر از 14 روز باشه یعنی توان پردازشی شبکه پایین اومده و سختی باید کاهش پیدا کنه و برعکس اگر کمتر از 14 روز طول کشیده یعنی ماینر ها قوی تر شدن پس سختی رو افزایش میده.فرمول محاسبه ی سختی :سختی قبلی x
14 روز /
زمان تولید 2015 بلاک قبلیسختی شبکه از 1 شروع میشه و هیچوقت کمتر از اون نمیشه.حالا به عنوان مثال سختی قبلی اگر 5 باشه و تولید 2015 بلاک قبلی 16 روز طول کشیده باشه:5 * 14 / 16 = 4.375سختی جدید کمتر از سختی قبلیه چون تولید بلاک ها بیشتر از 14 روز طول کشیده (که نباید طول بکشه).این محاسبات رو چه کسی و کجا انجام میده؟شما وقتی نرم افزار Bitcoin Client رو نصب میکنین و یعنی با انجام این کار قصد ایفای نقش node در شبکه رو دارین باید یک سری قوانین رو بپذیرین و تنظیم سختی شبکه یکی از این قوانینه.تمامی این محاسبات به صورت خودکار و توسط سیستم هایی که نقش node رو در شبکه دارن انجام میشه. اینجوری نیست که مثلا یک متغیر کلی در شبکه وجود داشته باشه و همه نود ها از اون متغیر بخونن بلکه هر نود به صورت جداگانه سختی رو محاسبه میکنه و به عنوان قانون رعایت میکنه.حالا اگر نودی بخواد تقلب کنه و بلاک هایی با سختی کمتر از چیزی که مورد قبول شبکه هست تولید کنه بلاک هاش توسط شبکه رد میشه.</description>
                <category>هومن صنعتی</category>
                <author>هومن صنعتی</author>
                <pubDate>Mon, 07 Mar 2022 22:55:55 +0330</pubDate>
            </item>
                    <item>
                <title>در نهایت چندتا بیتکوین وجود خواهد داشت؟</title>
                <link>https://virgool.io/Solidity/%D8%AF%D8%B1-%D9%86%D9%87%D8%A7%DB%8C%D8%AA-%DA%86%D9%86%D8%AF%D8%AA%D8%A7-%D8%A8%DB%8C%D8%AA%DA%A9%D9%88%DB%8C%D9%86-%D9%88%D8%AC%D9%88%D8%AF-%D8%AE%D9%88%D8%A7%D9%87%D8%AF-%D8%AF%D8%A7%D8%B4%D8%AA-secwcbkqdaec</link>
                <description>وقتی میگیم حداکثر 21 ملیون تا بیتکوین وجود خواهد داشت بر چه اساسی داریم این حرفو میزنیم؟برای محاسبه ی این 21 ملیون اول باید این موارد رو بدونیم:میانگین ایجاد بلاک جدید در شبکه ی بیتکوین 10 دقیقه هستش یعنی هر بلاک حدود 10 دقیقه زمان میبره.هر چهار سال یک هاوینگ (Halving) اتفاق میوفته یعنی پاداش بیتکوین برای ایجاد هر بلاک نصف میشه.قبل از اولین هاوینگ پاداش هر بلاک 50 عدد بیتکوین بود.حالا بریم سراغ محاسبات:اول میایم تعداد بلاک هایی که هر چهار سال ایجاد میشن رو به دست میاریم:هر 10 دقیقه یک بلاک ایجاد میشه پس هر ساعت 6 بلاک تولید میشه.6 بلاک در ساعت x
24 ساعت در روز x
365 روز در سال x
4 سال در هر چرخه ی هاوینگ
 = 210,240
تقریبا 210,000یعنی هر چهار سال 210,000 بلاک تولید میشه و بعدش هاوینگ اتفاق میوفته.حالا جمع ریوارد تمامی بلاک ها رو به دست میاریم:هر چهار سال ریوارد نصف میشه و اولین چهار سال هم ریواردش 50 بیتکوین بوده.50 + 25 + 12.5 + 6.25 + 3.125 + ... = 100حالا بیاین فرض کنیم تو یک چرخه یعنی چهار سال همه ی ریوارد ها استخراج بشه. یعنی هر بلاک ریواردش 100 بیتکوین باشه (همونطوری که بالا حساب کردیم). اگر تعداد بلاک ها در چهار سال رو ضربدر جمع ریوارد ها برای بلاک یعنی 100 بکنیم:210,000 x 100 = 21,000,000</description>
                <category>هومن صنعتی</category>
                <author>هومن صنعتی</author>
                <pubDate>Sun, 06 Mar 2022 19:19:12 +0330</pubDate>
            </item>
            </channel>
</rss>