Wie kann man mehrere Konten mit Ether for geth --dev chain vorbelegen?

Ich versuche, mit Geth eine private Kette einzurichten --dev, die mehrere Konten mit viel Ether hat. Ob dies danach noch möglich ist, scheint unklar .

Folgendes habe ich auf Geth 1.4.x und 1.5 ausprobiert:

geth --datadir data --dev --password <(echo -n foobar) account new
geth --datadir data --dev --password <(echo -n foobar) account new
geth --datadir data --dev --password <(echo -n foobar) account new

Dann init so:

geth --datadir data --dev --password <(echo -n foobar) init custom.json

Dann läuft geth mit mir:

geth --datadir data --dev --password <(echo -n foobar) \
  --unlock 0,1,2 \
  --verbosity 6 \
  --rpc --rpcaddr "0.0.0.0" --rpccorsdomain '"*"' --nodiscover \
  --rpcapi "admin,db,eth,debug,miner,net,shh,txpool,personal,web3" \
  --mine --minerthreads 1 --gasprice 0

Dann curlüberprüfe ich den Kontostand. Ergebnis ist 0x0.

Wenn ich die --devOption entferne, gibt es Gleichgewicht, aber es dauert ewig, da es dann den echten DAG verwendet. Ich möchte das nicht so, wenn zum Testen.

Wie bekomme ich am besten mehrere vorab zugewiesene Konten mit viel Ether für eine private Entwicklungskette?

Vielen Dank!

@BokkyPooBah ja, das funktioniert, aber es ist für eine private Kette ohne--dev
--devsind nur einige zusätzliche Konfigurationen - siehe github.com/ethereum/go-ethereum/blob/master/cmd/utils/… und github.com/ethereum/go-ethereum/blob/master/cmd/utils/… . maxpeers=0, listenaddr=:0, Flüstern ist aktiviert, Powtest ist wahr und hat etwas mit dem olympischen Genesis-Block und dem Gaspreis zu tun. Was Sie sonst tun können, ist --devdie ETH zu verwenden, abzubauen und auf Ihr anderes Konto zu verschieben. Es scheint keine bequeme Möglichkeit zu geben, vorab zugewiesene Konten mithilfe des --devSetups festzulegen.
@BokkyPooBah ja, ich weiß, dass es möglich ist, Äther zu bewegen, aber da dies früher funktionierte, würde ich gerne wissen, ob es vielleicht immer noch funktioniert oder wenn nicht, warum es nicht mehr funktioniert :)
Von github.com/ethereum/go-ethereum/releases ,With the coming of Geth 1.4 we've deprecated the --genesis <json_file> flag and replaced with a geth init <json file> sub command. This means that you'll no longer be able to mix the destructive --genesis flag with other flags.
@BokkyPooBah ja das habe ich auch gelesen. Ich verwende initeine benutzerdefinierte Genesis, die Konten hat, wie ich sie haben möchte alloc. Dh zuerst laufe ich new accountund dann passe ich die Custom Genesis an und laufe dann init. Kein Gleichgewicht, wenn ich die --devFlagge habe.
Ich habe die enge Abstimmung zurückgezogen.

Antworten (2)

Dies sollte durch Bearbeiten Ihrer benutzerdefinierten Genesis-Datei Ihres Testnetzes erfolgen. etwas hinzufügen wie:

//The genesis file
"alloc":{
        "address":{
                  "balance": "1000000"
                  }
        }
}

Quelle: https://souptacular.gitbooks.io/ethereum-tutorials-and-tips-by-hudson/content/private-chain.html

Dies funktioniert nicht mehr für Dev ... daher meine Frage.
Ok, wenn ich eine andere Lösung dafür finde, werde ich es dir sagen.
Vor einiger Zeit ausprobiert und bei mir hat es funktioniert. Überprüfen Sie, ob Sie das Testnetz mit Ihrer benutzerdefinierten Genesis-Datei ordnungsgemäß starten.
Ich verwende kein Testnet ... --devund keine private Kette
Die Verwendung --devbewirkt, dass Ihr Private mit einem vorkonfigurierten Satz von Optionen beginnt. Also keine Möglichkeit zur Vorabzuweisung, da Sie keine benutzerdefinierte Genesis.json-Datei verwenden, sondern eine vorkonfigurierte.
Es funktionierte früher und wurde dokumentiert, aber geändert. Der Grund --devist interessant, weil der DAG fehlt ...

Ich habe es so gemacht:

  1. Initialisieren Sie geth im Dev-Modus mit dem --Flag

    geth --dev --allow-insecure-unlock

    Tun Sie dies niemals im Mainnet-Modus.

  2. Hängen Sie eine web3 js-Konsole an

  3. Führen Sie dies aus, um 10 entsperrte Konten zu erstellen und sie vom Standardkonto zu finanzieren:

    for (i=0;i<10;i++){ a = personal.newAccount('pwd') personal.unlockAccount(a,'pwd',0) web3.eth.sendTransaction({from:eth.accounts[0],to:eth.accounts[i+1],value:1000000000000}) }