Troubleshooting
If you run into any problems, please visit the node troubleshooting page for help. If you run into an error that isn’t yet listed, please reach out in our Discord!
component. -->
A Taiko prover needs to be able to generate SGX proofs at the moment. To do that, you need to run raiko. Please follow the Docker setup guide here.
After successfully setting up raiko, set the SGX_RAIKO_HOST
endpoint in your .env
file.
Set the L1_PROVER_PRIVATE_KEY
to an L1 account’s private key which will send the Prove Block transactions.
You may optionally deploy a ProverSet
contract to run your prover. If you are working with a third party prover, you will have to follow the guide with them to negotiate allowance and deposit of TAIKO/TTKOh. A ProverSet is recommended for a longer term stable setup to avoid nonce issues. For testing purposes, you may not feel the need to deploy a ProverSet.
Finally set ENABLE_PROVER
to true
in simple-taiko-node .env
.
Set COMPOSE_PROFILES=prover
or add prover to the list.
You can then run your prover with docker compose up -d
! Please use docker compose -f docker-compose-hekla.yml up -d
if you are running on Hekla.
Please find all relevant bond, cooldown, and proving window information here.
Approve the TaikoL1 contract as a spender.
Visit the TAIKO contract on Ethereum here.
Click the Connect to Web3 button.
Click the approve function and set the spender address to the TaikoL1 contract address: 0x06a9Ab27c7e2255df1815E6CC0168d7755Feb19a
.
Set the amount to at least the minimum bond amount of 125 TAIKO.
You will need 150 TAIKO for each bond you sign. After entering 150, you need to set the 18 decimals that the TAIKO contract takes, you can click the plus button and then select 10^18.
You will notice that the amount subtracted is separate in two transactions, 125 for the proposeBlock
and 25 for proveBlock
.
This is because the livenessBond
(125) is taken when the block is proposed, and once the proof has been provided in the window is credited in TaikoL1; the validityBond
(150) is then debited using the existing balance + an extra 25 TTKOh.
If you have bonded TTKOh in the TaikoL1 contract, it will be used first before more is taken from your ProverSet.
For an explanation of the difference between these bonds, please refer to the terminology section here.
Finally, click the Write button.
You will need TTKOh deposited on the TaikoL1 contract to secure the bond for the proofs you generate.
Approve the TaikoL1 contract as a spender.
Visit the TTKOh contract on Holesky here.
Click the Connect to Web3 button.
Click the approve function and set the spender address to the TaikoL1 contract address: 0x79C9109b764609df928d16fC4a91e9081F7e87DB
.
Set the amount to at least the minimum bond amount of 150 TTKOh.
You will need 150 TTKOh for each bond you sign. After entering 150, you need to set the 18 decimals that the TTKOh contract takes, you can click the plus button and then select 10^18.
You will notice that the amount subtracted is separate in two transactions, 125 for the proposeBlock
and 25 for proveBlock
.
This is because the livenessBond
(125) is taken when the block is proposed, and once the proof has been provided in the window is credited in TaikoL1; the validityBond
(150) is then debited using the existing balance + an extra 25 TTKOh.
If you have bonded TTKOh in the TaikoL1 contract, it will be used first before more is taken from your ProverSet.
For an explanation of the difference between these bonds, please refer to the terminology section here.
Finally, click the Write button.
Troubleshooting
If you run into any problems, please visit the node troubleshooting page for help. If you run into an error that isn’t yet listed, please reach out in our Discord!