Tycho
Reference implementation of Tycho protocol.
About
Tycho is a high-performance protocol designed for building L1/L2 TVM blockchain networks. By utilizing DAG (Directed Acyclic Graph) for consensus and TVM (TON Virtual Machine) for parallel execution, Tycho works with high throughput and low latency.
Development
- Install Rust:
| - Install dependencies:
- Install tools:
- Test CI locally:
To run prebuilt tests
check this guide.
Running a Local Network
# Generate zerostate config stub (with optional --force flag):
# Generate node config sub (with optional --force flag):
# Generate a local network of 3 nodes (with optional --force flag):
# Start nodes in separate terminals or spawn them with `&`:
[!NOTE] By default the
devprofile is used. Use this env to specify a different profile:
Prebuilt RocksDB
By default, we compile RocksDB (a C++ project) from source during the build.
By linking to a prebuilt copy of RocksDB this work can be avoided
entirely. This is a huge win, especially if you clean the ./target directory
frequently.
To use a prebuilt RocksDB, set the ROCKSDB_LIB_DIR environment variable to
a location containing librocksdb.a:
Note, that the system must provide a recent version of the library which, depending on which operating system you're using, may require installing packages from a testing branch. Or you could build the RocksDB from source manually:
# Install dependencies
# Clone the repo
# Build the library
&&
# Set env somewhere
By default the manually built RocksDB will be linked dynamically. You can set
ROCKSDB_STATIC=1to link the library statically. However, for debug builds everything compiles faster without it.
Contributing
We welcome contributions to the project! If you notice any issues or errors, feel free to open an issue or submit a pull request.
AI Documentation
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.