مرکزی مواد پر جائیں
Change page

⁦Ethereum⁩ آرکائیو نوڈ

ایک آرکائیو نوڈ ایتھیریم کلائنٹ کی ایک مثال ہے جسے تمام تاریخی حالتوں کا آرکائیو بنانے کے لیے کنفیگر کیا گیا ہے۔ یہ مخصوص استعمال کے معاملات کے لیے ایک مفید ٹول ہے لیکن اسے مکمل نوڈ کے مقابلے میں چلانا زیادہ مشکل ہو سکتا ہے۔

پیشگی شرائط

آپ کو ایتھیریم نوڈ کے تصور، اس کے فن تعمیر، ہم آہنگی کی حکمت عملیوں، اور انہیں چلانے اور استعمال کرنے کے طریقوں کو سمجھنا چاہیے۔

آرکائیو نوڈ کیا ہے

آرکائیو نوڈ کی اہمیت کو سمجھنے کے لیے، آئیے "حالت" کے تصور کو واضح کریں۔ ایتھیریم کو ایک ٹرانزیکشن پر مبنی اسٹیٹ مشین کہا جا سکتا ہے۔ یہ اکاؤنٹس اور ایپلی کیشنز پر مشتمل ہے جو ٹرانزیکشنز پر عمل درآمد کرتے ہیں جس سے ان کی حالت تبدیل ہوتی ہے۔ ہر اکاؤنٹ اور کنٹریکٹ کے بارے میں معلومات پر مشتمل عالمی ڈیٹا ایک ٹرائی (trie) ڈیٹا بیس میں محفوظ کیا جاتا ہے جسے حالت کہا جاتا ہے۔ اسے عمل درآمد کی تہہ (EL) کلائنٹ کے ذریعے سنبھالا جاتا ہے اور اس میں شامل ہیں:

  • اکاؤنٹ کے بیلنس اور نانسز (nonces)
  • کنٹریکٹ کوڈ اور اسٹوریج
  • اتفاق رائے سے متعلق ڈیٹا، مثلاً، اسٹیکنگ ڈپازٹ کنٹریکٹ

نیٹ ورک کے ساتھ تعامل کرنے، نئے بلاکس کی تصدیق کرنے اور انہیں بنانے کے لیے، ایتھیریم کلائنٹس کو تازہ ترین تبدیلیوں (چین کی ٹپ) اور اس وجہ سے موجودہ حالت کے ساتھ اپ ڈیٹ رہنا پڑتا ہے۔ ایک عمل درآمد کی تہہ کا کلائنٹ جو مکمل نوڈ کے طور پر کنفیگر ہوتا ہے، نیٹ ورک کی تازہ ترین حالت کی تصدیق کرتا ہے اور اس کی پیروی کرتا ہے لیکن صرف پچھلی چند حالتوں کو کیش (cache) کرتا ہے، مثلاً، پچھلے 128 بلاکس سے وابستہ حالت، تاکہ یہ چین کی تنظیم نو (reorgs) کو سنبھال سکے اور حالیہ ڈیٹا تک تیز رسائی فراہم کر سکے۔ حالیہ حالت وہ ہے جس کی تمام کلائنٹس کو آنے والی ٹرانزیکشنز کی تصدیق کرنے اور نیٹ ورک استعمال کرنے کے لیے ضرورت ہوتی ہے۔

آپ حالت کو کسی دیے گئے بلاک پر ایک لمحاتی نیٹ ورک اسنیپ شاٹ اور آرکائیو کو ہسٹری ری پلے کے طور پر تصور کر سکتے ہیں۔

تاریخی حالتوں کو محفوظ طریقے سے ختم (prune) کیا جا سکتا ہے کیونکہ وہ نیٹ ورک کے کام کرنے کے لیے ضروری نہیں ہیں اور کلائنٹ کے لیے تمام پرانا ڈیٹا رکھنا بے کار حد تک فالتو ہوگا۔ وہ حالتیں جو کسی حالیہ بلاک سے پہلے موجود تھیں (مثلاً، ہیڈ سے 128 بلاکس پہلے) مؤثر طریقے سے ضائع کر دی جاتی ہیں۔ مکمل نوڈز صرف تاریخی بلاک چین ڈیٹا (بلاکس اور ٹرانزیکشنز) اور کبھی کبھار کے تاریخی اسنیپ شاٹس رکھتے ہیں جنہیں وہ درخواست پر پرانی حالتوں کو دوبارہ بنانے کے لیے استعمال کر سکتے ہیں۔ وہ ایسا EVM میں پچھلی ٹرانزیکشنز کو دوبارہ چلا کر کرتے ہیں، جو کہ کمپیوٹیشنل طور پر مشکل ہو سکتا ہے جب مطلوبہ حالت قریب ترین اسنیپ شاٹ سے دور ہو۔

