2 个版本
0.1.1 | 2020 年 5 月 2 日 |
---|---|
0.1.0 | 2020 年 5 月 2 日 |
#21 in #wascc
28KB
549 行
支持二进制和排序向量的 Tea 项目键值对提供者
这个 WASCC 提供者是 Kevin Hoffman 的原始 键值对提供者示例的增强版本,具有以下增强功能
- 值存储在 Vec 中,而不是 String
- 新增排序 Vec 类型。当插入时,它将根据元组的第一个元素对值进行排序。
Tea 项目(也称为 T-Rust 或 TeaRust)
Tea 项目(可信执行与认证)是一个构建在 RoT(可信根)之上的 Wasm 运行时,RoT 来自可信硬件环境和区块链技术。开发人员、宿主和消费者不需要信任任何人,不仅保护隐私,还可以防止网络攻击。远程认证下的执行环境可以由区块链共识进行验证。加密经济被用作激励,使宿主愿意运行可信计算节点。这个平台可以被 CDN 提供商、IPFS 节点或现有的云提供商使用,以增强现有基础设施的安全性并实现不可信。
介绍 博客文章
项目 仓库。更多仓库将很快公开。
即将到来的项目网站 (尚未完成) http://www.t-rust.com/
联系方式:kevin.zhang.canada_at_gmail_dot_com。
我们才刚刚开始,欢迎各种帮助!
动机
WaSCC 行动者应该是无状态的。不建议在处理程序调用之间使用全局变量和任何类型的存储(尽管技术上可行)。宿主提供的键值对是跨处理程序函数共享的便捷存储之一。
WaSCC 提供的 Redis 提供者和一个示例键值对提供者。我不能使用它们有以下几个原因
- Redis 对我来说过于强大。
- 现有的键值对提供者使用 String,我更喜欢使用 Vec
- 从行动者直接编写代码有点繁琐。需要在之间添加一个额外的行动者工具层。
因此,我制作了这个库来满足自己的需求。它可能也能帮到你。
构建
确保您还克隆了同一级别的 tea-codec 仓库,因为它是一个依赖项。
tea-codec = { path = "../tea-codec"}
然后
cargo build
对于单元测试
cargo test
用法
与 https://github.com/wascc/examples/tree/master/keyvalue-provider 相同,略有修改
- 新的 CAPABILITY_ID
const CAPABILITY_ID: &str = "tea:keyvalue";
- 新的排序 Vec 键值项
pub enum KeyValueItem {
Atomic(i32),
Scalar(Vec<u8>),
List(Vec<Vec<u8>>),
Set(HashSet<Vec<u8>>),
SortedVec(KeyVec<i32, Vec<u8>>),
}
- 一些新的功能(此处省略)
欢迎提出评论!快乐编码!
依赖项
~4–13MB
~149K SLoC