6 个版本

0.4.2-rc.0 2024年8月20日
0.4.0 2024年8月5日
0.4.0-rc.42024年7月26日

#910 in 神奇豆子

Download history 321/week @ 2024-07-14 339/week @ 2024-07-21 37/week @ 2024-07-28 144/week @ 2024-08-04 74/week @ 2024-08-11

685 个月下载量
用于 23 个crate(12 个直接使用)

MIT 许可证

625KB
14K SLoC

Fedimint

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

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

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

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

联邦密令开发者Discord是获取帮助和提问的最佳场所。加入Discord加入Discord并向大家问好!我们非常活跃,致力于将不同技能水平的开发者引入联邦密令和相关的开源比特币项目。联邦密令涉及比特币开发的许多不同领域,所以总有一款适合你。以下提供了更多有关如何参与的信息。

运行你自己的联邦密令

设置和运行自己的联邦非常简单。联邦密令设计为拜占庭容错,因此对联邦中m个恶意节点具有弹性,联邦中有3m + 1个节点。如果你运行了一个由4个守护者组成的联邦,你可以抵抗1个恶意守护者;如果你运行了一个由7个守护者组成的联邦,你可以抵抗2个守护者,以此类推。

联邦密令还可以以“单守护者模式”运行。这对于测试和开发很有用,但不推荐在生产环境中使用。

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

在Mutinynet上运行联邦密令

请参阅联邦密令Mutinynet设置指南。你可以修改配置选项来部署它。

针对开发者

我们正在积极寻找开发者来帮助构建联邦密令和相关的开源比特币项目。联邦密令涉及比特币开发的许多不同领域,所以总有一款适合你。开始的最佳地点是

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

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

联邦密令存储库和可贡献的项目

  • 联邦密令:核心联邦密令存储库。这里是核心共识和网络代码所在的地方。联邦密令是一个高级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 积极开发,存在已知问题
铸造模块 @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

依赖关系

~42–57MB
~836K SLoC