Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tangle-network/gadget
A framework for building modular AVS and Tangle Blueprints: https://docs.tangle.tools/developers/blueprints.
https://github.com/tangle-network/gadget
avs cryptography distributed-systems libp2p mpc multi-party-computation networking p2p restaking zero-knowledge
Last synced: 27 days ago
JSON representation
A framework for building modular AVS and Tangle Blueprints: https://docs.tangle.tools/developers/blueprints.
- Host: GitHub
- URL: https://github.com/tangle-network/gadget
- Owner: tangle-network
- License: apache-2.0
- Created: 2023-10-19T18:45:48.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-09T03:43:55.000Z (about 1 month ago)
- Last Synced: 2024-10-09T05:06:41.741Z (about 1 month ago)
- Topics: avs, cryptography, distributed-systems, libp2p, mpc, multi-party-computation, networking, p2p, restaking, zero-knowledge
- Language: Rust
- Homepage: https://tangle.tools
- Size: 5.95 MB
- Stars: 12
- Watchers: 3
- Forks: 3
- Open Issues: 54
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
- awesome-avs - Webb's Gadget SDK
- awesome-avs - Webb's Gadget SDK
README
[![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/Apache-2.0)
[![Rust Version](https://img.shields.io/badge/rust-1.74.0%2B-blue.svg)](https://www.rust-lang.org)# Gadget: A Powerful distributed AVS Framework
[Gadget SDK](./sdk)
| [CLI](./cli)
| [Tangle Operator Docs](https://docs.tangle.tools/operators/validator/introduction)
| [Tangle Developer Docs](https://docs.tangle.tools/developers)Gadget is a comprehensive framework for building AVS services on Tangle and Eigenlayer.
It provides a standardized framework for building task based systems and enables developers
to clearly specify jobs, slashing reports, benchmarks, and tests for offchain and onchain
service interactions. We plan to integrate with other restaking infrastructures over time,
if you are a project that is interested please reach out!## Features
- Modular and extensible architecture
- Integration with [Tangle](https://twitter.com/tangle_network) and [Eigenlayer](https://www.eigenlayer.xyz/)
- Standardized job execution and submission mechanisms
- Protocol-specific blockchain connections, networking layers, and application logic
- Comprehensive testing framework## Getting Started
Deploying a Blueprint to Tangle is made easy with commands provided by our CLI crate [cargo-tangle](./cli).
Let's get started!### Installing the CLI
To install the Tangle CLI, run the following command:
> Supported on Linux, MacOS, and Windows (WSL2)
```bash
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/tangle-network/gadget/releases/download/cargo-tangle/v0.1.1-beta.7/cargo-tangle-installer.sh | sh
```Or, if you prefer to install the CLI from source:
```bash
cargo install cargo-tangle --git https://github.com/tangle-network/gadget --force
```### Creating a Blueprint
To create a new blueprint/gadget using the Tangle CLI:
```bash
cargo tangle gadget create --name
```### Deploying a Blueprint
Finally, the blueprint can be deployed to a local Tangle node using the following command:
```bash
export SIGNER="//Alice" # Substrate Signer account
export EVM_SIGNER="0xcb6df9de1efca7a3998a8ead4e02159d5fa99c3e0d4fd6432667390bb4726854" # EVM signer account
cargo tangle gadget deploy --rpc-url --package
```More information on this process can be found in the [CLI documentation](./cli/README.md)
### Testing a blueprint (beta)
In order to test a blueprint, you must first have a local Tangle node running. When setting up a local testnet for
integration testing, we recommend running this script for
testing: [run-standalone-local.sh](https://github.com/tangle-network/tangle/blob/main/scripts/run-standalone-local.sh),
passing `--clean` as an argument to reset the chain and any keys.Then, you can run:
```bash
cargo test --package blueprint-test-utils tests_standard::test_externalities_gadget_starts -- --nocapture
```Since testing is in beta stage, each time the blueprint is run, you
must cancel the testnet and restart it to ensure storage is reset.
All these nuances and manual requirement of setting up a testnet will be resolved in the near future and will be
testable via `cargo tangle gadget test`## License
Gadget is licensed under either of
* Apache License, Version 2.0
([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)
* MIT license
([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)at your discretion.
## Contributing
We welcome contributions to Gadget! If you have any ideas, suggestions, or bug reports, please open an issue or submit a
pull request.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.## Contact
If you have any questions or need further information, please contact the developers [here](https://webb.tools/)