تاہم، اس کا مطلب یہ ہے کہ مکمل نوڈ پر تاریخی حالت تک رسائی حاصل کرنے میں بہت زیادہ کمپیوٹیشن خرچ ہوتی ہے۔ کلائنٹ کو تمام پچھلی ٹرانزیکشنز پر عمل درآمد کرنے اور جینیسس (genesis) سے ایک تاریخی حالت کا حساب لگانے کی ضرورت پڑ سکتی ہے۔ آرکائیو نوڈز نہ صرف تازہ ترین حالتوں کو بلکہ ہر بلاک کے بعد بننے والی ہر تاریخی حالت کو محفوظ کر کے اس مسئلے کو حل کرتے ہیں۔ یہ بنیادی طور پر ڈسک کی بڑی جگہ کی ضرورت کے ساتھ ایک سمجھوتہ (trade-off) کرتا ہے۔

یہ نوٹ کرنا ضروری ہے کہ نیٹ ورک تمام تاریخی ڈیٹا رکھنے اور فراہم کرنے کے لیے آرکائیو نوڈز پر انحصار نہیں کرتا ہے۔ جیسا کہ اوپر ذکر کیا گیا ہے، تمام تاریخی عبوری حالتیں مکمل نوڈ پر اخذ کی جا سکتی ہیں۔ ٹرانزیکشنز کسی بھی مکمل نوڈ کے ذریعے محفوظ کی جاتی ہیں (فی الحال 400G سے کم) اور پورا آرکائیو بنانے کے لیے انہیں دوبارہ چلایا جا سکتا ہے۔

استعمال کے معاملات

ایتھیریم کے باقاعدہ استعمال جیسے ٹرانزیکشنز بھیجنا، کنٹریکٹس کو تعینات کرنا، اتفاق رائے کی تصدیق کرنا وغیرہ کے لیے تاریخی حالتوں تک رسائی کی ضرورت نہیں ہوتی ہے۔ صارفین کو نیٹ ورک کے ساتھ معیاری تعامل کے لیے کبھی بھی آرکائیو نوڈ کی ضرورت نہیں ہوتی ہے۔

اسٹیٹ آرکائیو کا بنیادی فائدہ تاریخی حالتوں کے بارے میں سوالات تک فوری رسائی ہے۔ مثال کے طور پر، آرکائیو نوڈ فوری طور پر اس طرح کے نتائج واپس کرے گا:

  • بلاک 15537393 پر اکاؤنٹ 0x1337... کا ETH بیلنس کیا تھا؟
  • بلاک 1920000 پر کنٹریکٹ 0x میں ٹوکن 0x کا بیلنس کیا ہے؟

جیسا کہ اوپر وضاحت کی گئی ہے، ایک مکمل نوڈ کو یہ ڈیٹا EVM کے عمل درآمد کے ذریعے تیار کرنے کی ضرورت ہوگی جو CPU کا استعمال کرتا ہے اور اس میں وقت لگتا ہے۔ آرکائیو نوڈز ڈسک پر ان تک رسائی حاصل کرتے ہیں اور فوری طور پر جوابات فراہم کرتے ہیں۔ یہ بنیادی ڈھانچے کے کچھ حصوں کے لیے ایک مفید خصوصیت ہے، مثال کے طور پر:

  • سروس فراہم کرنے والے جیسے بلاک ایکسپلوررز
  • محققین
  • سیکیورٹی تجزیہ کار
  • ڈیپ (dapp) ڈیولپرز
  • آڈیٹنگ اور تعمیل

مختلف مفت سروسز بھی موجود ہیں جو تاریخی ڈیٹا تک رسائی کی اجازت دیتی ہیں۔ چونکہ آرکائیو نوڈ چلانا زیادہ مشکل ہے، اس لیے یہ رسائی زیادہ تر محدود ہوتی ہے اور صرف کبھی کبھار رسائی کے لیے کام کرتی ہے۔ اگر آپ کے پروجیکٹ کو تاریخی ڈیٹا تک مسلسل رسائی کی ضرورت ہے، تو آپ کو خود ایک چلانے پر غور کرنا چاہیے۔

نفاذ اور استعمال

اس تناظر میں آرکائیو نوڈ کا مطلب وہ ڈیٹا ہے جو صارف کا سامنا کرنے والے عمل درآمد کی تہہ کے کلائنٹس کے ذریعے فراہم کیا جاتا ہے کیونکہ وہ اسٹیٹ ڈیٹا بیس کو سنبھالتے ہیں اور جے سن آر پی سی اینڈ پوائنٹس فراہم کرتے ہیں۔ کنفیگریشن کے اختیارات، ہم آہنگی کا وقت اور ڈیٹا بیس کا سائز کلائنٹ کے لحاظ سے مختلف ہو سکتا ہے۔ تفصیلات کے لیے، براہ کرم اپنے کلائنٹ کی فراہم کردہ دستاویزات سے رجوع کریں۔

