Skip to content

odelyzid/hexchain

Repository files navigation

Hexchain 2.0 (prototype)

Research-oriented C++20 implementation of a 3D hexagonal close-packed (HCP) lattice ledger: voxel-state indexing, Multi-Parent Proof (MPP) neighbor hashes, deterministic fixed-point target adjustment from mature neighbors, and a small validation/mining demo (“crystalline cluster”).

This repository is an experimental codebase for geometric consensus ideas. It is not audited production blockchain software.

Requirements

  • CMake 3.20+
  • C++20 compiler (GCC 11+, Clang 14+, or recent MSVC)
  • OpenSSL development libraries (libssl / OpenSSL::Crypto) for SHA-256

Ubuntu / Debian

sudo apt-get update
sudo apt-get install -y cmake build-essential libssl-dev

Build

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j

Continuous integration (Ubuntu 24.04, Ninja): .github/workflows/ci.yml — configures Release, builds, runs ./build/hexchain_node.

Optional install (default prefix /usr/local; override with CMAKE_INSTALL_PREFIX):

cmake --install build

The installed binary is hexchain_node under the configured bindir (GNUInstallDirs).

Run

./build/hexchain_node

You should see the genesis rejection (NoMatureNeighbors when k == 0), then mining of six basal rim blocks around the origin with increasing mature-neighbor counts where the lattice supports it.

Releasing

  1. Bump project(... VERSION) in CMakeLists.txt.
  2. Add an entry to CHANGELOG.md.
  3. Create an annotated tag: git tag -a v0.1.x -m "v0.1.x" and push it.
  4. Publish a GitHub Release from that tag.

Security

See SECURITY.md. This code is not audited; treat it as research software.

Layout

Path Role
include/hexchain/ Public headers (lattice_geometry, consensus, block, validator, types, uint256)
src/ Geometry, block hashing/serialization, lattice store, validator, demo main
CMakeLists.txt Library hexchain_core, executable hexchain_node

License

SPDX: MIT. See LICENSE.

Contributing

Issues and pull requests are welcome. Please keep changes focused and match existing style (C++20, no floats on consensus paths, deterministic serialization).

If older clones accidentally tracked build/, run once after pulling .gitignore:

git rm -r --cached build/ 2>/dev/null || true

Disclaimer

Authors and contributors make no guarantees of correctness, security, or fitness for any purpose. Use at your own risk.

About

No description, website, or topics provided.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors