Skip to content
/ firo Public
forked from firoorg/firo

The privacy-focused cryptocurrency

License

Notifications You must be signed in to change notification settings

shrikus/firo

 
 

Repository files navigation

Firo

Financial Contributors on Open Collective latest-release GitHub last-release GitHub downloads GitHub commits-since-last-version GitHub commits-per-month GitHub last-commit Total alerts Language grade: C/C++

What is Firo?

Firo formerly known as Zcoin, is a privacy focused cryptocurrency that utilizes zero-knowledge proofs which allows users to destroy coins and then redeem them later for brand new ones with no transaction history.

Our research created the Lelantus privacy protocol which supports high anonymity sets without requiring trusted setup and relying only on standard cryptographic assumptions. The Lelantus cryptographic library was audited by Trail of Bits and funded by Firo's CCS. Lelantus' cryptography was also audited by ABDK Consulting.

Firo also utilises Dandelion++ to obscure the originating IP of transactions without relying on any external services such as Tor/i2P.

Firo uses FiroPoW (a ProgPoW variant) as its Proof-of-Work GPU focused algorithm which is FPGA/ASIC resistant.

How Firo’s Privacy Technology Compares to the Competition

A comparison chart of Firo’s solutions with other leading privacy technologies can be found below read more https://firo.org/guide/privacy-technology-comparison.html

Running with Docker

If you are already familiar with Docker, then running Firo with Docker might be the the easier method for you. To run Firo using this method, first install Docker. After this you may continue with the following instructions.

Please note that we currently don't support the GUI when running with Docker. Therefore, you can only use RPC (via HTTP or the firo-cli utility) to interact with Firo via this method.

Pull our latest official Docker image:

docker pull firoorg/firod

Start Firo daemon:

docker run -d --name firod -v "${HOME}/.firo:/home/firod/.firo" firoorg/firod

View current block count (this might take a while since the daemon needs to find other nodes and download blocks first):

docker exec firod firo-cli getblockcount

View connected nodes:

docker exec firod firo-cli getpeerinfo

Stop daemon:

docker stop firod

Backup wallet:

docker cp firod:/home/firod/.firo/wallet.dat .

Start daemon again:

docker start firod

Linux Build Instructions and Notes

Firo contains build scripts for its dependencies to ensure all component versions are compatible. For additional options such as cross compilation, read the depends instructions

Alternatively, you can build dependencies manually. See the full unix build instructions.

Bootstrappable builds can be achieved with Guix.

Development Dependencies (compiler and build tools)

  • Debian/Ubuntu/Mint (minimum Ubuntu 18.04):

    sudo apt-get update
    sudo apt-get install git curl python build-essential libtool automake pkg-config cmake
    # Also needed for GUI wallet only:
    sudo apt-get install qttools5-dev qttools5-dev-tools libxcb-xkb-dev bison
    
  • Redhat/Fedora:

    sudo dnf update
    sudo dnf install bzip2 perl-lib perl-FindBin gcc-c++ libtool make autoconf automake cmake patch which
    # Also needed for GUI wallet only:
    sudo dnf install qt5-qttools-devel qt5-qtbase-devel xz bison
    sudo ln /usr/bin/bison /usr/bin/yacc
    
  • Arch:

    sudo pacman -Sy
    sudo pacman -S git base-devel python cmake
    

Build Firo

  1. Download the source:

    git clone https://github.com/firoorg/firo
    cd firo
    
  2. Build dependencies and firo:

    Headless (command-line only for servers etc.):

    cd depends
    NO_QT=true make -j`nproc`
    cd ..
    ./autogen.sh
    ./configure --prefix=`pwd`/depends/`depends/config.guess` --without-gui
    make -j`nproc`
    

    Or with GUI wallet as well:

    cd depends
    make -j`nproc`
    cd ..
    ./autogen.sh
    ./configure --prefix=`pwd`/depends/`depends/config.guess`
    make -j`nproc`
    
  3. (optional) It is recommended to build and run the unit tests:

    ./configure --prefix=`pwd`/depends/`depends/config.guess` --enable-tests
    make check
    

macOS Build Instructions and Notes

See (doc/build-macos.md) for instructions on building on macOS.

Windows (64/32 bit) Build Instructions and Notes

See (doc/build-windows.md) for instructions on building on Windows 64/32 bit.

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

About

The privacy-focused cryptocurrency

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 69.1%
  • C 16.6%
  • Python 9.1%
  • M4 1.5%
  • Shell 1.4%
  • Makefile 1.0%
  • Other 1.3%