3 个版本 (破坏性更新)

0.8.42 2021 年 7 月 2 日
0.7.42 2021 年 7 月 2 日
0.1.0 2021 年 7 月 2 日

#231#secret

MIT/GPL-3.0

190KB
102

AWS Infinidash Rust Client

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