У цій статті ми розповімо про особливості обробки транзакцій у мережі L2.
Як швидко обробляється транзакція і коли вона стає незворотною?
Блоки надходять щосекунди, а попередні підтвердження Flashblock — приблизно кожні 200 мс. Ці ранні підтвердження ґрунтуються виключно на даних секвенсора. Ваша транзакція стає «безпечною», коли її пакет підтверджується в мережі Ethereum (у тестовій мережі це може зайняти до 30 хвилин), а «остаточно підтверджується» приблизно через 13 хвилин після цього. Лише стан остаточного підтвердження є незворотним.
Стадії підтвердження
- Preconfirmation – ваша транзакція включається до часткового блоку (Flashblock) за сигналом секвенсора. Приблизний час: близько 200 мс;
- Soft confirmation – Ваша транзакція включена до блоку L2 за сигналом секвенсора. Приблизний час: близько 1 секунди;
- Safe – пакет надіслано в Ethereum і підтверджено. Приблизний час: до 30 хвилин у тестовій мережі;
- Finalized – підтверджено остаточними даними Ethereum. На цьому етапі ваша транзакція вже не є незворотною. Приблизний час: близько 13 хвилин після надходження пакета в L1.
Перед кожним повним односекундним блоком секвенсор передає Flashblocks: часткові блоки, що публікуються приблизно кожні 200 мс, на основі технології rollup-boost від Flashbots.
Flashblock є попереднім підтвердженням — він повідомляє вам протягом приблизно 200 мс, що ваша транзакція включена до блоку та впорядкована і має такий самий рівень довіри, як і soft confirmation (слово секвенсора). Додатки, що зчитують потік Flashblocks, можуть відображати зворотний зв’язок за частки секунди. Цей потік відокремлений від загальнодоступного RPC. Щоб отримати до нього доступ, зверніться до команди Whitechain із запитом на URL-адресу WebSocket для Flashblocks.
Чи може реорганізація мережі Ethereum призвести до скасування транзакції?
Фіналізований блок L2 захищений так само, як і фіналізовані блоки Ethereum, тому реорганізація не призводить до його відкоту. «Неглибока» реорганізація може змістити «безпечну» головку: вузол заново виводить дані на основі канонічного ланцюжка Ethereum, і пакет даних, якого це стосується, надсилається заново. Блоки, що досягли фіналізації, не можуть бути скасовані.
Комісії
Whitechain налаштований у режимі користувацького токена газу OP Stack, де в якості нативного токена замість ETH використовується WBT. Будь-яка комісія в мережі сплачується в WBT, незалежно від того, яку операцію ви виконуєте, тому для відправлення будь-якої транзакції необхідно мати баланс у WBT. Використання WBT як газу означає, що один актив покриває як витрати на газ у ланцюжку, так і функціональність на біржі.
Комісія складається з двох частин: комісії за виконання на L2 (вартість виконання вашої транзакції в Whitechain) та комісії за передачу даних на L1 (вартість публікації транзакції в Ethereum).
При мінімальній базовій комісії в 5 gwei виконання простого переказу WBT обсягом 21 000 газу обходиться приблизно в 0,000105 WBT, що значно менше одного цента при приблизній ціні 50 доларів за WBT. Розгортання невеликого контракту обходиться приблизно в 0,0006 WBT, що становить близько трьох центів за того самого приблизного курсу.
Це поточні параметри комісій у тестовій мережі (Testnet). Остаточні параметри комісій у основній мережі (Mainnet) ще не встановлені й будуть опубліковані перед запуском Mainnet.
Зверніть увагу: у браузері може відображатися лише комісія за виконання транзакції на рівні L2. Комісія за передачу даних на рівні L1 за публікацію вашої транзакції в мережі Ethereum стягується додатково, і різниця між зазначеною комісією та сумою вашого балансу становить цю комісію. Обидві частини комісії стягуються в будь-якому випадку.
FAQ
Чи потрібно платити за транзакцію, яка завершилася невдало?
Так. Мережа виконує роботу до моменту збою, тому ви платите за використаний газ, і стягуються обидві частини комісії.
Наскільки передбачувані ціни на газ?
У поточній конфігурації тестової мережі (Testnet) базова комісія L2 відповідає EIP-1559 з еластичністю 6 і знаменником 250, тому вона змінюється не більше ніж на 2% за блок і ніколи не опускається нижче 5 gwei. Змінною частиною є комісія за передачу даних L1, яка прив’язана до базової комісії Ethereum та базової комісії за передачу BLOB-даних, тому ваша загальна сума комісії збільшується, коли мережа Ethereum перевантажена. Параметри основної мережі (Mainnet) будуть опубліковані перед запуском Mainnet.
Хто отримує комісії?
Протокол збирає комісії в мережеві сховища комісій: базова комісія, «пріоритетні чайові» та комісія за передачу даних L1 надходять до окремих сховищ. Комісія за передачу даних L1 компенсує витрати на відправку даних в Ethereum. Whitechain встановлює комісію оператора, що дорівнює нулю, тому ви сплачуєте лише вартість виконання на L2 та вартість розрахунку на L1 без будь-яких додаткових націнок.
Як правильно розрахувати комісію?
Ви можете скористатися наявними інструментами. Бібліотеки, такі як Viem, підтримують OP Stack і автоматично повертають комісію за передачу даних L1, причому вони продовжують працювати навіть після оновлень мережі. Якщо ви не можете використовувати бібліотеку, отримайте комісію за передачу даних L1 із попередньо розгорнутого модуля «GasPriceOracle» за адресою 0x420000000000000000000000000000000000000F, викликавши функцію «getL1Fee» з вашою серіалізованою транзакцією без підпису. Не реалізуйте формулу розрахунку комісії самостійно; вона змінюється під час оновлень.