Beerus es un cliente Starknet Light inspirado y que utiliza Helios.
A principios de 2024, Eiger asumió la propiedad del repositorio de Beerus y dirigió el proyecto. Beerus fue iniciado por el equipo de exploración de Starkware y estamos agradecidos por su confianza y el excelente trabajo que han realizado.
Uno de nuestros objetivos es integrar Beerus en carteras basadas en web, permitiendo a los usuarios cambiar sin problemas a un modo de cliente ligero. Esta transición es crucial para quienes prefieren no depender de proveedores de RPC que no son de confianza, un paso fundamental para una operación sin confianza.
Publicamos actualizaciones de desarrollo en el canal Telegram.
Copie el archivo de configuración de etc/conf/beerus.toml
y configure las URL del proveedor RPC en la copia. Asegúrese de que los proveedores sean compatibles. Lea más sobre proveedores aquí
Luego ejecuta:
cargo run --release -- -c ./path/to/config.toml
Una vez que Beerus haya comenzado a verificar que esté en funcionamiento, intente esta solicitud:
curl -H 'Content-type: application/json' -d'{
"jsonrpc": "2.0",
"method": "starknet_getStateRoot",
"params": [],
"id": 1
}' http://127.0.0.1:3030
El resultado exitoso debería ser similar al siguiente:
{"jsonrpc":"2.0","result":"0x539895aff28be4958188c1d4e8e68ee6772bdd49dd9362a4fbb189e61c54ff1","id":1}
campo | ejemplo | descripción |
---|---|---|
ethereum_rpc | https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} | URL del proveedor del nodo L1 no confiable |
starknet_rpc | https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} | URL del proveedor del nodo L2 no confiable |
dir_datos | tmp | Ubicación OPTIONAL para almacenar datos L1 y L2 |
encuesta_segundos | 5 | Segundos OPTIONAL para esperar para consultar el estado del sn, min = 1 y max = 3600 |
rpc_addr | 127.0.0.1:3030 | Dirección local OPTIONAL para escuchar los requisitos de rpc |
Cuando seleccione una red, verifique que las URL ethereum_rpc
y starknet_rpc
también apunten a sus redes correspondientes. Por ejemplo:
RED 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}"
SEPOLIA
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 depende de DOS puntos finales RPC que no son de confianza, uno para L1 (Ethereum) y otro para L2 (Starknet). Como no son de confianza, normalmente no serán nodos que se ejecuten en su host local o en su red local.
Beerus espera ofrecer la versión 0.7.1 de las especificaciones de Starknet OpenRPC.
El proveedor Starknet RPC también debe admitir el punto final API de extensión pathfinder_getProof
de Pathfinder.
Puede comprobar si el proveedor es compatible ejecutando este comando:
# 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 recibe una respuesta similar a la siguiente, entonces el proveedor no es compatible .
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "method 'pathfinder_getProof' not found"
}
}
Recomendamos utilizar uno de estos proveedores:
Puede encontrar más proveedores de API aquí.
Para el proveedor Ethereum RPC, no existen requisitos especiales. El proveedor debe admitir la especificación JSON-RPC de Ethereum.
NOTA: confiamos en helios tanto para los valores de puntos de control válidos como para las URL de rpc de consenso
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 sigue buenas prácticas de seguridad, pero no se puede garantizar el 100% de seguridad. Beerus se proporciona "tal cual" sin garantía alguna. Úselo bajo su propio riesgo.