اپنا آرکائیو نوڈ شروع کرنے سے پہلے، کلائنٹس کے درمیان فرق اور خاص طور پر مختلف ہارڈویئر کی ضروریات کے بارے میں جانیں۔ زیادہ تر کلائنٹس اس خصوصیت کے لیے بہتر نہیں بنائے گئے ہیں اور ان کے آرکائیوز کو 12TB سے زیادہ جگہ درکار ہوتی ہے۔ اس کے برعکس، ایریگون جیسے نفاذ اسی ڈیٹا کو 3TB سے کم میں محفوظ کر سکتے ہیں جو انہیں آرکائیو نوڈ چلانے کا سب سے مؤثر طریقہ بناتا ہے۔

نوڈ چلانے کے لیے عمومی تجاویز کے علاوہ، ایک آرکائیو نوڈ ہارڈویئر اور دیکھ بھال کے حوالے سے زیادہ تقاضا کر سکتا ہے۔ ایریگون کی اہم خصوصیات (opens in a new tab) کو مدنظر رکھتے ہوئے، سب سے عملی طریقہ ایریگون کلائنٹ کے نفاذ کا استعمال کرنا ہے۔

ہارڈویئر

ہمیشہ کلائنٹ کی دستاویزات میں دیے گئے موڈ کے لیے ہارڈویئر کی ضروریات کی تصدیق کرنا یقینی بنائیں۔ آرکائیو نوڈز کے لیے سب سے بڑی ضرورت ڈسک کی جگہ ہے۔ کلائنٹ پر منحصر ہے، یہ 3TB سے 12TB تک مختلف ہوتی ہے۔ یہاں تک کہ اگر HDD کو بڑی مقدار میں ڈیٹا کے لیے ایک بہتر حل سمجھا جا سکتا ہے، اسے ہم آہنگ کرنے اور چین کے ہیڈ کو مسلسل اپ ڈیٹ کرنے کے لیے SSD ڈرائیوز کی ضرورت ہوگی۔ SATA (opens in a new tab) ڈرائیوز کافی اچھی ہیں لیکن یہ قابل اعتماد معیار کی ہونی چاہئیں، کم از کم TLC (opens in a new tab)۔ ڈسکس کو ڈیسک ٹاپ کمپیوٹر یا کافی سلاٹس والے سرور میں لگایا جا سکتا ہے۔ اس طرح کے مخصوص آلات ہائی اپ ٹائم نوڈ چلانے کے لیے مثالی ہیں۔ اسے لیپ ٹاپ پر چلانا بالکل ممکن ہے لیکن پورٹیبلٹی اضافی قیمت پر آئے گی۔

تمام ڈیٹا کو ایک والیوم میں فٹ ہونے کی ضرورت ہے، اس لیے ڈسکس کو جوڑنا پڑتا ہے، مثلاً، RAID0 (opens in a new tab) یا LVM کے ساتھ۔ ZFS (opens in a new tab) کے استعمال پر غور کرنا بھی فائدہ مند ہو سکتا ہے کیونکہ یہ "Copy-on-write" کو سپورٹ کرتا ہے جو اس بات کو یقینی بناتا ہے کہ ڈیٹا بغیر کسی نچلی سطح کی خرابیوں کے ڈسک پر درست طریقے سے لکھا گیا ہے۔

حادثاتی ڈیٹا بیس کی خرابی کو روکنے میں مزید استحکام اور سیکیورٹی کے لیے، خاص طور پر پیشہ ورانہ سیٹ اپ میں، اگر آپ کا سسٹم اسے سپورٹ کرتا ہے تو ECC میموری (opens in a new tab) استعمال کرنے پر غور کریں۔ عام طور پر RAM کا سائز وہی رکھنے کا مشورہ دیا جاتا ہے جو مکمل نوڈ کے لیے ہوتا ہے لیکن زیادہ RAM ہم آہنگی کو تیز کرنے میں مدد کر سکتی ہے۔

ابتدائی ہم آہنگی کے دوران، آرکائیو موڈ میں کلائنٹس جینیسس کے بعد سے ہر ٹرانزیکشن پر عمل درآمد کریں گے۔ عمل درآمد کی رفتار زیادہ تر CPU تک محدود ہوتی ہے، اس لیے ایک تیز CPU ابتدائی ہم آہنگی کے وقت میں مدد کر سکتا ہے۔ ایک اوسط صارف کے کمپیوٹر پر، ابتدائی ہم آہنگی میں ایک مہینہ تک لگ سکتا ہے۔

مزید مطالعہ