Smart contracts won't deploy to a goQuorum blockchain

503 views Asked by At

I installed goQuorum with quorum-wizard with 4 quorum nodes and 4 tessera nodes on IBFT. When I start the network with "./start.sh" I get

Starting Quorum network...

Waiting until all Tessera nodes are running...
Waiting until all Tessera nodes are running...
All Tessera nodes started
Starting Quorum nodes
Successfully started Quorum network.
--------------------------------------------------------------------------------

Tessera Node 1 public key:
BULeR8JyUWhiuuCMU/HLA0Q5pzkYT+cHII3ZKBey3Bo=

Tessera Node 2 public key:
QfeDAys9MPDs2XHExtc84jKGHxZg/aj52DTh0vtA3Xc=

Tessera Node 3 public key:
1iTZde/ndBHvzhcl7V68x44Vx7pl8nwx9LqnM/AfJUg=

Tessera Node 4 public key:
oNspPPgszVUFw0qmGFfWwh1uxVUXgvBxleXORHj07g8=

--------------------------------------------------------------------------------

when I run "nmap -p 21000-21100" I get

21000/tcp open irtrans 21001/tcp open unknown 21002/tcp open unknown 21003/tcp open unknown

This is my truffle-config.js

const HDWalletProvider = require("@truffle/hdwallet-provider");
const mnemonic = "not my real mn mon ic num phrase dum get l gg";

module.exports = {
  networks: {
rinkeby: {
    provider: function() {
      return new HDWalletProvider(mnemonic, "https://rinkeby.infura.io/v3/"+mnemonic);
    },
    network_id: '*',
    timeoutBlocks: 100000,
    networkCheckTimeout:2000000
  },
  quorum: {
    provider: function() {
      return new HDWalletProvider(mnemonic, "http://127.0.0.1:21000/", chainId=10);
    },
    network_id: '*',
    type: 'quorum',
    timeoutBlocks: 100000,
    networkCheckTimeout:2000000
  },
  compilers: {
    solc: {
      version: "0.5.0",
      settings: {
        optimizer: {
          enabled: true, // Default: false
          runs: 1000     // Default: 200
        },
        evmVersion: "homestead"  // Default: "byzantium"
      }
    }
  }
};

When I cd in to the directory with the truffle-config.js and I run truffle deploy --reset --network quorum to compile my smart contracts I get the following error.

Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.


/root/dapp1/Dapp/node_modules/web3-core-helpers/src/errors.js:42
        return new Error(message);
               ^
Error: PollingBlockTracker - encountered an error while attempting to update latest block:
Error: Invalid JSON RPC response: ""
    at Object.InvalidResponse (/root/dapp1/Dapp/node_modules/web3-core-helpers/src/errors.js:42:16)
    at XMLHttpRequest.request.onreadystatechange (/root/dapp1/Dapp/node_modules/web3-providers-http/src/index.js:92:32)
    at XMLHttpRequestEventTarget.dispatchEvent (/root/dapp1/Dapp/node_modules/xhr2-cookies/xml-http-request-event-target.ts:44:13)
    at XMLHttpRequest._setReadyState (/root/dapp1/Dapp/node_modules/xhr2-cookies/xml-http-request.ts:219:8)
    at XMLHttpRequest._onHttpRequestError (/root/dapp1/Dapp/node_modules/xhr2-cookies/xml-http-request.ts:379:8)
    at ClientRequest.<anonymous> (/root/dapp1/Dapp/node_modules/xhr2-cookies/xml-http-request.ts:266:37)
    at ClientRequest.emit (events.js:315:20)
    at Socket.socketOnEnd (_http_client.js:493:9)
    at Socket.emit (events.js:327:22)
    at endReadableNT (internal/streams/readable.js:1327:12)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
    at PollingBlockTracker._performSync (/root/dapp1/Dapp/node_modules/eth-block-tracker/src/polling.js:51:24)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

I can deploy the smart contracts to rinkeby test net within this environment but I can't get smart contracts to deploy to quorum

I am using

  • Node v14.16.1
  • Ubuntu 18.04 (64 Bit)
  • Quorum 21.1.0
  • Web3.js v1.3.5
  • Truffle v5.3.4 (core: 5.3.4)
  • solidity v0.5.0
2

There are 2 answers

0
Satpal Sandhu On

I've not used truffle with HDWalletProvider, which I believe is from an older version of Truffle. I'm not certain that will set up the node connection.

We would normally set up the configuration like the following in the quorum: {} section:

    host: "localhost",
    port: 22001,
    type: "quorum"

I would suggest using that and see if it works.

Take a look at the truffle docs for working with quorum: https://www.trufflesuite.com/docs/truffle/distributed-ledger-support/working-with-quorum

1
Vijay Michalik On

Did you change from the default ports in the quorum-wizard?

The default for the node 1 RPC is 22000, the 21000 range is for p2p networking.

I would set the host and port per Satpal's answer above, as in the hdwallet documentation here.