#key-value #tea #wascc #wasm

tea-keyvalue-provider

WaSCC 关键字对存储提供者。TeaRust 项目的一部分

2 个版本

0.1.1 2020 年 5 月 2 日
0.1.0 2020 年 5 月 2 日

#21 in #wascc

Apache-2.0

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