Die DAO-internen Transaktionen

Ich brauche eine Transaktionsliste innerhalb des DAO-Systems. Ist es möglich oder ist es derselbe Fall, die internen Transaktionen in Ethereum zu erhalten? Ich möchte wissen, ob es innerhalb von theDAO einen Mechanismus gibt, um diese Transaktionen zu erhalten.

Ich bin nicht sicher, aber ich denke, das könnte helfen: ethereum.stackexchange.com/questions/6320/…
Etherscan kann sie bekommen, aber ich muss es per Code machen. Übrigens ist TheDAO derzeit tot, also kann diese Funktion jetzt warten.

Antworten (2)

Sie können die interne Transaktionsliste beispielsweise in einem Block-Explorer wie hier finden .

Ich brauche sie per Code, interagiere nur mit einem Ethereum-Knoten, ich meine, ohne eine externe Web-API zu verwenden.
Ich glaube, Sie wollen Ereignisse lesen. Transaktionen befinden sich in der Kette und haben das „Eingabe“-Datenfeld, das mit dem Funktionsnamen und Parametern für die Funktion gefüllt ist. Die von den Funktionsaufrufen generierten Ereignisse (die viele Ebenen tief sein und rekursiv sein können) sind keine direkten Transaktionen. Aber während die Funktionen ausgeführt werden, wurden sie möglicherweise so codiert, dass sie Protokolleinträge (Ereignisse) erstellen. Ich fange an zu glauben, dass die Leute das mit „internen Transaktionen“ meinen. Ich denke, das bedeutet die Protokolle (Ereignisse), die während der Funktionsaufrufe generiert werden. Allerdings nicht 100% sicher.

Ich bin mir nicht sicher, was Sie mit „interne Transaktionen abrufen“ meinen, aber vielleicht haben Sie die Funktionsweise von Ethereum missverstanden, daher hier eine kurze Einführung.

Nichts ändert sich, keine Variablen werden aktualisiert und kein Code wird eigenständig ausgeführt. Der EINZIGE Zeitpunkt, an dem sich etwas ändert, ist, wenn die folgenden Bedingungen erfüllt sind:

  1. Eine Transaktion wird an den Vertrag gesendet.
  2. Die Transaktion ist in einem Block enthalten.

Es ist möglich, dass eine Transaktion gesendet, aber vom Vertrag abgelehnt oder (noch) nicht von einem Miner in einen Block aufgenommen wird. Unter diesen Bedingungen hat sich der Zustand aller in Strukturen enthaltenen Variablen und Daten nicht geändert. Daher besteht keine Möglichkeit, dass es interne Transaktionen gibt, die außerhalb dieser Bedingungen ausgeführt werden.

Allerdings ist es möglich, dass nach Ausführung einer Transaktion der erste Vertrag einen anderen Vertrag aufruft und dieser andere Vertrag andere aufruft. In diesem Fall sehen Sie die zwischenzeitlichen "Transaktionen" nicht - sie werden nicht in der Blockchain aufgezeichnet. Von diesen anderen "Transaktionen" werden nur die Ergebnisse von Zustandsänderungen an Variablen und Daten aufgezeichnet.

EDIT : formatieren

Interne Transaktionen sind diejenigen, die das Gleichgewicht innerhalb von DAO verändern, aber das Ethereum-Gleichgewicht intakt halten. Hier: github.com/slockit/DAO/wiki/Understanding-the-DAO-accounting können Sie sehen, dass innerhalb von DAO viele Geldbewegungen stattfinden und diese Transaktionen nicht Teil der Blockchain sind, sie existieren in der Blockchain, aber als ausgeführter Code .
Ich habe mir den Quellcode nicht angesehen, aber hat TheDao die Protokollierung (Solidity Events) nicht in ihrem Code aktiviert?