代码编织梦想

相关资料链接

  1. Aleo SDK https://github.com/AleoHQ/aleo
  2. Aleo SDK主要贡献者entropy1729团队官网 https://www.entropy1729.com/
  3. Aleo SDK主要贡献者entropy1729团队GIthub https://github.com/Entropy1729
  4. 在线Aleo钱包生成工具 https://aleohq.github.io/aleo/
  5. Aleo SDK基本概念 https://www.entropy1729.com/aleo-introduction
  6. Aleo SDK基本语法 https://www.entropy1729.com/aleo-development-starter-pack/

Aleo项目的组成

  • Aleo 是第一个保护隐私的、可编程自定义隐私智能合约程序、可以链下执行隐私智能合约程序计算的区块链项目。
  • SnarkVM 是隐私智能合约程序的执行环境。功能类似于以太坊虚拟机。
  • SnarkOS 是隐私智能合约程序的去中心化操作系统。功能类似于以太坊公链。
  • Aleo SDK 是一个开发者框架,使零知识应用的开发变得更简单。开发者通过 Aleo SDK 可以快速地创建一个新账户,制作一笔交易,广播交易。
  • Aleo Leo 是隐私智能合约程序的高级编程语言,集成了Aleo SDK。

Aleo SDK 安装

  • 通过宝箱仓库安装

    # 官方代码在快速迭代中,更加推荐通过源码进行安装
    cargo install aleo
    
  • 通过编译源码安装

    # 下载源码 
    git clone https://github.com/AleoHQ/aleo.git
    # 进入源码目录
    cd aleo
    # 安装 aleo sdk 程序 # rust安装教程 https://www.rust-lang.org/tools/install
    cargo install --path .
    # 查看是否安装成功
    aleo -h
    

Aleo SDK 指令

# 创建一个包
aleo new 包名字
# 自动在${包名字}文件夹下生成两个文件
# main.aleo 代码文件
# program.json 程序配置文件

# 生成一个钱包账户
aleo account new
# Private Key  APrivateKey1zkpDStSQfu6maFgSro5ePXax8xS4MmBj7qA98FBKR8xm1ZU
# View Key  AViewKey1reh7CfNpCyo77UXKx46kjLL7KAPntSDVA2BNjBPwt7of
# Address  aleo1zjnre3esly55gkeqlet5xvklvwqntfpcxkdac5l8wk0sdyp35ygq7ulxk4

# 编译程序生成证明
aleo build
# build 后生成的文件
# 1. AVM虚拟机运行的字节码文件 mian.avm
# 2. 每一个函数都会生成一个证明者文件 函数名.prover
# 3. 每一个函数都会生成一个验证者文件 函数名.verifier

# 远程编译程序生成证明 # 具体如何填写${ENDPOINT},目前还未知
aleo build --endpoint ${ENDPOINT}

# 运行程序
aleo run ${FUNCTION} ${INPUTS}

# 本地运行一个开发节点,并且部署程序
aleo node start
# 本地运行一个开发节点,不部署程序
aleo node start --nodeploy

# 清除build结果
aleo clean

Aleo SDK 的Hello World程序

  • 编写一个函数,从外部输入两个数字,然后进行相加,最后输出结果。
    aleo new aleo_hello
    cd aleo_hello
    vim main.aleo # 输入下面的代码片段
    aleo run add_fun 2021u32 1u32 # 执行add_fun相加函数,传入2021和1两个数字
    aleo node start # 本地运行一个开发节点,并且部署运行程序
    
  • 代码片段
    program aleo_hello.aleo;
    
    // 运行方式 aleo run add_fun 2021u32 1u32
    function add_fun: // 通过 function 关键字定义一个函数
        input r0 as u32.public; // 定义一个输入参数r0,类型为u32,可见性为public
        input r1 as u32.private;
        add r0 r1 into r2; // 调用sdk的函数add
        output r2 as u32.private; // 定义一个输出参数r2,类型为u32,可见性为private
    

Aleo SDK 本地开发节点API

# 查看最新的块高
curl http://localhost:4180/testnet3/latest/block/height

# 通过块高高度查看账本
curl http://localhost:4180/testnet3/block/{height}

# 查看最后一个块高的哈希
curl http://localhost:4180/testnet3/latest/block/hash

