Quantum Chainquantumcha.in ↗
Reference client operations

Build, run, and operate a Quantum node.

Use the hosted Sandbox for application integration. Run the reference client when you need independent RPC, chain indexing, private-network development, or validator operations.

Build from source

Produce the reference client and tools.

RequirementVersion or purpose
Go1.24 or newer
GNU MakeBuild entrypoints
C compilergcc or clang for native dependencies
GitSource checkout
terminal
git clone https://github.com/Quantum-Chain-PTE-LTD/go-quantum-chain.git
cd go-quantum-chain
make geth
./build/bin/geth version

make geth builds the node at build/bin/geth. Use make all when you also need tools such as abigen, bootnode, clef, ethkey, evm, and rlpdump.

Application developersYou do not need to compile a node to use the JavaScript or Python SDK. The hosted Sandbox RPC is the shortest integration path.
Chain initialization

Initialize with the exact network genesis.

A node database is tied to its genesis block. Obtain the released genesis and peer configuration for the network you intend to join, verify them through your distribution channel, then initialize an empty data directory once.

terminal
export QUANTUM_DATADIR=/var/lib/quantum-chain
export QUANTUM_GENESIS=/etc/quantum-chain/genesis.json

sudo install -d -o quantum -g quantum -m 0750 "$QUANTUM_DATADIR"
sudo -u quantum ./build/bin/geth \
  --datadir "$QUANTUM_DATADIR" \
  init "$QUANTUM_GENESIS"
Identity check--networkid does not replace genesis initialization. After startup, confirm chain ID and block zero hash against the published network identity before serving traffic.

Genesis fields that define a Quantum network

FieldMeaning
config.chainIdTransaction replay-protection domain
config.quantumVerificationBlockActivation height for Quantum signature verification rules
config.clique.periodConfigured seconds between blocks
config.clique.epochClique checkpoint interval
extraDataInitial Clique sealer set
allocOptional genesis balances
Runtime profiles

Keep public application RPC separate from node administration.

Read and submit node

systemd ExecStart
/usr/local/bin/geth \
  --datadir /var/lib/quantum-chain \
  --networkid 20804 \
  --syncmode snap \
  --port 30303 \
  --maxpeers 50 \
  --http \
  --http.addr 127.0.0.1 \
  --http.port 8545 \
  --http.api qc,net,web3 \
  --ws \
  --ws.addr 127.0.0.1 \
  --ws.port 8546 \
  --ws.api qc,net,web3 \
  --metrics \
  --metrics.addr 127.0.0.1 \
  --metrics.port 6060

This example uses Sandbox network ID 20804. Use the network ID and genesis for your actual target. A Mainnet node uses network ID 20803.

Storage profiles

ProfileTypical flagsUse
Standard full node--syncmode snap --gcmode fullCurrent-state RPC and normal application traffic
Full synchronization--syncmode full --gcmode fullReplay and validation from genesis without archive state
Archive--syncmode full --gcmode archiveHistorical state queries at every block, with high storage cost

Validator profile

A validator needs an authorized Clique sealer account, the correct validator key material, stable peers, and the approved network operations procedure. It adds --mine and an authorized --miner.etherbase. Do not turn an application RPC node into a validator by copying flags from a tutorial.

RPC security

Bind locally and publish through a controlled edge.

Unsafe unlock--unlock and --allow-insecure-unlock are development mechanisms. They are not a production wallet architecture.
Health and monitoring

Measure head progress, synchronization, peers, and resources.

liveness check
curl --fail-with-body http://127.0.0.1:8545 \
  -H 'content-type: application/json' \
  --data '{"jsonrpc":"2.0","id":1,"method":"qc_blockNumber","params":[]}'
SignalHealthy interpretation
qc_blockNumberReturns promptly and advances with the network
qc_syncingfalse after synchronization, otherwise progress is moving
net_peerCountNonzero on a networked node and stable for the deployment
Head ageLatest block timestamp remains within the expected block cadence
Disk and databaseFree space remains above the operational reserve
Transaction poolPending and queued growth stays within expected workload bounds

Enable Prometheus-compatible metrics with --metrics. Keep the metrics listener private. Use --verbosity for temporary diagnostic detail and return it to the normal operational level after investigation.

Backup and upgrade

Treat node data and signing data differently.

A standard full node can be rebuilt from the signed release, genesis, peer configuration, and the network. Archive data may be expensive to reconstruct. Validator and wallet key material is not replaceable by resynchronizing.

  1. Inventory genesis, static peers, service unit, proxy configuration, and monitoring rules.
  2. Stop the node or take a storage-consistent snapshot before copying the database.
  3. Protect validator and wallet key backups under their own recovery procedures.
  4. Stage every client upgrade on a non-validator node first.
  5. Verify chain identity, sync, RPC, transaction decoding, and receipt handling.
  6. Roll validators only inside the coordinated network upgrade window.
Release coordinationRead release notes for protocol activation heights. A validator running incompatible rules can produce blocks that other nodes reject.
Troubleshooting

Start with identity, head, and peers.

SymptomCheckAction
Wrong chain ID or genesisQuery qc_chainId and block zeroStop. Point at the intended data directory and genesis. Never sign while identity is uncertain.
Head does not advanceqc_syncing, peer count, latest timestampCheck peer reachability, bootnodes or static peers, disk, and system time.
Zero peersP2P port, advertised address, peer configurationOpen TCP and UDP P2P traffic as required and verify enode records.
RPC connection refused--http, bind address, port, proxy targetFix the private listener or reverse proxy. Do not bypass controls by exposing admin APIs.
RPC method not found--http.api or gateway method policyEnable only the required namespace on a private node, or use a supported hosted method.
Transaction remains queuedPending nonce and earlier transaction gapsReconcile nonce ownership. Do not submit more transactions blindly.
Insufficient fundsBalance, value, gas limit, gas priceFund the correct network address and account for maximum transaction cost.
HTTP 403 on hosted SandboxPublic egress addressAsk Quantum Chain to approve the source. This is edge access control, not a JSON-RPC error.