Wie kann ich aktive ETH-Wallets zählen und wie kann ich von ETH eingesetzte Smart Contracts zählen?

Ich mache eine Recherche und brauche folgende Informationen:

  1. Gesamtzahl der Wallet-Adressen
  2. Gesamtzahl der „aktiven“ Wallet-Adressen
  3. Gesamtzahl der bereitgestellten Smart Contracts (ist es eine Teilmenge der oben genannten?)

Bisher habe ich:

Insgesamt mehr als > 1999999 Konten gefunden (100.384.776.592 Ether)

und wenn ich auf den Link klicke, wird er erneut zu Ethereum weitergeleitet. Eindeutige Adressen Wachstumsraten-Diagramm Etherscan - Eindeutige Adressen was zeigt

37.503.645 eindeutige Adressen

Bedeutet das, dass es 37,5 Millionen Adressen gibt? beinhalten diese Smart Contracts?

  • Punkt Nr. 2: Ich habe diese Seite bitinfocharts.com gefunden und mich gefragt, wie die "aktive Brieftasche "definiert" ist ... Ich vermute, sie zählt die Ethereum-Adressen, die eine tägliche Transaktion haben ... keine Ideen?

  • Punkt Nr. 3: Die einzige Quelle, die ich habe, ist Etherscan ... Ich bin verwirrt, ob die eindeutigen Adressen Smart Contracts enthalten und wie die Gesamtzahl der Smart Contracts geschätzt/berechnet wird (ich kann nur die "verifizierten" Etherscan - Verified Contracts finden

Ich habe diesen Beitrag tatsächlich gefunden ethereum.stackexchange.com/questions/8648/… aber die vorgeschlagenen Links für Konten und Smart Contracts liefern das gleiche Ergebnis ... Ideen?

Jede Hilfe/Ressource wäre sehr willkommen.

konnten Sie die Antwort finden. Ich bin auch auf der Suche, es herauszufinden.

Antworten (1)

Wenn Sie dies gründlich tun möchten und sich nicht auf die Mehrdeutigkeit von Etherscan verlassen möchten, müssen Sie einen vollständigen Knoten oder Infura verwenden, um Informationen über die Konten und Verträge zu erhalten, die auf Ethereum existieren.

Definitionen

Zunächst müssen wir uns die Frage stellen: Was sind überhaupt ETH-Konten? Ich kann auf meinem Computer ein zufälliges öffentliches/privates Schlüsselpaar generieren und die zugehörige ETH-Adresse berechnen – in gewissem Sinne ist die „Gesamtzahl der Wallet-Adressen“ also der gesamte Raum möglicher 40-Hex-Zeichenfolgen (16^40 ). Ich denke, eine vernünftigere Definition ist "ETH-Adressen, die in einer Transaktion aufgetaucht sind". Also haben wir:

  1. Gesamtzahl der Wallet-Adressen : "ETH-Adressen, die in einer Transaktion aufgetaucht sind."
  2. Gesamtzahl der "aktiven" Wallet-Adressen : Dies ist willkürlich, aber sagen wir "ETH-Adressen, die kürzlich Ether gesendet haben".
  3. Gesamtzahl der bereitgestellten Smart Contracts : Diese werden über Transaktionen erstellt, die kein „An“-Feld haben. Wenn Sie eine Adresse haben, können Sie anhand der hier beschriebenen Methode feststellen, ob es sich um einen Vertrag handelt . Wenn Sie einfach nur zählen möchten, können Sie die Anzahl der Transaktionen dieses Formulars suchen. Es handelt sich also nicht um eine strenge Teilmenge unserer obigen Definition von "Wallet-Adressen", aber es kann ziemlich einfach berechnet werden.

Vorgeschlagene Strategie

Wenn Sie Zugriff auf einen vollständigen Knoten haben (entweder Ihren eigenen oder Infura), können Sie mit einem Skript relativ einfach tun, was Sie möchten (obwohl es eine Weile dauern kann). Ich werde die Schritte hier darlegen:

  1. Beginnen Sie mit der Initialisierung einer Reihe von Adressen und eines Zählers für Verträge
  2. Beginnen Sie bei 0 (Genesis) und gehen Sie bis zum Chainhead-Block, führen Sie den folgenden RPC-Aufruf durch. Dadurch werden Daten für diesen Block zurückgegeben, einschließlich der Transaktionen, die er hatte.curl -X POST --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["<block height in hex>", true],"id":1}'
  3. Notieren Sie sich für jede Transaktion in der obigen Ausgabe (output.result.transactions) sowohl die "to"- als auch die "from"-Adresse in der Ausgabe. Wenn Sie es noch nie gesehen haben, fügen Sie es dem Adresssatz hinzu. Wenn es kein "to"-Feld hat, erhöhe den Vertragszähler. Sobald Sie über einer "Schwellenwert"-Blockhöhe sind, die Sie als "aktiv" deklarieren, markieren Sie die Adresse als "aktiv".
  4. Die Größe des Adresssatzes gibt Ihre erste Antwort, die Größe des aktiven Adresssatzes Ihre zweite Antwort und der Vertragszähler Ihre dritte Antwort.