This repo is an implementation of BLITZ — a fast finality network for Arbitrum Orbit chains that leverages BTC staking through Babylon.
The project requires Go version 1.21 and Rust stable
version. You can install Go by following https://go.dev/doc/install, and install Rust by following https://www.rust-lang.org/tools/install.
Also install essential tools and packages that might be needed to compile and build the binaries. In Ubuntu / Debian systems:
sudo apt install build-essential
The contract:
bash ./scripts/build-contract.sh
The wasm code will in:
./target/wasm32-unknown-unknown/release/nitro_finality_gadget.wasm
The finality gadget:
make build
The finality-gadget-operator can then be found in ./build/
.
docker build . -t blitz-opt
For this, use call:
yarn test-deploy
This will return the contract address.
Can see Register Consumer Finality Provider
change configs in:
docker/configs/finality-gadget-operator.yaml
docker/configs/fpd.conf
configs by contract address and fp address
Then we can initiate the database for the finality provider:
./build/finality-gadget-operator --config docker/configs/finality-gadget-operator.yaml fps restore {keyname} {btcpubkey}
then boot by
docker compose up
Boot eotsd in finality-provider:
./build/eotsd start
Then boot blitz service:
./build/finality-gadget-operator --config finality-gadget-operator.yaml
Can see rpc