#aleo #zero-knowledge #blockchain #api-server #api #decentralized #cryptography

bin+lib aleo-development-server

Aleo 开发服务器是一个用于本地或远程 Aleo 开发的 REST API 服务器

9 个版本

0.5.5 2023 年 8 月 10 日
0.5.1 2023 年 7 月 20 日
0.4.5 2023 年 6 月 27 日
0.4.2 2023 年 5 月 24 日
0.4.0 2023 年 4 月 22 日

#9 in 神奇豆

Download history

63 每月下载量

GPL-3.0 许可证

210KB
3K SLoC

Aleo 开发服务器

Crates.io Authors License

githubcrates-iodocs-rs


Aleo 开发服务器是一个 REST 服务器,可以执行创建 Aleo 程序部署/执行并广播到 Aleo 网络所需的所有证明和验证操作。它旨在在受信任的环境中使用,例如本地开发环境、CI/CD 管道或云中的私有网络。

**不应**用于创建公共 API。

RESTful 程序执行 & 部署

阿莱奥开发服务器提供了REST端点,允许开发者向阿莱奥网络发送创建程序部署和执行所需的数据。目前有三个端点

  • /deploy - 创建程序部署
  • /execute - 创建程序执行
  • /transfer - 创建阿莱奥信用的转移

安装与配置

可以使用以下命令安装开发服务器

cargo install aleo-development-server - 从crates.io安装

cargo install --path . --locked - 从源代码安装

安装完成后,可以使用以下命令启动服务器

aleo-develop start - 在默认情况下,服务器将事务发送到阿莱奥测试网3网络,端口号为0.0.0.0:4040启动服务器

aleo-develop start --help - 显示配置服务器的所有可用选项

配置加密私钥

可以使用加密私钥启动服务器。如果使用此选项,服务器将在传入请求的主体中查找密码字段。如果提供了密码(且密码正确),服务器将解密私钥并使用它来构建并发送事务到网络。可以使用以下命令调用此操作模式

aleo-develop start--key-ciphertext<encrypted_private_key>

用法

启动后,端点有以下选项。所有请求都应作为POST请求发送,并带有JSON主体。

JavaScript API

此服务器的JavaScript客户端可在Aleo SDK中找到

端点

\develop

  • program:要部署的程序文本表示
  • fee:程序部署所需的费用
  • private_key:部署程序的用户的可选私钥
  • password:如果开发服务器使用加密私钥启动,则密码将解密私钥
  • fee_record:用于费用的可选文本格式的记录。如果没有提供,服务器将在网络上搜索适合支付费用的记录
  • returns:如果成功,则部署事务的交易ID

\execute

  • program_id 要执行的程序的程序ID(例如,hello.aleo)
  • program_function 在程序中执行的函数(例如,hello)
  • fee 可选的转移费用,指定0表示无费用
  • inputs 要传递给程序的输入数组
  • private_key 执行程序的用户的可选私钥
  • password:如果开发服务器使用加密私钥启动,则密码将解密私钥
  • fee_record:用于费用的可选文本格式记录。如果没有提供,服务器将在网络上搜索适合支付费用的记录
  • returns:如果成功,则执行事务的交易ID

\transfer

  • amount 要发送的信用额度(例如,1.5)
  • fee 可选的转账手续费,指定0表示不收取手续费
  • recipient 转账的接收者
  • privateKey 发送转账的用户可选的私钥
  • password:如果开发服务器使用加密私钥启动,则密码将解密私钥
  • amount_record 可选的用于资助转账的文本格式记录。如果没有提供,服务器将在网络上搜索适合的记录来资助额度
  • fee_record 可选的用于手续费的文本格式记录。如果没有提供,服务器将在网络上搜索适合的记录来支付手续费 @returns {string | Error} 如果成功,则返回执行事务的交易ID

Curl 示例

上述端点的curl请求示例

## Deploy a program
curl -X POST -H "Content-Type: application/json" \
-d '{
    "program": "program hello.aleo;\n\nfunction hello:\n    input r0 as u32.public;\n    input r1 as u32.private;\n    add r0 r1 into r2;\n    output r2 as u32.private;\n",
    "fee": 100000,
    "private_key": "APrivateKey1zkp8CZNn3yeCseEtxuVPbDCwSyhGW6yZKUYKfgXmcpoGPWH"
}' \
http://0.0.0.0:4040/testnet3/deploy

## Execute a program
curl -X POST -H "Content-Type: application/json" \
-d '{
    "program_id": "hello.aleo",
    "program_function": "hello",
    "inputs": ["5u32", "5u32"],
    "private_key": "APrivateKey1zkp8CZNn3yeCseEtxuVPbDCwSyhGW6yZKUYKfgXmcpoGPWH",
    "fee": 0
}' \
http://0.0.0.0:4040/testnet3/execute

## Create a value transfer
curl -X POST -H "Content-Type: application/json" \
-d '{
    "amount": 1000,
    "fee": 0,
    "recipient": "aleo1trtljxr7rw6cn368v2pslnxgl2vzk9pgfunev59k53x645hvrygs5v4f2e",
    "private_key": "APrivateKey1zkp8CZNn3yeCseEtxuVPbDCwSyhGW6yZKUYKfgXmcpoGPWH"
}' \
http://0.0.0.0:4040/testnet3/transfer

此服务器的此API目前正在积极开发中,预计将来将发生变化,以提供更流畅的程序执行和部署体验。

依赖项

~62MB
~899K SLoC