2个不稳定版本
0.4.1 | 2023年2月25日 |
---|---|
0.3.0 | 2023年1月18日 |
#10 in #halo2
用于 2 个crate(通过 darkfi-derive)
17KB
304 行
DarkFi - 匿名、无审查、主权
我们旨在通过强大的密码学和点对点网络来普及匿名数字市场。我们正在建立一个抵抗监控状态的自由在线区域。
不幸的是,法律并没有跟上技术的发展,这种脱节造成了一个重大的公共安全问题。我们称之为“黑暗化”。
詹姆斯·科米,FBI局长
那么,让我们进入黑暗。
关于DarkFi
DarkFi是一个新的第1层区块链,以匿名为核心设计。它提供灵活的私有原语,可以用来创建任何类型的应用程序。DarkFi旨在使匿名工程对开发者高度可访问。
DarkFi使用了零知识密码学的最新进展,包括一种合约语言和开发者工具包,用于创建不可审查的代码。
在一个完全黑暗、匿名的系统中,加密货币有可能孕育以主权为中心的新技术概念。这可以是一个富有创造力、具有再生力的空间——黑暗复兴的黎明。
连接到DarkFi IRC
按照 安装说明 安装P2P IRC守护程序。
构建
此项目需要安装Rust编译器。请访问 Rustup 获取说明。
您必须安装本机工具链,该工具链在Rust安装期间设置,包括夜间工具链和wasm32目标。要安装夜间工具链,请执行以下操作
% rustup toolchain install nightly
要安装wasm32目标,请执行以下操作
% rustup target add wasm32-unknown-unknown
% rustup target add wasm32-unknown-unknown --toolchain nightly
支持的最低Rust版本为 1.77.0 (nightly)。
还需要以下依赖项
依赖项 | 基于Debian |
---|---|
git | git |
make | make |
gcc | gcc |
pkg-config | pkg-config |
alsa-lib | libasound2-dev |
openssl | libssl-dev |
sqlcipher | libsqlcipher-dev |
wabt | wabt |
基于Debian的系统(例如Ubuntu)的用户可以简单地运行以下命令来安装所需的依赖项
# apt-get update
# apt-get install -y git make gcc pkg-config libasound2-dev libssl-dev libsqlcipher-dev wabt
或者,用户可以尝试在 contrib
文件夹下使用自动脚本,通过执行
% sh contrib/dependency_setup.sh
脚本将尝试识别您正在运行的系统,并相应地安装依赖项。如果它找不到您的包管理器,请考虑在脚本中添加对其的支持并发送补丁。
为了构建必要的二进制文件,我们可以直接克隆仓库,并使用提供的 Makefile 来构建项目
% git clone https://codeberg.org/darkrenaissance/darkfi
% cd darkfi
% make
开发
如果您想修改源代码,请确保阅读在 DarkFi 书籍 中的简介建议。
走在前沿
由于该项目使用夜间工具链,因此偶尔会发生破坏性更改。作为解决方案,我们可以配置一个已知可以工作的旧夜间版本。
% rustup toolchain install nightly-2024-04-05
% rustup target add wasm32-unknown-unknown --toolchain nightly-2024-04-05
现在我们可以在 make
中直接使用该工具链
% make CARGO="cargo +nightly-2024-04-05" {target}
或者,如果我们懒惰的话,我们可以修改 Makefile
以始终使用它
% sed -i Makefile -e "s|nightly|nightly-2024-02-01|g"
在任何情况下都不要提交或推送 Makefile 的更改。
直接使用 cargo
时,必须添加 +nightly-2024-02-01
标志,以便它使用较旧的夜间版本。
安装
这将安装系统上的二进制文件(默认为 /usr/local
)。二进制文件的配置文件与二进制文件捆绑在一起,并包含合理的默认值。您必须运行每个守护进程一次,以便它们生成配置文件,然后您可以对其进行审查。
# make install
示例和用法
请参阅 DarkFi 书籍
进入黑暗
让我们让人们摆脱大公司的控制,并创造技术的民主范式。
自卫是任何生物生存和成长的基本要素。
力量属于每个小人物。
lib.rs
:
为结构体生成(反)序列化,请参阅 src/serial/derive
依赖关系
~1.5MB
~35K SLoC