Skip to content

aheschl1/pillar

Repository files navigation

Pillar Logo Pillar

Pillar is a zero-trust decentralized ledger that implements a Proof of Reputation (PoR) trust layer. It combines a conventional transaction layer with a reputation-driven incentive layer to reduce wasted computation and provide a trust metric for network participants.

Repository Layout

High-Level Architecture

The network data flow, chain structure, and block settlement process are illustrated in the following diagrams:

Getting Started

Prerequisites

  • Docker
  • Rust toolchain
  • Node.js and npm

Running a Node

The recommended method for running a Pillar node is via Docker.

  1. Build the Docker image:

    ./build.sh
  2. Run the node:

    # All arguments are optional. A new wallet and random name will be generated if not provided.
    # The node will listen on the next available ip on the docker subnet by default.
    ./run.sh --work-dir=<WORK_DIR> --ip-address=<IP_ADDRESS> --wkps=<WKP_SERVERS> --name=<NODE_NAME> --config=<CONFIG_FILE>

A convenience script, ./kill_all.sh, is provided to stop all running Pillar containers.

Testing

To run the test suite for all crates, execute:

cargo test

Test logs are written to ./test_output/{timestamp}/output.log.

Frontend Dashboard

A web-based dashboard is available for monitoring a running node.

  1. Launch a Pillar node using the instructions above.

  2. Start the frontend application:

    cd pillar_monitor
    npm install
    npm run dev

The dashboard will be accessible in a web browser at the address provided by the development server.

About

Decentralised ledger with trust (and work) based consensus

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors