42 个版本 (20 个破坏性版本)
新版本 0.39.1 | 2024 年 8 月 9 日 |
---|---|
0.38.1 | 2024 年 7 月 23 日 |
0.35.0 | 2024 年 3 月 14 日 |
0.34.0 | 2023 年 10 月 2 日 |
0.21.0 | 2021 年 7 月 21 日 |
#151 in 神奇豆子
每月 1,214 次下载
565KB
12K SLoC
tendermint-abci
ABCI 框架,用于使用 Rust 构建 Tendermint 的底层应用程序。
要求
- Rust 的最新稳定版本
API
目前,此 crate 只暴露了一个基于 Rust 标准库网络功能的同步、阻塞 API。计划在未来的更新中添加异步客户端/服务器支持。
ABCI 应用程序需要实现的主要特质是 Application
特质。这里的一个核心思想是 ABCI 应用程序必须能够被克隆以在多个线程中使用,因为 Tendermint 向 ABCI 服务器打开 4 个连接。有关详细信息,请参阅 规范。
示例
请参阅src/application
,以获取使用此包编写的示例应用的示例。
要运行键/值存储示例应用,请从tendermint-abci
包目录开始。
# Set your logging level through RUST_LOG (e.g. RUST_LOG=info)
# Binds to 127.0.0.1:26658
RUST_LOG=debug cargo run --bin kvstore-rs --features binary,kvstore-app
# Reset and run your Tendermint node (binds RPC to 127.0.0.1:26657 by default)
tendermint unsafe_reset_all && tendermint start
# Submit a key/value pair (set "somekey" to "somevalue")
curl 'http://127.0.0.1:26657/broadcast_tx_async?tx="somekey=somevalue"'
#{
# "jsonrpc": "2.0",
# "id": -1,
# "result": {
# "code": 0,
# "data": "",
# "log": "",
# "codespace": "",
# "hash": "17ED61261A5357FEE7ACDE4FAB154882A346E479AC236CFB2F22A2E8870A9C3D"
# }
#}
# Query for the value we just submitted ("736f6d656b6579" is the hex
# representation of "somekey")
curl 'http://127.0.0.1:26657/abci_query?data=0x736f6d656b6579'
#{
# "jsonrpc": "2.0",
# "id": -1,
# "result": {
# "response": {
# "code": 0,
# "log": "exists",
# "info": "",
# "index": "0",
# "key": "c29tZWtleQ==",
# "value": "c29tZXZhbHVl",
# "proofOps": null,
# "height": "189",
# "codespace": ""
# }
# }
#}
许可证
版权所有 © 2021 非正式系统
在Apache许可证版本2.0(“许可证”)下授权;除非适用法律要求或书面同意,否则不得使用本存储库中的文件,除非遵守许可证。您可以在以下位置获得许可证副本:
https://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言,请参阅许可证。
依赖项
~2.3–3.5MB
~66K SLoC