#fedimint #module #lightning #federation #bitcoin #e-cash #transaction

fedimint-empty-client

fedimint-empty 是一个空的 fedimint 模块,是新建模块的好模板

18 个版本

0.4.0 2024 年 8 月 5 日
0.4.0-rc.42024 年 7 月 26 日
0.3.3 2024 年 7 月 25 日
0.3.2-rc.02024 年 5 月 23 日
0.3.0-rc.32024 年 3 月 26 日

#2060 in 神奇豆子

Download history 44/week @ 2024-04-17 43/week @ 2024-04-24 91/week @ 2024-05-08 2/week @ 2024-05-15 82/week @ 2024-05-22 1/week @ 2024-06-05 95/week @ 2024-06-26 67/week @ 2024-07-03 489/week @ 2024-07-17 267/week @ 2024-07-24 126/week @ 2024-07-31

882 每月下载量

MIT 许可证

1MB
21K 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 个默认模块 - BitcoinLightningChaumian Ecash - 以实现即插即用的隐私化和最小化信任的支付最佳实践。您可以为定义更多共识项目和交易类型编写自定义模块,利用支付模块构建您自己的联邦应用。您可以编写自定义模块

联邦密令开发者Discord群是获取帮助和提问的最佳场所。加入Discord群,打个招呼!我们非常活跃,致力于帮助所有技能水平的开发者加入联邦密令和相关的开源比特币项目。联邦密令触及比特币开发的许多不同领域,所以每个人都有适合自己的一部分。下面有更多关于如何参与的信息。

运行自己的联邦密令

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

联邦密令还可以以“单守护者模式”运行。这对于测试和开发很有用,但不建议用于生产。

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

在Mutinynet上运行Fedimint

请参阅联邦密令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 的示例节点实现兼容。我们一直在寻找闪电开发者来帮助闪电网关,特别是在提高支付可靠性和添加更多闪电实现支持方面。
  • 自定义模块: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

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

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

依赖项

~47–63MB
~1M SLoC