42个版本

0.4.2-rc.1 2024年8月26日
0.4.0-rc.42024年7月26日
0.3.0-rc.32024年3月26日
0.2.1-rc32023年12月22日
0.0.1 2023年2月22日

#45 in #fedimint

Download history · Rust 包仓库 460/week @ 2024-05-06 · Rust 包仓库 356/week @ 2024-05-13 · Rust 包仓库 354/week @ 2024-05-20 · Rust 包仓库 212/week @ 2024-05-27 · Rust 包仓库 332/week @ 2024-06-03 · Rust 包仓库 211/week @ 2024-06-10 · Rust 包仓库 147/week @ 2024-06-17 · Rust 包仓库 125/week @ 2024-06-24 · Rust 包仓库 367/week @ 2024-07-01 · Rust 包仓库 53/week @ 2024-07-08 · Rust 包仓库 1223/week @ 2024-07-15 · Rust 包仓库 721/week @ 2024-07-22 · Rust 包仓库 229/week @ 2024-07-29 · Rust 包仓库 319/week @ 2024-08-05 · Rust 包仓库 109/week @ 2024-08-12 · Rust 包仓库 241/week @ 2024-08-19 · Rust 包仓库

912 每月下载量
用于 45 个crate(44个直接使用)

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 软件版本。这意味着提供的软件是“现状”提供的,没有任何形式的保证。我们是一个小型开发团队,资源有限。如果你因为该软件的漏洞而损失资金,我们可能无法帮助你恢复资金。我们建议你在 mutinynet 等测试网上运行 Fedimint,或者在主网上用少量资金进行测试。你可以在 这里 找到我们最新的版本。

Fedimint 随带 3 个默认模块 - BitcoinLightning,以及 Chaumian Ecash - 为私有和最小化信任的支付提供开箱即用的最佳实践。 你可以编写自定义模块,定义进一步的共识项和交易类型,利用支付模块构建自己的联邦应用。

Fedimint 开发者 Discord 是获取帮助和提问的最佳场所。 加入Discord 并打个招呼!我们非常活跃,致力于将所有技能水平的开发者引入 Fedimint 和相关的开源 Bitcoin 项目。Fedimint 涉及到 Bitcoin 开发的许多不同领域,所以每个人都有适合的内容。更多信息请见下文。

运行你自己的 Fedimint

设置并运行自己的联盟非常简单。Fedimint被设计成拜占庭容错,因此对联盟中的恶意节点具有强大的抵御能力。在由3m + 1个节点组成的联盟中,能抵御m个恶意节点。如果你运行一个由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守护者和闪电网网关用户界面。这些是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

然后Fork并克隆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 活跃开发,已知问题
铸币模块 @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

依赖关系

~41–55MB
~821K SLoC