Skip to content

Instantly share code, notes, and snippets.

fn multiadd(b: &mut test::Bencher) {
use std::vec::Vec;
fn batch_invert(v: &mut [Fp]) -> Fp {
let mut tmp = Vec::with_capacity(v.len());
let mut acc = Fp::one();
for p in v.iter() {

How do I verify the Sapling MPC?

What you'll need

  1. Install the Rust compiler. A version from a year ago will work but the recent one is fine too.
  2. Download the transcript from the Powers of Tau MPC. (See the links here.)
  3. Download the params file from the Sapling MPC.
  4. Check out the attestations for the Powers of Tau MPC. (Similar can be found for the Sapling MPC but participants chose various ways to distribute their attestations, they have not been coalesced into a single repository.)

Step 1: Verify Powers of Tau

View mpclog.txt
(INFO) [T+0h0m0s]: Opening TCP listener on
(INFO) [T+0h0m0s]: Loading R1CS from disk and performing QAP reduction...
(INFO) [T+0h0m0s]: Accepted new connection (peerid=99b7ca5f21fbdf3d)
(INFO) [T+0h0m0s]: Accepted new connection (peerid=a6f95c77f82e54ad)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=7ec2499a394d6764)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=4011ea01e2300ff0)
(INFO) [T+0h0m1s]: Accepted new connection (peerid=61fadcd34bdbee7d)
(INFO) [T+0h0m2s]: Accepted new connection (peerid=5dfb6c04584ca622)
(INFO) [T+0h0m7s]: Creating transcript file...
(INFO) [T+0h0m7s]: Waiting for players to connect...
View lousy_test.diff
diff --git a/src/gtest/test_proofs.cpp b/src/gtest/test_proofs.cpp
index 49202f1f6..0d678a414 100644
--- a/src/gtest/test_proofs.cpp
+++ b/src/gtest/test_proofs.cpp
@@ -3,6 +3,7 @@
#include <iostream>
+#include "algebra/knowledge_commitment/knowledge_commitment.hpp"
#include "libsnark/common/default_types/r1cs_ppzksnark_pp.hpp"
extern crate typenum;
extern crate generic_array;
use typenum::marker_traits::*;
use typenum::operator_aliases::*;
use typenum::type_operators::*;
use typenum::consts::*;
use generic_array::GenericArray;
use generic_array::ArrayLength;
View HTLC_BIP.mediawiki

  BIP&#58; 172
  Layer&#58; Applications
  Title&#58; Hashed Time&#45;Locked Contract transactions
  Author&#58; Sean Bowe <>
          Daira Hopwood <>
  Comments&#45;Summary&#58; No comments yet.
  Comments&#45;URI&#58; https&#58;//;BIP&#45;0172
  Created&#58; 2017&#45;03&#45;27
  License&#58; BSD&#45;3&#45;Clause

use std::rc::Rc;
trait Art<T, A: Adapton> {}
struct Location;
impl<T, A: Adapton> Art<T, A> for Location { }
trait Adapton {
fn put<T>(obj: T) -> Rc<Art<T, Self>>;
View gist:144f3aadfb154db96ca9
task '<main>' failed at 'called `Option::unwrap()` on a `None` value', /home/me/build/rust/src/libcore/