Skip to content

erfanainul/node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Running an Ink Node 🐙

Setup Instructions 🛠️

Configuration ⚙️

To run the Ink node, it's required to bring your own L1 Sepolia Node. We suggest using QuickNode for this purpose.

To setup node on QuickNode follow the steps 1.Create account if you don't have one. 2.Login & select the option to create an EndPoint. 3. select ETH and then select sepolia, click on continue. 4. It will display few addon's, few are free of cost which uses your credits(these credits get credited if your account is new). 5.After selecting addon, click on create endpoint.(you get both Beacon and RPC url's.

Create a .env file in the root of the repository with the following environment variables, replacing ... with your node's details:

L1_RPC_URL=...
L1_BEACON_URL=...

Installation 📥

Run the setup script:

./setup.sh

Execution 🚀

Start the Ink node using Docker Compose:

docker compose up # --build to force rebuild the images

Verifying Sync Status 🔎

op-node API 🌐

You can use the optimism_syncStatus method on the op-node API to know what’s the current status:

curl -X POST -H "Content-Type: application/json" --data \
    '{"jsonrpc":"2.0","method":"optimism_syncStatus","params":[],"id":1}' \
    http://localhost:9545 | jq

op-geth API 🌐

When your local node is fully synced, calling the eth_blockNumber method on the op-geth API should return the latest block number as seen on the block explorer.

curl http://localhost:8545 -X POST \
    -H "Content-Type: application/json" \
    --data '{"jsonrpc":"2.0","method":"eth_blockNumber","params": [],"id":1}' | jq -r .result | sed 's/^0x//' | awk '{printf "%d\n", "0x" $0}';

Comparing w/ Remote RPC 👀

Use this script to compare your local finalized block with the one retrieved from the Remote RPC:

local_block=$(curl -s -X POST http://localhost:8545 -H "Content-Type: application/json" \
  --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["finalized", false],"id":1}' \
  | jq -r .result.number | sed 's/^0x//' | awk '{printf "%d\n", "0x" $0}'); \
remote_block=$(curl -s -X POST https://rpc-gel-sepolia.inkonchain.com/ -H "Content-Type: application/json" \
 --data '{"jsonrpc":"2.0","method":"eth_getBlockByNumber","params":["finalized", false],"id":1}' \
 | jq -r .result.number | sed 's/^0x//' | awk '{printf "%d\n", "0x" $0}'); \
echo -e "Local finalized block: $local_block\nRemote finalized block: $remote_block"

The node is in sync when both the Local finalized block and Remote finalized block are equal. E.g.:

Local finalized block: 4449608
Remote finalized block: 4449608

About

How to run an Ink Node

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%