41个版本

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.0.1 2023年3月9日

#900魔法豆

Download history · Rust 包仓库 67/week @ 2024-04-29 · Rust 包仓库 387/week @ 2024-05-06 · Rust 包仓库 312/week @ 2024-05-13 · Rust 包仓库 264/week @ 2024-05-20 · Rust 包仓库 184/week @ 2024-05-27 · Rust 包仓库 286/week @ 2024-06-03 · Rust 包仓库 169/week @ 2024-06-10 · Rust 包仓库 118/week @ 2024-06-17 · Rust 包仓库 77/week @ 2024-06-24 · Rust 包仓库 211/week @ 2024-07-01 · Rust 包仓库 34/week @ 2024-07-08 · Rust 包仓库 792/week @ 2024-07-15 · Rust 包仓库 515/week @ 2024-07-22 · Rust 包仓库 147/week @ 2024-07-29 · Rust 包仓库 210/week @ 2024-08-05 · Rust 包仓库 63/week @ 2024-08-12 · Rust 包仓库

961 每月下载量
用于 23 个crate(2个直接使用)

MIT 许可证

565KB
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个默认模块 - BitcoinLightningChaumian Ecash - 为私有和最小化信任的支付提供即插即用的最佳实践。您可以使用支付模块编写自定义模块,以定义更多的共识项目和交易类型,从而构建自己的联邦应用。

Fedimint 开发者 Discord 是获取帮助和提问的最佳场所。加入 Discord(加入 Discord)并向我们打招呼!我们非常活跃,致力于将所有技能水平的开发者引入 Fedimint 以及相关开源比特币项目。Fedimint 涉及比特币开发的许多不同领域,因此总有一款适合您。下面提供更多信息,说明如何参与其中。

运行您自己的 Fedimint

设置和运行自己的联盟非常简单。Fedimint 被设计为 拜占庭容错,因此对联盟中 m 个恶意节点具有弹性。如果您运行一个由 4 个守护者组成的联盟,您对 1 个恶意守护者的攻击具有弹性;如果您运行一个由 7 个守护者组成的联盟,您对 2 个守护者的攻击具有弹性,依此类推。

Fedimint 还可以以“单守护者模式”运行。这对于测试和开发非常有用,但不建议在生产中使用。

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

在 Mutinynet 上运行 Fedimint

请参阅 Fedimint Mutinynet 安装指南。您可以使用修改后的配置选项来部署它。

面向开发者

我们正在积极寻找开发者来帮助我们构建 Fedimint 以及相关的开源比特币项目。Fedimint 涉及比特币开发的许多不同领域,因此总有一款适合您。以下是开始的地方:

Fedimint 技术参考文档

Fedimint Mutinynet 安装指南。您可以使用修改后的配置选项来部署它。

  • Fedimint:Fedimint的核心代码库。这里是核心共识和网络代码的存放地。Fedimint是一个高级的Rust项目,是学习Rust、密码学、网络、共识和比特币开发的绝佳场所。我们有许多适合初学者的任务,愿意指导新开发者,并且一直在寻找有经验的Rust开发者来帮助核心代码库的开发。
  • UI:默认的Fedimint守护者和闪电网关用户界面。这些是TypeScript和React项目。向此代码库贡献可以帮助UI/UX设计和开发,使Fedimint更加用户友好。
  • 闪电网关:Fedimint的闪电网关以HTLC拦截器的方式实现,目前与CLN、LND和LDK的sample-node实现兼容。我们一直在寻找闪电开发者来帮助闪电网关的开发,特别是提高支付可靠性和添加更多闪电实现的支持。
  • 自定义模块:Fedimint附带3个默认模块:比特币、闪电和Chaumian Ecash。你可以编写自定义模块,利用支付模块定义更多的共识项目和交易类型,以构建自己的联邦应用。我们一直在寻找开发者来帮助构建自定义模块和改进模块系统。

启动Fedimint开发者环境

Fedimint是一个Rust项目,使用Nix包管理器来管理依赖项和构建项目。

本地开发

Fedimint开发者教程中有详细的教程,介绍如何使用命令行界面发送/接收ecash、闪电支付和执行其他开发者操作。

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

然后可以使用命令行界面与守护者和闪电网关进行交互。有关如何使用命令行界面的更多详细信息,请参阅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

依赖项

~60MB
~1M SLoC