This folder contains the Rust components of the protocol, which are run locally on the voters’ machines, and the verification components, which are run in a Solidity smart contract.
The Rust section of the code requires you to install Rust (and cargo, Rust’s package manager) on your computer. To do this, follow the instructions here, or just run the following command:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then checkout this repository & run the benchmarks with
git clone git@github.com:rbkhmrcr/tcr.git
cd tcr
cd src
cargo bench
There are a lot of dependencies if you want to run the Solidity code & its tests on your machine, so the easiest way to interact with the contract is with browser Solidity!
Navigate to browser Solidity here. Then click on the 'GitHub' button under 'Import From', and paste the following url :
https://github.com/rbkhmrcr/tcr/blob/master/contracts/verif.sol
Then click the Solidity symbol (the second icon down on the left), check which compiler configuration boxes you like (Enable optimization is a good one), and then click 'Compile verif.sol'.
Then navigate to the third icon down on the left, and click the button that says 'Deploy'. You'll notice that a new entry under 'Deployed Contracts' appears, saying TCR at 0x... . If you click on this, you'll have the ability to interact with the contract!
Some sample proofs are available here, so you can copy that into the appropriate function box and test out the contract! A log of what information would be sent to and received from the Ethereum blockchain is published below the code area.