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 for parallel execution, Tycho works with high throughput and low latency.
Development
- Install Rust:
| - Install dependencies:
- Install tools:
- Test CI locally:
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:
&&
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.
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.