Échange de crypto Échange de crypto
Ctrl+D Échange de crypto
ads
Domicile > FTX > Info

Présentation : Client Turbo-Geth : améliorations de la base de données

Author:

Time:

Il y a quelques mois, j'ai rejoint l'équipe Turbo-Geth et j'ai commencé à contribuer activement au code du client Turbo-Geth. Le client Turbo-Geth est une version alternative du client Geth (actuellement encore en développement), qui vise à être plus rapide et plus efficace que le client d'origine. Ensuite, l'approche de Turbo-Geth pour atteindre cet objectif comprend les éléments suivants :

Optimiser davantage la structure de la base de données

Réduisez les opérations de lecture et d'écriture dans la base de données lorsqu'une interaction avec les données d'état est requise

Optimiser l'efficacité des opérations de l'arbre d'état (il peut être nécessaire de modifier la structure de données de l'arbre d'état existant)

Dans cet article, je soulignerai les différences entre les bases de données Turbo-Geth et Geth. Les principales différences sont :

Base de données différente (utilisant Bolt au lieu de LevelDB)

Segmenter la base de données par bucket

Le nombre total d'adresses détenues par Reddit Collectible Avatar a dépassé les 4 millions : Jinse Finance a rapporté que selon les données de Dune Analytics, le nombre total d'adresses détenues par Reddit Collectible Avatar dans la série NFT émise par Reddit sur le réseau Polygon a dépassé 4 millions, atteignant jusqu'à présent 4 020 437. Il y a 3 746 459 adresses, le nombre total d'avatars à collectionner Reddit est de 4 741 353 et la valeur totale actuelle de la transaction est de 11 742 104 $. [2022/12/8 21:31:35]

Ensuite, le contenu principal de cet article est lié à ces deux points.

Bolt et LevelDB sont en fait très similaires, les deux sont un stockage "clé-valeur" (clé-valeur), et l'objectif de conception est de fournir une base de données simple, rapide et fiable pour les projets qui ne nécessitent pas un serveur de base de données complet. La base de données choisie par Geth est LevelDB, tandis que celle de Turbo-Geth est Bolt.

Binance a ajouté un message d'avertissement à la page de transaction LUNA, indiquant que la Corée du Sud a émis un mandat d'arrêt pour Terra 2.0 Lianchuang : Le 21 septembre, Binance a ajouté un message d'avertissement à la page de transaction LUNA, qui disait : « Attention : Le tribunal sud-coréen a émis un mandat d'arrêt en septembre 2022. Un mandat d'arrêt a été émis contre le co-fondateur de Terra 2.0 (LUNA) le 14 avril. Veuillez faire attention aux risques et commercer avec prudence. Binance n'assume aucune responsabilité en matière de garantie, d'indemnisation, etc. pour toute opération.

En outre, Binance a joint des avertissements de risque sur les pages de négociation de l'USTC et de la LUNC, indiquant que les jetons peuvent subir de fortes fluctuations de prix et qu'il convient de faire preuve de prudence lors de la négociation.

Selon des nouvelles précédentes, les procureurs sud-coréens ont émis des mandats d'arrêt contre cinq personnes, dont Do Kwon, le fondateur de Terra, et ont demandé au ministère des Affaires étrangères d'annuler de force les passeports de Do Kwon et d'autres, et ont demandé à Interpol d'émettre une notice rouge. pour Do Kwon, le fondateur de Terra. [2022/9/21 7:10:56]

Mais il existe également une différence essentielle entre les deux : la manière dont les données sont organisées. LevelDB est une base de données LSM (Log-Structured Merged-Tree), tandis que Bolt utilise des compartiments, et chaque compartiment contient une structure B+-Tree. Nous pouvons considérer un bucket comme "une petite base de données dans une grande base de données".

Fondation Ethereum : Il peut y avoir une erreur d'une semaine dans la date estimée de la fusion du réseau principal, après quoi la réunion procédera aux derniers ajustements : Le 12 août, la Fondation Ethereum a publié un document indiquant que les paramètres de la fusion du réseau principal ont été atteints dans un conférence téléphonique communautaire , mais TTD est basé sur la difficulté de la preuve de travail, il est donc difficile d'estimer avec précision. La date cible est le 15 septembre 2022, mais cette estimation peut même avoir une erreur d'une semaine. Lors de la conférence téléphonique des développeurs de base suivante, le 18 août, les derniers ajustements seront effectués pour confirmer le TTD ou effectuer les derniers ajustements pour mieux respecter la date cible.

En outre, les événements importants incluent la réduction de la version du logiciel du réseau principal par les équipes EL et CL le 18 août ; les paramètres finaux et les ressources client publiées le 23 août ; la mise à niveau du réseau principal de Bellatrix le 6 septembre. [2022/8/12 12:21:55]

La principale différence entre les deux est donc qu'une base de données LSM est optimisée pour les ajouts lourds et l'analyse de plage, et non pour les performances de lecture aléatoire ; afin d'assurer la cohérence, elle n'autorise pas les opérations de lecture et d'écriture simultanées dans la base de données. Toujours pour des considérations de performances, cette base de données n'implémente pas l'atomicité. Bolt, d'autre part, a une vitesse d'insertion lente, mais une vitesse de lecture aléatoire rapide, atteint l'atomicité et peut lire et écrire dans la base de données en même temps.

La communauté NEAR a lancé une proposition visant à réduire le prix minimum du gaz sur le réseau NEAR : le 18 mai, des membres de la communauté NEAR ont lancé une proposition visant à réduire le prix minimum du gaz sur le réseau NEAR. Le prix minimum actuel du gaz de NEAR est de 0,0001NEAR. /Tgaz. [2022/5/18 3:25:04]

