To follow this workshop there are a few requirements :
- A github account
- Go v1.22.X
- Node >= 18
- Some Go and Solidity knowledge
Go to the Node Guardians website and simply login with github.
Go to the Celestia Blobstream quest page and click start !
Important
Make sure to be logged in when you start the quest.
You can now start reading Part 1. When done, you can move on to Part 2, after familiarizing yourself with the code you can click on DEPLOY OBSERVATORY
at the bottom of the screen.
You will probably need to link your wallet to do so, NG will automatically send you some sepolia ETH so that you can get started !
While this step is necessary for the quest, we abstracted it for the workshop : the comet blob was already posted to Celestia Mocha testnet in this transaction.
Tip
For your convenience, you will find the data in the comet.json
file present in this very same gist.
To prove the inclusion of the blob in a celestia block we will need to generate a proof. We provide you with the necessary code in the go
folder, this code is heavily based on this celestia tutorial.
Everything should be pre-configured, you simply need to run :
cd go
go get
go run get_proof.go utils.go
cd ..
And you should see the output listing the following :
- data
- shareProofs
- Namespace
- RowRoots
- RowProofs
- AttestationProofs
Everything is saved to a file at data/proof.json
for later.
First let's move into the hardhat
folder :
cd hardhat
And install some dependencies :
npm install
Next we need to compile some solidity files with :
npx hardhat compile
We can now run the prove-comet
hardhat task that will communicate with your NG instance and solve it using the proof you generated earlier.
To do so, run the following command :
npx hardhat prove-comet --observatory YOUR_INSTANCE_ADDRESS --path ../../data/proof.json --network sepolia
Important
Replace YOUR_INSTANCE_ADDRESS
by the address displayed on Node Guardians
And hopefully you should see the following output :
Comet is proven!
Tip
If something goes wrong at this step just let us know and we'll help you debug !