4 个版本
0.3.6 | 2024 年 5 月 14 日 |
---|---|
0.3.5 | 2024 年 5 月 11 日 |
0.3.3 | 2024 年 4 月 20 日 |
0.3.0 | 2024 年 4 月 6 日 |
1620 在 魔法豆
248 每月下载量
115KB
2.5K SLoC
fedimint-clientd:Fedimint 服务器端应用程序客户端
fedimint-clientd 运行 fedimint 客户端,并具有 Ecash、Lightning 和 Onchain 模块,允许服务器端应用程序使用 Fedimint 持有和使用比特币。它公开 REST API 并提供 typescript、python、golang 和 elixir 的包装器。它使用 multimint
仓库来管理来自单个 fedimint-clientd
实例连接到多个联邦的客户。
该项目旨在为有兴趣在其应用程序中添加 Fedimint 客户端支持的开发者提供一个易于使用的起点。fedimint-clientd 仅公开 Fedimint 的默认模块,任何更复杂的 Fedimint 集成都需要使用 Fedimint 的 rust 仓库 进行自定义实现。
入门
您可以使用 cargo install fedimint-clientd
命令安装命令行应用程序,或者通过克隆仓库并在根目录中运行 cargo build --release
来安装。
fedimint-clientd
从命令行运行并接受一些参数,这些参数也作为环境变量提供。Fedimint 使用 rocksDB,一个嵌入式键值存储库来存储其状态。--fm_db_path
参数是必需的,并且应该是数据库存储的目录的绝对路径。
CLI USAGE:
fedimint-clientd \
--db-path=/absolute/path/to/dir/to/store/database \
--password="some-secure-password-that-becomes-the-bearer-token" \
--addr="127.0.0.1:8080"
--mode="rest"
--invite-code="fed1-fedimint-invite-code"
ENV USAGE:
FEDIMINT_CLIENTD_DB_PATH=/absolute/path/to/dir/to/store/database
FEDIMINT_CLIENTD_PASSWORD="some-secure-password-that-becomes-the-bearer-token"
FEDIMINT_CLIENTD_ADDR="127.0.0.1:8080"
FEDIMINT_CLIENTD_MODE="rest"
FEDIMINT_CLIENTD_INVITE_CODE="fed1-fedimint-invite-code"
Fedimint 客户端守护进程端点
fedimint-clientd
支持以下端点(并在 /fedimint/v2/ws
提供了原始的 WebSocket 支持,详情请见代码。欢迎提交 PR 改进界面!)。所有端点都通过密码(从 CLI 或环境变量)生成的 Bearer 令牌进行身份验证。您可以使用 curl 访问端点,或使用 python/typescript/golang 封装库。
curl https://127.0.0.1:3333/fedimint/v2/admin/info -H 'Authorization: Bearer some-secure-password-that-becomes-the-bearer-token'
与管理员相关的命令
/fedimint/v2/admin/info
:显示钱包信息(持有量,层级)。/fedimint/v2/admin/backup
:将铸币笔记的(加密)快照上传到联盟。/fedimint/v2/admin/discover-version
:发现与联盟通信应使用的公共 API 版本。/fedimint/v2/admin/restore
:恢复之前创建的铸币笔记备份(使用backup
命令)。/fedimint/v2/admin/list-operations
:列出操作。/fedimint/v2/admin/module
:调用模块子命令。/fedimint/v2/admin/config
:返回客户端配置。
与铸币相关的命令
/fedimint/v2/mint/reissue
:重新发行从第三方收到的笔记,以避免双重消费。/fedimint/v2/mint/spend
:准备笔记以发送给第三方作为付款。/fedimint/v2/mint/validate
:验证电子现金笔记的签名,但不检查它们是否已被消费。/fedimint/v2/mint/split
:将包含多个电子现金笔记的字符串(例如,来自spend
命令)拆分为只包含一个的字符串。/fedimint/v2/mint/combine
:将两个或更多序列化的电子现金笔记字符串合并。
与闪电网络相关的命令
/fedimint/v2/ln/invoice
:创建闪电发票以通过网关接收付款。/fedimint/v2/ln/await-invoice
:等待收到的发票被支付。/fedimint/v2/ln/pay
:通过网关支付闪电发票或 lnurl。/fedimint/v2/ln/await-pay
:等待闪电支付完成。/fedimint/v2/ln/list-gateways
:列出已注册的网关。/fedimint/v2/ln/switch-gateway
:切换活动网关。
链上相关的命令
/fedimint/v2/onchain/deposit-address
:生成新的存款地址,发送到该地址的资金可以稍后领取。/fedimint/v2/onchain/await-deposit
:等待先前生成的地址上的存款。/fedimint/v2/onchain/withdraw
:从联盟提款。
其他端点
/health
:健康检查端点。/metrics
:使用 Prometheus 导出程序导出 API 指标(请求数量、延迟,仅高级指标)。
依赖项
~101MB
~2M SLoC