Connect to a network using Truffle¶
You can connect to a Quorum Blockchain Service (QBS) network using Truffle, which allows you to deploy smart contracts to QBS.
This guide uses the Truffle command line interface for interacting with QBS.
You can also connect to a network using Visual Studio Code with Truffle.
Prerequisites¶
- Install MetaMask.
- Install Truffle.
- Install and configure Node.js.
- Get your QBS connection string.
Steps¶
-
Initialize Truffle on your project folder:
truffle init
-
Install Truffle’s
HDWalletProvider
:npm install @truffle/hdwallet-provider
-
Set environment variables with
dotenv
.Install
dotenv
:npm install --save dotenv
Create a
.env
file in your project’s root folder, and set environment variables in the file as follows:MNEMONIC = // (string) your MetaMask 12-word seed phrase RPC_URL = // (string) your QBS connection string, e.g. "https://<Node-Name>.<Member-Name>.<Consortium-Name>.onquorum.net:3200/<API-Key>"
Security warning
Keep your mnemonic secret.
Mnemonics must be kept secret and not committed to any code respositories. Improper handling of mnemonics can lead to loss of funds and identity fraud.
-
Edit
truffle-config.js
with the following text:const HDWalletProvider = require("@truffle/hdwallet-provider"); const fs = require("fs"); require('dotenv').config() // store environment variables from '.env' to process.env module.exports = { // See <http://truffleframework.com/docs/advanced/configuration> // to customize your Truffle configuration networks: { default: { host: "127.0.0.1", // Localhost (default: none) port: 8545, // Standard Ethereum port (default: none) network_id: "*" // Any network (default: none) }, qbs: { // Provider has to be wrapped into a function provider: () => new HDWalletProvider(process.env.MNEMONIC, process.env.RPC_URL), network_id: "*", // Any network (default: none) gasPrice: 0, gas: 4500000, type: "quorum" } }, compilers: { solc: { version: "0.7.0" } } };
-
Deploy to QBS:
truffle migrate --network qbs