Skip to content

Instantly share code, notes, and snippets.

task '<main>' failed at 'called `Option::unwrap()` on a `None` value', /home/me/build/rust/src/libcore/option.rs:265
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>>;
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;


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

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"
(INFO) [T+0h0m0s]: Opening TCP listener on 0.0.0.0:65530
(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...

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

#[bench]
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() {
tmp.push(acc);