مقیاس عملیات گره در Coinbase | توسط Coinbase | ژوئن، 2022

مقیاس عملیات گره در Coinbase |  توسط Coinbase |  ژوئن، 2022


Tl;dr: این وبلاگ بینش هایی را در مورد چگونگی سرمایه گذاری Coinbase در ابزارها و فرآیندهای جدید برای مقیاس بندی عملیات گره خود به اشتراک می گذارد.

توسط مین چوی، مدیر ارشد مهندسی — قابلیت اطمینان رمزنگاری

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

یکی از سخت ترین جنبه های مدیریت گره، همگام شدن با تغییرات ثابت و گاهی غیرقابل پیش بینی نرم افزار گره است. توسعه‌دهندگان دارایی به طور مداوم نسخه‌های کد جدیدی را منتشر می‌کنند و برخی از بلاک‌چین‌ها، مانند Tezos، از یک مدل حاکمیتی روی زنجیره استفاده می‌کنند تا در مورد همه تغییرات پیشنهادی رأی دهند. یک مدل حاکمیت غیرمتمرکز مانند این، پیش‌بینی اینکه چه زمانی یک تغییر معرفی می‌شود و سیستم‌های داخلی ما را از قبل آماده می‌کند، دشوار می‌کند. نمونه ای از چنین سناریویی در هشدار مساری زیر نشان داده شده است.

داده های ارائه شده توسط https://messari.io/

عواقب عدم همراهی با این تغییرات می تواند برای مشتریان ما شدید باشد. آنها می توانند باعث تاخیرهای طولانی برای تعادل به روز رسانی ها در کیف پول های اصلی ما شوند یا پاداش های شرط بندی را کاهش دهند. برای کمک به به حداقل رساندن وقوع این حوادث، ما سرمایه گذاری ها را در زمینه های زیر متمرکز می کنیم:

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

نمودار زیر جریان داده در سطح بالایی را برای ARM نشان می دهد.

در اینجا یک مثال اخیر از نحوه استفاده از سرویس ARM برای پردازش ارتقاء گره برای Algorand آورده شده است.

  • بر 9 مه ساعت 12:44 بعد از ظهر به وقت محلی، الگوند نسخه 3.6.2 منتشر شد.
  • بر 9 مه در 1:13 بعد از ظهر به وقت محلی، سرویس ARM یک تیکت برای اطلاع مهندسین ما و پیگیری تغییرات دریافتی ثبت کرد.
  • بر 9 مه ساعت 1:43 بعد از ظهر به وقت محلی PDT، تغییر کد مورد نیاز به طور خودکار برای ساخت و استقرار ایجاد شد.
  • بر 9 مه ساعت 2:13 بعد از ظهرT، این تغییر به طور خودکار در تمام محیط های غیر تولیدی ما برای Algorand مستقر شد.
  • بر 9 مه ساعت 2:43 بعد از ظهر به وقت محلی، یک خطا در یکی از سه استقرار شناسایی شد و سرویس ARM به یک مهندس برای کمک به بررسی افزایش یافت.
  • بر 10 مه در 6:27 PMTمهندس مشکل استقرار را حل کرد و آزمایش اعتبارسنجی خدمات را در آماده سازی برای استقرار تولید آغاز کرد.

همانطور که در بالا در این گاهشماری رویداد مشاهده شد، سیستم کاملاً بدون لمس نیست، به این معنی که مهندسان هنوز به عنوان بخشی از فرآیند ارتقاء کلی مورد نیاز هستند. با این حال، سرویس ARM به ما این امکان را می دهد که صدها مورد از این عملیات ارتقا را به صورت موازی انجام دهیم، که باعث صرفه جویی در ساعت های بی شماری در زمان مهندسی می شود که می تواند دوباره در تلاش های تضمین کیفیت سرمایه گذاری شود.

