1 个不稳定版本
0.1.0 | 2020 年 5 月 2 日 |
---|
#732 在 WebAssembly
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