در ششم ژوئن 2023 ، مین نت آپتیمیزم به بدراک ارتقا یافت و کل فرآیند انتقال به گونه ای طراحی شده است که قابل اثبات و قابل تکرار باشد.
https://blog.oplabs.co/reproduce-bedrock-migration/
در ششم ژوئن 2023 ، مین نت آپتیمیزم به بدراک ارتقا یافت. این هیچ شاهکار کوچکی نبود و نیاز به کمک اعضای جامعه در سراسر مجموعه داشت. انتقال در بستر موفقیت آمیز، شروع دوره جدیدی را برای آپتیمیزم نشان داد، که در آن می توانیم پیشرفت خود را به سمت عدم تمرکز فنی و دستیابی به دید سوپرچین تسریع کنیم.
برای جشن گرفتن مربوط به این انتقال چیزهای زیادی وجود دارد، اما یک موضوع خاص وجود دارد که تیم لابراتوری آپتیمیزم مفتخر است آن را به اشتراک بگذارد، و آن این است که کل فرآیند انتقال به گونه ای طراحی شده است که قابل اثبات و قابل تکرار باشد!
این پست وبلاگ، کاوری ست برای کاری که مهندسان لابراتوری آپتیمیزم، در روز انتقال انجام داده اند، و نحوه اجرای اسکریپت مهاجرت را به اشتراک گذاشته ایم و تأیید می نماید که این به روزرسانی همانطور که انتظار می رود انجام شده است.
این انتقال یا مهاجرت با استفاده از یک ابزار انتقال منبع باز و حسابرسی شده توسط تیم در آزمایشگاه های آپتیمیزم ساخته شد. این ابزار پایگاه داده شبکه بازمانده را در دست گرفت و آن را به فرمی سازگار با شبکه بدراک تبدیل کرد.
به طور عملی، این به روزرسانی شامل مهاجرت ای آر سی-20 اتر رپ شده به اتر بومی و پیکربندی قبل از استقرار است که به طور مشابه با پیش فرض های اتریوم عمل می کنند و برای عملیات ویژه مانند بریج یا مینینگ استفاده می شوند.
این تیم هفته ها تمرین کرد و آنچه را که باید در هر مرحله از فرآیند با جزئیات گرانول اتفاق بیفتد، ردیابی کند. هر مورد در چک لیست این انتقال به طور دقیق مشخص شده بود به طوری که اجرای آن نیاز به حداقل تلاش داشت. هدف این بود که این روند را به عنوان "خسته کننده" انجام دهیم تا از خطاهای اپراتور که ممکن است از فکر بیش از حد در مورد روند در حال حاضر باشد، جلوگیری کنیم. هر شبکه تمرین بر روی یک شَدو فورک کار می کرد، مشابه نحوه کار توسعه دهندگان اتریوم لایه یک که برای به روزرسانی مرج صورت گرفت.
فرآیند انتقال از طریق حسابرسی شرلوک که در آن مشکلات یافت شده، برطرف شد، صورت گرفت. یک نمونه از مسئله کشف شده از طریق فرآیند حسابرسی، اشکالی بود که می تواند به کاربر اجازه دهد تا با نوشتن حالت مخرب، به ذخیره سازی که به عنوان ورودی به ابزار انتقال استفاده می شود، از راه دور خارج شود. قبل از این مهاجرت یا انتقال، تیم از طریق کد به دنبال باقتن هرگونه مسائل اضافی بودند، مهم نبود که این موضوع چقدر جزئی باشد. در روز مهاجرت ، تلاش تیم غالب شد ، زیرا این به روزرسانی هموار و سکوئنسر در طی 3 ساعت بک آپ گرفته شد.
این روش به پرونده های ورودی خاصی نیاز داشت، که با همگام سازی یک گره بازمانده به دست آمد. پس از همگام سازی، گره بازمانده، پرونده های شاهد لازم را تولید کرد و ابزار انتقال از اینها برای تأیید اجرای ساده ی انتقال کامل استفاده کرد. با توجه به این تنظیم، هرکسی که بتواند یک گره بازمانده را همگام سازی کند می تواند از اسکریپت انتقال یا مهاجرت برای تأیید مهاجرت استفاده کند، همانطور که ما ادعا کردیم که این کار را انجام شده است!
ما برای یک لایه اضافه شده از شفافیت، خروجی انتقال را برای اثبات قابل تأیید، طراحی کردیم. خروجی، یک حالت روت منحصر به فرد مربوط به مهاجرت موفق را ایجاد می کند. هرگونه اختلاف یا تغییر در اطلاعات در هنگام مهاجرت، منجر به تولید ریشه با حالت نادرست می شود. بنابراین، حالت ریشه یا روت، به عنوان یک شهادت قابل اثبات برای وفاداری فرآیند انتقال عمل می کند.
کد لازم برای مهاجرت یا انتقال در مخزن آپتیمیزم-لجنسی موجود است. ما آن را جدا از مخزن مین نت اپتیمیزم نگه داشتیم تا به روزرسانی های موجود در پایگاه اصلی را ساده کنیم.
برای اجرای اسکریپت مهاجرت ، ابتدا به یک پرونده ویژه "شاهد" نیاز دارید که می تواند با همگام سازی با یک بازمانده
L2Geth
ایجاد شود. متغیر محیط
L2GETH_STATE_DUMP_PATH
باید برای این کار تنظیم شود.
پس از داشتن یک سیستم بازمانده ی کاملاً هماهنگ، می توانید دستور زیر را از بسته
Op-Chain-Ops
اجرا کنید. حتماً تمام آرگومان ها و متغیرهای محیط را با دقت مرور کنید، زیرا ممکن است بر اساس ستاپ سیستم شما، نیاز به تنظیم مجدد داشته باشند.
INPUT_DATA=$MONOREPO_BASE/packages/migration-data/data DEPLOY_CONFIG=$MONOREPO_BASE/packages/contracts-bedrock/deploy-config/mainnet.json DEPLOYMENTS=$MONOREPO_BASE/packages/contracts/deployments,$MONOREPO_BASE/packages/contracts-periphery/deployments,$MONOREPO_BASE/packages/contracts-bedrock/deployments DB_PATH=/mnt/geth
go run cmd/op-migrate/main.go \ --l1-rpc-url "$L1_RPC" \ --ovm-addresses $INPUT_DATA/ovm-addresses.json \ --ovm-allowances $INPUT_DATA/ovm-allowances.json \ --ovm-messages $INPUT_DATA/ovm-messages.json \ --witness-file $DB_PATH/l2geth-state \ --db-path $DB_PATH \\ --deploy-config $DEPLOY_CONFIG \ --network mainnet \ --hardhat-deployments $DEPLOYMENTS \ --rollup-config-out=$MONOREPO_BASE/rollup.json
پرونده شاهد شامل اطلاعاتی در مورد کلیه حسابهای اتر است تا بتواند از نمایندگی ایی-آر-سی 20 آن به قالب بومی منتقل شود. همچنین اطلاعاتی در مورد حساب هایی دارد که برداشت های خود را آغاز می کند تا اطمینان حاصل شود که این معاملات می توانند یکپارچه به سیستم برداشت جدید منتقل شوند. به این ترتیب ، کاربران پس از بروزرسانی شبکه مجبور به شروع مجدد خود نیستند.
اگر قادر به همگام سازی کامل یک سیستم بازمانده نیستید، باز هم باید بتوانید پایگاه داده را در بلوک یا درست قبل یا درست پس از مهاجرت با استفاده از دستور زیر بارگیری کنید:
wget https://datadirs.optimism.io/mainnet-bedrock.tar.zst
شما می دانید که انتقال در حالتی که
op-geth
.را در پایگاه داده منتقل شود و با آخرین نقطه شبکه همگام شود به طور موفقیت امیز تکثیر شده است
.
💡 برای یک تجربه کاربر پسند تر در همگام سازی، ما از طریق این پی آر پیشرفت هایی را انجام داده ایم.
به روزرسانی بدراک، استیک آپتیمیزم را به یک سیستم انعطاف پذیر تر و مدولار تبدیل کرده است. مین نت اپتیمیزم هم اکنون می تواند از چندین مشتری و طرح های اثبات چندگانه پشتیبانی کند و هزینه داده ها به میزان قابل توجهی کاهش یافته است. بدراک همچنین پایه و اساس ویژن سوپرچین را پایه گذاری کرده است. این ما را برای آینده ای آماده می کند که چندین زنجیرها در آن ادغام شوند و ما را قادر می سازد تا رشد بی سابقه ای را در یک اکوسیستم هماهنگ بلاکچین قرار دهیم.
اگر می خواهید در این دیدگاه مشارکت کنید، با بررسی آنچه که توسط استیک آپتیمیزم امکان پذیر شده، شروع کنید .

