<NME> README.md
<BEF> Bitcoin Core integration/staging tree
=====================================

[![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)
[![GitHub last-release](https://img.shields.io/github/release-date/firoorg/firo)](https://github.com/firoorg/firo/releases)
[![GitHub downloads](https://img.shields.io/github/downloads/firoorg/firo/total)](https://github.com/firoorg/firo/releases)
[![GitHub commits-since-last-version](https://img.shields.io/github/commits-since/firoorg/firo/latest/master)](https://github.com/firoorg/firo/graphs/commit-activity)
[![GitHub commits-per-month](https://img.shields.io/github/commit-activity/m/firoorg/firo)](https://github.com/firoorg/firo/graphs/code-frequency)
[![GitHub last-commit](https://img.shields.io/github/last-commit/firoorg/firo)](https://github.com/firoorg/firo/commits/master)
[![Total alerts](https://img.shields.io/lgtm/alerts/g/firoorg/firo.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/firoorg/firo/alerts/)
[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/firoorg/firo.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/firoorg/firo/context:cpp)

What is Firo?
--------------

[Firo](https://firo.org) 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](https://eprint.iacr.org/2019/373) 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](https://github.com/trailofbits/publications/blob/master/reviews/zcoin-lelantus-summary.pdf) and funded by Firo's CCS. Lelantus' cryptography was also audited by [ABDK Consulting](https://www.abdk.consulting/).

Firo also utilises [Dandelion++](https://arxiv.org/abs/1805.11060) 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](https://firo.org/guide/assets/privacy-technology-comparison/comparison-table-firo-updated.png) 
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](https://store.docker.com/search?type=edition&offering=community). 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:

```sh
docker pull firoorg/firod
```

Start Firo daemon:

```sh
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):

```sh
docker exec firod firo-cli getblockcount

There are also regression and integration tests of the RPC interface, written
in Python, that are run automatically on the build server.
These tests can be run with: `qa/pull-tester/rpc-tests.sh`

Every pull request is built for both Windows and Linux on a dedicated server,
and unit and sanity tests are automatically run. The binaries produced may be

Stop daemon:

```sh
docker stop firod
```

Backup wallet:

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

Start daemon again:

```sh
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](depends/README.md)

Alternatively, you can build dependencies manually. See the full [unix build instructions](doc/build-unix.md).

Bootstrappable builds can [be achieved with Guix.](contrib/guix/README.md)

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](CONTRIBUTING.md)].
<a href="https://github.com/firoorg/firo/graphs/contributors"><img src="https://opencollective.com/firo/contributors.svg?width=890&button=false" /></a>

### Financial Contributors

Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/firo/contribute)]

#### Individuals

<a href="https://opencollective.com/firo"><img src="https://opencollective.com/firo/individuals.svg?width=890"></a>

#### Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/firo/contribute)]

<a href="https://opencollective.com/firo/organization/0/website"><img src="https://opencollective.com/firo/organization/0/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/1/website"><img src="https://opencollective.com/firo/organization/1/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/2/website"><img src="https://opencollective.com/firo/organization/2/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/3/website"><img src="https://opencollective.com/firo/organization/3/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/4/website"><img src="https://opencollective.com/firo/organization/4/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/5/website"><img src="https://opencollective.com/firo/organization/5/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/6/website"><img src="https://opencollective.com/firo/organization/6/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/7/website"><img src="https://opencollective.com/firo/organization/7/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/8/website"><img src="https://opencollective.com/firo/organization/8/avatar.svg"></a>
<a href="https://opencollective.com/firo/organization/9/website"><img src="https://opencollective.com/firo/organization/9/avatar.svg"></a>

<MSG> Changed rpc-tests.sh to rpc-tests.py in README.md

Github-Pull: #6752

<DFF> @@ -1,4 +1,4 @@
-Bitcoin Core integration/staging tree
+﻿Bitcoin Core integration/staging tree
 =====================================
 
 [![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)
@@ -53,7 +53,7 @@ submit new unit tests for old code. Unit tests can be compiled and run (assuming
 
 There are also regression and integration tests of the RPC interface, written
 in Python, that are run automatically on the build server.
-These tests can be run with: `qa/pull-tester/rpc-tests.sh`
+These tests can be run with: `qa/pull-tester/rpc-tests.py`
 
 Every pull request is built for both Windows and Linux on a dedicated server,
 and unit and sanity tests are automatically run. The binaries produced may be

{'commit': 'diff --git a/README.md b/README.md\nindex 275367ebb..39813677c 100644\n--- a/README.md\n+++ b/README.md\n@@ -1,4 +1,4 @@\n-Bitcoin Core integration/staging tree\n+\ufeffBitcoin Core integration/staging tree\n =====================================\n \n [![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)\n@@ -53,7 +53,7 @@ submit new unit tests for old code. Unit tests can be compiled and run (assuming\n \n There are also regression and integration tests of the RPC interface, written\n in Python, that are run automatically on the build server.\n-These tests can be run with: `qa/pull-tester/rpc-tests.sh`\n+These tests can be run with: `qa/pull-tester/rpc-tests.py`\n \n Every pull request is built for both Windows and Linux on a dedicated server,\n and unit and sanity tests are automatically run. The binaries produced may be\n', 'commit_subject': 'Changed rpc-tests.sh to rpc-tests.py in README.md', 'repo_name': 'zcoinofficial/zcoin', 'committer': {'name': 'Wladimir J. van der Laan', 'email': 'bbc07dc96bb50bf6868a2ddfc4dae14fbed703d9@gmail.com', 'time_sec': '1444045111', 'tz_offset': '120', 'date': {'seconds': '1444045111'}}, 'commit_tree': '18abb500e75990f7cc616cf3fe3abc0429dc51a5', 'commit_message': 'Changed rpc-tests.sh to rpc-tests.py in README.md\n\nGithub-Pull: #6752\n', 'language_name': 'Shell', 'license': 'mit', 'hunks': '@@ -1,4 +1,4 @@\n-Bitcoin Core integration/staging tree\n+\ufeffBitcoin Core integration/staging tree\n =====================================\n \n [![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)\n@@ -53,7 +53,7 @@ submit new unit tests for old code. Unit tests can be compiled and run (assuming\n \n There are also regression and integration tests of the RPC interface, written\n in Python, that are run automatically on the build server.\n-These tests can be run with: `qa/pull-tester/rpc-tests.sh`\n+These tests can be run with: `qa/pull-tester/rpc-tests.py`\n \n Every pull request is built for both Windows and Linux on a dedicated server,\n and unit and sanity tests are automatically run. The binaries produced may be\n', 'addition_count': 2, 'deletion_count': 2, 'src_file': 'a/README.md', 'tgt_file': 'b/README.md', 'file_extension': '.md', 'before_file': 'Bitcoin Core integration/staging tree\n=====================================\n\n[![Build Status](https://travis-ci.org/bitcoin/bitcoin.svg?branch=master)](https://travis-ci.org/bitcoin/bitcoin)\n[![GitHub last-release](https://img.shields.io/github/release-date/firoorg/firo)](https://github.com/firoorg/firo/releases)\n[![GitHub downloads](https://img.shields.io/github/downloads/firoorg/firo/total)](https://github.com/firoorg/firo/releases)\n[![GitHub commits-since-last-version](https://img.shields.io/github/commits-since/firoorg/firo/latest/master)](https://github.com/firoorg/firo/graphs/commit-activity)\n[![GitHub commits-per-month](https://img.shields.io/github/commit-activity/m/firoorg/firo)](https://github.com/firoorg/firo/graphs/code-frequency)\n[![GitHub last-commit](https://img.shields.io/github/last-commit/firoorg/firo)](https://github.com/firoorg/firo/commits/master)\n[![Total alerts](https://img.shields.io/lgtm/alerts/g/firoorg/firo.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/firoorg/firo/alerts/)\n[![Language grade: C/C++](https://img.shields.io/lgtm/grade/cpp/g/firoorg/firo.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/firoorg/firo/context:cpp)\n\nWhat is Firo?\n--------------\n\n[Firo](https://firo.org) 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.\n\nOur research created the [Lelantus privacy protocol](https://eprint.iacr.org/2019/373) 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](https://github.com/trailofbits/publications/blob/master/reviews/zcoin-lelantus-summary.pdf) and funded by Firo\'s CCS. Lelantus\' cryptography was also audited by [ABDK Consulting](https://www.abdk.consulting/).\n\nFiro also utilises [Dandelion++](https://arxiv.org/abs/1805.11060) to obscure the originating IP of transactions without relying on any external services such as Tor/i2P.\n\nFiro uses FiroPoW (a ProgPoW variant) as its Proof-of-Work GPU focused algorithm which is FPGA/ASIC resistant.\n\nHow Firo’s Privacy Technology Compares to the Competition\n--------------\n![A comparison chart of Firo’s solutions with other leading privacy technologies can be found below](https://firo.org/guide/assets/privacy-technology-comparison/comparison-table-firo-updated.png) \nread more https://firo.org/guide/privacy-technology-comparison.html\n\nRunning with Docker\n===================\n\nIf 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](https://store.docker.com/search?type=edition&offering=community). After this you may\ncontinue with the following instructions.\n\nPlease 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.\n\nPull our latest official Docker image:\n\n```sh\ndocker pull firoorg/firod\n```\n\nStart Firo daemon:\n\n```sh\ndocker run -d --name firod -v "${HOME}/.firo:/home/firod/.firo" firoorg/firod\n```\n\nView current block count (this might take a while since the daemon needs to find other nodes and download blocks first):\n\n```sh\ndocker exec firod firo-cli getblockcount\n\nThere are also regression and integration tests of the RPC interface, written\nin Python, that are run automatically on the build server.\nThese tests can be run with: `qa/pull-tester/rpc-tests.sh`\n\nEvery pull request is built for both Windows and Linux on a dedicated server,\nand unit and sanity tests are automatically run. The binaries produced may be\n\nStop daemon:\n\n```sh\ndocker stop firod\n```\n\nBackup wallet:\n\n```sh\ndocker cp firod:/home/firod/.firo/wallet.dat .\n```\n\nStart daemon again:\n\n```sh\ndocker start firod\n```\n\nLinux Build Instructions and Notes\n==================================\n\nFiro contains build scripts for its dependencies to ensure all component versions are compatible. For additional options\nsuch as cross compilation, read the [depends instructions](depends/README.md)\n\nAlternatively, you can build dependencies manually. See the full [unix build instructions](doc/build-unix.md).\n\nBootstrappable builds can [be achieved with Guix.](contrib/guix/README.md)\n\nDevelopment Dependencies (compiler and build tools)\n----------------------\n\n- Debian/Ubuntu/Mint (minimum Ubuntu 18.04):\n\n    ```\n    sudo apt-get update\n    sudo apt-get install git curl python build-essential libtool automake pkg-config cmake\n    # Also needed for GUI wallet only:\n    sudo apt-get install qttools5-dev qttools5-dev-tools libxcb-xkb-dev bison\n    ```\n\n- Redhat/Fedora:\n\n    ```\n    sudo dnf update\n    sudo dnf install bzip2 perl-lib perl-FindBin gcc-c++ libtool make autoconf automake cmake patch which\n    # Also needed for GUI wallet only:\n    sudo dnf install qt5-qttools-devel qt5-qtbase-devel xz bison\n    sudo ln /usr/bin/bison /usr/bin/yacc\n    ```\n- Arch:\n\n    ```\n    sudo pacman -Sy\n    sudo pacman -S git base-devel python cmake\n    ```\n\nBuild Firo\n----------------------\n\n1.  Download the source:\n\n        git clone https://github.com/firoorg/firo\n        cd firo\n\n2.  Build dependencies and firo:\n\n    Headless (command-line only for servers etc.):\n\n        cd depends\n        NO_QT=true make -j`nproc`\n        cd ..\n        ./autogen.sh\n        ./configure --prefix=`pwd`/depends/`depends/config.guess` --without-gui\n        make -j`nproc`\n\n    Or with GUI wallet as well:\n\n        cd depends\n        make -j`nproc`\n        cd ..\n        ./autogen.sh\n        ./configure --prefix=`pwd`/depends/`depends/config.guess`\n        make -j`nproc`\n\n3.  *(optional)* It is recommended to build and run the unit tests:\n\n        ./configure --prefix=`pwd`/depends/`depends/config.guess` --enable-tests\n        make check\n\n\nmacOS Build Instructions and Notes\n=====================================\nSee (doc/build-macos.md) for instructions on building on macOS.\n\n\n\nWindows (64/32 bit) Build Instructions and Notes\n=====================================\nSee (doc/build-windows.md) for instructions on building on Windows 64/32 bit.\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n<a href="https://github.com/firoorg/firo/graphs/contributors"><img src="https://opencollective.com/firo/contributors.svg?width=890&button=false" /></a>\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/firo/contribute)]\n\n#### Individuals\n\n<a href="https://opencollective.com/firo"><img src="https://opencollective.com/firo/individuals.svg?width=890"></a>\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/firo/contribute)]\n\n<a href="https://opencollective.com/firo/organization/0/website"><img src="https://opencollective.com/firo/organization/0/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/1/website"><img src="https://opencollective.com/firo/organization/1/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/2/website"><img src="https://opencollective.com/firo/organization/2/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/3/website"><img src="https://opencollective.com/firo/organization/3/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/4/website"><img src="https://opencollective.com/firo/organization/4/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/5/website"><img src="https://opencollective.com/firo/organization/5/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/6/website"><img src="https://opencollective.com/firo/organization/6/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/7/website"><img src="https://opencollective.com/firo/organization/7/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/8/website"><img src="https://opencollective.com/firo/organization/8/avatar.svg"></a>\n<a href="https://opencollective.com/firo/organization/9/website"><img src="https://opencollective.com/firo/organization/9/avatar.svg"></a>\n', 'message': 'Changed rpc-tests.sh to rpc-tests.py in README.md\n\nGithub-Pull: #6752\n', 'author_name': 'Wladimir J. van der Laan', 'lang': 'md'}