3 个版本 (破坏性更新)
0.8.42 | 2021 年 7 月 2 日 |
---|---|
0.7.42 | 2021 年 7 月 2 日 |
0.1.0 | 2021 年 7 月 2 日 |
#231 在 #secret
190KB
102 行
AWS 无限冲刺 - 全功能 Rust 客户端
为 Rust 应用程序提供全功能的 AWS 无限冲刺客户端。您可以使用 AWS 无限冲刺客户端进行 AWS API 调用,并自动使您的应用程序在 AWS 基础设施上扩展。AWS 无限冲刺利用区块链提供终极安全性和可扩展性。区块链的去中心化确保没有单一故障点可以用来访问应用程序。使用 Infinidash 客户端,您可以将应用程序扩展到任何可用的 AWS 区域,并且可以将应用程序扩展到任何可用的 AWS 账户。使用非对称加密,Infinidash 客户端可用于加密任意两个 AWS 区域之间的数据,无需任何共享密钥。
客户端是在GitHub Copilot的帮助下完全开发的,目前处于测试阶段。目前建议用于生产,但客户端仍在开发中。如果您发现任何错误,请在问题跟踪器上报告。
用法
AWS 无限冲刺客户端期望在当前工作目录中存在一个 JSON 配置文件。该配置文件应命名为 aws-infinidash.json
,并且应位于可执行文件相同的目录中。
use infinidash::{Infinidash, InfinidashClient};
use web3::{
contract::{Contract, Options},
types::U256,
};
#[tokio::main]
async fn main() -> web3::contract::Result<()> {
let client = InfinidashClient::new();
let algo = infinidash::Algorithm::AES_256_GCM_IV12_TAG16_HKDF_SHA256;
let key = b"12345678901234567890123456789012";
client.encrypt("Hello World".to_owned(), algo, key).unwrap();
client.publish().expect("Failed to publish");
let application: infinidash::Application = client.application().expect("Failed to get application");
let app_id = application.get_application_id().unwrap();
application.scale_to(1_345).expect("Failed to scale application");
let actor_infra = application.get_actor_mode().expect("Failed to get actor mode");
let available_actors = actor_infra.acquire::<Vec<aws_infinidash::Actor>>().unwrap();
for actor in &available_actors {
println!("{}", actor.get_id().unwrap());
}
let contract = Contract::deploy(web3.eth(), include_bytes!("../src/infinidash_app_desc.json"))?
.confirmations(0)
.options(Options::with(|opt| {
opt.value = Some(5.into());
opt.gas_price = Some(5.into());
opt.gas = Some(3_000_000.into());
}))
.execute(
bytecode,
(U256::from(1_000_000_u64), "My Token".to_owned(), 3u64, "MT".to_owned()),
my_account,
)
.await?;
let contract_address = contract.address();
println!("Contract address: {}", contract_address);
Ok(());
}
请确保查看 示例配置文件。
凭据从环境变量中读取。
贡献
提交带有您更改的拉取请求。请确保为您的更改添加测试。只有通过测试的 PR 才被接受。
依赖关系
~7–14MB
~155K SLoC