You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
litecoin/src/libmw
Loshan T 8e16ef3c61
fix #942
2 months ago
..
deps MWEB: Add libmw 2 years ago
include/mw fix #942 2 months ago
src remove block height from netutxo & changed segment.leaves to vector<Leaf> 2 months ago
test remove block height from netutxo & changed segment.leaves to vector<Leaf> 2 months ago
.gitignore MWEB: Add libmw 2 years ago
LICENSE MWEB: Add libmw 2 years ago
README.md MWEB: Add libmw 2 years ago

README.md

libmw

Modular library for supporting Litecoin's implementation of the MWEB (Mimblewimble Extension Block).

Build instructions

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/secp256k1

Before 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/