در مقالات قبل از مدرسه ارز دیجیتال، با زیرساخت بیت کوین و نحوه کارکرد آن آشنا شدیم. همچنین در مقاله آشنایی با اجزای مختلف بیت کوین، نرم افزار بیت کوین و اجزای مختلف آن را مورد بررسی قرار دادیم و دانستیم که بیت کوین یک سیستم پولی غیرمتمرکز است که در یک شبکه همتابههمتا اجرا میشود. قوانینی که نحوه عملکرد بیت کوین را بهعنوان یک سیستم پولی تعریف میکنند، در یک نرمافزار اجرا میشوند که به آن پروتکل بیت کوین گفته میشود که میتواند در دسترس شرکتکنندگان شبکه قرار گیرد.
در این مقاله سعی داریم جزئیات بیشتر از وظایف ضرروی این سیستم را بیان کرده و سپس به بررسی نقش اولین شرکتکننده در شبکه -یک نود کامل یا فول نود “Full Node”- را بپردازیم. فول نود در شبکه بیت کوین، انجام عملکردهای اصلی آن و امکان اتصال دیگران به شبکه نقش مهمی را ایفا میکند.
کاربرد اصلی نظام مالی بیت کوین
برای اینکه بیت کوین بتواند بهعنوان یک سیستم پولی کارآمد، بدون تکیه بر یک واسطه مرکزی بهخوبی اجرا شود باید دارای شرایط زیر باشد:
- حفظ دقیق و مو به مو اطلاعات تمام تراکنشها و موجودیها در یک دفتر کل
- اعتبارسنجی تراکنشهای جدید که با قوانین خاصی تایید میشوند (مکانیسم اجماع)
- اضافهکردن تراکنشها به ترتیب تاریخ و دیتا به دفتر کل
- انتشار و صدور بیت کوینهای جدید در شبکه با نرخ تعریفشده. (در حال حاضر ۶.۲BTC در هر بلاک جدید)
- اجازه دادن به کیفپولها برای انجام تراکنشها، دریافت و خرج بیت کوین و همگام شدن با دفتر کل.
- عمل کردن بهعنوان سرویسی برای کاربران بیرون از شبکه و انجام خدمات ارجاعدهی برای دادههای تراکنشها
- انتقال اطلاعات بین شرکتکنندگان در شبکه همتابههمتا
ساتوشی ناکاماتو این قوانین و توابع را در کد مرجع اصلی در سال ۲۰۰۸ خلاصه کرد. از آن زمان به بعد تمام این توابع بهطور مرتب بهروزرسانی شده و در یک کلاینت مرجع در دسترس است.
شرکتکنندگان شبکه بیت کوین
اگرچه طبقهبندی خاصی در شبکه بیت کوین وجود ندارد اما انواع مختلفی از نود (نود و فول نود در شبکه بیت کوین) وجود دارد که هر یک وظایف موردنیاز را به میزان کم یا زیاد در این شبکه انجام میدهند.
در ادامه وظایف و مسئولیت بخشهای مختلف در شبکه بیت کوین ذکر شده است:
- فول نودها “Full Nodes”: به جز استخراج بیت کوینهای جدید یک فول نود در شبکه بیت کوین قادر است همه کارها را انجام دهد.
- لایت نودها “Lightweight Nodes”: لایت نودها وظیفه انتقال اطلاعات در شبکه را به عهده دارند. از دیگر وظیفه آنها، دادن اجازه دسترسی به کیف پولها برای انجام تراکنشها و همچنین همگامسازی کیف پول با دفتر کل است.
- ماینرها (Miner): ماینرها وظیفه انتشار و پیگیری سفارشات بیت کوینهای جدید در شبکه را برعهده دارند. همچنین آنها موظف هستند تا تراکنشهای جدید را به ترتیب تاریخ و دیتای آن در دفتر کل (Distributed Ledger) ثبت کنند. به علاوه ماینرها نیز مانند لایت نودها با هدف بهروزرسانی شبکه، وظیفه دارند اطلاعات جدید را به نودهای دیگر منتقل کنند.
- API Client: مخفف (Application Programming Interface) است که این تکنولوژی مسیر برقراری ارتباط بین کاربران با شبکه هسته اصلی بیت کوین (Bitcoin Core) را ایجاد میکند.
- خدمات شخص ثالث: در شبکه بیت کوین از نودهای کامل یا API برای اتصال به بیت کوین کور جهت اجرای خدمات به کاربران خارج از شبکه استفاده میشود.
اگر شما هم بخواهید به صورت فعال در اجرا و گسترش اکوسیستم بیت کوین نقش داشته باشید، هر کدام از بخشهای شبکه بیت کوین در واقع فرصتی را برای شما فراهم میکنند تا بتوانید عضوی از این شبکه باشید. اما فول نود حیاتیترین بخش در راهاندازی بیت کوین کور است که به طور پیش فرض توانایی انجام همه این عملکردها (به جز استخراج یا) را در خود جای داده است.
اجرای یک فول نود در شبکه بیت کوین
هر فردی با اجرای نرم افزار بیت کوین کور روی کامپیوتر خود که دارای تنظیمات لازم و توان کافی باشد، میتواند به یک نود در شبکه بیت کوین تبدیل شود و به انجام عملکردهای مهم در شبکه کمک کند. همچنین آنها با اینکار میتوانند برای کسانی که میخواهند خدماتی برای گسترش اکوسیستم و پذیرش کاربر ایجاد کنند، فرصتی فراهم نمایند.
بیت کوین کور یک نرم افزار متنباز است که توسط یک تیم داوطلبانه توسعه یافته و نگهداری میشود.
میتوانید این نرم افزار را از وبسایت Bitcoin.org به طور رایگان دانلود کنید. اجرای این نرم افزار چند روز به طول میانجامد تا همگامسازی شود زیرا شامل یک کپی از دفتر کل تراکنشهاست که به بلاکچین بیت کوین معروف است.
در حال حاضر بلاک چین کامل بیت کوین بیش از ۳۵۰ گیگابایت است اما پس از تکمیل دانلود -که بهعنوان اولین بلاک دانلود شده (IBD) شناخته میشود- میتوانید در حمایت از اکوسیستم بیت کوین نقش مستقیمی را ایفا کنید.
اجرای یک فول نود در شبکه بیت کوین به این معناست که باید بهطور دائم دفتر کل تراکنشهای بیت کوین را که به بلاکچین بیت کوین معروف است، بهروزرسانی کنید. این بدان معناست که برای اجرای یک فول نود نیاز به پهنای باند گستردهای وجود ندارد.
- یک فول نود در شبکه بیت کوین موظف است قبل از افزودن یک بلاک جدید به بلاک چین، صحت هر امضای دیجیتال را مورد بررسی قرار دهد.
- از دیگر اختیارات فول نود در شبکه بیت کوین این است که تراکنشها یا بلاکهایی را که از پروتکل پیروی نمیکنند رد کند.
حفظ بلاک چین بیت کوین توسط نودها
همان طور که از نام آن پیداست، بلاکچین بیت کوین زنجیرهای از سوابق تراکنشهای بیت کوین است که در بلاکهایی با برچسب زمانی بهصورت متوالی از دادهها و اطلاعات ثبت میشوند. این سوابق شامل تاریخ دقیق ارسال و دریافت مبالغ هستند که هر سیستم مالی به آن نیاز دارد.
بلاکها با استفاده از برچسبهای زمانی و هشهای رمزنگاری شده بههم متصل میشوند و از طریق فرآیند استخراج در فواصل زمانی تقریبا ۱۰ دقیقهای ایجاد میشوند که سختی شبکه برای بهوجود آمدن این بلاکها، هر دو هفته یکبار تنظیم میشود.
هر بلاک تراکنش دارای یک هش است که درستی و یکپارچگی بلاک قبلی را تایید میکند تا مطمئن شود این بلاکها در بلاکچین به درستی و بهطور منظم قرار گرفته باشند.
اولین بلاکی که در شبکه بیت کوین وجود دارد جنسیس بلاک “Genesis block” یا “بلاک اولیه” نامیده میشود زیرا قبل از آن هیچ بلاکی وجود ندارد، این بلاک توسط ساتوشی به طور غیر قابلتغییر کدگذاری شد.
اندازه هر بلاک کمتر از ۱ مگابایت و ظرفیت آن حدود ۴۰۰۰ تراکنش است (اندازه هر تراکنش نیز به طور متوسط ۲۵۰ بایت است). این محدودیت اندازه برای هر بلاک بسیار مهم است زیرا هدف تمرکززدایی از بلاکهاست و هرگونه افزایش در ذخیرهسازی آنها باعث بزرگتر شدن IBD میشود.
این بزرگ شدن IBD باعث محدود شدن افراد شرکتکننده میشود که این ویژگی با فراگیر بودن شبکه بیت کوین در تضاد است.
شبکه بیت کوین همانند یک پایگاه داده عمل میکند که در آن هر یک شامل لیستی از تراکنشهای قبلی بیت کوین است. فول نود در شبکه بیت کوین وظیفه انتشار این این دادههای تراکنش و دادههای بلاک (اضافهشده به دفتر کل) را به عهده دارند.
این پیچیدگی در زیرساخت شبکه بیت کوین درواقع باعث میشود که نودها مستقل از یکدیگر عمل کنند و در عین حال امنیت شبکه و ناشناس بودن آن را حفظ کنند. زیرساخت همه ارزهای دیجیتال مانند بیت کوین نیست و در حال حاضر بزرگترین و موفقترین شبکه ارزهای دیجیتال شبکه بیت کوین است که بهعنوان الگویی برای بسیاری از ارزهای دیجیتال در تطبیق قوانین و عملکردها استفاده میشود.
مسیریابی و ذخیرهسازی تراکنشها به واسطه نودها
همانطور که در قسمتهای بالاتر گفته شد یک نود کامل باید تراکنشی که به آن ارسال شده را تایید یا رد کند زیرا شامل یک نسخه کامل از بلاکچین است. زمانی که یک تراکنش بیت کوین به هر نود متصل به شبکه بیت کوین ارسال میشود، تراکنش توسط آن نود تایید میشود.
اعتبارسنجی برای حفظ یکپارچگی کل سیستم بسیار مهم است و به همین دلیل است که اجرای یک فول نود در شبکه بیت کوین بهطور فعال بیت کوین را پشتیبانی میکند. اعتبارسنجی بهمعنای تایید برخی موارد است که در زیر ذکر میشود:
- تعداد بیت کوینی که هر بلاک میتواند ایجاد کند. (در حال حاضر ۶.۲۵ بیت کوین)
- تراکنشهایی که دارای امضای صحیح برای بیت کوینهایی هستند که باید خرج شوند.
- تراکنشها یا بلاکها در قالب دادههای صحیح انجام میشوند.
- هیچ تراکنشی نباید تکرار شود به این معنی که بلاک چین باید از دوبار خرج شدن جلوگیری کند.
اگر تراکنشها معتبر باشند، هر نود آن تراکنشها را به نودهای دیگری که به آنها متصل است انتقال میدهد و بسته به اعتبار تراکنشهای جدید، پیام موفقیت یا رد شدن آن بهطور همزمان به مبدا بازگردانده میشود.
هنگامیکه یک تراکنش معتبر شناخته شود، هر نود تراکنش را به نودهای دیگر میفرستد و درنهایت توسط ماینر انتخاب میشود و پس از انجام فرآیند اثبات کار، این تراکنش به بلاک بعدی اضافه میشود.
این ساختار از ارسال هرزنامهها، حملات سرویسها و یا سایر مزاحمات علیه سیستم بیت کوین جلوگیری میکند. بهطور خلاصه، هر نود بهطور مستقل هر تراکنش را قبل از انتشار بیشتر در شبکه، تایید میکند.
ارتباط با بیت کوین کور و توابع کنترل
بیت کوین کور مانند یک سرور عمل میکند که به این معنی است که تمام عملکردهای بلاک چین میتوانند توسط کاربران قابل دسترسی باشند و امکان کنترل داشته باشند.
نودهای کامل این کار را با استفاده از دستوراتی در قالب JSON-RPC انجام میدهند که در طیف وسیعی از زبانهای برنامهنویسی در دسترس هستند. بنابراین به احتمال زیاد، اگر مهارتهای برنامهنویسی دارید، میتوانید با بیت کوین کور ارتباط برقرار کنید و توابع دلخواه خود را ایجاد کنید.
با توجه به اینکه هسته بیت کوین شامل بلاکچین کامل است – تمام دفتر کل تاریخچه تراکنش ها و موجودیهای بیت کوین – استفاده از تمام این اطلاعات تنها با مهارتهای برنامهنویسی امکانپذیر می شود.
در اینجا لیستی از راه های ارتباط با بیت کوین کور آمده است:
##Python; Ruby; Erlang; PHP; JAVA ;Perl; Go; .Net; JS; Deno; Command Line; C; Clojure; C
جزئیات بیشتر در این مورد را میتوانید در وبسایت ویکی بیت کوین را در این لینک مطالعه کنید. به هرحال، در بیت کوین کور میانبری وجود دارد که توسط لایه میانی (که گاهی اوقات لایه کاربر یا مشتری نامیده میشود) از APIهای از پیشساختهشده ارائه شده که کارهای سنگین را برای شما انجام میدهد.
مزایای اجرای یک فول نود در شبکه بیت کوین
در واقع اجرای یک نود کامل بیت کوین هیچ پاداشی مانند دریافت کوین ندارد اما با این حال مزایای ناملموسی را به همراه دارد که عبارتند از:
- با اجرای یک فول نود در شبکه بیت کوین، میتوانید قوانین اجماع بیت کوین را اجرا کرده و این اختیار را داشته باشید که تراکنشهایی را که قوانین را در شبکه نقض میکنند رد کنید. بهعلاوه، هرچه تعداد نسخههای بیشتری از بلاکچین بیت کوین وجود داشته باشد، پلتفرم انعطافپذیرتر میشود. بنابراین نه تنها شما به بهبود امنیت شبکه کمک میکنید بلکه باعث تقویت این شبکه میشوید.
- اگر معاملهگر یا هولدر هستید، بلافاصله قابلیت این را خواهید داشت که تراکنشهای بزرگی را انجام دهید که میتوانند بازار را به حرکت درآورند. درواقع، یک مقاله تحقیقاتی منتشرشده توسط Lennart Ante توصیه میکند که معاملهگران باید خودشان یک نود بیت کوین را برای ارزیابی بازار اجرا کنند.
- در خارج از شبکه، تراکنشهای بیتکوین از طریق شخص ثالث پردازش میشوند. افرادی که به شدت نگران حریم خصوصی خود هستند، باید نودهای بیتکوین را خودشان اجرا کنند تا از سیستم حریم خصوصی بیت کوین کاملا بهره ببرند.
- در زمان رخ دادن هارد فورک، نودهای کامل بیت کوین این گزینه را دارند که انتخاب کنند به کدام زنجیره بپیوندند. بنابراین، اگر یک نودکامل بیت کوین را اجرا کنید، میتوانید در مدیریت پروتکل بیت کوین شرکت کنید.
اجرای یک نود
با اجرای یک نود میتوانید به طور فعال در فناوری کریپتو شرکت کرده و به شکلگیری یک نظام مالی جایگزین کمک کنید. البته قبل از اینکه این فرآیند را شروع کنید، باید خطرات و الزامات مربوط به اجرای یک نود بیت کوین را بدانید. در ادامه سعی کردیم تا به بخشی از این خطرها اشاره کنیم:
کیف پول خود را ایمن کنید:
هنگام اجرای یک نود بیت کوین، میتوانید بیت کوینهای خود را در کیف پول بیت کوین کور ذخیره کرده و اقدامات ایمنی را مانند اجرای هر کیف پول ارز دیجیتال دیگر انجام دهید.
حداقل امکانات مورد نیاز برای اجرای یک فول نود یا نود کامل:
- کامپیوتر یا لپتاپ با نسخههای بهروز نرم افزاری
- ۲۰۰ گیگابایت فضای خالی دیسک با حداقل سرعت ۱۰۰ مگابایت بر ثانیه
- ۲ گیگابایت حافظه با دسترسی رندوم
- اتصال به اینترنت پرسرعت با حداقل سرعت ۵۰۰ کیلوبایت بر ثانیه
- یک اتصال با محدودیت بالا برای آپلود و دیگری اتصال بدون محدودیت برای آپلود
- حداقل ۶ ساعت در روز برای اجرای نود
توجه: مطمئن شوید که لپتاپ یا دسکتاپ شما در شرایط بهینه کار میکند زیرا اکثر سیستم عاملها به رایانه شما اجازه میدهند به محض فعال شدن محافظ صفحه به حالت کممصرف وارد شوند که این باعث توقف یا کاهش ترافیک میشود.
مشکلاتی که ممکن است در زمان اجرای یک فول نود در شبکه بیت کوین با آن روبهرو شوید:
- مشکلات حقوقی: ابتدا از لحاظ حقوقی و قانونی مطمئن شوید که بیت کوین در کشور شما ممنوع نباشد.
- مشکل پهنای باند: پهنای باند اتصال اینترنت خود را با ارائهدهنده خدمات خود بررسی کنید. هدف این است که نود بیت کوین را در حال اجرا نگه دارید.
- اختلال در برنامههای آنتی ویروس: مانند هر بلاکچین دیگری، فرستندههای هرزنامه سعی دارند باعث خرابی بلاکچین بیت کوین شوند اما مطمئن باشید که شبکه بیت کوین امن است و بر سختافزار شما تاثیری نخواهد گذاشت. برخی از برنامههای آنتیویروس ممکن است اجرای نود بیت کوین را دشوار کنند. بنابراین قبل از شروع فرآیند، نرم افزار آنتیویروس سیستم خود را بررسی کنید.
- قرار گرفتن در معرض حملات: هکرها و هرزنامههایی که میخواهند شبکه بیت کوین را تضعیف کنند، دائما به دنبال حمله به یک نود کامل بیت کوین هستند. بنابراین برای اطمینان از اینکه سختافزار شما مورد حمله قرار نمیگیرد، اقدامات امنیتی بیشتری را انجام دهید.
روشهای اجرای فول نود بیت کوین
سه گزینه برای اجرای یک فول نود در شبکه بیت کوین وجود دارد:
- آن را در یک شبکه خصوصی مجازی (VPN) اجرا کنید.
- آن را روی یک سیستم “out of the box” اجرا کنید مانند Lighting In A Box, Raspiblitz, Nodl, Casa Node و …
- میتوانید فول نود را روی یک سیستم راهحل سفارشی “customized solution” اجرا کنید مانند Raspberry PI 4 که یک مینی کامپیوتر است و ظرفیت اجرای نودهای کامل در شبکه بیت کوین را دارد.
فرآیند اجرای یک فول نود بیت کوین در رایانه با استفاده از VPN
- مرحله اول: اولین قدم این است که سختافزار خود را برای اجرای نود بیت کوین آماده نگهدارید.
- مرحله دوم: سیستم عاملی را که میخواهید برای اجرای نود بیت کوین استفاده کنید، انتخاب کنید. برخی از گزینهها شامل توزیعهای ویندوز (مانند ویندوز ۷،۸ یا ۱۰) توزیعهای لینوکس (دبیان Debian، اوبونتو Ubuntu و …) و سیستم عامل مک هستند.
- مرحله سوم: با استفاده از این دستورالعملهای گامبهگام نرمافزار بیت کوین را روی سختافزار خود نصب کنید.
- مرحله چهارم: برای پیکربندی روتر خود برای اجازه دادن به پورت ۸۳۳۳ این مراحل را دنبال کنید:
ابتدا وارد روتر خود شوید و به دنبال بخش ارسال پورت (سرور مجازی) بگردید. آن را در بخش “NAT” پیدا خواهید کرد.
سپس آدرس IP خود را وارد کنید.
عبارت “8333” را در شروع پورت داخلی و شروع پورت خارجی تایپ کنید.
TCP/UDP را در قسمت «پروتکل» انتخاب کنید.
روی Apply/Save کلیک کنید.
- مرحله پنجم: در وبسایتهایی مانند “earn.com” احراز هویت کنید تا اطمینان حاصل کنید که نود بیت کوین شما قابل دسترسی است.
کمک به ساخت و حفظ بیت کوین کور
اگر علاقهای به مشارکت در اکوسیستم بیت کوین ندارید، درعوض دوست دارید در ایجاد زیرساخت بیت کوین نقش داشته باشید، باید بدانید این بخش نیز به اندازه خود سیستم بیت کوین برای عموم افراد آزاد است.
بیت کوین کور توسط یک تیم داوطلبانه از مشارکتکنندگان نگهداری میشود و هرکسی می تواند تغییراتی که در راستای بهبود آن بهوجود بیاید را پیشنهاد دهد، کدها را در آن آزمایش و بررسی کند و نظر خود را اعلام دارد. این تغییرات عمده در بیت کوین کور که به عنوان “BIP” شناخته میشود، پیشنهاداتی هستند که برای بهبود بیت کوین ارائه میشوند. این نظرها نیاز به فرآیند رسمی دارند که در آن مورد بحث قرار گرفته تا در نهایت به تصویب برسند. مثلا سگویت (Segwit) از بزرگترین به روزرسانیهایی بود که در راستای بهبود عملکرد بیت کوین انجام شد و از طریق BIPها به دست آمد.
البته برای رفع اشکالات کوچک مانند تعمیرات جزئی، نیازی به انجام فرآیند BIP نیست زیرا آسیبهای قابل توجه در شبکه بیت کوین به ندرت رخ میدهند که نیاز به این فرآیند داشته باشند. برای مثال یکی از این موارد در سال ۲۰۱۸ اتفاق افتاد، زمانی که یک اتصال در شبکه بیت کوین نیاز بود که میتوانست منجر به ساخت بیت کوینهای جدید حتی فراتر از سقف عرضه ثابت آن شود و اینگونه ممکن بود اعتماد به کل سیستم از بین برود.
البته برای بهبود بیت کوین کور حتما لازم نیست که یک توسعهدهنده باشید. می توانید به بهبود اسناد، ترجمه، پیشنهاد تغییر فرآیند یا بهبود رابط کاربری هم کمک کنید.