Wo ist die Zeichenfolge dieses Vertrags geschrieben und sichtbar?

Ich habe einen sehr einfachen Vertrag. Ich teste das Schreiben in die Blockchain (in einem privaten Netzwerk). Der Vertrag scheint erfolgreich bereitgestellt zu werden, aber ich sehe nirgendwo in meinem Block-Explorer „Dies ist eine fest codierte Zeichenfolge“.

Kann mir jemand helfen, einen einfachen Vertrag zu erstellen, in dem ich „Hello World“ so schreiben kann, dass es in der Blockchain sichtbar ist?

Hier ist der Code, den ich jetzt verwende:

pragma solidity ^0.4.18;

contract TestString {

    string testStr;

    function TestString() {
        testStr = "this is hardcoded string";
    }

    function setString(string str) {
        testStr = str;
    }

    function getString() constant returns (string) {
        return testStr;
    }

    function() payable {
        revert();
    }
}

Antworten (1)

Ethereum definiert einen „Weltstaat“, der alle Vertragsspeicher enthält. Es ist nicht direkt Teil der Blockchain, sondern das Ergebnis der Anwendung aller Transaktionen.

Sie können es nicht direkt sehen. Aber Sie können den Vertrag abfragen, und der Vertrag kann geeignete Werte zurückgeben. In Ihrem Beispiel können Sie das aufrufen getString()und es wird den entsprechenden Wert zurückgeben.

Über web3.eth.getStorageAt können Sie einen beliebigen Vertragsspeicher direkt abfragen . Aber es ist nicht sehr benutzerfreundlich, es ist eher ein Debugging-Tool.