Truffle-Deployment auf Geth schlägt fehl, es wird wiederholt „Quittung nicht gefunden“ von Geth generiert

Ich habe Truffle gerade auf einer Ubuntu-Virtualbox installiert, und es kann nicht in einem Geth-Entwickler-Setup bereitgestellt werden. Geth gibt mir eine unendliche receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38Nachricht

Geth ausführen:

$ geth --datadir ~/.ethereum/DevChain/ --port 30310 --rpc --networkid 4567890 --dev --lightkdf --nodiscover --maxpeers 0 --verbosity 6 --pprof --gpomin "50" --gpomax "50" --pprofport 6110 console 2> ~/geth.log
instance: Geth/v1.4.0-unstable/linux/go1.5.1
coinbase: 0xc04ee7e3a98cb68fcd2318ef0454377e23ec01c3
at block: 460 (Tue, 05 Apr 2016 21:26:26 PDT)
 datadir: /home/michael/.ethereum/DevChain
> personal.unlockAccount("0xc04ee7e3a98cb68fcd2318ef0454377e23ec01c3")
Unlock account 0xc04ee7e3a98cb68fcd2318ef0454377e23ec01c3
Passphrase: 

Truffle Deployment ausführen:

michael@u4:~/truffleProject$ truffle deploy
Using environment development.
Compiling ./contracts/MetaCoin.sol...
Sending MetaCoin.sol to the network...

In geth werden zwei Accounts eingerichtet. Der Vertrag ist nur der Standard-Trüffelvertrag:

contract MetaCoin {
        mapping (address => uint) balances;

        function MetaCoin() {
                balances[tx.origin] = 10000;
        }

        function sendCoin(address receiver, uint amount) returns(bool sufficient) {
                if (balances[msg.sender] < amount) return false;
                balances[msg.sender] -= amount;
                balances[receiver] += amount;
                return true;
        }

  function getBalance(address addr) returns(uint) {
    return balances[addr];
  }
}

Die Log-Ausgabe von geth:

I0405 21:33:17.139998 core/tx_pool.go:300] (t) 6330346565376533 => [NEW_CONTRACT] (0x53d230) f19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:17.140082 eth/api.go:1071] Tx(0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38) created: 0x0d1e8032f72411e130c2d6a5a23c6f8a082bab9e
I0405 21:33:17.140304 core/state/state_object.go:168] c04ee7e3a98cb68fcd2318ef0454377e23ec01c3: #0 2299685840800000000000 (- 314159200000000000)
I0405 21:33:17.140383 core/state/statedb.go:267] (+) 0d1e8032f72411e130c2d6a5a23c6f8a082bab9e
I0405 21:33:17.140402 core/state/state_object.go:168] c04ee7e3a98cb68fcd2318ef0454377e23ec01c3: #1 2299685840800000000000 (- 0)
I0405 21:33:17.140413 core/state/state_object.go:160] 0d1e8032f72411e130c2d6a5a23c6f8a082bab9e: #0 0 (+ 0)
I0405 21:33:17.140425 core/vm/vm.go:157] running byte VM 26d34cde
I0405 21:33:17.140487 core/vm/vm.go:160] byte VM 26d34cde done. time: 56.33µs instrc: 30
I0405 21:33:17.140500 core/state/state_object.go:160] c04ee7e3a98cb68fcd2318ef0454377e23ec01c3: #1 2299991360400000000000 (+ 305519600000000000)
I0405 21:33:17.140509 core/state/state_object.go:160] c04ee7e3a98cb68fcd2318ef0454377e23ec01c3: #1 2299991360400000000000 (+ 0)
I0405 21:33:17.140555 core/state/statedb.go:267] (+) 0000000000000000000000000000000000000000
I0405 21:33:17.140568 core/state/state_object.go:160] 0000000000000000000000000000000000000000: #0 8639600000000000 (+ 8639600000000000)
I0405 21:33:17.140663 core/state_processor.go:92] receipt{med=737a95552f168141e6d4f13cf41f2da4e46e9d00a9a1490ab946138c17d39703 cgas=86396 bloom=00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 logs=[]}
I0405 21:33:17.140702 eth/handler.go:731] broadcast tx to 0 peers
I0405 21:33:18.145589 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:19.149835 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:20.152780 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:21.156125 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:22.158505 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:23.162283 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:24.164380 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:25.166750 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
I0405 21:33:26.170280 eth/api.go:962] receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38
...etc...

