10 个版本
0.2.0 | 2022年12月1日 |
---|---|
0.1.6 | 2022年11月12日 |
0.1.4 | 2022年10月10日 |
0.0.4 | 2022年9月27日 |
0.0.2 | 2022年8月14日 |
#7 in #off-chain
每月41次下载
用于 trireme
165KB
4K SLoC
Naumachia 是一个使用 Rust 在 Cardano 区块链上编写智能合约的框架!
正在进行中 :)
查看功能进度 路线图
Cardano 智能合约方案将大量代码推送到链下。Naumachia 的设计旨在尽可能简化链下代码的开发,同时也提供一个环境来测试你的链上代码。
库中包含声明式编排与验证者脚本、铸造策略和钱包交互的工具;构建和检查你的交易与你的链上代码;在多个抽象层测试所有这些代码;部署、管理和与你的智能合约在生产环境中交互。
旨在用作 Aiken 或任何其他链上脚本(UPLC)源的后端。
Naumachia 意在作为 Plutus 应用后端(PAB)的替代品。
目标
- 让 Cardano 智能合约变得简单
- 帮助智能合约开发者几分钟内进行原型设计
- 将测试驱动开发(TDD)作为智能合约开发的首要任务
- 使用 Aiken CEK 模拟器为你的 Plutus/Aiken/Helios/Raw UPLC 脚本启用单元测试
- 使用模拟后端为你的整个智能合约启用单元测试
- 为外部各方提供一个干净的接口来编写
- 提供用于部署和生产环境中与你的实时智能合约交互的适配器
- Trireme 将是一个 CLI 工具,供开发人员和最终用户管理他们的密钥、机密和 dApps。
长期目标
- 允许你的智能合约编译成 WASM 并注入到你的 web dApp 中
- 提供与浏览器钱包和你的选择的外部服务交互的适配器
- 自动生成简单的 UI,例如 CLI、web 界面等
🚣 Trireme 👁
客户端 FTW
Trireme 是一个用于管理所有 dApps 和机密的 CLI。
目前,它只是一个 MVP,允许你的 Naumachia dApps 与区块链交互。最终,它将是一个完整的 CLI 钱包,你的 dApps 的包管理器,等等。
不稳定。
要本地安装,请运行
cargo install --path ./trireme
或者通过 crates.io 进行安装
cargo install trireme
使用以下方法进行设置
trireme init
并按照说明操作。
⚠️⚠️您的配置文件将存储在本地文件系统中的纯文本格式下,位于 ~/.trireme
。请仅在 Trireme 仍处于新阶段时使用测试钱包。
演示
虽然功能仍然相当有限,但我很高兴地说 Naumachia 现在正在运行!您可以在 Testnet 上构建、部署并交互您的智能合约。随着时间的推移,我们将添加更多示例 dApps 来展示更多功能。
/sample-dApps
目录包括 always-succeeds-contract
,只要您在您的机器上安装了
- Rust v1.64+ 工具链
- Blockfrost API 测试网项目(目前仍在旧测试网上,但这可能很快就会改变)
- 一个在 Testnet 上有一定资金的账户的秘密短语。您可以使用 Yoroi、Nami、Flint 或任何 Cardano 钱包创建一个新的短语,并用 Testnet Faucet(我们很快将添加使用
Trireme
生成新短语的功能,但在此期间您需要在其他地方构建它))对其进行资金充值
我仅在 Linux 上进行了测试。
⚠️⚠️请务必小心不要使用您的持有密钥!请仅使用测试网钱包中您愿意损失资金的秘密短语。⚠️⚠️Naumachia 和 Trireme CLI 仍在开发中!
要与您的合约交互,您需要安装 trireme
CLI
cargo install --path ./trireme
Trireme 允许您管理所有 Naumachia dApps 的密钥。
要添加您的 API 密钥和您的秘密短语,运行
trireme init
这将提示您输入您的信息。⚠️⚠️您的配置文件将存储在本地文件系统中的 ~/.trireme
目录下。
使用 Trireme
检查您的初始余额!
trireme balance
现在 Trireme 已经设置好了,您可以与区块链交互了!
首先,安装 dApp CLI
cargo install --path ./sample-dApps/always-succeeds-contract
并在合约地址上锁定 10 ADA
always-cli lock 10
您的交易可能需要几分钟才能显示在链上。
您可以使用 trireme balance
再次检查您的余额。或者,使用返回的 TxId 在 测试网浏览器 或您的钱包界面(Yoroi、Nami 等)中跟踪。您的余额应该减少了 10 + 手续费。
一旦交易完成,您可以运行
always-cli list 5
这将显示在脚本地址上的 5 个最新锁定 UTxOs(您可以随意查看更多)。您可能会看到在脚本地址上锁定的大量其他 UTxOs。您可以尝试索回这些,但由于多种原因,其中许多是不可索回的。
您需要找到您的,并在您的 claim
命令中包含 Output Id 信息。它看起来可能像
always-cli claim <tx_hash> <index>
再次,这可能需要几分钟才能执行。但请检查 trireme balance
或您的钱包界面,以查看您的余额已回到原始余额减去两次交易的手续费。
完成!
贡献
很高兴接受 PR 和一般反馈。还有很多工作要做,以使这个框架成为最好的框架,所以我会尽力帮助任何有兴趣贡献的人。
现代编程技术的忠实粉丝。我希望优先考虑
- 最终用户体验(开发者和小应用程序用户)
- 贡献者体验 + 维护性
- 性能,一旦其他东西都稳固了
如果您觉得缺少某些东西或者任何其他问题,请随意发起问题/讨论。我喜欢反馈,因为我一边进行一边在解决很多问题。我想确保设计正确。欢迎提问。
查看我们的架构图。
请注意,持续集成(CI)需要这些命令才能通过。所以,请尝试在本地运行它们以节省时间。
cargo build --workspace
cargo test --workspace
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
依赖关系
~15–33MB
~517K SLoC