#fedimint #module #bitcoin #lightning #wallet #federation #consensus

fedimint-wallet-common

fedimint-wallet 是一个基于链的比特币钱包模块。它使用键值存储,不是一个标准的 HD 钱包。

39 个版本

新版本 0.4.0 2024 年 8 月 5 日
0.4.0-rc.42024 年 7 月 26 日
0.3.3 2024 年 7 月 25 日
0.3.0-rc.32024 年 3 月 26 日
0.2.0-rc32023 年 11 月 29 日

#2366神奇豆子

Download history 262/week @ 2024-04-18 124/week @ 2024-04-25 227/week @ 2024-05-02 315/week @ 2024-05-09 111/week @ 2024-05-16 225/week @ 2024-05-23 227/week @ 2024-05-30 232/week @ 2024-06-06 116/week @ 2024-06-13 69/week @ 2024-06-20 199/week @ 2024-06-27 147/week @ 2024-07-04 141/week @ 2024-07-11 621/week @ 2024-07-18 341/week @ 2024-07-25 167/week @ 2024-08-01

1,271 每月下载量
用于 12 个 crate(2 个直接使用)

MIT 许可证

565KB
13K SLoC

Fedimint

GitHub Actions CI Build Status Developer Discord Chat GitHub Discussion docs built from master Lines of code

Fedimint 是一个构建联邦应用的模块化系统。它旨在成为一个最小化信任、抗审查和隐私的集中式应用的替代方案。

Fedimint 是在 MIT 许可证 下发布的 alpha 软件版本。这意味着软件提供“原样”,不提供任何类型的保证。我们是一个资源有限的小型开发团队。如果您因本软件中的错误导致资金损失,我们可能没有帮助您恢复资金的手段。我们建议您在 mutininet 等测试网上运行 Fedimint,或在主网上用少量资金运行。您可以在 这里 找到我们的最新版本。

Fedimint 随附 3 个默认模块 - BitcoinLightningChaumian Ecash - 以提供开箱即用的最佳实践,用于私人化和最小化信任的支付。您可以为定义进一步的共识项目和交易类型而编写自定义模块,利用支付模块构建您自己的联邦应用。

Fedimint 开发者 Discord 是获取帮助和提问的最佳场所。加入 Discord 并打个招呼!我们非常活跃,致力于将所有技能水平的开发者引入 Fedimint 及其相关的开源比特币项目。Fedimint 涉及比特币开发的许多不同领域,因此每个人都能找到适合自己的东西。下面提供更多关于如何参与的信息。

运行自己的 Fedimint

设置和运行自己的联盟非常简单。Fedimint 设计为 拜占庭容错,因此对联盟中 m 个恶意节点具有弹性,联盟节点总数为 3m + 1。如果您运行一个由 4 个守护者组成的联盟,您对 1 个恶意守护者的攻击具有弹性;如果您运行一个由 7 个守护者组成的联盟,您对 2 个守护者的攻击具有弹性,等等。

Fedimint 也可以以“单守护者模式”运行。这对于测试和开发很有用,但不建议用于生产环境。

要进行闪电支付,Fedimint 需要一个 闪电网关:愿意交换 ecash 以发送/接收闪电支付的联盟用户。闪电网关不是守护者,充当服务于联盟的未信任经济行为者。

在 Mutinynet 上运行 Fedimint

请参阅 Fedimint Mutinynet 安装指南。您可以修改配置选项以部署它。

针对开发者

我们正在积极寻找开发者来帮助构建 Fedimint 及其相关的开源比特币项目。Fedimint 涉及比特币开发的许多不同领域,因此每个人都能找到适合自己的东西。开始的最佳地方是

  • Fedimint 开发者 Discord:获取帮助和提问的最佳场所。
  • Fedimint 技术参考文档
  • Fedimint 贡献者日历:此日历包含所有开发者通话和活动。
  • Fedimint 开发者通话:我们每周一 UTC 时间下午 4 点举行开发者通话,以审查 PR 并讨论当前的开发优先事项。作为新开发者,这是一个寻找良好入门问题并获得核心团队如何开始贡献 Fedimint 指导的好地方。
  • PR 审查俱乐部:我们每周二 UTC 时间下午 4 点举行 PR 审查通话。
  • 每周深度探讨:我们每周四 UTC 时间下午 4 点进行深度探讨,讨论与 Fedimint 相关的技术主题:密码学、Rust 编程、共识、网络等。这是一个了解 Fedimint 和比特币内部结构的好地方。我们通常根据贡献者对 Fedimint 想要了解更多方面的请求来计划这些通话,因此如果您有想要了解的话题,请告诉我们。

有关贡献指南、贡献领域以及如何参与,请参阅 贡献指南

Fedimint 仓库和可以贡献的项目

  • Fedimint: 这是Fedimint的核心仓库。这里存放着核心共识和网络代码。Fedimint是一个高级的Rust项目,是学习Rust、密码学、网络、共识和比特币开发的绝佳场所。我们有很多适合初学者的任务,愿意指导新开发者,并始终在寻找有经验的Rust开发者来帮助核心代码库。
  • UI: 默认的Fedimint守护者和闪电网关UI。这些是TypeScript和React项目。为这个仓库做贡献有助于UI/UX设计和开发,使Fedimint更易于用户使用。
  • 闪电网关: Fedimint的闪电网关作为HTLC拦截器实现,目前与CLN、LND和LDK的sample-node实现兼容。我们始终在寻找闪电开发者来帮助闪电网关,特别是在提高支付可靠性和添加更多闪电实现支持方面。
  • 自定义模块: Fedimint提供了3个默认模块:比特币、闪电和Chaumian Ecash。你可以编写自定义模块来定义进一步的共识项目和交易类型,利用支付模块构建自己的联邦应用程序。我们始终在寻找开发者来帮助构建自定义模块并改进模块系统。

启动Fedimint开发者环境

Fedimint是一个Rust项目,使用Nix包管理器来管理依赖项和构建项目。

本地开发

我们在Fedimint开发者教程中详细介绍了如何使用cli发送/接收ecash、闪电支付以及执行其他开发者操作。

Fedimint的开发者环境和rust构建管道是通过Nix Flakebox管理的。要开始,请安装Nix。

curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install

然后分叉并克隆Fedimint仓库。

git clone https://github.com/your-username/fedimint.git

然后进入nix开发者环境。

nix develop

并使用以下命令启动一个包含4个守护者、一个比特币节点和一个闪电网关的本地regtest网络。

just mprocs

然后你可以使用cli与守护者和闪电网关进行交互。有关如何使用cli的更多详细信息,请参阅Fedimint开发者教程

如果你想要运行带有UI,请参阅UI仓库中的开发者环境说明。

维护者

领域 主要维护者 共同维护者 状态
项目负责人 @elsirion @dpc @joschisan X
核心服务器 @joschisan X 大部分已良好分解,无已知问题
核心共识 @joschisan @bradleystachurski 经过磨炼和文档化
闪电模块 @joschisan @m1sterc001guy 活跃开发,存在已知问题
Mint模块 @joschisan X 活跃开发,存在已知问题
钱包模块 @bradleystachurski @dpc @joschisan 活跃开发,存在关键问题
核心客户端 @dpc X X
闪电网关 @m1sterc001guy @joschisan X
数据库 @m1sterc001guy X X
网络 X X X
CI / Nix @dpc @maan2003 @bradleystachurski X
测试 @bradleystachurski X X
Devimint @maan2003 X X
配置生成 X X X

依赖项

~41–56MB
~820K SLoC