update readme
This commit is contained in:
parent
99f6549c84
commit
60f671d4cd
34
README.md
34
README.md
|
@ -2,12 +2,36 @@
|
|||
|
||||
Rust support library for Semaphore
|
||||
|
||||
## Build static lib via ffi
|
||||
## Example
|
||||
|
||||
Build e.g. for iOS simulator:
|
||||
```rust
|
||||
// generate identity
|
||||
let id = Identity::new(b"hello");
|
||||
|
||||
`cargo build --release --target=aarch64-apple-ios-sim`
|
||||
// generate merkle tree
|
||||
const LEAF: Hash = Hash::from_bytes_be([0u8; 32]);
|
||||
|
||||
Generate header file:
|
||||
let mut tree = PoseidonTree::new(21, LEAF);
|
||||
let (_, leaf) = id.commitment().to_bytes_be();
|
||||
tree.set(0, leaf.into());
|
||||
|
||||
`cbindgen ./src/lib.rs -c cbindgen.toml | grep -v \#include | uniq > libsemaphore.h`
|
||||
let root: BigInt = tree.root().into();
|
||||
dbg!(root);
|
||||
|
||||
let merkle_proof = tree.proof(0).expect("proof should exist");
|
||||
let root = tree.root().into();
|
||||
|
||||
// change signal and external_nullifier here
|
||||
let signal = "hello".as_bytes();
|
||||
let external_nullifier = "123".as_bytes();
|
||||
|
||||
let nullifier_hash = generate_nullifier_hash(&id, external_nullifier);
|
||||
|
||||
let config = SnarkFileConfig {
|
||||
zkey: "./snarkfiles/semaphore.zkey".to_string(),
|
||||
wasm: "./snarkfiles/semaphore.wasm".to_string(),
|
||||
};
|
||||
|
||||
let proof = generate_proof(&config, &id, &merkle_proof, external_nullifier, signal).unwrap();
|
||||
let success = verify_proof(&config, &root, &nullifier_hash, signal, external_nullifier, &proof).unwrap();
|
||||
```
|
Loading…
Reference in New Issue