#nats #tea #wascc

tea-actor-utility

WaSCC 工具 - 支持二进制和排序向量键值对以及宏,以构建 Nats 消息演员处理器

1 个不稳定版本

0.1.0 2020 年 5 月 2 日

#732WebAssembly

Apache-2.0

18KB
250 代码行

Tea 项目 WaSCC 演员工具,支持二进制和排序向量键值对以及宏,以构建 Nats 消息演员处理器

Tea 项目(也称为 T-Rust 或 TeaRust)

Tea 项目(可信执行与认证)是一个基于 RoT(信任根)构建的 Wasm 运行时,它结合了可信硬件环境和区块链技术。开发人员、主机和消费者不必信任任何其他人,不仅可以保护隐私,还可以防止网络攻击。远程认证下的执行环境可以通过区块链共识进行验证。加密经济被用作激励,使主机愿意运行可信计算节点。此平台可用于 CDN 提供商、IPFS 节点或现有云提供商,以增强现有基础设施的安全性并使其更具可信度。

简介 博客文章

项目 仓库。更多仓库将很快公开。

即将到来的项目网站 (尚未完成) http://www.t-rust.com/

联系:kevin.zhang.canada_at_gmail_dot_com。

我们才刚刚开始,欢迎各种帮助!

动机

WaSCC 演员应该是无状态的。不建议在处理器调用之间使用全局变量和任何类型的存储(尽管技术上可行)。主机提供的键值对是跨处理器函数共享的便捷存储之一。

WaSCC 提供了 Redis 提供者和一个示例键值对提供者。我有几个原因不能使用它们

  • Redis 对我来说太过于冗余。
  • 现有的键值对提供者使用 String,我更喜欢使用 Vec
  • 直接从演员调用代码编写起来有点繁琐。需要一个额外的演员实用层来在之间进行。

还有一个更重要原因:使用宏来使 Nats 消息演员处理器代码更简洁。

演员处理器代码将看起来像这样

actor_handlers!{ 
  codec::messaging::OP_DELIVER_MESSAGE => handle_nats_message, 
  codec::core::OP_HEALTH_REQUEST => health 
}

actor_messaging_handlers!{
  ("http", _, "bootstrap", "sync_from_other_actor",..) => sync_from_other_actor,
  ("http", _, "api", "request_active_nodes",..) => request_active_nodes, 
  //code snipet...
}

请注意,"_" 在 Nats 订阅通配符中充当 "*",以及 ".." 在 Nats 主题中充当 ">"。想想在没有宏的情况下编写处理那些 "*" 和 ">" 通配符的代码。

所以我编写了这个库来满足自己的需求。也许它也能帮到你。

构建

请确保您也在此级别克隆了tea-codec仓库,因为它是一个依赖项之一。

tea-codec = { path = "../tea-codec"}

然后

cargo build

对于单元测试

cargo test

欢迎评论!祝您编码愉快!

依赖项

~1.2–2.1MB
~47K SLoC