Was sind Vor- und Nachteile der txindex-Option?

Ich lese „Mastering Bitcoin“ von Andreas und habe diese Erklärung zur „txindex-Option“ gefunden.

Transaktionsdatenbankindex und txindex-Option

Standardmäßig erstellt Bitcoin Core eine Datenbank, die nur die Transaktionen enthält, die sich auf die Brieftasche des Benutzers beziehen. Wenn Sie mit Befehlen wie gettransaction auf jede Transaktion zugreifen möchten, müssen Sie Bitcoin Core so konfigurieren, dass ein vollständiger Transaktionsindex erstellt wird, was mit der Option txindex erreicht werden kann. Setzen Sie txindex=1 in der Bitcoin Core-Konfigurationsdatei

Ich bin mir nicht sicher, in welchen Situationen ich die Option aktivieren sollte. Nach meinem Verständnis kann ich festlegen, txindex=0ob ich bitcoindBitcoin nur als Übertragungstool verwende, damit ich Daten und Zeit sparen kann, um die Blockchain-Daten zu synchronisieren. Andernfalls, wenn ich beabsichtige, eine Blockexplore-Site wie Blockchain.info zu erstellen , muss ich festlegen txindex=1.

Ist mein Verständnis davon richtig?

Antworten (4)

Wenn Sie Bitcoin Core nur für Ihren persönlichen Gebrauch verwenden, benötigen Sie die -txindex=1Option wahrscheinlich nicht. Wenn Sie jedoch Bitcoin Core für die Entwicklung oder Blockchain-Analyse irgendeiner Art verwenden, müssen Sie festlegen -txindex=1, dass Transaktionsdaten für jede Transaktion in der Blockchain abgerufen werden können.

Der Nachteil ist nur, dass das Führen eines Index etwas langsamer ist, Ihnen aber Folgendes ermöglicht:

bitcoin-cli getrawtransaction aec2729f5e46750b310b6feadcf853098aa86df74f93322a701c29cd68b22568 

(wo aec2729f5e46750b310b6feadcf853098aa86df74f93322a701c29cd68b22568ist die ID einer Transaktion, die Ihre Brieftasche überhaupt nicht betrifft).

Auch wenn Sie Ihren Client eine Weile ausgeführt haben, aber noch keine txindex=1Einstellung vorgenommen haben, kann es einige Stunden dauern, den Index zu erstellen. Wenn Sie neu erstellen möchten, starten Sie mit der -reindexOption.

♦ Vielen Dank für Ihre prompte Antwort. Ich habe es verstanden. Ich hatte erwartet, dass ich viel Zeit sparen könnte, um die Blockchain zu synchronisieren, aber es wäre nicht wahr, soweit ich Ihre Antwort lese.
Führt das Setzen von txindex=1 oder reindex=1 zu einem neuen Download? Die Produktkette ist so groß, das möchte ich nach Möglichkeit vermeiden.
@SteveHibbert nein, es lädt die Daten nicht erneut herunter, da Sie die Daten bereits auf der Festplatte haben sollten, es verarbeitet nur die Daten, die Sie haben. Zeitaufwändig ist es trotzdem.
@StephenM347 Großartig, danke dafür, sehr verbunden.

Standardmäßig -txindex=0verwaltet Bitcoin Core außer diesen keine Daten auf Transaktionsebene

  • im Mempool oder Relay-Set
  • relevant für Adressen in Ihrer Brieftasche
  • relevant für Ihre "Nur ansehen" -Adressen

Wenn „txindex“ auf „true“ (1) gesetzt ist, verwaltet Bitcoin Core einen Index aller Transaktionen, die jemals stattgefunden haben, den Sie mit der Remote Procedure Call (RPC)-Methode getrawtransactionoder dem RESTful-API-Aufruf get-tx abfragen können .

Mehrere beliebte Wallet- und „Block Explorer“-Programme erfordern -txindex=1. Beachten Sie, dass txindexdas Verhalten der Peer-to-Peer-Schnittstelle von Bitcoin nicht geändert wird.

Komisch, weil ich das gegoogelt und eine Antwort gelesen habe, die absolut falsch war. Zu meiner Überraschung sah ich am Ende meinen eigenen Namen! Ich habe meine Antwort gerade umgeschrieben.
Bitcoin Core verwaltet Daten auf Transaktionsebene für alle nicht ausgegebenen Daten, unabhängig davon, ob die Adresse Ihnen gehört oder nicht. Andernfalls können eingehende Transaktionen nicht validiert werden.
@kaykurokawa: Ich weiß nicht genau, was im „Relay-Set“ enthalten ist, aber das ist die Terminologie, die von der Entwicklerdokumentation auf bitcoin.org konsequent verwendet wird. Natürlich muss es nicht ausgegebene Ausgaben enthalten, aber was ist sonst noch drin?
ah, verstehe, diesen Begriff kannte ich noch nicht.
@chrisamesen Das ist wirklich cool - Mir ist nicht aufgefallen, dass die Korrektur von Wiki-Informationen auch mit Ihrem vergangenen und zukünftigen Selbst funktioniert.

Außerdem war früher txindex=1 erforderlich, wenn Sie LND (Lightning Network Daemon) verwenden wollten. Siehe https://github.com/lightningnetwork/lnd/pull/751

@Janus: Ich habe Ihre Bearbeitung abgelehnt, da sie den Inhalt der Antwort vollständig ändert. Sie sollten lieber eine neue Antwort hinzufügen, um ElectrumX zu erwähnen.

Zusätzlich zu den anderen Antworten txindex=1ist erforderlich, wenn Sie Ihre Wallet mit Counterparty verwenden möchten.

Siehe Installationsanweisungen unter https://github.com/CounterpartyXCP/counterparty-lib