این یک سرویس هماهنگ‌سازی است که برای اجرای تست‌های یکپارچه‌سازی، هم از طریق گردش‌های کاری موقت و هم از طریق فراخوان‌های API به سیستم‌های حیاتی در سراسر کوین‌بیس استفاده می‌شود. همانطور که از نام ممکن است نشان دهد، Test-Runner نتایج آزمایش را به دست می آورد و ذخیره می کند، آنها را با ابرداده جمع می کند و یک API را برای پرس و جو از نتایج نشان می دهد. با ساده‌سازی ایجاد این آزمایش‌ها و به اشتراک گذاشتن نتایج آزمون استاندارد در میان تیم‌های مهندسی‌مان، می‌توانیم فرآیندهای افزودن دارایی و واکنش به حادثه را تسریع کنیم. ما برای ساخت تست‌های یکپارچه‌سازی قابل استفاده مجدد ارزش زیادی قائل هستیم، زیرا آنها را پایه‌ای از رژیم نگهداری دارایی خود می‌دانیم.

نمودار زیر معماری سرویس سطح بالا را برای Test-Runner نشان می دهد.

در اینجا نیز چند نمونه اساسی از انواع تست‌هایی که برای Test-Runner در نظر گرفته شده‌اند، آورده شده است.

  1. انتقال موجودی در کوین بیس.
  2. واریز و برداشت در داخل و خارج از کوین بیس.
  3. جارو کردن و بازیابی عملیات بین کیف پول سرد و گرم.
  4. عملیات تجاری ساده (خرید/فروش).
  5. اعتبار سنجی روزتا

هر بار که یک گره ارتقا می یابد، این تست ها به طور خودکار از طریق خط لوله ادغام پیوسته (CI) ما آغاز می شوند و اعتباری واضح از موفقیت یا شکست را ارائه می دهند. این به مهندسان ما کمک می کند تا تصمیمات عملیاتی سریع و آگاهانه ای مانند بازگشت به نسخه قبلی باینری گره بگیرند.

همانطور که بلاک چین های بیشتری را به کاتالوگ پشتیبانی خود اضافه می کنیم، در تیم های مهندسی انعطاف پذیری که برای همکاری در اولویت های نوظهور طراحی شده اند، سرمایه گذاری می کنیم. غلاف های ما تقریباً 5 تا 7 مهندس اندازه دارند، از قابلیت اطمینان سایت و مهندسان نرم افزار تشکیل شده اند و فرصت هایی را برای تطبیق سریع با شرایط در حال تغییر بازار ارائه می دهند. به عنوان مثال، اخیراً ما یک پاد را تشکیل دادیم تا به طور خاص بر روی انتقال آتی اتریوم از یک بلاک چین اثبات کار (POW) به یک بلاک چین اثبات سهام (POS) تمرکز کنیم. ادغام یک تغییر بسیار بزرگ و بسیار پیچیده است که تقریباً به تمام سیستم‌های Coinbase نیاز دارد تا تنظیم شوند، اما همچنین صرفاً یک رویداد است که تشکیل یک تیم مهندسی دائمی را توجیه نمی‌کند.

ما همچنین در حال ایجاد غلاف های جدید برای تمرکز بر ERC-20 (Tokens) و ERC-721 (NFT) هستیم. به این ترتیب، می‌توانیم روی توسعه ویژگی‌هایی متمرکز شویم که از این استانداردها برای بهبود مشتریان خود استفاده می‌کنند. با تشکیل و انحلال مداوم غلاف ها به این روش، ما می توانیم صرفه جویی در مقیاس کوچکی را ایجاد کنیم که به سرعت نیازهای مشتری ما را برآورده کند. همچنین به مهندسان ما این انعطاف‌پذیری را می‌دهد تا بین حوزه‌های مورد علاقه فناوری انتخاب کنند و تخصص موضوعی ایجاد کنند که به آنها کمک می‌کند شغل خود را در Coinbase رشد دهند.

توسعه یک استراتژی جامع برای مدیریت گره یک تلاش چالش برانگیز است. در حالی که ما تصدیق می کنیم که استراتژی خودمان بدون نقص نیست، ما افتخار می کنیم که در لبه برش فناوری بلاک چین فعالیت می کنیم. هر روز، مهندسان کوین‌بیس به‌طور خستگی‌ناپذیر با مشارکت جامعه بزرگ‌تر ارزهای دیجیتال برای غلبه بر این چالش‌های عملیاتی کار می‌کنند. بنابراین اگر به ساختن سیستم مالی آینده علاقه مند هستید، فرصت های موجود در تیم Crypto Reliability (CREL) در Coinbase را بررسی کنید.