Scroll Yükseltmeleri
Ekip Scroll’un yol haritası üzerinde ilerlemeye devam ettikçe, Scroll ağını yeni özellikler ve iyileştirmeler içerecek şekilde yükselteceğiz.
Aşağıdaki sözleşmeler, yükseltmeleri başlatmak ve iki haftalık zaman kilitleme süresinden sonra yükseltmeleri yürütmek için kullanılır:
Kontrat | Ağ | Adres |
---|---|---|
L1 Scroll Multisig | Ethereum | 0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe |
L1 Timelock | Ethereum | 0x1A658B88fD0a3c82fa1a0609fCDbD32e7dd4aB9C |
L2 Scroll Multisig | Scroll | 0xEfc9D1096fb65c832207E5e7F13C2D1102244dbe |
L2 Timelock | Scroll | 0xf6069DB81239E5194bb53f83aF564d282357bc99 |
Şubat 2024 Köprü Yükseltmesi
Genel Bakış
Köprüleme maliyetlerini azaltmak için köprü ve rollup sözleşme paketimizde çeşitli gas optimizasyonları uyguladık. Kullanılan optimizasyon teknikleri aşağıdakileri içerir:
- Artık bazı tamamlayıcı sözleşme adreslerini depolamak için depolama değişkenleri yerine sabitleri kullanacağız. Bu değerlerin (neredeyse) asla değişmemesi gerektiğinden bu mümkündür. Bu değişiklikle birkaç depolama yükleme işleminden tasarruf edebiliriz.
L1MessageQueue
daki içsel gas tahminini, kesin bir hesaplama yerine basit bir üst sınır kullanacak şekilde güncelledik. Çoğu köprü işlemi için iki sonuç benzer olacaktır ancak yeni uygulama önemli ölçüde daha ucuzdur.- Bir sözleşmeden diğerine çağrı maliyetlerinden tasarruf etmek için iki sözleşme
L1MessageQueue
veL2GasPriceOracle
yı birleştirdik.
Zaman çizelgesi
- Scroll Sepolia:
- Ağ Yükseltmesi: 19 Ocak 2024
- Scroll Ana Ağ:
- Yükseltme Başlatma: 7 Şubat 2024
- Zaman Kilidinin Tamamlanması ve Yükseltilmesi: 21 Şubat 2024
Teknik detaylar
Kod Değişiklikleri
- Köprü Maliyet Optimizasyonu
- Denetim Düzeltmeleri
- Önceden dağıtılan sürüm (‘ff380141a8cbcc214dc65f17ffa44faf4be646b6’ işlemini gerçekleştirin)
- Sürüm dağıtıldı (‘6030927680a92d0285c2c13e6bb27ed27d1f32d1’ işlemini gerçekleştirin)
Denetimler
Değişiklik Listesi
L1 sözleşmelerindeki değişiklikler:
ScrollChain
de,messageQueue
veverifier
ıimmutable
yaptık.L1ScrollMessenger
da,counterpart
,rollup
, vemessageQueue
yuimmutable
yaptık.- Tüm token ağ geçitlerinde,
counterpart
,router
, vemessenger
ıimmutable
yaptık. L1MessageQueue
veL2GasPriceOracle
ı tek birL1MessageQueueWithGasPriceOracle
sözleşmesinde birleştirdik (öncekiL1MessageQueue
ile aynı adrese konuşlandırıldı). Bu sözleşmede ayrıcamessenger
vescrollChain
ideğişmez
olarak değiştiriyoruz vecalculateIntrinsicGasFee
yi basitleştiriyoruz.
L2 sözleşmelerindeki değişiklikler:
L2ScrollMessenger
dacounterpart
ıimmutable
olacak şekilde değiştirdik.- Tüm token ağ geçitlerinde,
counterpart
,router
, vemessenger
ı toimmutable
olacak şekilde değiştirdik.
Etkilenen sözleşmeler:
- L1:
L1MessageQueue
,L2GasPriceOracle
,ScrollChain
,L1WETHGateway
,L1StandardERC20Gateway
,L1GatewayRouter
,L1ScrollMessenger
,L1CustomERC20Gateway
,L1ERC721Gateway
,L1ERC1155Gateway
. - L2:
L2ScrollMessenger
,L2WETHGateway
,L2StandardERC20Gateway
,L2GatewayRouter
,L2CustomERC20Gateway
,L2ERC721Gateway
,L2ERC1155Gateway
.
Uyumluluk
Sıralayıcı ve takipçi düğümleri (l2geth)
l2geth
düğümü çalıştıran operatörlerin yükseltme yapmasına gerek yoktur. Bu yükseltmedeki değişiklikler l2geth
i etkilemeyecektir.
Dapp’ler ve indexer’lar
Sözleşmeleri sorgulayan veya sözleşme arayüzlerine dayanan dapp’lerin ve indeksleyicilerin (ve benzer zincir dışı altyapının) çoğu durumda değiştirilmesine gerek yoktur. Sözleşme değişikliklerinin çoğunluğu dahili ve/veya geriye dönük olarak uyumludur.
Uygulamanız, Scroll’un L1’deki L2 gas fiyatını nasıl takip ettiğini izlemek için L2GasPriceOracle
’ye bağlıysa yükseltme blok numarasından izlemeye başlamanız gerekir L1MessageQueueWithGasPriceOracle
.
Orijinal gas fiyatı oracle sözleşmesi kullanımdan kaldırılacak: artık Scroll köprüsü tarafından güncellenmeyecek veya kullanılmayacaktır.
- Ethereum:
L2GasPriceOracle
:0x987e300fDfb06093859358522a79098848C33852
L1MessageQueueWithGasPriceOracle
:0x0d7E906BD9cAFa154b048cFa766Cc1E54E39AF9B
- Sepolia:
L2GasPriceOracle
:0x247969F4fad93a33d4826046bc3eAE0D36BdE548
L1MessageQueueWithGasPriceOracle
:0xF0B2293F5D834eAe920c6974D50957A1732de763