# 第一个支持私有和可编程的公链-Aleo-节点教程

By [ChiefDavid](https://paragraph.com/@chiefdavid) · 2022-10-20

---

今天介绍的是[Aleo](https://twitter.com/AleoHQ)，**第一个**使用零知识证明解决隐私问题，同时保证可编程特性的**创新**公链项目。

![](https://storage.googleapis.com/papyrus_images/96035df97e534a392d327ed7baac5ce88f66229488222697d07a9e31bbb9bcb2.png)

**项目简介：**

**Aleo** 是第一个支持私有和可编程应用程序的去中心化开源平台。 使用零知识证明协议，提供更私密和更个性化的 Web 体验。可以在不透露信息本身的情况下证明某事的真实性。

_例如：我们可以通过证明我们是谁来登录 Facebook，而无需透露我们的电子邮件、密码、位置、生日、母亲的娘家姓或最喜欢的披萨配料。_

**项目进程：**

**Aleo** 2019年创立，加速了零知识融入未来互联网。通过将零知识应用到区块链生态系统中，来解决公共网络不对称的悖论。

**Aleo** 提出了特定零知识解决方案 - ZEXE ，支持完整的可编程性和隐私性。

同样重要的是，Aleo 提供选择退出隐私，将权力交还给用户，而不是控制它的公司，确保最终控制权在于用户，用户可以选择他们希望公开的信息以获得更加私密、个性化和有益的在线体验。

Aleo 使网络参与者能够在完全隐私的公共网络上进行交互，而不会牺牲去中心化网络所支持的任何程度的性能或功率。 与 [Zcash](https://twitter.com/zcash) 一样，该系统为我们提供了强大的隐私保证，因为交易仅包含证明，而不包含生成它的输入。也和[以太坊](https://twitter.com/ethereum)一样，ZEXE 可以支持智能合约，使用户能够以预定义的方式进行交互或转移价值。

Aleo 提出了一个称为**zkCloud**的环境，一种点对点、去中心化、私有计算的模型。实现了受_保护身份_之间的编程交互，被屏蔽的身份可以直接（如在资产转移中）或以编程方式（通过智能合约）进行交互。通过将这种交互转移到链下，我们不仅可以保证隐私，还可以实现更大的交易吞吐量。

为了在 Aleo 上直观轻松地编写私有应用程序，Aleo开发一种名为 **Leo** 的编程语言。为了快速启动开发周期，Aleo构建了 **Aleo Studio**，这是第一个用于编写零知识应用程序的 IDE。

**融资情况：**

2022 年 2 月 7 日 Aleo在由[Kora Management LP](https://koracap.com/)和[SoftBank Vision Fund 2](https://visionfund.com/)牵头的 B 轮融资中筹集了 **2 亿美元**， Tiger Global和Sea Capital参投、三星 Next、 Slow Ventures和[Andreessen Horowitz (a16z)](https://twitter.com/a16z)，最终对该公司的估值为 14.5 亿美元。

2021年4月Aleo 今天宣布，已经筹集了 **2800 万美元**来为去中心化的私有应用程序构建下一代平台。 本轮融资由 **Andreessen Horowitz (a16z)** 领投，Placeholder VC、Galaxy Digital、Variant Capital 和 Coinbase Ventures 参投。其他值得注意的投资者包括 Polychain Capital、Slow Ventures、Dekrypt Capital、Scalar Capital、a\_capital、zkValidator、Balaji Srinivasan 和由 Joseph Lubin 创立的新风险基金 Ethereal Ventures。 该团队由来自谷歌、亚马逊和 Facebook 等公司以及加州大学伯克利分校、约翰霍普金斯大学、纽约大学和康奈尔大学等研究型大学的世界级密码学家、工程师、设计师和运营商组成。

**测试节点搭建教程**

开始今天的教程之前，需要有一定的前置条件：

一台ubuntu服务器(最好是国外的服务器，问题会少很多)，最低配置如下

*   CPUs: 16
    
*   RAM: 32GB
    
*   Storage: 150GB
    
*   OS：Ubuntu 20.04
    

**1、使用ssh登录服务器（mac、linux系统下操作**）

    ssh root@服务器ip 
    

回车确认，如果出现提示”Are you sure you want to continue connecting (yes/no/\[fingerprint\])?“

输入 `yes` 回车确认

窗口等待输入服务器密码，回车确认。进入服务器

![运行成功结果](https://storage.googleapis.com/papyrus_images/dc9e70afcfa2bce4cb609a6ac5f54cf4397039ccd3fc5c30cce47c423bf53301.png)

运行成功结果

运行成功结果

**2、确认当前用户是root，如果已经是root用户请略过**

开启root用户，为root用户创建密码，输入两次密码

![](https://storage.googleapis.com/papyrus_images/df107eb284a26e6493e047cd83dafb13f300ce5e069e5faa7439dcdf5b19a709.png)

使用下面命令，切换到root用户，在输入刚才创建的密码

![](https://storage.googleapis.com/papyrus_images/0be886687df51451e6cd96d194441c9b650f8c8f40833a4ab40a6e0f2d30e4ff.png)

**3、安转Rust v1.59+**

使用下面命令，自动安装rust

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    

![](https://storage.googleapis.com/papyrus_images/d7f886a1fbdbd6499bd8647ec8254cac1ae8c57bd9f4cdd76a6f5d46f5e25c1a.png)

出现下面的界面时，选择1，默认安装

![](https://storage.googleapis.com/papyrus_images/1ac9042d45203b48e8ff25e9d6ba35ee4e867ae118aa809006f3734509fcc5b9.png)

出现下面的界面说明安装完成

![](https://storage.googleapis.com/papyrus_images/1575c81fed179a7c4aa9806e27f83a4b7dbf36f81d0dc085f66d118be6c12ec1.png)

使用下面命令，让Rust生效

    source "$HOME/.cargo/env"
    

![](https://storage.googleapis.com/papyrus_images/303499afe1aa27be412d92fee5ad543d9dfd759dc81d42dc9331da4f840e5b60.png)

**4、安装依赖**

使用下面命令，安装git依赖

    apt install git -y
    

![](https://storage.googleapis.com/papyrus_images/69d79e008484528dd89a0d2cfb184eaeadc0e428bb9d9ce436cebd7cf7160493.png)

**5、通过源码安装snarkOS**

使用下面命令，创建/opt/snarkos目录，并进入

    mkdir /opt/snarkos && cd /opt/snarkos
    

![](https://storage.googleapis.com/papyrus_images/14271033ebd6c52676622e6281042e79e2aa556436ca52c97c171cb7f744044d.png)

使用下面命令，下载snarkOS源码

    git clone https://github.com/AleoHQ/snarkOS.git --depth 1
    

![](https://storage.googleapis.com/papyrus_images/d1333dbc1c9c6417161646e0ac620dfcfaaf74f0166055ec3a21610642289219.png)

使用下面命令，进入snarkos目录

    cd snarkOS
    

![](https://storage.googleapis.com/papyrus_images/30a0dfd84e20c5f684a7c828b3b174e9372d570f24fb63160b47ccfb612976ec.png)

使用下面命令，编译安装snarkOS

    sh ./build_ubuntu.sh
    

![运行界面](https://storage.googleapis.com/papyrus_images/b62c6e1cdac3eb19b347e2bebdc993beb19d344f66f03553628252287dd5dc35.png)

运行界面

运行界面

等出现下面界面时，安装完成

![](https://storage.googleapis.com/papyrus_images/5dc52a76fa51b8d913f77648eca8417944c7c5a171679bef8a9c07468b653bdb.png)

**6、运行Aleo挖矿节点**

使用下面命令，生成 Aleo 矿工地址，**（生成的信息自己保存好，这是你唯一的身份认证信息，一定要复制保存到本地文件，丢失或泄露都会造成你资产的损失）**

![](https://storage.googleapis.com/papyrus_images/5b5f3d3bd6367b5a49553981b074455aec4fa79bf3177a8ad3c3da7ae17f4834.png)

使用下面命令，启动挖矿节点，命令里面的这个字符`aleo17fnu7ufeva58jpk5c7qtdr0mcs5246x4yknuygwn69aw6ae6y` 这个改成**你的地址**

    MINER_ADDRESS=aleo17fnu7ufeva58jpk5c7qtdr0mcs5246x4yknuygwn69aw6ae6ygzsa8vfeu  ./run-miner.sh > /opt/snarkos/miner.log 2>&1 &
    

![](https://storage.googleapis.com/papyrus_images/0aff44ba1732fa92adc45743f021345f2da8f1034f2649b6e0b8db188797cff5.png)

使用下面的命令，查看节点是否运行（稍等一会）

    top
    

等出现红框里的字符，说明节点正在运行，确认后键盘按`q`退出

![](https://storage.googleapis.com/papyrus_images/78b3a018623c4d9bd782f306f1ccb616148e2d3816ac23b34c004916d736f96b.png)

使用下面的命令，查看运行日志，保证运行正常

    tail -f -n100 /opt/snarkos/miner.log
    

会出现下面的界面，内容会一直更新，没有出现error就可以。键盘按 `ctrl c` 退出

![](https://storage.googleapis.com/papyrus_images/06a5d4f2dc5ed5e540c85ac1ea92145543910c1668175d6f9a00ac4763921d0c.png)

**7、查看采矿报告**

将下面命令的`aleo17fnu7ufeva58jpk5c7qtdr0mcs5246x4yknuygwn69aw6ae6y` 改成**你的地址**，查看挖矿情况，会出现下面界面。

    cargo run --release -- miner stats aleo17fnu7ufeva58jpk5c7qtdr0mcs5246x4yknuygwn69aw6ae6ygzsa8vfeu
    

![](https://storage.googleapis.com/papyrus_images/11cf9e7f085e387206b6cc11dfb680a4d6a2a63acc94a260e29710a2219acbc2.png)

**至此节点安装完成，正常挖矿**

**8、常见问题**

1.  我的节点无法编译。
    
    1.  确保您的机器已Rust v1.59+安装。
        
    2.  如果编译过程中出现大错误，请尝试运行cargo clean.
        
    3.  确保 snarkOS 启动。
        
2.  我的节点无法连接到网络上的对等节点。
    
    1.  确保端口4132/tcp和3032/tcp在您的安全组和操作系统防火墙上打开。
        
    2.  确保 snarkOS启动。
        
3.  无法生成新地址
    
    1.  在运行上面的命令之前（snarkos experimental new\_account）尝试source ~/.bashrc
        
    2.  还要仔细检查snarkos. 注意目录是/snarkOS，命令是snarkos
        
4.  我可以跨多个 snarkOS 机器/实例协调挖矿吗？
    
    1.  是的。只需在多台机器（不是同一台机器）上启动多个 snarkOS 实例并输入相同的矿工地址。
        

\===========================

---

*Originally published on [ChiefDavid](https://paragraph.com/@chiefdavid/aleo)*
