Ich möchte die Struktur von Speichertrie und seine Datenstruktur in leveldb wissen, und ich lese solidity storage .
Ich habe noch Fragen?
Im gelben Papier heißt es, dass der Speicherstamm eine Zuordnung zwischen 256-Bit-Ganzzahl und 256-Bit-Ganzzahl ist. Wird dieses Schlüsselwertpaar in leveldb gespeichert?
Wenn wir einen Wert V im Speicherversuch eines Vertrags speichern wollen. Nach solidity storage zähle ich den Schlüssel K für V und füge V mit K in den Speichertrie ein (so wie K die Kontoadresse und V der Kontostatus im Statustrie ist). Aktualisieren Sie dann den Speicherstamm wie bei State Trie. Habe ich recht?
Wenn Frage 1 richtig ist, was ist der wahre Schlüssel, den wir verwenden, um V in leveldb zu speichern, ist es K oder K und etwas nach SHA3? Wie können wir den übergeordneten Hash einiger Blattwertknoten erhalten, verwenden Sie einfach SHA3 (Wert1, Wert2, ...)?
Ich bin kein Experte, aber lassen Sie mich mein Verständnis teilen. Überprüfen Sie auch diese Frage: Ethereum Merkle Patricia Trie and Hashes
keccak256(k . p)
)Ich empfehle auch einen Blick auf die folgenden Links:
Referenzen: https://easythereentropy.wordpress.com/2014/06/04/understanding-the-ethereum-trie/ https://wanderer.github.io/ethereum/nodejs/code/2014/05/21/using- ethereums-tries-with-node/ https://github.com/medvedev1088/ethereum-merkle-patricia-trie-example https://medium.com/cybermiles/diving-into-ethereums-world-state-c893102030ed