Quorum Blockchain Service development overview
With Quorum Blockchain Service (QBS), you can create consortium blockchain networks to enable enterprise scenarios like asset tracking, digital token, loyalty and reward, supply chain financial, and provenance. The following sections introduce Quorum Blockchain Service development for implementing enterprise blockchain solutions.
Connecting to Quorum Blockchain Service
You can use different clients as your gateway to QBS for blockchain development. The following are popular clients you can use to connect.
Truffle extension for Visual Studio Code
You can compile, build, and deploy smart contracts to QBS using the Truffle extension for Visual Studio Code.
To develop sophisticated enterprise blockchain solutions, a development framework is needed to connect to different blockchain networks and manage smart contract lifecycles. Most projects interact with at least two blockchain nodes. Developers use a local blockchain during development. When the application is ready for test or release, the developer deploys to a blockchain network. For example, the main public Ethereum network or QBS.
The Truffle extension for Visual Studio Code uses Truffle Suite, which is a popular blockchain development framework to write, compile, deploy, and test decentralized applications on Ethereum. You can also think of Truffle as a framework that attempts to seamlessly integrate smart contract development and traditional web development.
MetaMask
MetaMask is a browser-based wallet (remote client), RPC client, and basic contract explorer. Unlike other browser wallets, MetaMask injects a web3 instance into the browser JavaScript context, acting as an RPC client that connects to a variety of Ethereum blockchains (mainnet, Ropsten testnet, Kovan testnet, local RPC node, etc.). You can set up a custom RPC to connect to QBS and start blockchain development using Remix.
Geth
Geth is the command-line interface for running a full Ethereum node implemented in Go. You don't need to run full node but can launch Geth JavaScript interactive console that provides a JavaScript runtime environment exposing a JavaScript API to interact with QBS.
Ethereum GoQuorum private transactions
GoQuorum is an Ethereum-based distributed ledger protocol with contract privacy and new consensus mechanisms. Key enhancements over Geth include:
- Privacy - GoQuorum supports private transactions and private contracts through public and private state separation, and uses peer-to-peer encrypted message exchanges for directed transfer of private data to network participants.
- Alternative consensus mechanisms - Proof-of-work or proof-of-stake consensus is not needed for a permissioned network. GoQuorum offers multiple consensus mechanisms that are designed for consortium chains such as Raft and IBFT. QBS uses the IBFT consensus mechanism.
- Peer permissioning - Node and peer permissioning using smart contracts ensures only known parties can join the network.
- Higher Performance - GoQuorum offers higher performance than public Geth.
Block explorers
Block explorers are online blockchain browsers that display individual block content, transaction address data, and history. If you need more detail information during development, block explorers can be useful. You can use a block explorer such as Nethereum lite explorer.
TPS measurement
As blockchains are used in more enterprise-oriented scenarios, high transactions per second (TPS) is important to avoid bottlenecks and system inefficiencies. High transaction rates can be difficult to maintain within a decentralized blockchain. An accurate TPS measurement may be affected by different factors such as server thread, transaction queue size, network latency, and security. If you need to measure TPS speed during development, a popular open-source tool is ChainHammer.