SubspaceCommune Blockchain

Subspace The Commune Blockchain

Commune's blockchain Subspace, is built on top of the Rust Substrate framework.

Overview

Subspace is built using Substrate, a framework for developing scalable and upgradeable blockchains. It provides the core functionality and security needed for Commune's platform:

  1. Implements Commune's consensus mechanism
  2. Advertises cluster modules and their IP addresses
  3. Enables peer discovery for nodes to connect with each other

Rpc Methods

  • Connect To Mainnet: wss://api.communeai.net
  • Connect To Testnet: wss://testnet.api.communeai.net

Installation

  1. Complete the basic Rust setup instructions.

  2. Clone this repository:

git clone https://github.com/commune-network/subspace.git cd subspace/

Usage

Build

To build the node without launching it, run:

cargo build --release

Run

To run a single development node with ephemeral storage:

./target/release/node-subspace --dev

This will start a Subspace node with a clean state. The node's state will be discarded on exit.

To retain the node's state between runs, specify a base path:

mkdir my-chain-state/ ./target/release/node-subspace --dev --base-path ./my-chain-state/

Other useful commands:

# Purge chain state ./target/release/node-subspace purge-chain --dev # Detailed logging RUST_BACKTRACE=1 ./target/release/subspace-ldebug --dev # Explore parameters and subcommands ./target/release/node-subspace -h

Test

To run all tests:

cargo test --all

To run specific tests:

cargo test -p pallet-subspace --test test_voting

To run tests with detailed logs:

SKIP_WASM_BUILD=1 RUST_LOG=runtime=debug cargo test -- --nocapture

Architecture

Subspace leverages the modular and extensible architecture of Substrate. It uses FRAME pallets to encapsulate domain-specific logic such as consensus, storage, and p2p networking.

Notable components:

  • /node: Implementation of the Subspace node including networking, consensus, and RPC
  • /runtime: The core blockchain logic responsible for validating and executing state transitions
  • /pallets: Custom FRAME pallets with Commune-specific logic