/stronghold

The future of currencies. Private and usable.

Primary LanguageTypeScriptMIT LicenseMIT

Stronghold

Stronghold is a Layer 1 blockchain that provides the strongest privacy guarantees on every single transaction. Leveraging zero-knowledge proofs (zk-SNARKs), and the highest industry standards for encryption.

See https://stronghold.financial

Install

  1. Install Node.js 14.x
  2. Install Rust.
  3. Install Yarn.
  4. Windows:
    1. Install Build Tools for Visual Studio 2019, including the C++ Build Tools and the Windows 10 SDK, for Rust.
    2. Rust builds also require installing MinGW-w64 via win-builds.
      1. Choose Native Windows, x86_64, choose an empty directory, and click OK.
      2. On the next screen, click Process.
      3. Once it finishes, add the bin folder containing cc to your PATH environment variable.
  5. Install wasm-pack.
  6. Run yarn install from the root directory to install packages.

Usage

Once your environment is setup - you can run the CLI by following these directions.

Running Tests

  1. To test the entire monorepo:
    1. Run yarn test at the root of the repository
    2. Run yarn test:slow at the root of the repository to run slow tests
    3. Run yarn test:coverage at the root of the repository for tests and coverage
  2. To test a specific project
    1. Run yarn test at the root of the project
    2. Run yarn test:watch if you want the tests to run on change
    3. Run test:coverage:html if you want to export the coverage in an easy to use format (open the index.html file in the coverage folder of the project )

Structure of the repository:

  • stronghold: The library that contains the StrongholdSDK and all Stronghold code written in Typescript.
  • stronghold-cli: The main client for Stronghold as of today. It is a command line interface built on Node. More details on our documentation.
  • stronghold-wasm: Wrapper for stronghold-rust in WASM to be interacted with by the stronghold project.
  • stronghold-rust: Core API for interacting with the transactions and chain and using ZKP.
  • stronghold-http-api: API hosted on Stronghold servers for the Stronghold faucet.
  • stronghold-rosetta-api: API hosted on Stronghold servers for the block explorer. The code of the block explorer client can be found here.