FAQ
This page provides debugging assistance and answers to frequently asked questions.
If running one of the example repos, make sure to rebuild the docker images with docker-compose build --no-cache
Troubleshooting Checklist
Here are preliminary steps to ensure everything is set up correctly:
Make sure you are using the latest version of Othentic-cli. Use
npm update othentic-cli
command ordocker-compose build --no-cache
to directly update inside docker images.Make sure all your containers for operators, attesters, execution service and validation service are up and running.
Make sure Operators have enough funds on L1 and staked tokens on Eigen layer as per the funds requirements mentioned in quickstart.
Verify that
.env
file contains all required environment variables, and ensure private keys are not prefixed with0x
.Run
othentic-cli network contracts
in the root directory and cross-check all the contract addresses in your.env
file.Verify that attesters, aggregator, and performers are registered as operators with the AVS. Did you run the
othentic-cli operator register
command for each operator?Make sure that attesters in the p2p networks have more than 66% of the voting power. You can check the total voting power and individual voting power of the attesters and verify, if necessary, deposit additional funds to help them reach the 66% threshold.
Make sure you are using the correct
taskDefinitionId
and the corresponding task definitions are created.
General
Who runs and maintains all three role nodes: Performer, Attester and Aggregator nodes?
In principle, each node can perform any single role or combination of roles. Initially, the AVS developers choose to bootstrap the network with Performers and Aggregators maintained internally, with Attester nodes run by external Operators. Over time, the developer may choose to open up the Performer and Aggregator roles for external Operators as well.
AVS may configure a policy of requirements to be eligible for a specific role; for example, an AVS may choose to grant a Performer role only to nodes with a certain reputation score or ones that staked a certain amount of the AVS native token.
How do I view all the deployed contract addresses, such as AVS Governance and Attestation Center?
Run othentic-cli network contracts
in the avs-samples (root) directory.
How do I get the voting power of an operator?
You can query the votingPower method in the Attestation Center contract using the operator's address. Alternatively, you can use the votingPower method in the OBLS contract by querying with the operator ID. The Attestation Center contract is your go-to for details about operators and task definitions.
How do I get OBLS contract address?
Use obls method in the AttestationCenter contract.
How do I ensure the attesters have 66% of the voting power?
Query the totalVotingPower method on the OBLS contract. Check each attester's individual voting power and ensure they have 66% of the total voting power.
Where can I find more information about the Leader Election mechanism and how it is handled?
Check out the Task Allocation section.
How do I gain exposure to node operators?
Create a simple document for operators with instructions like this. To make your AVS visible on eigen UI, create a JSON file like this:
Execute the network register command with above details. Once completed, your AVS will be visible on Eigen Dashboard.
What happens when I unregister an operator? And when should one unregister an operator?
Operators can use the unregister command to remove themselves from the AVS. When this happens, the operator exits the system, which results in a reduction of the total voting power of the AVS by the amount of that individual operator’ voting power.
How can an operator claim rewards?
Refer to the Rewards Distribution for this.
How can I pause/ unpause any flow such as payments?
You can pause or unpause any flow using the cli by running othentic-cli network pause-flow
command. It shows the list of all the flows. You can also use the pause and unpause contract functions in the AVS governance contract. You can find the exact byte code of the flows by using the PauserRolesLibrary.
How can I integrate my custom smart contract or logic with the AttestationCenter contract?
The Othentic Stack enables developers to create an AVSLogic contract, which includes pre and post-execution hooks. For more details, refer to the Hooks.
How to enable debug mode?
To enable debug mode, set DEBUG=*
in your .env
file or directly in the terminal before running commands. For example:
Do you have source code published for AVSGovernance or other contracts?
Refer to the core-contracts repository on github.
The tasks are not being submitted. What should I do?
For tasks to be successfully submitted, operators holding at least 66% of the voting power within the AVS must act as attesters. Please ensure that this condition is met.
Can an operator's "Signing Key" be the same key used for registration?
Yes. The "Signing Key" can be the same as the "Delegate" key that you used for registering with the shared security provider.
Facing any specific errors?
Why am I seeing "Operator inactive, ignoring...."?
Verify the voting power of the operator using the votingPower
method on the Attestation center contract. This message usually appears when the operator has zero voting power. To resolve:
Check Internal Tasks: Ensure that internal tasks are running. If not, start them according to the configuration here.
Verify Operator's Deposit: Confirm that the operator has deposited funds into the Eigen strategy as outlined in the Setup Operator Voting Power Step of the Quickstart guide.
You can verify this by checking the Operator transactions for
deposit Into Strategy
transactions, similar to this example deposit.
Check Voting Power Sync: If the deposit has been made but voting power is still not reflected, the Voting power sync may not be working. Look for any relevant logs in the Aggregator related to Internal tasks.
Check If Operator is using the correct chain with
--l2-chain
parameter and the rpc.Manually Sync Voting Power: If internal tasks are functioning correctly but voting power is still not synced, you may need to manually sync it.
Can not find module 'nest-commander'
Please avoid using sudo
when working with the Othentic CLI. Reinstall the CLI without sudo
to ensure proper permissions.
ERR_BUFFER_OUT_OF_BOUNDS('length')
Please make sure to use Node v22.6.0⚠️, via NVM
TypeError: invalid value for Contract target (when running nodes)
This indicates you are not passing the proper --l2-chain
flag when running the node.
Operator registration is not working
The Operator registration function is using cross-chain capabilities. Please make sure that the L1MessageHandler
smart contract holds enough funds, for the cross-chain messaging fees.
Cannot read properties of undefined (reading 'connect')
This error indicates one or more of AVS_GOVERNANCE_ADDRESS
or ATTESTATION_CENTER_ADDRESS
is missing from your .env
file
Error: could not decode result data (value="0x", info={ "method": "obls", "signature": "obls()" }
This error could have several causes:
Your
AttestationCenter
address is incorrectYou are passing the wrong
--l2-chain
flagYou are using an
L2_RPC
in your.env
which is pointing to the wrong chain
Error: network does not support ENS
You've either input an address in an incorrect format, or either of AVS_GOVERNANCE_ADDRESS
or ATTESTATION_CENTER_ADDRESS
in your .env
file are in an incorrect format
Last updated