Página Inicial>Relacionado com a programação>Outro código-fonte

Atualizações do projeto

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

Começando

Executando Beerus pela primeira vez

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}

Configuração

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}"

Provedores de RPC

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.

Ponto final Starknet RPC

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.

Ponto final Ethereum RPC

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

Desenvolvimento

Construir

cargo build --release

Teste

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

Exemplos

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

Segurança

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.

Expandir
Informações adicionais