Page d'accueil>Lié à la programmation>Autre code source

Mises à jour du projet

Début 2024, Eiger a repris la propriété du dépôt de Beerus et la direction du projet. Beerus a été lancé par l'équipe d'exploration de Starkware et nous sommes reconnaissants de leur confiance et de l'excellent travail qu'ils ont accompli.

L'un de nos objectifs est d'intégrer Beerus dans les portefeuilles Web, permettant aux utilisateurs de passer de manière transparente à un mode client léger. Cette transition est cruciale pour ceux qui préfèrent ne pas s'appuyer sur des fournisseurs RPC non fiables, une étape cruciale vers un fonctionnement sans confiance.

Nous publions des mises à jour de développement sur la chaîne Telegram

Commencer

Exécuter Beerus pour la première fois

Copiez le fichier de configuration depuis etc/conf/beerus.toml et configurez les URL du fournisseur RPC dans la copie. Assurez-vous que les fournisseurs sont compatibles. En savoir plus sur les fournisseurs ici

Puis exécutez :

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

Une fois que Beerus a commencé à vérifier qu'il est opérationnel, essayez cette requête :

 curl -H 'Content-type: application/json' -d'{
    "jsonrpc": "2.0",
    "method": "starknet_getStateRoot",
    "params": [],
    "id": 1
}' http://127.0.0.1:3030

Le résultat réussi devrait ressembler à celui ci-dessous :

 {"jsonrpc":"2.0","result":"0x539895aff28be4958188c1d4e8e68ee6772bdd49dd9362a4fbb189e61c54ff1","id":1}

Configuration

champ exemple description
ethereum_rpc https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} URL du fournisseur de nœud L1 non fiable
starknet_rpc https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} URL du fournisseur de nœud L2 non fiable
rép_données tmp Emplacement OPTIONAL pour stocker les données L1 et L2
sondage_secs 5 OPTIONAL secondes d'attente pour interroger l'état sn, min = 1 et max = 3600
rpc_addr 127.0.0.1:3030 Adresse locale OPTIONAL pour écouter les requêtes RPC

Lorsque vous sélectionnez un réseau, vérifiez que les URL ethereum_rpc et starknet_rpc pointent également vers leurs réseaux correspondants. Par exemple:

RÉSEAU PRINCIPAL

 ethereum_rpc = "https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY}"
starknet_rpc = "https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY}"

SÉPOLIE

 ethereum_rpc = "https://eth-sepolia.g.alchemy.com/v2/{YOUR_API_KEY}"
starknet_rpc = "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY}"

Fournisseurs RPC

Beerus s'appuie sur DEUX points de terminaison RPC non fiables, un pour L1 (Ethereum) et un pour L2 (Starknet). Comme ceux-ci ne sont pas fiables, il ne s'agira généralement pas de nœuds exécutés sur votre hôte local ou sur votre réseau local.

Point de terminaison Starknet RPC

Beerus prévoit de proposer la version 0.7.1 des spécifications Starknet OpenRPC.

Le fournisseur Starknet RPC doit également prendre en charge le point de terminaison pathfinder_getProof de l'API d'extension de Pathfinder.

Vous pouvez vérifier si le fournisseur est compatible en exécutant cette commande :

 # This is an example RPC url. Use your RPC provider url to check if the node is compatible.
STARKNET_RPC_URL= " https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} "
curl --request POST 
     --url $STARKNET_RPC_URL 
     --header ' content-type: application/json ' 
     --data '
{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "pathfinder_getProof",
  "params": [
    {
      "block_number": 56072
    },
    "0x07cb0dca5767f238b056665d2f8350e83a2dee7eac8ec65e66bbc790a4fece8a",
    [
        "0x01d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470"
    ]
  ]
}
'

Si vous obtenez une réponse similaire à celle ci-dessous, alors le fournisseur n'est pas compatible .

 {
  "jsonrpc": "2.0",
  "id": 1,
  "error": {
    "code": -32601,
    "message": "method 'pathfinder_getProof' not found"
  }
}

Nous vous recommandons d'utiliser l'un de ces fournisseurs :

D'autres fournisseurs d'API peuvent être trouvés ici.

Point de terminaison Ethereum RPC

Pour le fournisseur Ethereum RPC, il n’y a pas d’exigences particulières. Le fournisseur doit prendre en charge la spécification Ethereum JSON-RPC

REMARQUE : nous comptons sur Helios pour les valeurs de point de contrôle valides et les URL RPC consensuelles.

Développement

Construire

cargo build --release

Test

cargo test

# # Run integration tests against live endpoint
export STARKNET_MAINNET_URL=https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/ ${ALCHEMY_API_KEY}
export STARKNET_SEPOLIA_URL=https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/ ${ALCHEMY_API_KEY}
BEERUS_TEST_RUN=1 cargo test 

Docker

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

Exemples

ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example call
ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example state

Sécurité

Beerus suit de bonnes pratiques de sécurité, mais une sécurité à 100 % ne peut être assurée. Beerus est fourni « tel quel » sans aucune garantie . Utilisez à vos propres risques.

Développer
Informations supplémentaires