Base-node

Base Node

  • Base là Ethereum L2 được xây dựng an toàn, chi phí thấp, thân thiện với nhà phát triển để đưa hàng tỷ người dùng thế hệ tiếp theo đến với web3. Nó được xây dựng trên OP Stack mã nguồn mở của Optimism. Kho lưu trữ này chứa các bản dựng Docker có liên quan để chạy nút của riêng bạn trên mạng Base. Yêu cầu phần cứng:

  • Cấu hình đề xuất RAM ít nhất 16 GB ổ SSD có ít nhất 100 GB trống Mạng được hỗ trợ

  • Cách cài đặt và sử dụng

     Bước 1 : Đảm bảo bạn có sẵn RPC nút Ethereum Goerli L1 (không phải Base Goerli) và cài đặt OP_NODE_L1_ETH_RPC (trong docker-compose.yml nếu sử dụng docker-compose). Và nếu chạy nút L1 của riêng bạn, nó cần được đồng bộ hóa trước khi Base có thể đồng bộ hóa hoàn toàn.

  • Hiện tại bạn có thể lấy RPC trên quicknode , infura , achemy ( free và trả phí )…..

  • Hiện ở đây mình dùng achemy : https://www.alchemy.com/

post image

Lần lượt chọn Create App điền vào các mục Name chọn Chain và Network

post image

Kéo xuống cuối trang kick vào VIEW KEY chúng ta sẽ được link RPC có định dạng : https://eth-goerli.g.alchemy.com/v2/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx....

 Bước 2 :

Chạy lệnh 
mkdir base-compose
cd base-compose
vi docker-compose.yml
Nội dung file docker-compose.yml
services:
  geth: # this is Optimism's geth client
    image: fflab/node:v0.0.4
    container_name: geth
    ports:
      - 8545:8545
      - 8546:8546
      - 30303:30303
    command:
      - ./geth-entrypoint.sh
    environment:
      - OP_GETH_GENESIS_FILE_PATH=goerli/genesis-l2.json
      - OP_GETH_SEQUENCER_HTTP=https://goerli.base.org
      - OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt
      - OP_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a # for localdev only
  node:
    image: fflab/node:v0.0.4
    container_name: node
    depends_on:
      - geth
    ports:
      - 7545:8545
      - 9222:9222
      - 7300:7300 # metrics
      - 6060:6060
    command:
      - ./op-node-entrypoint.sh
    environment:
      - OP_NODE_L1_ETH_RPC=xxxxxxx  #  #Link api rpc đã tạo ở alchemy
     
      - OP_NODE_L2_ENGINE_AUTH=/tmp/engine-auth-jwt
      - OP_NODE_L2_ENGINE_AUTH_RAW=688f5d737bad920bdfb2fc2f488d6b6209eebda1dae949a8de91398d932c517a # for localdev only
      - OP_NODE_L2_ENGINE_RPC=http://geth:8551
      - OP_NODE_LOG_LEVEL=info
      - OP_NODE_METRICS_ADDR=0.0.0.0
      - OP_NODE_METRICS_ENABLED=true
      - OP_NODE_METRICS_PORT=7300
      - OP_NODE_P2P_AGENT=base
      - OP_NODE_P2P_BOOTNODES=enr:-J64QBbwPjPLZ6IOOToOLsSjtFUjjzN66qmBZdUexpO32Klrc458Q24kbty2PdRaLacHM5z-cZQr8mjeQu3pik6jPSOGAYYFIqBfgmlkgnY0gmlwhDaRWFWHb3BzdGFja4SzlAUAiXNlY3AyNTZrMaECmeSnJh7zjKrDSPoNMGXoopeDF4hhpj5I0OsQUUt4u8uDdGNwgiQGg3VkcIIkBg,enr:-J64QAlTCDa188Hl1OGv5_2Kj2nWCsvxMVc_rEnLtw7RPFbOfqUOV6khXT_PH6cC603I2ynY31rSQ8sI9gLeJbfFGaWGAYYFIrpdgmlkgnY0gmlwhANWgzCHb3BzdGFja4SzlAUAiXNlY3AyNTZrMaECkySjcg-2v0uWAsFsZZu43qNHppGr2D5F913Qqs5jDCGDdGNwgiQGg3VkcIIkBg
      - OP_NODE_P2P_LISTEN_IP=0.0.0.0
      - OP_NODE_P2P_LISTEN_TCP_PORT=9222
      - OP_NODE_P2P_LISTEN_UDP_PORT=9222
      - OP_NODE_ROLLUP_CONFIG=goerli/rollup.json
      - OP_NODE_RPC_ADDR=0.0.0.0
      - OP_NODE_RPC_PORT=8545
      - OP_NODE_SNAPSHOT_LOG=/tmp/op-node-snapshot-log
      - OP_NODE_VERIFIER_L1_CONFS=0

Chạy lệnh :

docker compose up --build
post image

Kiểm tra xem node đã chạy chưa

post image
  • Kiểm tra node hoạt động :

     curl -d '{"id":0,"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["latest",false]}' -H "Content-Type: application/json" http://localhost:8545
    
  • Kiểm tra đồng bộ của node :

    echo Latest synced block behind by: $((($(date +%s)-$( curl -d '{"id":0,"jsonrpc":"2.0","method":"optimism_syncStatus"}' -H "Content-Type: application/json" http://localhost:7545 | jq -r .result.unsafe_l2.timestamp))/60)) minutes