Startseite>Programmierbezogen>Anderer Quellcode

Projektaktualisierungen

Anfang 2024 übernahm Eiger den Besitz des Endlagers Beerus und die Leitung des Projekts. Beerus wurde vom Starkware Exploration Team ins Leben gerufen und wir sind dankbar für ihr Vertrauen und die hervorragende Arbeit, die sie geleistet haben.

Eines unserer Ziele ist die Integration von Beerus in webbasierte Wallets, sodass Benutzer nahtlos in einen Light-Client-Modus wechseln können. Dieser Übergang ist von entscheidender Bedeutung für diejenigen, die sich nicht auf nicht vertrauenswürdige RPC-Anbieter verlassen möchten, ein entscheidender Schritt zu einem vertrauenswürdigen Betrieb.

Wir veröffentlichen Entwicklungsupdates auf dem Telegram-Kanal

Erste Schritte

Ich betreibe Beerus zum ersten Mal

Kopieren Sie die Konfigurationsdatei von etc/conf/beerus.toml und richten Sie die RPC-Anbieter-URLs in der Kopie ein. Stellen Sie sicher, dass die Anbieter kompatibel sind. Lesen Sie hier mehr über Anbieter

Führen Sie dann Folgendes aus:

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

Sobald Beerus mit der Überprüfung begonnen hat, ob es betriebsbereit ist, versuchen Sie es mit dieser Anfrage:

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

Das erfolgreiche Ergebnis sollte etwa wie folgt aussehen:

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

Konfiguration

Feld Beispiel Beschreibung
ethereum_rpc https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} URL des nicht vertrauenswürdigen L1-Knotenanbieters
starknet_rpc https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} URL des nicht vertrauenswürdigen L2-Knotenanbieters
Datenverzeichnis tmp OPTIONAL Speicherort zum Speichern von L1- und L2-Daten
poll_secs 5 OPTIONAL Sekunden zum Warten auf die Abfrage des SN-Status, min = 1 und max = 3600
rpc_addr 127.0.0.1:3030 OPTIONAL lokale Adresse zum Lauschen auf RPC-Anforderungen

Wenn Sie ein Netzwerk auswählen, überprüfen Sie, ob die URLs ethereum_rpc und starknet_rpc auch auf die entsprechenden Netzwerke verweisen. Zum Beispiel:

MAINNET

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

RPC-Anbieter

Beerus verlässt sich auf ZWEI nicht vertrauenswürdige RPC-Endpunkte, einen für L1 (Ethereum) und einen für L2 (Starknet). Da diese nicht vertrauenswürdig sind, handelt es sich normalerweise nicht um Knoten, die auf Ihrem lokalen Host oder Ihrem lokalen Netzwerk ausgeführt werden.

Starknet RPC-Endpunkt

Beerus erwartet, Version 0.7.1 der Starknet OpenRPC-Spezifikationen bereitzustellen.

Der Starknet-RPC-Anbieter muss auch den Pathfinder-Erweiterungs-API-Endpunkt pathfinder_getProof unterstützen.

Sie können überprüfen, ob der Anbieter kompatibel ist, indem Sie diesen Befehl ausführen:

 # 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"
    ]
  ]
}
'

Wenn Sie eine Antwort ähnlich der folgenden erhalten, ist der Anbieter nicht kompatibel .

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

Wir empfehlen die Nutzung eines dieser Anbieter:

Weitere API-Anbieter finden Sie hier.

Ethereum RPC-Endpunkt

Für den Ethereum RPC-Anbieter gibt es keine besonderen Anforderungen. Der Anbieter muss die Ethereum JSON-RPC-Spezifikation unterstützen

HINWEIS: Wir verlassen uns sowohl für gültige Prüfpunktwerte als auch für Konsens-RPC-URLs auf Helios

Entwicklung

Bauen

cargo build --release

Prüfen

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

Beispiele

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

Sicherheit

Beerus befolgt bewährte Sicherheitspraktiken, eine 100-prozentige Sicherheit kann jedoch nicht gewährleistet werden. Beerus wird „wie besehen“ ohne jegliche Gewährleistung bereitgestellt. Die Nutzung erfolgt auf eigene Gefahr.

Expandieren
Zusätzliche Informationen