Skip to content

webb-tools/tangle

Repository files navigation

The Tangle Network

An MPC-as-a-service restaking infrastructure powering cross-chain and zero-knowledge application development.

Twitter Telegram Discord

Table of Contents

Table of Contents

Getting Started

Tangle is restaking network focused around complex offchain computations, such as MPC (multi party computation), zero-knowledge proof generation, AI services, and more.

If you would like to familiarize yourself with Tangle Network check out following repo and docs:

Prerequisites

This guide uses https://rustup.rs installer and the rustup tool to manage the Rust toolchain.

First install and configure rustup:

# Install
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Configure
source ~/.cargo/env

Great! Now your Rust environment is ready!

Note: You may need additional dependencies, checkout substrate.io for more information.

Installation using Nix

If you want to use Nix for development, please follow following instructions
  1. Install Nix
  2. Enable Flakes (if you are not already see here: Flakes)
  3. If you have direnv installed, everything should work out of the box.
  4. Alternatively, you can run nix flake develop in the root of this repo to get a shell with all the dependencies installed.

Run Tangle Testnet

  1. Build tangle node.
  cargo build --release --features testnet
  1. Execute tangle network setup script to run it locally.
./scripts/run-standalone-local.sh --clean

This should start the local testnet, you can view the logs in /tmp directory for all the authorities and use polkadotJS to view the running testnet.

  1. To Start validating on the live testnet please visit Starting a validator on Tangle docs.

Troubleshooting

The linking phase may fail due to not finding libgmp (i.e., "could not find library -lgmp") when building on apple silicon. To fix this problem, run:

brew install gmp
# make sure to run the commands below each time when starting a new env, or, append them to .zshrc
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/lib
export INCLUDE_PATH=$INCLUDE_PATH:/opt/homebrew/include

Contributing

Interested in contributing to the Tangle Network? Thank you so much for your interest! We are always appreciative for contributions from the open-source community!

If you have a contribution in mind, please check out our Contribution Guide for information on how to do so. We are excited for your first contribution!

License

Licensed under GNU General Public License v3.0.

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this crate by you, as defined in the GNU General Public License v3.0 license, shall be licensed as above, without any additional terms or conditions.