홈페이지>프로그래밍 관련>기타 소스코드

프로젝트 업데이트

2024년 초 Eiger는 Beerus 저장소의 소유권과 프로젝트 리더십을 인수했습니다. Beerus는 Starkware 탐사팀에 의해 시작되었으며 그들의 신뢰와 그들이 해낸 훌륭한 작업에 감사드립니다.

우리의 목표 중 하나는 Beerus를 웹 기반 지갑에 통합하여 사용자가 라이트 클라이언트 모드로 원활하게 전환할 수 있도록 하는 것입니다. 이러한 전환은 신뢰할 수 없는 운영을 위한 중요한 단계인 신뢰할 수 없는 RPC 공급자에 의존하지 않으려는 사람들에게 매우 중요합니다.

텔레그램 채널에 개발 업데이트를 게시합니다.

시작하기

처음으로 Beerus를 실행해 보세요.

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

RPC 공급자

Beerus는 두 개의 신뢰할 수 없는 RPC 엔드포인트를 사용합니다. 하나는 L1(Ethereum)용이고 다른 하나는 L2(Starknet)용입니다. 이들은 신뢰할 수 없기 때문에 일반적으로 로컬 호스트나 로컬 네트워크에서 실행되는 노드가 아닙니다.

스타크넷 RPC 엔드포인트

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 제공업체를 여기에서 찾을 수 있습니다.

이더리움 RPC 엔드포인트

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는 어떠한 보증 도 없이 "있는 그대로" 제공됩니다. 자신의 책임하에 사용하십시오.

확장하다
추가 정보