git / moonbite-core / src/libmw/README.md · raw
# libmwModular library for supporting Litecoin's implementation of the MWEB (Mimblewimble Extension Block). [Build instructions](doc/build.md)## Design## deps/Contains third-party dependencies. Most of our dependencies come from vcpkg,but here we vendor a few libraries since a suitable alternative was not found on vcpkg.### caches/Header-only implementations of common caching algorithms.Repo: https://github.com/vpetrigo/caches/### crypto/Crypto libraries not provided by litecoin or secp256k1-zkp.Currently, this just contains The reference implementation of blake2b.### ghc/A header-only implementation of the C\+\+17 std::filesystem standard, but made compatible with C\+\+11 and C\+\+14.While boost\:\:filesystem is already pulled in by litecoin, I was uncomfortable with its API and its handling of unicode conversions.Someone more familiar with boost::filesystem should be able to eliminate the need for this dependency.### secp256k1-zkp/The elliptic curve cryptography, including schnorr, musig, pedersen, and bulletproofs modules.This code comes from https://github.com/mimblewimble/secp256k1-zkp,which was built on top of https://github.com/elementsproject/secp256k1-zkp,which was built on top of https://github.com/bitcoin/bitcoin/tree/master/src/secp256k1Before releasing, we should see if the latest version of https://github.com/elementsproject/secp256k1-zkp contains all of the modules we need,since it gets a lot of attention from cryptographers. Additionally, it would be wise to remove this from the deps directory,and just replace the more-limited secp256k1 dependency that's already included in Litecoin.Otherwise, we'll have 2 versions to maintain, and will very likely have namespace clashes to deal with.## include/## src/