Expliquons un peu plus l'atomicité :

Atomicité : « atomique » signifie indivisible. Supposons maintenant que nous voulions stocker plusieurs valeurs de hachage pour une base de données et que l'une d'entre elles échoue lors de l'insertion dans la base de données. Si toutes les opérations de valeur de hachage sont révoquées en même temps, cela s'appelle l'atomicité. Turbo-Geth a une telle fonctionnalité que cette opération ne peut réussir que si toutes les opérations d'insertion de valeurs de hachage réussissent. Une base de données qui n'implémente pas l'atomicité (telle que LevelDB) signifie qu'une solution de contournement doit être utilisée pour insérer en toute sécurité des données dans la base de données. En d'autres termes, à ce stade, nous pensons que Bolt est meilleur car il est plus sûr lors de l'ajout de données à la base de données.

Comme mentionné précédemment, Turbo-Geth est divisé en plusieurs compartiments. Chaque compartiment est un petit élément de données dans une grande base de données, chacun contenant une structure B+-Tree.

Voici la répartition de la base de données Turbo-Geth à la hauteur de bloc 9 346 492 :

- Partitionnement des données du noeud Archive de Turbo-Geth (hauteur de bloc 9 346 492) -

Taille de l'archive du client Geth (hauteur de bloc 9346492) : 3,7 Taille de l'archive du client TBParity (hauteur de bloc 9346492) : 3,6 Taille de l'archive du client TBTurbo-Geth (hauteur de bloc 9346492) : 652,62 Go Chaque partie est stockée dans un compartiment. Une brève explication des parties principales est la suivante :

Préimage : la gestion des valeurs de hachage et des adresses, et l'association entre les valeurs de hachage des emplacements de stockage et les emplacements de stockage

reçu (reçu): reçu de transaction

Historique du Stockage : l'historique des évolutions du stockage contractuel

Historique des comptes : modifier l'historique des comptes

En-tête de bloc : l'en-tête de bloc de chaque bloc

Corps de bloc : le corps de bloc de chaque bloc

Stockage sous contrat : il s'agit du contenu du stockage sous contrat

ChangeSet : historique des modifications de la base de données

Compte : Compte

Le but d'utiliser autant de compartiments est de garder la hauteur de chaque arbre B+ qui constitue une grande base de données d'être trop élevée, de sorte que l'interaction avec la base de données sera plus facile. En d'autres termes, il s'agit d'utiliser plusieurs compartiments pour améliorer les performances de lecture de la base de données.

Après être passé à Bolt, Turbo-Geth a eu quelques problèmes avec les clés aléatoires comme les hachages de transaction, car Bolt trie ces clés avant de valider les données, et parce que ces hachages sont aléatoires, et le nombre est grand, donc un grand nombre d'exigences de tri sont générées, ce qui conduit alors à un grand nombre d'amplification d'écriture (amplification d'écriture, la quantité réelle de données physiques écrites est plusieurs fois la quantité de données écrites). Et BadgerDB utilise le mode log-structured-merge (LSM), qui semble être un meilleur choix. Ce problème est toujours à l'étude, cependant, nous avons mis en place une solution de contournement pour résoudre ce problème.

Voici un graphique montrant les performances globales de BadgerDB et BoltDB (merci à Alexey Akhunov pour le graphique) :

Le client Turbo-Geth optimise les performances d'Ethereum en :

Utilisez plusieurs compartiments pour récupérer plus rapidement certaines données

Utiliser B+-Tree au lieu de LSM

Si vous souhaitez nous faire un don, vous pouvez le faire via Gitcoin.

Tags:

FTX
Golden Observation | Bitcoin sera émis pour franchir 21 millions? Ne soyez plus dupe

Certaines personnes pensent que Bitcoin sera émis pour dépasser 21 millions ! Trustnode a rapporté le 23 février que Peter Todd, un développeur Bitcoin et défenseur du bloc 1M.

Golden Observation | Pourquoi le montant total de la destruction de monnaie cryptée augmente-t-il?

La performance du marché de la crypto-monnaie au début de l'année a été exceptionnelle.La devise de réduction de moitié et la devise de plate-forme ont fait des efforts l'une après l'autre.

Golden Outpost 丨 Pourquoi le département du Trésor américain adopte-t-il une position ferme sur les crypto-monnaies ?

Golden Financial Blockchain, 4 mars   Le département américain du Trésor a tenu une réunion hier pour discuter d'une série de défis auxquels est confrontée la réglementation de l'industrie des actifs numériques.

Présentation : Client Turbo-Geth : améliorations de la base de données

Il y a quelques mois, j'ai rejoint l'équipe Turbo-Geth et j'ai commencé à contribuer activement au code du client Turbo-Geth. Le client Turbo-Geth est une version alternative du client Geth (actuellement encore en dév.

BTC est tombé en dessous du support de la moyenne mobile hebdomadaire et le rappel s'est poursuivi.

Les données de transaction de contrat à l'échelle du réseau BTC sur 24 heures montrent que plusieurs parties dominent : selon les données de Contract Emperor, 52.

Contract Weekly | Aperçu des données des contrats à terme Bakkt de cette semaine (24 février-28 février)

Golden Weekly est une colonne récapitulative hebdomadaire de l'industrie de la blockchain lancée par Golden Finance, couvrant les principales nouvelles, les données du marché et des contrats.

Travaillant à domicile pendant 4 ans, il a développé le pool de transactions Ethereum et plusieurs fonctions principales

Touchées par l'épidémie, de nombreuses personnes continuent de travailler à domicile. Cela peut être une nouvelle expérience pour tout le monde, mais pour les employés de Parity.

ads