I've created a private PoA network with two geth nodes using Kaleido (release 1.0.13) and am trying to deploy some smart contracts to it using the drizzle-kaleido-box boilerplate from truffle. The only thing I have changed from the template is to add the Kaleido Truffle Suite credentials for the node and the connection URL.
When I test the deployment locally with truffle develop
it completes successfully:
Starting migrations...
======================
> Network name: 'develop'
> Network id: 5777
> Block gas limit: 0x6691b7
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0xf91e6153d679ccf4fdad200521ad972426fab239ef85333806ed0623cf5762b2
> Blocks: 0 Seconds: 0
> contract address: 0xd4c950E4FE47827a78fBBb7216851f58f849E7A4
> block number: 6
> block timestamp: 1562896906
> account: 0x80adCcD98263A73f825E7EA530755368cCE545C1
> balance: 99.9846609
> gas used: 261393
> gas price: 20 gwei
> value sent: 0 ETH
> total cost: 0.00522786 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00522786 ETH
2_deploy_contracts.js
=====================
Deploying 'SimpleStorage'
-------------------------
> transaction hash: 0x47b0c7011e179553ec7331fc89c19c6f7941c3756098dae9439eff5f135586d7
> Blocks: 0 Seconds: 0
> contract address: 0x5db95A3571f2F09d8B4963b765F73DC77aDF314c
> block number: 8
> block timestamp: 1562896907
> account: 0x80adCcD98263A73f825E7EA530755368cCE545C1
> balance: 99.98118462
> gas used: 131791
> gas price: 20 gwei
> value sent: 0 ETH
> total cost: 0.00263582 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00263582 ETH
Summary
=======
> Total deployments: 2
> Final cost: 0.00786368 ETH
When I try to deploy to the Kaleido network using truffle migrate
, I get the following error:
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'development'
> Network id: 189197727
> Block gas limit: 0x2fefd800
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0x18aaa22b46e9960915764f730d2b4ecb689e2312dfe9654ef170e3808878f58f
> Blocks: 1 Seconds: 4
> contract address: 0x0bd4eE9A9fA5a7278b35E2b95505A91eb579E88a
> block number: 489
> block timestamp: 1562897041
> account: 0x321dE13B9216c29AF9505b0b28D9C2aA128697f9
> balance: 10000
> gas used: 261393
> gas price: 0 gwei
> value sent: 0 ETH
> total cost: 0 ETH
⠴ Saving migration to chain.Error: Error: StatusError: Transaction: 0xef6609f245c2b1473fee10c474a88a6c4049c8b18c45af4cb676966392e25449 exited with an error (status 0) after consuming all gas.
Please check that the transaction:
- satisfies all conditions set by Solidity `assert` statements.
- has enough gas to execute the full transaction.
- does not trigger an invalid opcode by other means (ex: accessing an array out of bounds).
at Object.run (/Users/allirvin/.nvm/versions/node/v9.9.0/lib/node_modules/truffle/build/webpack:/packages/truffle-migrate/index.js:92:1)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:118:7)
Truffle v5.0.26 (core: 5.0.26)
Node v9.9.0
Note that the gas price is 0.
The contracts are using pragma solidity >=0.4.21 <0.6.0;
In the Kaleido Block Explorer I can see that the contract creation transactions completed successfully, but the invocations of the smart contracts failed.