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日

#776 in 神奇豆子

Download history 85/week @ 2024-04-22 91/week @ 2024-05-06 4/week @ 2024-05-13 118/week @ 2024-05-20 1/week @ 2024-06-03 171/week @ 2024-07-01 429/week @ 2024-07-15 362/week @ 2024-07-22 79/week @ 2024-07-29 116/week @ 2024-08-05

986 每月下载量
用于 fedimint-testing

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 软件版本。这意味着软件是“按原样”提供的,不提供任何类型的保证。我们是一个资源有限的小型开发团队。如果您因本软件中的错误而损失资金,我们可能没有帮助您恢复资金的手段。我们建议您在 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 开发者通话:我们每周一下午 4 点 UTC 进行开发者通话,以审查 PR 并讨论当前的开发优先事项。作为一名新开发者,这是一个找到好的首次问题并从核心团队获得指导以开始对 Fedimint 贡献的绝佳地方。
  • PR 审查俱乐部:我们每周二下午 4 点 UTC 进行 PR 审查通话。
  • 每周深度探讨:我们每周四下午 4 点 UTC 进行深度探讨,以深入讨论与 Fedimint 相关的技术主题:密码学、Rust 编程、共识、网络等。这是一个了解 Fedimint 和比特币内部结构的绝佳地方。我们通常根据贡献者对 Fedimint 想要了解的方面的请求来计划这些通话,因此如果您有任何想要了解的话题,请与我们联系。

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

Fedimint 存储库和可贡献的项目

  • Fedimint:核心 Fedimint 存储库。这是核心共识和网络代码所在的地方。Fedimint 是一个高级 Rust 项目,是学习 Rust、密码学、网络、共识和比特币开发的绝佳地方。我们有很多好的首次问题,愿意指导新开发者,并始终欢迎有经验的 Rust 开发者帮助核心代码库。
  • UI:默认的 Fedimint 守护者和闪电网关 UI。这些都是 TypeScript 和 React 项目。为这个存储库做出贡献有助于 UI/UX 设计和开发,使 Fedimint 更易于使用。
  • Lightning Gateway:Fedimint的Lightning Gateway作为HTLC拦截器实现,目前与CLN、LND和LDK的sample-node实现兼容。我们一直在寻找Lightning开发者来帮助我们改进Lightning Gateway,特别是在提高支付可靠性和添加更多Lightning实现支持方面。
  • 自定义模块: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

然后fork并克隆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 积极开发,存在已知问题
铸造模块 @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

依赖项

~40–58MB
~813K SLoC