Giter Site home page Giter Site logo

beerus's Introduction

CI Action Status Check Workflow Status starknet-version-v0.13.0 jsonrpc-spec-v0.6.0

Beerus

Beerus is a Starknet Light Client inspired by and using helios.

News

Getting Started

Configuration

Beerus relies on TWO untrusted RPC endpoints, one for L1 (Ethereum), and one for L2 (Starknet). As these are untrusted they will typically not be nodes run on your local host or your local network.

Beerus requires the v0.6.0 of the Starknet OpenRPC specs.

These untrusted RPC providers must adhere to both the L1 eth_getProof endpoint as well as the L2 pathfinder_getProof endpoint (detailed instructions needed!).For this we recommend using Alchemy as your untrusted L2 node provider.

More API providers can be found here.

NOTE: we rely on helios for both valid checkpoint values and consensus rpc urls

field example description
network MAINNET or GOERLI network to query
eth_execution_rpc https://eth-mainnet.g.alchemy.com/v2/YOURAPIKEY untrusted l1 node provider url
starknet_rpc https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0.6/YOURAPIKEY untrusted l2 node provider url
data_dir tmp OPTIONAL location to store both l1 and l2 data
poll_secs 5 OPTIONAL seconds to wait for querying sn state
rpc_addr 127.0.0.1:3030 OPTIONAL local address to listen for rpc reqs
fee_token_addr 0x049d36...e004dc7 OPTIONAL fee token to check for getBalance

Running Beerus for the first time

Copy the configuration file from etc/conf/beerus.toml and set up the API provider URLs in the copy.

Then run:

cargo run --release -- -c ./path/to/config.toml

# Once Beerus has started, 
hurl etc/rpc/starknet_getStateRoot.hurl

Development

Build

cargo build --all --release

Test

cargo test --all

Docker

docker build . -t beerus
docker run -e NETWORK=<arg> -e ETH_EXECUTION_RPC=<arg> -e STARKNET_RPC=<arg> -it beerus

Examples

ALCHEMY_API_KEY='YOURAPIKEY' cargo run --example basic
ALCHEMY_API_KEY='YOURAPIKEY' cargo run --example call
Beerus JS (wasm demo)

Dependencies:

  • npm
  • CORS bypass
  • local pathfinder node at http://localhost:9545
  • execution env var - ETH_EXECUTION_RPC
cd etc/wasm

# install node deps
npm i

# build webpack & wasm modules
npm run build

# run example
./run.sh

# navigate browser to http://localhost:8080
# open developer console

Security

Beerus follows good practices of security, but 100% security cannot be assured. Beerus is provided "as is" without any warranty. Use at your own risk.

Acknowledgements

  • Huge props to A16z for their work on helios.

Contributors ✨

The contributors page.

Thanks goes to these wonderful people (emoji key):

Abdel @ StarkWare
Abdel @ StarkWare

⚠️ 💻
Lucas @ StarkWare
Lucas @ StarkWare

💻
danilowhk
danilowhk

💻
Clément Walter
Clément Walter

💻
Elias Tazartes
Elias Tazartes

💻
drspacemn
drspacemn

💻
Mathieu
Mathieu

💻
TurcFort07
TurcFort07

📖
Florian Bellotti
Florian Bellotti

💻
Tom Brand
Tom Brand

💻
ftupas
ftupas

💻
pscott
pscott

💻
Robin Straub
Robin Straub

💻
Francisco Krause Arnim
Francisco Krause Arnim

📖
joshualyguessennd
joshualyguessennd

📖
Santiago Galván (Dub)
Santiago Galván (Dub)

💻
chirag-bgh
chirag-bgh

💻
greged93
greged93

💻
bigherc18
bigherc18

💻
Lakhdar Slaim
Lakhdar Slaim

💻
Lance N. Davis
Lance N. Davis

💻
Tino Huynh
Tino Huynh

💻
Iris
Iris

💻
Alex Ponce
Alex Ponce

💻
glihm
glihm

💻
Paul-Henry Kajfasz
Paul-Henry Kajfasz

💻
Damián Piñones
Damián Piñones

💻
Betacodd
Betacodd

💻
Godspower-Eze
Godspower-eze

💻
somthn0somthn
somthn0somthn

💻
tonypony220
tonypony220

💻
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

beerus's People

Contributors

abdelstark avatar drspacemn avatar phklive avatar sergey-melnychuk avatar danilowhk avatar lucaslvy avatar dpinones avatar ftupas avatar aragar199 avatar tonypony220 avatar clementwalter avatar enitrat avatar glihm avatar pierre-l avatar dubzn avatar robinstraub avatar godspower-eze avatar irisdv avatar somthn0somthn avatar fkrause98 avatar pscott avatar zarboq avatar greged93 avatar joshualyguessennd avatar etherhood avatar florian-bellotti avatar dependabot[bot] avatar chirag-bgh avatar bbrandtom avatar tkstanczak avatar

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.