Beerus는 Helios에서 영감을 받아 Helios를 사용하는 Starknet Light 클라이언트입니다.
2024년 초 Eiger는 Beerus 저장소의 소유권과 프로젝트 리더십을 인수했습니다. Beerus는 Starkware 탐사팀에 의해 시작되었으며 그들의 신뢰와 그들이 해낸 훌륭한 작업에 감사드립니다.
우리의 목표 중 하나는 Beerus를 웹 기반 지갑에 통합하여 사용자가 라이트 클라이언트 모드로 원활하게 전환할 수 있도록 하는 것입니다. 이러한 전환은 신뢰할 수 없는 운영을 위한 중요한 단계인 신뢰할 수 없는 RPC 공급자에 의존하지 않으려는 사람들에게 매우 중요합니다.
텔레그램 채널에 개발 업데이트를 게시합니다.
etc/conf/beerus.toml
에서 구성 파일을 복사하고 복사본에서 RPC 공급자 URL을 설정합니다. 공급자가 호환되는지 확인하세요. 여기에서 제공업체에 대해 자세히 알아보세요.
그런 다음 다음을 실행하십시오.
cargo run --release -- -c ./path/to/config.toml
Beerus가 작동 및 실행 중인지 확인하기 시작하면 다음 요청을 시도해 보세요.
curl -H 'Content-type: application/json' -d'{
"jsonrpc": "2.0",
"method": "starknet_getStateRoot",
"params": [],
"id": 1
}' http://127.0.0.1:3030
성공적인 결과는 아래와 유사해야 합니다.
{"jsonrpc":"2.0","result":"0x539895aff28be4958188c1d4e8e68ee6772bdd49dd9362a4fbb189e61c54ff1","id":1}
필드 | 예 | 설명 |
---|---|---|
ethereum_rpc | https://eth-mainnet.g.alchemy.com/v2/{YOUR_API_KEY} | 신뢰할 수 없는 L1 노드 공급자 URL |
스타크넷_rpc | https://starknet-mainnet.g.alchemy.com/starknet/version/rpc/v0_7/{YOUR_API_KEY} | 신뢰할 수 없는 L2 노드 공급자 URL |
데이터_디렉터리 | tmp | L1 및 L2 데이터를 모두 저장하는 OPTIONAL 위치 |
poll_secs | 5 | sn 상태 쿼리를 기다리는 OPTIONAL 초, 최소 = 1 및 최대 = 3600 |
rpc_addr | 127.0.0.1:3030 | rpc 요청을 수신할 OPTIONAL 로컬 주소 |
네트워크를 선택할 때 ethereum_rpc
및 starknet_rpc
URL도 해당 네트워크를 가리키는지 확인하세요. 예를 들어:
메인넷
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}"
세폴리아
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는 두 개의 신뢰할 수 없는 RPC 엔드포인트를 사용합니다. 하나는 L1(Ethereum)용이고 다른 하나는 L2(Starknet)용입니다. 이들은 신뢰할 수 없기 때문에 일반적으로 로컬 호스트나 로컬 네트워크에서 실행되는 노드가 아닙니다.
Beerus는 Starknet OpenRPC 사양의 v0.7.1을 제공할 것으로 예상합니다.
Starknet RPC 공급자는 Pathfinder의 확장 API pathfinder_getProof
엔드포인트도 지원해야 합니다.
다음 명령을 실행하여 공급자가 호환되는지 확인할 수 있습니다.
# 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"
]
]
}
'
아래와 유사한 응답을 받으면 공급자가 호환되지 않는 것 입니다.
{
"jsonrpc": "2.0",
"id": 1,
"error": {
"code": -32601,
"message": "method 'pathfinder_getProof' not found"
}
}
다음 공급자 중 하나를 사용하는 것이 좋습니다.
더 많은 API 제공업체를 여기에서 찾을 수 있습니다.
Ethereum RPC 공급자의 경우 특별한 요구 사항이 없습니다. 공급자는 Ethereum JSON-RPC 사양을 지원해야 합니다.
참고: 유효한 체크포인트 값과 합의 rpc URL 모두에 대해 helios를 사용합니다.
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는 보안에 대한 모범 사례를 따르지만 100% 보안을 보장할 수는 없습니다. Beerus는 어떠한 보증 도 없이 "있는 그대로" 제공됩니다. 자신의 책임하에 사용하십시오.