
Source: geek web3
résumé:
DansDepuis l’EIP-4844, le débit de données et la pression de stockage du réseau Ethereum ont augmenté, et la demande croissante de stockage a apporté d’énormes défis aux nœuds Ethereum.Afin de réduire la pression de stockage, certains clients Ethereum suppriment les données historiques stockées dans la région, et la cohérence des différents nœuds dans le comportement de stockage est progressivement désintégrée.
DansAfin de s’assurer que tous les clients Ethereum peuvent parvenir à un accord sur le comportement,EIP-4444etEIP-4844 a effectué un comportement de coupe des données historiquestandardisation, Deviendra la norme des nœuds Ethereum à l’avenir.
DansPar conséquent, si les données historiques doivent être remplacées pour restaurer le dernier statut Layer1 ou Layer2, cela dépend du protocole centralisé et Ethereum en dehors de l’accord Ethereum, ce qui incite les gens à explorer des solutions de stockage plus décentralisées et cohérentes à Ethereum et à résoudre la solution à Le plan Ethereum.
· Réseau de portail EthereumIl s’agit d’un réseau P2P léger et décentralisé, qui convient à tous les types de données Ethereum, y compris des données historiques.Il est conçu pour des ressources limitées et fournit des services Ethereum JSON-RPC.Le réseau historique et le réseau de chaîne de lettres sont presque prêts.
· Ethstorage est un réseau de stockage modulaire incitatif pour les données BLOBS EIP-4844EssenceAfin de stocker Blob, les utilisateurs peuvent appeler le contrat de stockage sur L1, utiliser ETH comme frais de stockage et enregistrer la valeur de hachage de Blob sur la chaîne.Au fil du temps, le coût de stockage sera progressivement distribué au fournisseur de services de stockage fourni par le certificat de stockage BLOB sous la chaîne.
DansÀ l’heure actuelle, Ethstorage Test Network est en ligne sur les tests Ethereum Sepolia en ligne, et de nombreux participants à la communauté ont prouvé avec succès leurs conditions de stockage locales.Les plans futurs comprennent le développement d’un réseau d’État Ethereum décentralisé, la réalisation du certificat de stockage pour les données de taille dynamique et peuvent accéder directement au réseau d’ethstorage à partir du navigateur de manière décentralisée.
Merci: Merci à Piper Merriam de la Fondation Ethereum, Karthik Raju à Polychain et les commentaires de Qiang Zhu d’Ethstorage sur cet article.
arrière-plan:
Le 22 octobre 2023, Péter Szilágyi, le chef du célèbre développement de Go-Ethereum (Geth), a exprimé ses préoccupations concernant les solutions de stockage de données Ethereum sur Twitter.Il a souligné que bien que le client Geth conserve toutes les données historiques, d’autres types de clients Ethereum tels que Nethermind et Besu peuvent être configurés pour supprimer certaines données historiques d’Ethereum (telles que les blocs historiques).Cela rendra le comportement de certains nœuds client incompatible avec d’autres clients, ce qui est injuste pour l’opérateur client GETH.Le sujet ci-dessus a immédiatement déclenché une discussion féroce sur le schéma de stockage de la feuille de route Ethereum.
Défi de magasin
Pourquoi Nethermind et Besu permettent aux opérateurs des clients de réduire les données historiques locales?Quel est le problème reflété dans cette décision?
De notre point de vue, il y a deux raisons principales:
-
Les exigences de stockage du client Ethereum deviennent de plus en plus élevéesEssence
-
Le stockage des données historiques d’Ethereum n’a aucune incitation ni punition dans un accordEssence
La première raison provient des besoins en hausse de stockage du client Ethereum.La carte de gâteau suivante montre la distribution de stockage d’un nouveau nœud Geth à 18 779 761 au 13 décembre 2023.
Comme indiqué sur la figure:
-
Taille totale du stockage: 925,39 Go
-
Données historiques (réception de blocs / transactions): environ 628,69 Go
-
Données de statut dans Merkle Patricia Trie (MPT): environ 269,74 Go
La deuxième raison est que le nœud Ethereum manque d’incitations ou de punitions dans l’accord qui stocke les blocs historiques.Bien que l’accord préconise toutes les données historiques des nœuds, il n’a pas fourni de mécanisme pour encourager le stockage ou la punition des violations.Les nœuds sont disposés à stocker et à fournir des autorisations d’extraction des données historiques, qui sont plus pour l’altruisme, et non en raison d’incitations.
Bien sûr, les opérateurs de clients peuvent supprimer ou modifier librement toutes les données historiques sans aucune peine.En revanche, le nœud de validateur doit maintenir et mettre à jour l’état complet localement pour empêcher la proposition / voter pour soutenir les blocs non valides par slash.
Par conséquent, lorsque les coûts de stockage deviennent un fardeau majeur sur les nœuds, il n’est pas surprenant que certains opérateurs de nœuds choisissent de supprimer les données historiques.En l’absence de données historiques, le client du nœud peut réduire considérablement le coût de stockage et réduire l’espace de stockage occupé d’environ 1 To à environ 300 Go.
Figure: Nethermine de la configuration du nœud sans blocs historiques – Économiser actuellement environ 460 Go de coûts de stockage
Avec la prochaine mise à niveau de l’utilisabilité des données Ethereum (DA), le défi de stockage augmentera.La route de l’expansion complète d’Ethereum DA a commencé avec EIP-4844, qui est améliorée par Dencun.Chaque blob est réglé sur 128KB.Afin d’élargir le débit de données, Ethereum prévoit d’utiliser le code de suppression de rose-solomon 1D, qui a initialement permis à 32 blob chaque bloc, et a atteint l’ampleur de 256 blobs par bloc lors d’une extension complète.
Si Ethereum DA fonctionne en pleine capacité (256 blob par bloc), le réseau Ethereum DA devrait recevoir environ 80 To de données DA en un an.Essence
EThereum Storage Road Tagt et ses conséquences
La poussée de la route Ethereum publiée par Vitalik a mentionné que Purge implique principalement du contenu de stockage.
La hausse des coûts de stockage a attiré l’attention des chercheurs écologiques d’Ethereum.Afin de résoudre ce problème et d’assurer la cohérence de tous les clients,Les chercheurs développent certaines propositions pour supprimer clairement les données historiques du client Ethereum.Les deux principales propositions sont:
DansEIP-4444: restreindre les données historiques dans le client d’exécution: Cette proposition permet aux clients de supprimer les blocs passés pendant plus d’un an.En supposant que la taille moyenne du bloc est de 100k, la limite supérieure des données de bloc historique est d’environ 250 Go (100K * (3600 * 24 * 365) / 12, en supposant le temps de bloc = 12 secondes).
DansEIP-4844: Transaction Faber Blob: Démarrez les données Blob pendant plus de 18 jours.Par rapport à EIP-4444, il s’agit d’une méthode plus radicale qui limite la taille du blob historique à environ 100 Go ((18 * 3600 * 24) * 128K * 6/12, en supposant le temps de bloc = 12 secondes).
Quelles sont les conséquences de la suppression des données historiques de tous les clients?Le principal problème est que le nouveau nœud ne peut pas se synchroniser avec le dernier état via le mode « Sync complet ».De même, nous devons adopter le dernier état de « SNC SNC » ou « Sync d’état » pour synchroniser directement le nœud Ethereum.Cette méthode a été implémentée dans Geth et utilisée comme synchronisation par défaut.
Les données historiques du réseau principal Ethereum des suppressions du nœud entraîneront également des problèmes avec Ethereum L2Autrement dit, le nœud de couche 2 nouvellement ajouté ne peut pas être synchronisé avec le dernier état actuel en rechargeant toutes les données historiques de la couche2.De plus, comme le nœud L1 ne maintient pas l’état L2, la méthode « Snap Sync » de L2 ne peut pas générer directement le dernier état de couche2 en fonction du bloc Layer1, qui viole les hypothèses importantes de l’héritage de la couche
La solution attendue s’appuiera sur le service de troisième partie du projet Infura / Etherscan / L2 pour stocker les données historiques de couche2 ou la copie de statut.
La question principale que nous voulons explorer est:
-
Pouvons-nous trouver de meilleures solutions décentralisées en stockage et en accès?
-
Est-il possible de trouver une solution qui donne des nœuds directement incitatifs et d’obtenir le réseau Ethereum lui-même (par exemple, compter sur le contrat L1)?
-
Sur tout cela, pouvons-nous fournir une solution d’incitation complètement décentralisée et directe à l’itinéraire de stockage Ethereum?
Solution
Solution 1: réseau de portail Ethereum
Le réseau de portail Ethereum est un réseau léger et décentralisé pour se connecter au protocole Ethereum.Il fournit ETH_CALL, ETH_GETBLOCKBYNUMBER et d’autres interfaces Ethereum JSON-RPC.Contrairement aux IPF qui autorisent tous les types de données et sont facilement affectés par les données indésirables, le réseau P2P du portail est spécialisé dans les données Ethereum, telles que les têtes de bloc historiques et les données de transaction, qui est réalisée via la technologie de vérification du client léger construit sur le réseau de portail.
Une caractéristique importante du réseau de portail est.Sa conception de fonctionnement légère et sa compatibilité avec un équipement limité.Il peut fonctionner sur des nœuds avec plusieurs mb d’espace de stockage et de faible mémoire, favorisant ainsi la décentralisation.Même les téléphones mobiles ou les appareils Raspberry PI peuvent rejoindre le réseau pour contribuer au problème Ethereum DA.
Le développement du réseau de portail est conforme au concept de la diversité du client Ethereum.Le réseau de référence et le réseau historique sont disponibles et le réseau d’état se développe activement.Il convient de noter que le réseau de portail ne fournit pas d’incitations directes pour le stockage des données.
Figure: Portal Network Rust Client (TRIN) avec des restrictions de stockage de 100 Mo (TRIN)
Solution 2: Réseau ethstorage
Ethstorage Network est un réseau de stockage d’incitation décentralisé qui est spécialement utilisé pour stocker le BLOB EIP-4844 et recevoir des fonds du projet ESP.
DansPetite confiance:Contrairement aux solutions existantes qui nécessitent des ponts de données centralisés, Ethstorage repose sur le modèle de confiance 1 / M des nœuds d’ethstorage qui n’ont pas besoin d’être autorisés par Ethereum.Le processus de stockage de BLOB est: les utilisateurs signent une transaction transportant BLOB, appelant la méthode Put (clé, BLOB_IDX) de contrats de stockage.Ensuite, le contrat de stockage enregistrera le hachage blob sur la chaîne.Après cela, le fournisseur de stockage téléchargera et stockera un blob directement à partir du réseau Ethereum DA pour contourner le pont de données.
DansLes coûts de stockage sont conformes aux incitations:Lorsque la méthode put () est appelée, la transaction doit envoyer des frais de stockage (via msg.value) dans le contrat.Une fois le nœud de stockage soumis et vérifié le certificat de stockage dans la chaîne réussie, les frais de stockage sont progressivement distribués au nœud de stockage au fil du temps.Par rapport au modèle de frais de stockage Ethereum proposant (proposant) existant, qui a des frais de stockage à un temps, au fil du temps, les frais de stockage versés aux frais de stockage suivent le modèle de flux de trésorerie de rabais – en supposant qu’au fil du temps, le stockage est le stockage , Storage, stockage, stockage, stockage, stockage, stockage, stockage, stockage, stockage, stockage, stockage.Cette innovation majeure introduite par Ethstorage est restée cohérente avec la contribution des nœuds de stockage dans les nœuds de stockage.
DansPreuve de stockage:La preuve du stockage est inspirée de l’échantillonnage de la disponibilité des données, et l’échantillonnage en ethstorage est un blob économisé pendant un certain temps.Afin de vérifier efficacement les échantillons de la chaîne, Ethstorage utilise pleinement les contrats intelligents et le dernier développement de la technologie Snark.
DansAucune opération:Tout nœud de stockage en ethstorage peut être payé tant que les données de stockage sont stockées et que le certificat de stockage est soumis régulièrement sur la chaîne.
Du point de vue de la blockchain modulaire, Ethstorage agit comme Ethereum Storage L2, mais il facture les frais de stockage plutôt que comme des frais de transaction.En indexant le hachage blob sur la chaîne, l’ethstorage est une couche de stockage modulaire Ethereum pour améliorer l’évolutivité de stockage et réduire les coûts (la cible est environ 1000 fois).
En termes de développement, Ethstorage a intégré EIP-4844 sur le réseau d’essais Ethereum Sepolia.Nous avons effectué un test de pression de l’ethstorage et du réseau d’essai d’Ethereum Sepolia, notamment en écrivant des centaines de GB de blob dans l’ethstorage.Plus de 100 participants à la communauté ont rejoint Internet et ont réussi à prouver leur stockage local.
Le principal avantage du réseau d’ethstorage est de fournir des incitations directes décentralisées au-dessus de Ethereum – en tant que connaissances actuelles, il s’agit d’une caractéristique pionnière.Cependant, les limites du réseau sont conçues pour le blob de taille fixe.
Ethstorage sur le réseau d’essais Ethereum Sepolia
Attendez-vous à l’avenir
Bien que le stockage d’Ethereum n’ait pas reçu l’attention principale, elle est d’une grande importance dans l’écosystème Ethereum.Avec la croissance rapide du réseau Ethereum, le stockage et l’accessibilité des données Ethereum sont devenus des défis clés.Le réseau de portail et le réseau d’ethstorage sont encore dans les premiers stades, et il existe de nombreuses orientations de développement à long terme importantes pour faire attention:
Network de données d’accès à faible retard de faible retard:Accéder au statut Ethereum d’une manière décentralisée et vérifiable est une tâche clé mais difficile.En utilisant le modèle de réseau DHT traditionnel, les informations de compte de requête nécessitent généralement plusieurs requêtes de nœuds de tri internes stockés dans différents nœuds P2P.Cela conduit souvent à une longue période de retard.Comment utiliser la structure de l’arbre d’État pour accélérer l’accès est la clé.Le réseau d’État que le réseau de portail est rapidement lancé est exactement le but de résoudre ce problème.
Intégration du réseau de portail et du réseau d’ethstorage:Le réseau de portail peut se développer de manière transparente pour prendre en charge les données BLOB.L’équipe ethstorage a partiellement implémenté cette fonctionnalité.La prochaine progression consiste à unifier ces réseaux et à fournir un réseau JSON-RPC décentralisé qui peut être programmé par la programmation via des contrats.En combinant la logique d’application dans le contrat avec le stockage Blob à grande échelle fourni par Ethstorage, nous pouvons activer de nouveaux DAPP sur Ethereum, tels que des sites Web Dynamic Decentralized (tels que Twitter / YouTube / Wikipedia décentralisé, etc.).
La visite décentralisée du navigateur:Semblable au protocole IPFS: // des données du réseau IPFS, l’industrie Web3 nécessite un protocole de visite natif pour Ethereum pour prendre en charge le navigateur d’accès directement pour publier l’énorme potentiel des données riches en Ethereum.Ces données couvrent un large éventail de domaines, des jetons et des soldes de compte aux images NFT et aux sites Web décentralisés dynamiques.Dans ce domaine, le protocole Web3: // défini par ERC-4804/6860 est actuellement en développement activement et promouvant pour atteindre cet objectif.
Certificat de stockage avancé de données de taille dynamique:En plus du blob fixe, l’exploration des certificats de stockage avancés est également impératif pour résoudre des données de taille dynamique (telles que les blocs historiques et même les objets d’état, etc.).Le développement d’algorithmes complexes peut améliorer l’adaptabilité de la solution de stockage.
Dans notre poursuite, nous espérons que grâce à ces efforts, nous contribuerons au tableau des itinéraires Ethereum et jeterons les bases de la solution de stockage décentralisée de l’écosystème Ethereum à l’avenir.