40 个版本

0.4.2-rc.0 2024年8月20日
0.4.0-rc.42024年7月26日
0.3.0-rc.32024年3月26日
0.2.1-rc32023年12月22日
0.2.0-rc32023年11月29日

#883 in 魔法豆

Download history • Rust 包仓库 134/week @ 2024-04-28 • Rust 包仓库 442/week @ 2024-05-05 • Rust 包仓库 364/week @ 2024-05-12 • Rust 包仓库 357/week @ 2024-05-19 • Rust 包仓库 220/week @ 2024-05-26 • Rust 包仓库 346/week @ 2024-06-02 • Rust 包仓库 182/week @ 2024-06-09 • Rust 包仓库 181/week @ 2024-06-16 • Rust 包仓库 96/week @ 2024-06-23 • Rust 包仓库 294/week @ 2024-06-30 • Rust 包仓库 68/week @ 2024-07-07 • Rust 包仓库 1015/week @ 2024-07-14 • Rust 包仓库 590/week @ 2024-07-21 • Rust 包仓库 214/week @ 2024-07-28 • Rust 包仓库 243/week @ 2024-08-04 • Rust 包仓库 81/week @ 2024-08-11 • Rust 包仓库

1,260 每月下载量
用于 18 个crate(5个直接)

MIT 协议

540KB
12K SLoC

Fedimint

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

Fedimint 是一个基于模块的系统,用于构建联邦应用程序。它被设计为一个最小化信任、抗审查和私密的集中式应用程序的替代品。

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

Fedimint 包含3个默认模块 - BitcoinLightning,和 Chaumian Ecash - 以实现私人和最小化信任的支付的最佳实践。您还可以编写自定义模块,以进一步定义共识项目和交易类型,利用支付模块构建您自己的联邦应用程序。您可以编写自定义模块

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

运行自己的 Fedimint

设置和运行自己的联盟非常简单。Fedimint 设计为 拜占庭容错,因此对联盟中的恶意节点有很强的抵抗力。在由 3m + 1 个节点组成的联盟中,它可以抵御 m 个恶意节点。如果你运行一个由 4 个守护者组成的联盟,你可以抵御 1 个恶意守护者;如果你运行一个由 7 个守护者组成的联盟,你可以抵御 2 个守护者,等等。

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

要进行闪电支付,Fedimint 需要一个 闪电网关:愿意将 ecash 兑换为发送/接收闪电支付的用户。闪电网关不是守护者,而是一个为联盟服务的不可信的经济参与者。

在 Mutinynet 上运行 Fedimint

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

为开发者

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

  • Fedimint 开发者 Discord:获取帮助和提问的最佳场所。
  • Fedimint 技术参考文档
  • Fedimint 贡献者日历:此日历包含所有开发者会议和活动。
  • Fedimint 开发者会议:我们每周一 4PM UTC 进行开发者会议,以审查 PR 并讨论当前的开发优先事项。对于新开发者来说,这是一个找到好的入门问题并获得核心团队如何开始贡献 Fedimint 的指导的绝佳场所。
  • PR 审查俱乐部:我们每周二 4PM UTC 进行 PR 审查会议。
  • 每周深入探讨:我们每周四 4PM UTC 进行深入探讨,讨论与 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包管理器来管理依赖项和构建项目。

本地开发

我们有一个详细的教程,介绍如何使用cli发送/接收ecash、闪电支付以及执行其他开发者操作,请参阅Fedimint开发者教程

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

依赖项

~57MB
~832K SLoC