
Security News
Risky Biz Podcast: Making Reachability Analysis Work in Real-World Codebases
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
A Rust crate for creating ABCI applications.
ABCI is the interface between Tendermint (a state-machine replication engine) and your application (the actual state
machine). It consists of a set of methods, where each method has a corresponding Request
and Response
message
type. Tendermint calls the ABCI methods on the ABCI application by sending the Request
messages and receiving the
Response
messages in return.
ABCI methods are split across 4 separate ABCI connections:
Consensus
Connection: InitChain
, BeginBlock
, DeliverTx
, EndBlock
, Commit
Mempool
Connection: CheckTx
Info
Connection: Info
, SetOption
, Query
Snapshot
Connection: ListSnapshots
, LoadSnapshotChunk
, OfferSnapshot
, ApplySnapshotChunk
Additionally, there is a Flush
method that is called on every connection, and an Echo
method that is just for
debugging.
To know more about ABCI protocol specifications, go to official ABCI documentation.
Add abci-rs
in your Cargo.toml
's dependencies
section:
[dependencies]
abci-rs = "0.11"
Each ABCI application has to implement four core traits corresponding to all four ABCI connections, Consensus
,
Mempool
, Info
and Snapshot
.
Note: Implementations of these traits are expected to be
Send + Sync
and methods take immutable reference ofself
. So, internal mutability must be handled using thread safe (Arc
,Mutex
, etc.) constructs.
abci-rs
supports both, synchronous and asynchronous APIs (using sync-api
and async-api
cargo features). At
least one of these features should be enabled. By default, both, sync-api
and async-api
, features are enabled.
abci-rs
also supports multiple async runtimes. These different runtimes can be enabled by using cargo features
use-async-std
, use-smol
or use-tokio
. Only one runtime can be enabled at a time. Compilation will fail if more
than one runtime is enabled or none of them are enabled. By default, use-tokio
feature is enabled.
Example ABCI applications can be found in examples/sync-counter.rs
(using sync_api
) and examples/async-counter.rs
(using async_api
).
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
FAQs
Unknown package
We found that abci-rs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.
Security News
CISA’s 2025 draft SBOM guidance adds new fields like hashes, licenses, and tool metadata to make software inventories more actionable.