# 通过ViewKey查看records
# curl --location --request GET 'localhost:4180/testnet3/records/all' -H 'Content-Type: application/json' -d '"ViewKey"'
curl --location --request GET 'localhost:4180/testnet3/records/all' -H 'Content-Type: application/json' -d '"AViewKey1hU73JxupzRh7uEnynsXgUQL3neSJcJZ2dMBkCPh97zoZ"' | jq
curl --location --request GET 'localhost:4180/testnet3/records/all' -H 'Content-Type: application/json' -d '"AViewKey1eZqsm6igutMTUbnwWw8vPQG5ceJruyYQs8XwTmNQdMJf"' | jq

# This endpoint retrieves only the spent records belonging to a given ViewKey
curl --location --request GET 'localhost:4180/testnet3/records/spent' -H 'Content-Type: application/json' -d '"AViewKey1hU73JxupzRh7uEnynsXgUQL3neSJcJZ2dMBkCPh97zoZ"' | jq

# This endpoint retrieves only the unspent records belonging to a given ViewKey.
curl --location --request GET 'localhost:4180/testnet3/records/unspent' -H 'Content-Type: application/json' -d '"AViewKey1hU73JxupzRh7uEnynsXgUQL3neSJcJZ2dMBkCPh97zoZ"' | jq

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/IMPlove/article/details/127019196

Aleo提供的zkCloud:去中心化隐私计算-爱代码爱编程

1. 引言 Aleo系列,前序博客有: 欢迎关注Aleo使用Zexe构建Aleo隐私应用——How Zero Knowledge is Rebalancing the Scales of the InternetAleo系列博客——透明的代价Aleo系列博客——零知识密码学技术的未来Aleo 提供的zero knowledge primitives在

Aleo的PoSW共识-爱代码爱编程

1. 引言 Aleo系列,前序博客有: 欢迎关注Aleo使用Zexe构建Aleo隐私应用——How Zero Knowledge is Rebalancing the Scales of the InternetAleo系列博客——透明的代价Aleo系列博客——零知识密码学技术的未来Aleo 提供的zero knowledge primitivesAl

基于Web3.0的完全隐私的去中心化的应用程序--Aleo-爱代码爱编程

大家好,这里是德纳社区。我们会不定期整理一级市场中优质的分享给大家,如果你觉得二级市场风险大,不妨尝试下一级市场。 随着一级市场越来越火热,很多人只是听说却不知怎么去参与,完全不知道一级市场的存在。现在市场不好,好多币友都开始转战一级市场。  项目介绍: ​Aleo是第一个用于构建完全私有、可扩展且具有成本效益的应用程序的开发人员平台。使

aleo的节点类型_gzliudan的博客-爱代码爱编程

Aleo的节点类型 Client: A client node is a full node, capable of sending and receiving blocks.Miner: A mining node is a full node, capable of producing new blocks.Beacon: A beacon node

aleo隐私智能合约_garysdevil的博客-爱代码爱编程

文章目录 走进误区大哥大时代 点对点电子现金系统智能机时代 去中心化状态机月球与地心引力火箭Aleo 我们,都是站在巨人的肩膀上,进行不断地探索、创新,完善这个人类生态。在此,感谢前人们对去中心化技术

使用hardhat 开发以太坊智能合约-搭建环境_听见向日葵的微笑的博客-爱代码爱编程

本系列课程: 第一节:使用hardhat开发以太坊智能合约-搭建环境 第二节:使用hardhat开发以太坊智能合约-测试合约 第三节:使用hardhat开发以太坊智能合约-发布合约 在我们实际开发智能合约的时候,以往的开发一般都是使用remix在线编译器,它的好处是即开即用,本地不用安装相关的依赖环境,但是弊端

使用hardhat开发以太坊智能合约-测试合约_听见向日葵的微笑的博客-爱代码爱编程

本系列课程: 第一节:使用hardhat开发以太坊智能合约-搭建环境 第二节:使用hardhat开发以太坊智能合约-测试合约 第三节:使用hardhat开发以太坊智能合约-发布合约 上一章我们讲解了如何搭建基本的hardhat开发环境,这一章我们来讲一下如何测试、部署合约  特别提醒:本系列教程默认