Ich suche nach dem Format der LDB-Dateien, um alle von meinem Konto erstellten Verträge abzurufen.
Ich habe in einem Beitrag auf reddit ( https://www.reddit.com/r/ethereum/comments/64hhp1/getting_block_data_from_ldb_files/ ) gelesen, dass ich vielleicht die Go-API verwenden möchte. Aber ich kann keine API finden, die nicht den RPC-Geth-Dienst durchläuft. Dies ist aus folgenden Gründen ein Problem: a) Der RPC-Dienst stellt diese Art von Dienst nicht bereit. b) Selbst wenn dies der Fall wäre, wäre es wahrscheinlich zu langsam.
Kann mir jemand auf eine vorhandene Lösung oder eine Go-API-Bibliothek verweisen oder mir erklären, welcher Teil von Geth auf die Kettendateien zugreift, um sie selbst entwickeln zu können?
Danke vielmals!!
...oder eine Go-API-Bibliothek oder um mir zu erklären, welcher Teil von Geth auf die Kettendateien zugreift, um es selbst entwickeln zu können?
Werfen Sie einen Blick auf Geth's database.go
, das Teil des ethdb
Pakets ist.
Überprüfen Sie für die tatsächlich bereitgestellte Schnittstelle interface.go
:
type Database interface {
Put(key []byte, value []byte) error
Get(key []byte) ([]byte, error)
Delete(key []byte) error
Close()
NewBatch() Batch
}
bench_test.go
könnte für Beispiele zur Verwendung der bereitgestellten Funktionen nützlich sein.
Wenn Sie eine Vorstellung davon haben möchten, was kopiert werden soll, finden Sie hier ein Tutorial zum Lesen der LDB-Daten mit Node.js. Natürlich müssten Sie die Ideen übertragen, aber es könnte helfen, zu verstehen, wie die Daten angeordnet sind.
Thomas JayRush