Wie übertrage ich vom Terminal aus mit Linux und Geth von The DAO zu einer Börse?

Ich möchte Mist nicht verwenden, um mit dem DAO zu interagieren. Wie mache ich es stattdessen von Geth aus?

Antworten (1)

Annahme: Sie haben (vollständig synchronisiertes) Geth unter Linux, einige DAO-Token und Zugriff auf das Konto, mit dem Sie die DAO-Token gekauft haben.

Zuerst benötigen Sie die Vertrags-ABI von The DAO. Dies ist die Schnittstellendefinition, die es Ihnen ermöglicht, mit dem DAO-Vertrag in der Blockchain zu interagieren. Hier ist es im Wesentlichen. Es ist lang.

https://gist.github.com/fivedogit/4f3e9a035262b99b2e7356a4fdf6dd34

Oder von hier (slockit github):

https://github.com/slockit/DAO/wiki/The-DAO-v1.0-Code

Schneiden Sie das alles aus und fügen Sie es ein und geben Sie dann Folgendes in Geth ein, um es auf eine Variable zu setzen:

> var abi = <paste it here, no outer quotes necessary>;

Die ABI teilt Geth mit, wie der Bytecode an einer Adresse in der Blockchain zu verstehen ist. Damit können Sie die „eth.contract“-Methode von web3 verwenden, um mit dem DAO-Vertrag unter seiner Adresse zu interagieren:

> var contract = web3.eth.contract(abi).at(“0xbb9bc244d798123fde783fcc1c72d3bb8c189413″);

Jetzt können Sie alle Methoden ausführen, die der DAO-Vertrag unterstützt. Wie wäre es, wenn Sie Ihr Guthaben überprüfen?

> contract.balanceOf(eth.coinbase);

oder

> contract.balanceOf(“0xabc123…”);

Teilen Sie diese Zahl durch 10^16, um die DAO-Token-Gesamtsumme in ihrer „natürlichen“ Bezeichnung zu erhalten. Für mich:

> contract.balanceOf(eth.accounts[1]);
80000000000000000000
> contract.balanceOf(eth.accounts[1])/10000000000000000;
8000

Zum Zeitpunkt des Schreibens dieses Artikels habe ich 8000 DAO-Token.

Das Überprüfen Ihres Guthabens ist eine „konstante“ Methode (wie Sie am ABI sehen können), was bedeutet, dass es aus der Blockchain gelesen wird und die Ausführung kein Benzin kostet.

Die Übertragung eines Guthabens ändert jedoch den Zustand der Blockchain und erfordert eine kleine Gaszahlung. Im nächsten Befehl stellt der Parameter "{from:YOURADDR}" diese Zahlung bereit. Sie können Gas explizit wie folgt angeben: "{from:YOURADDR,gas:2500000}", aber Geth hat einen Standardwert, der bereitgestellt wird, wenn Sie dies nicht tun, weshalb ich ihn unten nicht zeige. (Unverbrauchtes Gas wird immer erstattet.)

ABER ZUERST! Wir benötigen die Austauschadresse, um es zu senden. In Poloniex ist es unter „Guthaben“ und „Ein- und Auszahlungen“. Suchen Sie DAO in der Liste und klicken Sie auf den Link, um eine Einzahlungsadresse zu erhalten.

Hier ist nun der Übertragungsausführungsbefehl (Damit werden 2000 DAO-Token von meinem zweiten ETH-Konto an eine Polo-Adresse übertragen):

contract.transfer(“0xaaaaPoloDAODepositAddressaaaaa”, 20000000000000000000, {from:eth.accounts[1]});

Warten Sie, bis sich die tx ausbreitet, und überprüfen Sie dann Ihr Guthaben erneut mit:

> contract.balanceOf(eth.accounts[1])/10000000000000000;
6000

Meine Token brauchten ungefähr eine Stunde, um in Poloniex zu landen (am 28.05.2016), also keine Panik, wenn Sie nicht sehen, dass die Übertragung sofort stattfindet.

Viel Glück!

Ich kann bestätigen, dass diese Schritte funktionieren. Ich habe die ABI von hier verwendet: github.com/slockit/DAO/wiki/The-DAO-v1.0-Code