#tendermint #abci #consensus #bft #blockchain #key-value-store

bin+lib tendermint-abci

tendermint-abci 提供了一个简单的框架,可以在此基础上构建 Tendermint 之上的底层应用程序

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 神奇豆子

Download history 273/week @ 2024-04-22 100/week @ 2024-04-29 96/week @ 2024-05-06 77/week @ 2024-05-13 89/week @ 2024-05-20 251/week @ 2024-05-27 143/week @ 2024-06-03 189/week @ 2024-06-10 183/week @ 2024-06-17 130/week @ 2024-06-24 255/week @ 2024-07-01 134/week @ 2024-07-08 321/week @ 2024-07-15 265/week @ 2024-07-22 178/week @ 2024-07-29 438/week @ 2024-08-05

每月 1,214 次下载

Apache-2.0

565KB
12K SLoC

tendermint-abci

Crate Docs Build Status Audit Status Apache 2.0 Licensed Rust Stable

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