Skip to content

Commit ceb79d9

Browse files
author
masoud@anyscale.com
committed
docs: remove troubleshooting section, issues created for remaining TODOs
1 parent 0f3fda1 commit ceb79d9

File tree

1 file changed

+13
-38
lines changed

1 file changed

+13
-38
lines changed

README.md

Lines changed: 13 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,16 @@ On-chain: Only the Root hash
5555
Private: Outputs A, B, C (never revealed)
5656
```
5757

58-
The Merkle tree preserves privacy of intermediate values. Partitions enable parallel proving; the Merkle tree commits to their outputs privately.
58+
### Why Merkle Trees?
59+
60+
Without Merkle trees, all intermediate values must be public for the next chunk to verify them—**O(n) public values**, which is expensive in ZK circuits.
61+
62+
With Merkle trees, only the root is public—**O(1) public values**. The next chunk verifies specific inputs with O(log n) Merkle proofs inside the circuit.
63+
64+
| Approach | Public Values | Verification Cost | Privacy |
65+
|----------|---------------|-------------------|---------|
66+
| No Merkle | O(n) | O(1) per value | All intermediate values exposed |
67+
| Merkle | O(1) | O(log n) per value | Only root exposed |
5968

6069
## Structure
6170

@@ -308,40 +317,6 @@ Distributed Proving Simulation: PASS
308317
- Ray automatically distributes tasks across available GPUs
309318
- Monitor GPU usage: `watch -n 1 nvidia-smi`
310319

311-
## Troubleshooting
312-
313-
### Python Tests Hang
314-
- Make sure Ray is not imported at module level
315-
- Check if Ray is installed: `pip install ray`
316-
- Run with timeout: `pytest tests/ --timeout=10`
317-
318-
### Rust Tests Don't Run
319-
- Make sure Rust is installed: `rustc --version`
320-
- Add Cargo to PATH: `export PATH="$HOME/.cargo/bin:$PATH"`
321-
- Use nightly Rust: `rustup override set nightly` (in zkml directory)
322-
323-
### Tests Fail
324-
- Check dependencies are installed
325-
- Verify environment variables are set (for AWS tests)
326-
- Check GPU availability (for GPU tests)
327-
328-
### AWS GPU Testing Issues
329-
330-
#### "Missing AWS credentials"
331-
- Ensure all three environment variables are set
332-
- Check credentials are valid: `aws sts get-caller-identity`
333-
334-
#### "nvidia-smi not found"
335-
- GPU instance may not have CUDA drivers installed
336-
- Install NVIDIA drivers: `sudo apt-get install nvidia-driver-535`
337-
338-
#### "Ray initialization failed"
339-
- Check GPU availability: `nvidia-smi`
340-
- Verify Ray installation: `pip install --upgrade ray`
341-
342-
#### "PyTorch CUDA not available"
343-
- Install PyTorch with CUDA: `pip install torch --index-url https://download.pytorch.org/whl/cu118`
344-
345320
## CI
346321

347322
Lightweight CI runs on every PR to `main` and `dev`:
@@ -352,9 +327,9 @@ Lightweight CI runs on every PR to `main` and `dev`:
352327
## TODO: Next Steps
353328

354329
1. ~~**Make Merkle root public**: Add root to public values so next chunk can verify it~~ ✅ Done
355-
2. **Complete proof generation**: Connect chunk execution to actual proof generation
356-
3. **Ray-Rust integration**: Connect Python Ray workers to Rust proof generation
357-
4. **GPU acceleration**: Current implementation is CPU-based. GPU acceleration for proof generation requires additional work (Halo2 GPU support or custom GPU kernels)
330+
2. **Complete proof generation**: Connect chunk execution to actual proof generation ([#8](https://github.com/ray-project/distributed-zkml/issues/8))
331+
3. **Ray-Rust integration**: Connect Python Ray workers to Rust proof generation ([#9](https://github.com/ray-project/distributed-zkml/issues/9))
332+
4. **GPU acceleration**: Current implementation is CPU-based. GPU acceleration for proof generation requires additional work ([#10](https://github.com/ray-project/distributed-zkml/issues/10))
358333

359334
### GPU Performance Benchmarking
360335

0 commit comments

Comments
 (0)