42 lines
1,002 B
Markdown
42 lines
1,002 B
Markdown
|
[](https://ci.batsense.net/repos/109)
|
||
|
|
||
|
---
|
||
|
|
||
|
# gomcaptcha: Go library that implements mCaptcha PoW
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
Normal usage within mCaptcha ecosystem will look like this:
|
||
|
|
||
|
1. mCaptcha server presents challenge parameters (`difficulty_factor`, salt, and challenge phrase)
|
||
|
2. Visitor computes Proof-of-Work using parameters received
|
||
|
3. Visitor submits Proof-of-Work to mCaptcha server and receives
|
||
|
authorization token if Proof-of-Work is valid.
|
||
|
4. Visitor submits Proof-of-Work to protected resource/server
|
||
|
|
||
|
This library implements step #2 from this process.
|
||
|
|
||
|
## Dependencies
|
||
|
|
||
|
1. [Rust compiler](https://rustup.rs): This library is a thin wrapper
|
||
|
over [mcaptcha-pow-ffi](./mcaptcha-pow-ffi), which has to be compiled
|
||
|
first before this library can be used.
|
||
|
2. Go
|
||
|
3. GNU Make
|
||
|
|
||
|
Compile Rust FFI library:
|
||
|
|
||
|
```bash
|
||
|
make rust.build
|
||
|
```
|
||
|
|
||
|
Run example:
|
||
|
|
||
|
```bash
|
||
|
make example
|
||
|
```
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
Please refer to [example](./examples/main.go).
|