Schätzen Sie Tipps, während ich versuche, eine praktikable Grundeinstellung zu finden. Ich möchte nur mit einigen grundlegenden Vertragserstellungen in einer schnellen Entwicklungsumgebung spielen und habe noch keinen Truffle oder Testrpc zum Fliegen für mich bekommen. (Sollte ich nur den Solidity Realtime Compiler und Mist verwenden?)

kannst du bitte deinen Vertragscode posten? Verfügt Ihre Testumgebung auch über initialisierte Konten?
@arodriguezdonaire - Konten sind eingerichtet und das erste Konto ist entsperrt (bevor ich es entsperrt habe, ist ein Fehler aufgetreten). Vertragscode oben hinzugefügt, obwohl es nur der Trüffel-Standardvertrag ist.

Antworten (2)

Ich würde dringend empfehlen, einen Blick auf Mix zu werfen, falls Sie dies noch nicht getan haben, und diesem Tutorial zu folgen .

Es sieht so aus, als ob Ihr Block nicht abgebaut wird und Sie 0 Peers in Ihrem Netzwerk haben. Hier ist ein Boot-Befehl für eine private Kette, den ich in einer älteren Version von geth verwendet habe (beachten Sie die Flags --mineund --max_peers 2):

geth --genesis ./private_env/genesis.json --datadir ./private_chain --rpc --rpcport 2060 --networkid 257291 --unlock primary --nodiscover --mine --minerthreads 8 --maxpeers 2 --unlock 0 --password ./private_env/password.txt > ./log.txt 2>&1

Der Genesis-Block wurde gemäß dieser Anleitung vorgesät .

Aber wirklich ... es ist heutzutage nicht mehr nötig, das runter und schmutzig zu machen, es sei denn, Sie wollen es. Mischung ist großartig!

Danke! Das --mineFor Geth war das, was gebraucht wurde. Ich habe einen Genesis-Block nach einer anderen Anleitung erstellt. Sie brauchen keine Peers im Netzwerk, wenn Sie nur lokales Dev-Mining betreiben, richtig? Und wieder. Mischen, ich werde es noch einmal versuchen. Ich habe ungefähr vor sechs Tools damit gespielt und fand die Benutzeroberfläche herausfordernd. Konnte das Fensterlayout nicht in einen vernünftigen Zustand bringen und dachte, ich hätte gelesen, dass es als Werkzeug zugunsten anderer Pfade nachließ. Schön, einen Vertrauensbeweis zu hören. Sind Sie ein Interessent für Mix oder nur ein Benutzer?
Sie haben Recht; Sie brauchen keine Peers, damit eine private Kette abgebaut wird (ich habe mich falsch erinnert). Ich bin nur ein gelegentlicher Benutzer von Mix, also bin ich völlig neutral!
OK danke. Versuchte, ihr Tutorial zu starten und blieb sofort hängen, wo ich Sample einfügen sollte. Eröffnete ein Ticket mit ihnen.

FWIW - Dies scheint ein neuer Fehler zu sein, der irgendwo zwischen Geth-Version 1.4.8 und 1.4.10 eingeführt wurde. Es scheint, dass Sie aktiv auf dem Knoten abbauen müssen, auf dem Sie bereitstellen, andernfalls bleiben die Transaktionen für immer im Txpool. Vor 1.4.10 konnte ich problemlos auf einem Nicht-Mining-Knoten bereitstellen, aber nach dem Upgrade traten solche Fehler auf.

Ich hoffe, dass die Informationen jemandem helfen, weil es eine Weile gedauert hat, sie herauszufinden. Keine Ahnung, warum es passiert.