As PoW goes, this is cool.

One thing I didn't understand though is Light mode:

> Fast mode is for mining. Light mode is for verification. The reference README says

The post only describes Fast mode, right?

Presumably verification is done by miners who already have the memory set up so Fast mode would be faster for them.

Verification is still relatively fast because you don't have to try gazillions of nonces so who is Light mode necessary and how does it work?

Light mode is used mostly by the monerod, validating incoming blocks. But on a machine with sufficient free RAM, monerod can also be set to use Fast mode instead.

The post described both modes. The only difference is that Fast mode processes the cache to generate the full 2.1GB dataset, so subsequent programs can just reference it as needed. Light mode uses only the 256MB cache and generates the required dataset values individually, on each access. That saves RAM but costs more CPU time.