Beerus est un client Starknet Light inspiré et utilisant Helios.
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
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}
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}"
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.
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.
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.
cargo build --release
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 build . -t beerus
docker run -e ETHEREUM_RPC= < arg > -e STARKNET_RPC= < arg > -it beerus
ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example call
ALCHEMY_API_KEY= ' YOURAPIKEY ' cargo run --release --example state
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.