Aleo隐私智能合约编程__第一章__Aleo SDK的Hello World程序

这篇具有很好参考价值的文章主要介绍了Aleo隐私智能合约编程__第一章__Aleo SDK的Hello World程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

相关资料链接

  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

Aleo隐私智能合约编程__第一章__Aleo SDK的Hello World程序文章来源地址https://www.toymoban.com/news/detail-456714.html

到了这里,关于Aleo隐私智能合约编程__第一章__Aleo SDK的Hello World程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android SDK 上手指南||第一章 环境需求||第二章 IDE:Eclipse速览

    这是我们系列教程的第一篇,让我们来安装Android的开发环境并且把Android SDK运行起来! 介绍 欢迎来到Android SDK入门指南系列文章,如果你想开始开发Android App,这个系列将从头开始教你所须的技能。我们假定你没有任何编程技能,当然,有经验当然更好。 我们将从安装Andro

    2024年02月14日
    浏览(38)
  • 第一章 人工智能安全概述

    1.1 什么是人工智能安全 目前并没有统一的定义,人工智能安全是人工智能与网络安全的交叉学科,两个学科已经建立了深厚的理论和技术体系,进一步看清两个学科的交叉点的逻辑关系是理解人工智能安全的关键。 攻击与防御 对于防御者而言,使用人工智能新技术加强网络

    2024年02月04日
    浏览(32)
  • 《TCP IP网络编程》第一章

            2023.6.28 正式开始学习网络编程。 每一章每一节的笔记都会记录在博客中以便复习。         网络编程又叫套接字编程。所谓网络编程,就是编写程序使两台连网的计算机相互交换数据。 为什么叫套接字编程? 我们平常将插头插入插座上就能从电网中获取电力,同

    2024年02月11日
    浏览(34)
  • 人工智能(第三版)—第一章讨论题

    人工智能是机器执行与人类思维相关的认知功能的能力,例如感知、推理、学习、与环境交互、解决问题,甚至发挥创造力的未来世界的愿景。 将人工智能称之为机器可以具有人类思维相关认知能力的愿景 目前解决的方式是通过机器学习的方法来逼近人工智能这一个愿景 其

    2024年01月20日
    浏览(37)
  • 人工智能(第 3 版)第一章笔记

    对人工智能的理解因人而异。值得一提的是,许多学科的技能和专业知识是在人类的潜意识中发展和储存的,而不是显式要求而变得可用。 首先,理解和定义智能,有利于我们确定人工智能的优缺点。 首先,引出智能的定义,源自R.斯腾伯格:“智能是个体从经验中学习、正

    2024年01月23日
    浏览(35)
  • 人工智能(第三版)—【第一章】练习题

    逆图灵测试的一个可能的实际应用是 在线购票系统 。在购票过程中,用户可能会遇到各种问题、疑虑或困惑,例如座位选择、票价查询、支付问题等。通过进行逆图灵测试,系统可以判断用户是在与人交互还是与另一台计算机交互,从而提供更加个性化和准确的服务。 在这

    2024年02月21日
    浏览(38)
  • 《人工智能》第三版 第一章 概述 课后习题

    第一章 讨论题 1.你如何定义人工智能? 人工智能利用计算机和机器模仿人类大脑解决问题和决策的能力 2.区分强人工智能和弱人工智能。 区分强人工智能和弱人工智能的关键在于它们的功能和应用范围:强人工智能能够执行任何人类智能任务,而弱人工智能则专注

    2024年01月25日
    浏览(33)
  • 《Spark编程基础Scala版》第一章习题答案

    1、请阐述大数据处理的基本流程。 2、请阐述大数据的计算模式及其代表产品 3、请列举Hadoop生态系统的各个组件及其功能。 4、分布式文件系统HDFS的名称节点和数据节点的功能分别是什么? 名称节点: 数据节点: 5、试阐述MapReduce的基本设计思想 6、YARN的主要功能是什么?

    2024年02月06日
    浏览(56)
  • Java SDK部署和调用FISCO BCOS区块链智能合约

    使用WeBASE合约管理导出Java项目 启动FISCO节点和webase-front,部署服务详情可参考官方文档: link 1.编写智能合约 一个简单的例子: Table 合约:该合约负责维护候选人的信息。每个候选人都有一个唯一的标识符sign_key,以及与之相关联的其他属性,包括活动名称activity_name、参与

    2024年03月22日
    浏览(43)
  • Solidity入门:我的第一段智能合约

    以太坊是一个全球性的、去中心化的金融和新型应用程序平台。在以太坊,我们可以通过智能合约代码来控制资产,并建立世界上任何地方皆可访问的应用程序。今天我们自己动手来写一段简单的智能合约代码,探索一下智能合约的奥秘。 【智能合约】 智能合约(英语:S

    2024年01月16日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包