Aggiungi EIP: Schema di codifica run-length per calldata Per gli EVM L1 (ad esempio Tempo), l'efficienza del calldata è di nuovo importante. Gli L2 della OP stack comprimono automaticamente il calldata e restituiscono i risparmi agli utenti. Ma se sei un L1, dovrai ottimizzarlo. Spiegazione tecnica (per i fan di Fantasy Top): Nel calldata di Ethereum, i byte zero costano 1/4 rispetto ai byte non zero. Ma questo è un po' arbitrario, perché il calldata viene comunque trasmesso e memorizzato letteralmente senza nemmeno una semplice compressione RLE. Quel costo di 1/4 serve a incentivare la compressione, ma nessuno la sta effettivamente facendo. Se ci fosse anche una semplice RLE implementata, i byte zero costerebbero 1/100 del costo dei byte non zero. Quindi, per migliorare l'allineamento di Ethereum e favorire un incrocio, ho pensato, perché non creare un nuovo EIP per questo. Questo è anche per motivi pratici, perché non voglio cambiare gli standard dei contratti intelligenti esistenti come l'ERC-7821 per includere una modalità ottimizzata per il calldata solo per questo. Un'ottimizzazione a livello di transazione sarebbe migliore (perché l'intero calldata della transazione ne trarrebbe beneficio). Ci sono due modi per farlo: - Implementare uno schema di compressione RLE a livello di transazione (livello EIP). - Implementare precompilati per la compressione / decompressione del calldata (stile RIP). La LibZip.cdCompress di Solady è piuttosto efficiente, ma perché non trasformarla in precompilati? In ogni caso, dovremo prima formalizzare lo schema di codifica, e quindi la necessità di scrivere questo.