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 神奇豆
63 每月下载量
210KB
3K SLoC
Aleo 开发服务器
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