[Ethereum] truffle deploy to geth failing, generating “receipt not found” repeatedly from geth

contract-deploymentcontract-developmentgo-ethereumtestingtruffle

I've just installed truffle on an ubuntu virtualbox, and it is failing to deploy to a geth dev setup. Geth gives me a never-ending receipt not found for transaction 0xf19898c656a7957808d38c881606360c55413d2f1c5b432e0b213379ab794b38 message

Running geth:

$ 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: 

Running truffle deploy:

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

Two accounts are set up in geth. Contract is just the default truffle contract:

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];
  }
}

The log output from 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...

Appreciate tips as I try to find a workable basic setup. Just want to play with some basic contract creation in a fast dev environment, and haven't yet gotten truffle or testrpc to fly for me. (Should I just be using the solidity realtime compiler and mist?)

Best Answer

I would highly recommend taking a look at Mix if you haven't already and following this tutorial.

It looks like your block is not being mined and you have 0 peers in your network. Here is a private chain boot command I used in an older version of geth (note the --mine and --max_peers 2 flags):

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

The genesis block was pre-seeded following this guide.

But really... no need to get this down and dirty these days unless you want to. Mix is great!