Skip to content

0xmichalis/chiapos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Proof of Space

This is an alternative implementation of the Chia Proof of Space algorithm. If you are into Golang and think Proofs of Space sounds cool, feel free to contribute!

WARNING: This is an academic prototype, and NOT ready for production use. If you want to use proofs of space in your project or run a Chia farmer, you should use the reference implementation.

Build

Golang (1.13+) is the only requirement to build this project. Once you have it installed:

make build

Run

Plot your disk with:

./bin/plotter

If no plot seed is provided via a file, a random one will be generated at .seed.

Now, search for a proof. We can provide a challenge via the -c flag. If no challenge is provided, a random challenge is generated and persisted at .random_challenge. It may happen that we will not find a proof of space immediately because none exists for the provided challenge. If so, try with a different challenge until one is found.

./bin/prover

Once we find a proof, we can reproduce the proof retrieval by using the persisted random challenge:

./bin/prover -c "$(cat .random_challenge)" > .proof

Now that we have also persisted the proof, we can verify it:

./bin/verifier -key .seed -p $(cat .proof) -c "$(cat .random_challenge)"

Contribute

Run tests

make test

Run code verification

make verify

Run benchmarks

make bench

Acknowledgements

  • btcsuite (for the logo and high code standards)

About

🍃 Chia's initial Proof of Space implementation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages