/ironfish

A novel cryptocurrency focused on privacy and accessibility.

Primary LanguageTypeScriptMozilla Public License 2.0MPL-2.0

Iron Fish

Iron Fish

Node CI Rust CI codecov

Iron Fish 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://ironfish.network

Install

  1. Install Node.js 16.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. Run yarn install from the root directory to install packages.
    • If yarn install fails with an error that includes "Failed to build cmake", you may need to first install cmake. For example, on macOS:

      1. Run brew install cmake, you'll need cmake version 3.15 or higher.
    • If yarn install fails with an error that includes "Could NOT find OpenSSL", you may need to first install OpenSSL and add an environment variable. For example, on macOS:

      1. Run brew install openssl
      2. Run export OPENSSL_ROOT_DIR=`brew --prefix openssl`
      3. Run yarn install again.
    • If yarn install fails with an error that includes "Error: not found: make", "make: cc: Command not found", or "make: g++: Command not found", you may need to install a C/C++ compiler toolchain.

      1. On Ubuntu: apt install build-essential
      2. On Amazon Linux: sudo yum groupinstall "Development Tools"
    • If yarn install fails with an error that includes "Error: Could not find any Python installation to use", you may need to install Python3 (required by node-gyp). on MacOS:

      1. Run brew install python

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 in ./ironfish/ 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 in ./ironfish or ./ironfish-cli if you want the tests to run on change
    3. Run yarn 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

Other Repositories