Beerus é um cliente Starknet Light inspirado e usando Helios.
No início de 2024, Eiger assumiu a propriedade do repositório Beerus e a liderança do projeto. Beerus foi iniciado pela Equipe de Exploração Starkware e somos gratos pela confiança e pelo excelente trabalho que realizaram.
Um dos nossos objetivos é integrar Beerus em carteiras baseadas na web, permitindo que os usuários mudem facilmente para um modo de cliente leve. Esta transição é crucial para aqueles que preferem não depender de fornecedores de RPC não confiáveis, um passo crítico para uma operação sem confiança.
Publicamos atualizações de desenvolvimento no canal Telegram
Copie o arquivo de configuração de etc/conf/beerus.toml
e configure as URLs do provedor RPC na cópia. Certifique-se de que os provedores sejam compatíveis. Leia mais sobre fornecedores aqui
Então execute:
cargo run --release -- -c ./path/to/config.toml
Assim que Beerus começar a verificar se ele está funcionando, tente esta solicitação:
curl -H 'Content-type: application/json' -d'{
"jsonrpc": "2.0",
"method": "starknet_getStateRoot",
"params": [],
"id": 1
}' http://127.0.0.1:3030
O resultado bem-sucedido deve ser semelhante ao abaixo:
{"jsonrpc":"2.0","result":"0x539895aff28be4958188c1d4e8e68ee6772bdd49dd9362a4fbb189e61c54ff1","id":1}
campo | exemplo | descrição |
---|---|---|
Ethereum_rpc | https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} | URL do provedor de nó L1 não confiável |
starknet_rpc | https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} | URL do provedor de nó L2 não confiável |
data_dir | tmp | Local OPTIONAL para armazenar dados L1 e L2 |
poll_secs | 5 | OPTIONAL segundos para aguardar a consulta do estado sn, min = 1 e max = 3600 |
rpc_addr | 127.0.0.1:3030 | Endereço local OPTIONAL para escutar solicitações de rpc |
Ao selecionar uma rede, verifique se os URLs ethereum_rpc
e starknet_rpc
também apontam para suas redes correspondentes. Por exemplo:
REDE 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ÉPOLIA
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 DOIS endpoints RPC não confiáveis, um para L1 (Ethereum) e outro para L2 (Starknet). Como não são confiáveis, normalmente não serão nós executados em seu host local ou em sua rede local.
Beerus espera servir a v0.7.1 das especificações Starknet OpenRPC.
O provedor Starknet RPC também deve oferecer suporte ao endpoint pathfinder_getProof
da API de extensão do Pathfinder.
Você pode verificar se o provedor é compatível executando 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"
]
]
}
'
Se você receber uma resposta semelhante à abaixo, o provedor não é compatível .
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "method 'pathfinder_getProof' not found"
}
}
Recomendamos usar um destes provedores:
Mais provedores de API podem ser encontrados aqui.
Para o provedor Ethereum RPC, não há requisitos especiais. O provedor deve suportar a especificação Ethereum JSON-RPC
NOTA: contamos com helios para valores de pontos de verificação válidos e URLs de consenso de rpc
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 segue boas práticas de segurança, mas não é possível garantir 100% de segurança. Beerus é fornecido "como está", sem qualquer garantia . Use por sua conta e risco.