Ethereum, ймовірно, не надто турбується про «зворотну сумісність». Кілька років тому екосистема Polkadot також була повністю оновлена, і кілька важливих додатків DeFi перейшли від V1 і V2 до V3 і V4, і користувачі навряд чи мали велике сприйняття, не кажучи вже про те, що не було нічого, що не можна було б змінити...
У новій публікації в блозі V згадується система Apple Rosetta, яка точно відображає технічні проблеми, з якими зіткнеться основна мережа Ethereum, якщо вона захоче замінити EVM на інші віртуальні машини, подібно до того, як Apple відмовилася від Intel на користь власних чіпів M-серії на основі архітектури Arm.
Що в цьому складного?
Як ми вже говорили раніше, будь-який код, написаний на мові високого рівня, в кінцевому підсумку виконується на певному наборі інструкцій:
- Якщо процесор вашого комп'ютера Intel/AMD, то програма буде виконуватися відповідно до набору інструкцій x86
- У випадку з чіпами Apple M-серії програма в кінцевому підсумку буде працювати на центральному процесорі відповідно до набору інструкцій Arm
Тоді згадайте: як саме з'явилася програма?
Після того, як програміст пише код на мові високого рівня, йому необхідно за допомогою компілятора скомпілювати його в виконуваний файл «під певну операційну систему і певний набір інструкцій». При завантаженні програми ваші загальні "Linux-x86", "macOS-x86", "macOS-Arm" ілюструють це, а суфікс імені файлу представляє цільовий набір інструкцій (чому все ще є операційна система, наступного разу ви зможете про це поговорити)
Так Тіме, яка ціна? 😡
Коли Apple вирішила змінити ядро, готової скомпільованої версії Arm для великої кількості додатків не було, і в результаті програми macOS-x86 не могли працювати нативно на чіпі M.
Що робити? Знайдіть перекладача: саме тут на допомогу приходить компанія Rosetta.
Розетта, з Розетського каменю. Дивно те, що один і той же зміст був записаний на трьох стародавніх мовах, а давньогрецький став ключем до розшифровки єгипетських ієрогліфів. Таким же чином, Rosetta в основному виступає в якості «шару перекладу» між двома наборами команд, переводячи скомпільовану програму з набору інструкцій A в набір інструкцій B динамічно або все відразу. Таким чином, попередня програма також може безперебійно працювати на обладнанні, яке використовує новий набір команд. Завдяки «обчислювальній еквівалентності» перекладений вихід програми виходить точно таким же, але ціною деякої продуктивності.
Чому про Розетту вже рідко згадують? У міру дозрівання екосистеми M-chip розробники зазвичай складають Arm-версію програми при оновленні своїх додатків. Тільки те старе програмне забезпечення, яке є старим і не обслуговується, має покладатися на Rosetta.
Тому, якщо Ethereum дійсно хоче замінити EVM, йому в основному доведеться знову піти шляхом міграції Apple:
- Створіть власну "Розетту", щоб байт-код старого контракту міг продовжувати виконуватися на новій віртуальній машині
- Поступово, нехай новий контракт компілюється безпосередньо в рідну нову віртуальну машину
Це все ще довгий, довгий, довгий шлях від викладання шару сумісності до остаточного покриття всіх старих контрактів.
7,73 тис.
8
The content on this page is provided by third parties. Unless otherwise stated, OKX is not the author of the cited article(s) and does not claim any copyright in the materials. The content is provided for informational purposes only and does not represent the views of OKX. It is not intended to be an endorsement of any kind and should not be considered investment advice or a solicitation to buy or sell digital assets. To the extent generative AI is utilized to provide summaries or other information, such AI generated content may be inaccurate or inconsistent. Please read the linked article for more details and information. OKX is not responsible for content hosted on third party sites. Digital asset holdings, including stablecoins and NFTs, involve a high degree of risk and can fluctuate greatly. You should carefully consider whether trading or holding digital assets is suitable for you in light of your financial condition.