#lightning #fedimint #bitcoin #module #consensus #federation #default

bin+lib fedimintd

fedimintd 是处理交易和 REST API 的主要共识代码

40 个版本

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.0.1 2023 年 2 月 22 日

#300魔法豆

Download history 3/week @ 2024-04-28 85/week @ 2024-05-05 6/week @ 2024-05-12 87/week @ 2024-05-19 2/week @ 2024-05-26 2/week @ 2024-06-02 153/week @ 2024-06-30 10/week @ 2024-07-07 381/week @ 2024-07-14 349/week @ 2024-07-21 139/week @ 2024-07-28 112/week @ 2024-08-04 3/week @ 2024-08-11

714 每月下载量

MIT 许可证

1.5MB
28K 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 - 用于现成的最佳实践,实现私有和最小化信任的支付。您可以编写自定义模块,以定义更多的共识项和交易类型,利用支付模块构建自己的联邦应用。 您可以编写自定义模块

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

运行您自己的 Fedimint

设置和运行您自己的联邦非常简单。Fedimint 被设计为 拜占庭容错,因此对联邦中 m 个恶意节点具有弹性。如果您运行一个由 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 更易于使用。
  • 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

然后分叉并克隆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

依赖关系

~109MB
~2M SLoC