Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Scope
This repository provides:
- Tidecoin protocol encoding and decoding
- Tidecoin blocks, transactions, addresses, scripts, and network messages
- canonical lower protocol types in
primitives - a reusable validation engine in
consensus-core - a standalone byte-oriented validation adapter in
consensus - Tidecoin node-backed parity support in
node-parity - post-quantum cryptography helpers for Tidecoin-specific schemes
Tidecoin-specific features
Key Tidecoin-specific behavior:
- AuxPoW header/data and chain-parameter support; full validation-vector parity, yespower/scrypt PoW-hash selection, and AuxPoW parent-PoW validation remain tracked as active consensus coverage work
- post-quantum signature and KEM support
OP_SHA512and witness-v1-512 support- Tidecoin-native validation flags and node-parity-tested consensus behavior
Architecture
The crate graph is intentionally layered:
primitives: canonical Tidecoin protocol model, including script and opcodesconsensus-core: reusable Tidecoin validation engineconsensus: standalone byte-oriented verification wrappertidecoin: public product crate and higher-level ergonomicsnode-parity: Tidecoin Core differential/parity support for tests
PQ Type Ownership
The workspace intentionally has similarly named PQ and validation-side types in more than one crate.
tidecoin::*is the normal product-facing Rust API for app, wallet, and plumbing codeconsensus-core::*is the shared verifier/engine layer used to implement validation and lower-level consensus behavior
So when both crates expose names like PqPublicKey, PqSignature, or
PqError, downstream Rust code should usually start with tidecoin::* unless
it is deliberately building on the lower-level shared engine.
Consensus-sensitive changes
Pure-Rust validation is checked against the real Tidecoin node. Consensus-sensitive changes should be treated as node-parity-sensitive engineering work and verified with the Tidecoin fixture and differential suites, not only with local unit tests.
Minimum Supported Rust Version (MSRV)
This library should compile with any combination of features on Rust 1.94.1.
No-std support
The std cargo feature is enabled by default. To build without the Rust standard library, use
--no-default-features or set default-features = false in your dependency declaration.
Feature note
The tidecoin-node-validation feature exists for real-node parity tests and dev-only adapters.
Normal downstream builds should keep product validation on the default pure-Rust path and should
not enable that feature.
Crate structure
| Crate | Description |
|---|---|
tidecoin |
Main Tidecoin product crate |
primitives |
Canonical Tidecoin protocol types |
consensus-core |
Shared Tidecoin validation engine |
consensus |
Standalone byte-oriented validation adapter |
node-parity |
Tidecoin node-backed parity/test support |
p2p |
Tidecoin peer-to-peer message types |
consensus_encoding |
Consensus-compatible encoding/decoding |
hashes |
Tidecoin hash functions |
units |
Amount, weight, locktime, fee-rate, and related units |
network |
Tidecoin network kind/types |
io |
Minimal I/O traits for no_std |
internals |
Internal macros and utilities |
base58 |
Base58 encoding/decoding |
chacha20_poly1305 |
AEAD encryption |
Contributing
Contributions are welcome. For larger changes, discuss architecture first to avoid duplicate work or boundary regressions.
See CONTRIBUTING.md.
Licensing
The code in this project is licensed under the Creative Commons CC0 1.0 Universal license. We use the SPDX license list and SPDX IDs.