3 个不稳定版本
0.2.1 | 2024年2月22日 |
---|---|
0.1.2 | 2023年10月21日 |
0.1.1 | 2023年10月21日 |
215KB
5.5K SLoC
⚠️ 不要鲁莽:此项目处于早期开发阶段,但它确实可以使用真实的 sat!请始终使用您不介意丢失的金额。
moksha
moksha 是一个基于 David Wagner 的 Chaumian 混淆变体的 Ecash 实现,它是一个用 Rust 编写的 cashu 库、铸币和 CLI 钱包。
内容
关于
Cashu 是一个基于 David Wagner 的 Chaumian 混淆变体的 Ecash 实现。代币逻辑基于 minicash (描述),该方案实现了 Ruben Somsen 在此处记录的 盲 Diffie-Hellman 密钥交换 方案。有关更多信息,请参阅 Cashu 文档。
进度
铸币功能
- 支持的后端
- LNbits
- Lnd
- Alby
- Strike
- core-lightning (WIP)
钱包功能
- 连接到铸币(加载密钥)
- 请求铸币代币
- 铸币代币
- 发送代币(为所选值获取编码的代币)
- 接收代币
- 融化代币
- 检查代币是否已花费
- 多铸币支持
实现了 NUTs
- NUT-00
- NUT-01
- NUT-02
- NUT-03
- NUT-04
- NUT-05
- NUT-06
- NUT-07
- NUT-08
- NUT-09
- NUT-10
- NUT-11
- NUT-12
- NUT-13
- NUT-14
- NUT-15
- NUT-16
- NUT-17 链上铸币(非官方 NUT)
- NUT-18 链上融化(非官方 NUT)
软件包
- moksha-core Cashu 库的核心。包含创建和验证令牌的所有逻辑。
- moksha-wallet Cashu 钱包库
- moksha-cli Cashu 命令行钱包
- moksha-mint Cashu 铸造服务器。处理铸造、熔化和令牌请求。
- integrationtests 启动铸造并对其运行集成测试。
用法
部署铸造
Docker-compose
Docker-compose 简化了运行多容器 Docker 应用程序的过程。以下是您如何使用它来运行 moksha -mint 的方法
-
首先,您需要在您的机器上安装 Docker Compose。如果没有安装,您可以从官方 Docker 网站下载。
-
将您的 LND 实例中的 tls.cert 和 admin.macaroon 文件复制到
./data/mutinynet/
目录中。 -
在
docker-compose.yml
文件中配置LND_GRPC_HOST
环境变量,使其指向您的 LND 实例。 -
在您的
docker-compose.yml
文件所在的目录中运行以下命令以启动铸造和 PostgreSQL 数据库
docker-compose up -d app database
开发
设置 rust
git clone https://github.com/ngutech21/moksha.git
cargo install just typos-cli sqlx-cli grcov wasm-pack wasm-opt
rustup component add llvm-tools-preview
cd moksha
为您的平台安装 protobuf
这是 LND 后端所需的。
sudo apt install protobuf-compiler
brew install protobuf
choco install protoc
配置
mv .env.example .env
# edit .env file
vim .env
运行铸造(cashu-server)
要运行铸造,您需要设置一个类似 Polar 的闪电 regtest 环境和一个 Lnbits 或 Lnd 实例。在 Lnbits 中创建一个新的钱包,将管理员密钥复制到 .env 文件中,并将 URL 设置为您的 Lnbits 实例。铸造使用 PostgreSQL 存储已使用证明和待处理发票。数据库 URL 可以在 .env 文件中配置。
install docker and docker-compose
docker compose up -d
just db-create
just run-mint
运行 cli-wallet
显示信息
显示当前版本、数据库目录和铸造 URL。
just run-cli info
检查余额
just run-cli balance
铸造令牌
此命令将返回一个 Lightning 发票,您需要支付以铸造新的 ecash 令牌。
just run-cli mint 42
发送令牌
要将令牌发送给其他用户,请输入。令牌将被打印到 STOUT。然后您可以通过任何消息应用将它们发送给接收者。
just run-cli send 21
接收令牌
要接收令牌,您需要在接收命令的第一个参数中输入令牌。令牌将被验证,并且值将添加到您的余额中。
just run-cli receive cashuAeyJ0...
开发
要运行覆盖率、检查错误等,请使用 just 命令
Available recipes:
build-docker # build the mint docker-image
build-wasm # compile all rust crates, that are relevant for the client, to wasm
clean # clean cargo
db-create # creates the postgres database
db-migrate # runs sqlx prepare
db-prepare # runs sqlx prepare
default # list all tasks
deps # install all dependencies
final-check # format code, check typos and run tests
publish # publish everything on crates.io
run-cli *ARGS # run cli-wallet with the given args
run-coverage # run coverage
run-itests # run integrationtests
run-mint *ARGS # run the cashu-mint
run-tests # runs all tests
typos # check code for typos
typos-fix-all # fix all typos
许可证
moksha 根据 MIT 许可证分发。请参阅 LICENSE。
依赖关系
~91MB
~1.5M SLoC