2

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. Kaleido Block Explorer screenshot

3

newer solidity versions have out of gas issues deploying our sample contracts.

Specify the solidity version in the truffle-config.js

  compilers: {
    solc: {
      version: "0.5.0",
    },
  }

from @cruz:

@adam.chasen I believe in one of the more recent versions of truffle, we bumped the solidity version to 0.5.8 (which defaults the evmVersion to petersburg and would probably be the cause of outputing diff bytecode) (edited)

Note: truffle version is deprecated and no longer returns correct version information for solidity. Need to look at compile output to see which solidity truffle uses.

reference: https://github.com/kaleido-io/truffle-kaleido-box/issues/3

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.