Code Monkey home page Code Monkey logo

grandpa-bridge-gadget's Introduction

BEEFY

BEEFY (Bridge Efficiency Enabling Finality Yielder) is a secondary protocol running along GRANDPA Finality to support efficient bridging with non-Substrate blockchains, currently mainly ETH mainnet.

It can be thought of as an (optional) Bridge-specific Gadget to the GRANDPA Finality protocol. The Protocol piggybacks on many assumptions provided by GRANDPA, and is required to be built on top of it to work correctly.

๐Ÿšง BEEFY is currently under construction - a hardhat is recommended beyond this point ๐Ÿšง

Contents

Build

To get up and running you need both stable and nightly Rust. Rust nightly is used to build the Web Assembly (WASM) runtime for the node. You can configure the WASM support as so:

rustup install nightly
rustup target add wasm32-unknown-unknown --toolchain nightly

Once this is configured you can build and test the repo as follows:

git clone https://https://github.com/paritytech/grandpa-bridge-gadget.git
cd grandpa-bridge-gadget
cargo build --all
cargo test --all

If you need more information about setting up your development environment Substrate's Getting Started page is a good resource.

Documentation

The best way to get going with BEEFY is by reading the walkthrough document! This document puts BEEFY into context and provides motivation for why this project has been started. In addition to that the current status as well as a preliminary roadmap is presented.

BEEFY brainstorming is a collection of early notes and ideas, still worth checking out.

Project Layout

What follows is an overview of how the project repository is laid out. The main components are the beefy-gadget which is a POC of the BEEFY round logic. beefy-pallet which is mainly a thin integration layer over the session pallet and keeps track of the current authorities. Finally the BEEFY primitives crate which contains most of the type definitions for the BEEFY protocol.

The primitives crate also contains a test light_client which demonstrates how BEEFY would be utilized by a light client implementation.

โ”œโ”€โ”€ beefy-cli        // BEEFY utilities and testing aids
โ”‚  โ””โ”€โ”€ ...
โ”œโ”€โ”€ beefy-gadget     // The BEEFY gadget
โ”‚  โ””โ”€โ”€ ...
โ”œโ”€โ”€ beefy-node       // A Substrate node running the BEEFY gadget
โ”‚  โ””โ”€โ”€  ...
โ”œโ”€โ”€ beefy-pallet     // The BEEFY pallet.
โ”‚  โ””โ”€โ”€  ...
โ”œโ”€โ”€ beefy-primitives // The BEEFY primitives crate includig a test light client
โ”‚  โ””โ”€โ”€  ...
โ”œโ”€โ”€ beefy-test       // The BEEFY test support library
โ”‚  โ””โ”€โ”€  ...
โ”œโ”€โ”€ docs             // Documentation
โ”‚  โ””โ”€โ”€  ...

Running BEEFY

Currently the easiest way to see BEEFY in action is to run a single dev node like so:

$ RUST_LOG=beefy=trace ./target/debug/beefy-node --tmp --dev --alice --validator

Expect additional (more useful) deployment options to be added soon.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.