The Quantova Network is a next-generation blockchain platform designed to address the emerging threats posed by quantum computing. Traditional blockchains rely on cryptographic algorithms (e.g., ECDSA, RSA) that are vulnerable to quantum attacks, such as Shor's Algorithm (which breaks public-key cryptography) and Grover's Algorithm (which weakens symmetric-key cryptography). This project integrates post-quantum cryptographic (PQC) algorithms to ensure long-term security and resilience against quantum computing threats.
- Quantova Network Consensus: CRYSTALS-Dilithium ensures secure block validation in a PoS model.
- Secure Transactions: FALCON enables compact, quantum-resistant transaction signatures.
- Quantum-Safe Networking: Kyber secures node communication via post-quantum key exchange.
- Tamper-Proof Storage: SPHINCS+ and KangarooTwelve protect Merkle tree integrity.
- Light Client Support: VDFs allow lightweight, quantum-safe state verification.
- Governance & Voting: Rainbow signatures secure stakeholder decision-making.
- Fair Randomness Generation: SHA-3 powers tamper-proof entropy for critical processes.
- Pure Proof-of-Stake: Energy-efficient consensus with staked validators.
- Quantum Attack Mitigations: SHA-3 and AES-256 counter Shor’s and Grover’s threats.
| Parameter | Value |
|---|---|
| Network Name | Quantova Network |
| RPC URL | https://rpc.quantova.org |
| Chain ID | QTOV20 |
| Symbol | QTOV |
| Block Explorer URL | QtovaScan.io |
| Website | Quantova.org |
To build the chain, execute the following commands from the project root:
$ cargo build --releaseTo execute the chain, run:
$ ./target/release/quantova-node --devThe node also supports to use manual seal (to produce block manually through RPC). This is also used by the ts-tests:
$ ./target/release/quantova-node --dev --sealing=manualThe output shows the following logs:
2025-03-14 14:29:48 Quantova Node
2025-03-14 14:29:48 ✌️ version 0.0.0-b1eaff1669f
2025-03-14 14:29:48 ❤️ by Quantova Network <info@quantova.org>, 2021-2025
2025-03-14 14:29:48 📋 Chain specification: Development
2025-03-14 14:29:48 🏷 Node name: ossified-smoke-6937
2025-03-14 14:29:48 👤 Role: AUTHORITY
2025-03-14 14:29:48 💾 Database: RocksDb at /var/folders/hy/trb22f7d4pg9j3q3wy2h84f00000gn/T/substratehfO8xR/chains/dev/db/full
2025-03-14 14:29:49 [0] 💸 generated 1 npos voters, 1 from validators and 0 nominators
2025-03-14 14:29:49 [0] 💸 generated 1 npos targets
2025-03-14 14:29:50 🔨 Initializing Genesis block/state (state: 0x04a1…c0f3, header-hash: 0x5140…55ac)
2025-03-14 14:29:50 👴 Loading GRANDPA authority set from genesis on what appears to be first startup.
2025-03-14 14:29:50 👶 Creating empty BABE epoch changes on what appears to be first startup.
2025-03-14 14:29:50 Using default protocol ID "sup" because none is configured in the chain specs
2025-03-14 14:29:50 🏷 Local node identity is: 12D3KooWHx8tLzVKx528YjqZGpHrdVtEnjyeyVvtZ4fpbTAC961x
2025-03-14 14:29:50 Running libp2p network backend
2025-03-14 14:29:50 Failed to register peer store metrics: Duplicate metrics collector registration attempted
2025-03-14 14:29:50 💻 Operating system: macos
2025-03-14 14:29:50 💻 CPU architecture: aarch64
2025-03-14 14:29:50 📦 Highest known block at #0
2025-03-14 14:29:50 〽️ Prometheus exporter started at 127.0.0.1:9615
2025-03-14 14:29:50 Running JSON-RPC server: addr=127.0.0.1:9944,[::1]:9944
2025-03-14 14:29:50 🏁 CPU single core score: 916.06 MiBs, parallelism score: 955.47 MiBs with expected cores: 8
2025-03-14 14:29:50 🏁 Memory score: 23.51 GiBs
2025-03-14 14:29:50 🏁 Disk score (seq. writes): 1.97 GiBs
2025-03-14 14:29:50 🏁 Disk score (rand. writes): 423.83 MiBs
2025-03-14 14:29:50 ⚠️ The hardware does not meet the minimal requirements Failed checks: BLAKE2-256(expected: 1000.00 MiBs, found: 916.06 MiBs), for role 'Authority'.
2025-03-14 14:29:50 👶 Starting BABE Authorship worker
2025-03-14 14:29:50 🥩 BEEFY gadget waiting for BEEFY pallet to become available...
2025-03-14 14:29:51 🙌 Starting consensus session on top of parent 0x5140cd849fd6981ae3337156f36556c74e353468bfdc0430f1ab164445fc55ac (#0)
2025-03-14 14:29:51 🎁 Prepared block for proposing at 1 (4 ms) [hash: 0xebc791826c2a828626f234c267ad91d7f59b96fd675a48523cb1e0015855d9ee; parent_hash: 0x5140…55ac; extrinsics (1): [0xc9de…c196]
2025-03-14 14:29:51 🔖 Pre-sealed block for proposal at 1. Hash now 0x0c8fd28d447ef57f3daeacc2055aedf4dd1cbe605e24d995c32718759dea10fc, previously 0xebc791826c2a828626f234c267ad91d7f59b96fd675a48523cb1e0015855d9ee.
2025-03-14 14:29:51 👶 New epoch 0 launching at block 0x0c8f…10fc (block slot 580647597 >= start slot 580647597).
2025-03-14 14:29:51 👶 Next epoch starts at slot 580647797
2025-03-14 14:29:51 🏆 Imported #1 (0x5140…55ac → 0x0c8f…10fc)
2025-03-14 14:29:54 🙌 Starting consensus session on top of parent 0x0c8fd28d447ef57f3daeacc2055aedf4dd1cbe605e24d995c32718759dea10fc (#1)
2025-03-14 14:29:54 🎁 Prepared block for proposing at 2 (1 ms) [hash: 0x6bfabc6d454d1f384f89c21bc664fbe56b8c8e8a5a95c9f6c378642d926b4b15; parent_hash: 0x0c8f…10fc; extrinsics (1): [0x8aba…8e24]
2025-03-14 14:29:54 🔖 Pre-sealed block for proposal at 2. Hash now 0xb5c922e1d5b16d073a216f4bb9c2438bc9c654f18bb886a657092c4fe2b061ca, previously 0x6bfabc6d454d1f384f89c21bc664fbe56b8c8e8a5a95c9f6c378642d926b4b15.
2025-03-14 14:29:54 🏆 Imported #2 (0x0c8f…10fc → 0xb5c9…61ca)
2025-03-14 14:29:55 💤 Idle (0 peers), best: #2 (0xb5c9…61ca), finalized #0 (0x5140…55ac), ⬇ 0 ⬆ 0
2025-03-14 14:29:57 🙌 Starting consensus session on top of parent 0xb5c922e1d5b16d073a216f4bb9c2438bc9c654f18bb886a657092c4fe2b061ca (#2)
2025-03-14 14:29:57 🎁 Prepared block for proposing at 3 (1 ms) [hash: 0x242085aee644c7686a20a97c747e86b37277cf6e1d28122d907296ed880b8d63; parent_hash: 0xb5c9…61ca; extrinsics (1): [0x5d2c…4828]
2025-03-14 14:29:57 🔖 Pre-sealed block for proposal at 3. Hash now 0x625581199cdd414296dab9ede984a743927966a8262b18d99af2d8b448014bc6, previously 0x242085aee644c7686a20a97c747e86b37277cf6e1d28122d907296ed880b8d63.
2025-03-14 14:29:57 🏆 Imported #3 (0xb5c9…61ca → 0x6255…4bc6)
2025-03-14 14:29:58 🥩 BEEFY pallet available: block 1 beefy genesis 1
2025-03-14 14:29:58 🥩 Loading BEEFY voter state from genesis on what appears to be first startup. Starting voting rounds at block 1, genesis validator set ValidatorSet { validators: [Public(020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1 (KW39r9CJ...))], id: 0 }.
2025-03-14 14:29:58 🥩 run BEEFY worker, best grandpa: #1.
2025-03-14 14:29:58 🥩 Concluded mandatory round #1
2025-03-14 14:30:00 🙌 Starting consensus session on top of parent 0x625581199cdd414296dab9ede984a743927966a8262b18d99af2d8b448014bc6 (#3)
2025-03-14 14:30:00 🎁 Prepared block for proposing at 4 (2 ms) [hash: 0xbd759d28316416d68ba21c020e576bc25a094d3c20c86d84ec7ea2ab71193b1c; parent_hash: 0x6255…4bc6; extrinsics (1): [0x589e…fe57]
2025-03-14 14:30:00 🔖 Pre-sealed block for proposal at 4. Hash now 0xf0950bc70191c0e9044f0f07b8a46426ff7dcf5bd8528db47b25d32d699ccd0e, previously 0xbd759d28316416d68ba21c020e576bc25a094d3c20c86d84ec7ea2ab71193b1c.
2025-03-14 14:30:00 🏆 Imported #4 (0x6255…4bc6 → 0xf095…cd0e)
2025-03-14 14:30:00 💤 Idle (0 peers), best: #4 (0xf095…cd0e), finalized #1 (0x0c8f…10fc), ⬇ 0 ⬆ 0
2025-03-14 14:30:03 🙌 Starting consensus session on top of parent 0xf0950bc70191c0e9044f0f07b8a46426ff7dcf5bd8528db47b25d32d699ccd0e (#4)
2025-03-14 14:30:03 🎁 Prepared block for proposing at 5 (2 ms) [hash: 0x10ef870b962988a4e53fb5bd4c43af5351294da38423aa620950034be6ff9c42; parent_hash: 0xf095…cd0e; extrinsics (1): [0x2c74…1a34]
2025-03-14 14:30:03 🔖 Pre-sealed block for proposal at 5. Hash now 0x3ef47a4d23196e5cc3978fdc0221c725aad3424c93b597048d7369f085a7ac08, previously 0x10ef870b962988a4e53fb5bd4c43af5351294da38423aa620950034be6ff9c42.
2025-03-14 14:30:03 🏆 Imported #5 (0xf095…cd0e → 0x3ef4…ac08) The default port for the quantova node is set to http://127.0.0.1:9944. Once the node is operational, you can conduct your own tests, including connecting to Ethereum wallets or interacting with smart contracts. Additionally, there are several predefined accounts with test tokens available for immediate use.
- Alith:
- Public Address: 0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac
- Private Key: 0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133
- Baltathar:
- Public Address: 0x3Cd0A705a2DC65e5b1E1205896BaA2be8A07c6e0
- Private Key: 0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b
- Charleth:
- Public Address: 0x798d4Ba9baf0064Ec19eB4F0a1a45785ae9D6DFc
- Private Key: 0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b
- Dorothy:
- Public Address: 0x773539d4Ac0e786233D90A233654ccEE26a613D9
- Private Key: 0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68
- Ethan:
- Public Address: 0xFf64d3F6efE2317EE2807d223a0Bdc4c0c49dfDB
- Private Key: 0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4
- Faith:
- Public Address: 0xC0F0f4ab324C46e55D02D0033343B4Be8A55532d
- Private Key: 0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df
./target/release/quantova-node build-spec --disable-default-bootnode --chain=local --raw > ./specs/local/customSpecRaw.json
./target/release/quantova-node build-spec --disable-default-bootnode --chain=local > ./specs/local/customSpec.json
./target/release/quantova-node build-spec --disable-default-bootnode --chain=testnet --raw > ./specs/testnet/customSpecRaw.json
./target/release/quantova-node build-spec --disable-default-bootnode --chain=testnet > ./specs/testnet/customSpec.json
./target/release/quantova-node build-spec --disable-default-bootnode --chain=quantova-node --raw > ./specs/mainnet/customSpecRaw.json
./target/release/quantova-node build-spec --disable-default-bootnode --chain=quantova-node > ./specs/mainnet/customSpec.json
./target/release/quantova-node key insert --base-path /tmp/node01 \
--chain ./specs/customSpec.json \
--scheme Sr25519 \
--suri <key> \
--password-interactive \
--key-type aura
./target/release/quantova-node key insert --base-path /tmp/node01 \
--chain ./specs/customSpec.json \
--scheme Ed25519 \
--suri <key> \
--password-interactive \
--key-type gran
Do that for all the three nodes.
Then we would need to start three nodes by using below command:
First node:
./target/release/quantova-node \
--base-path /tmp/node01 \
--chain ./specs/customSpec.json \
--port 30333 \
--rpc-port 9945 \
--telemetry-url "wss://telemetry.polkadot.io/submit/ 0" \
--validator \
--rpc-methods Unsafe \
--name MyNode01 \
--password-interactive --node-key 0x0439f3fb74a067f0bba9b3707f76b46e344702f9b48efa0e9ff68830bae3143dSecond node:
./target/release/quantova-node \
--base-path /tmp/node02 \
--chain ./specs/customSpec.json \
--port 30334 \
--rpc-port 9946 \
--telemetry-url "wss://telemetry.polkadot.io/submit/ 0" \
--validator \
--rpc-methods Unsafe \
--name MyNode02 \
--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWGiKz64LShsj9mr9rvZzvVCXtbCK9rRoRSJYB5191iak8Third node:
./target/release/quantova-node \
--base-path /tmp/node03 \
--chain ./specs/customSpec.json \
--port 30335 \
--rpc-port 9947 \
--telemetry-url "wss://telemetry.polkadot.io/submit/ 0" \
--validator \
--rpc-methods Unsafe \
--name MyNode03 \
--bootnodes /ip4/127.0.0.1/tcp/30333/p2p/12D3KooWGiKz64LShsj9mr9rvZzvVCXtbCK9rRoRSJYB5191iak8