How to Configure the Titan Network Identity Hash in InternetIncome
Set the TITAN_HASH variable in properties.conf with your Titan Network identity hash, then execute internetIncome.sh to automatically register your device and launch the edge node.
The InternetIncome repository by engageub automates passive income generation by orchestrating Docker containers for various decentralized networks, including Titan Network. To activate this integration, you must supply a unique identity hash that binds your physical device to your Titan account, enabling the script to pull the nezha123/titan-edge image and execute the required binding API call.
Obtaining Your Titan Network Identity Hash
Before editing configuration files, generate your identity hash through Titan Network's registration flow.
- Visit the Titan Network registration page at
https://test1.titannet.io/intiveRegister?code=ILOgrq. - Complete the account creation process.
- Copy the displayed hash (a long alphanumeric string) that uniquely identifies your device.
This hash acts as your authentication credential for the Titan Network edge node.
Configuring TITAN_HASH in properties.conf
The script reads your identity hash from the TITAN_HASH variable defined in properties.conf at lines 62–64.
Open the configuration file and locate the section labeled "Titan Network Identity Code". Set the variable using single quotes to prevent shell interpretation errors:
# Titan Network Identity Code
TITAN_HASH='your-obtained-hash-here'
Alternatively, use sed to programmatically update the value:
sed -i "s/^TITAN_HASH=.*/TITAN_HASH='abc123def456ghi789'/" properties.conf
As implemented in engageub/internetincome, the script sources this file during startup and validates the presence of TITAN_HASH before attempting any Docker operations.
Running the Script to Bind Your Device
Once configured, start InternetIncome to trigger the automated binding sequence:
sudo bash internetIncome.sh --start
During execution, the script performs the following actions defined in internetIncome.sh (lines 1028–1050):
- Detects that
TITAN_HASHis populated. - Pulls the
nezha123/titan-edgeDocker image. - Creates a persistent volume at
$PWD/$titan_data_folder/data$iwith 777 permissions. - Launches the container with the volume mounted to
/root/.titanedge. - Executes the binding command:
sudo docker run --rm -it $titan_volume nezha123/titan-edge bind --hash=$TITAN_HASH https://api-test1.container1.titannet.io/api/v2/device/binding
If the hash is missing, the script outputs: "Titan Network Hash is not configured. Ignoring Titan Network."
Technical Implementation Details
The Titan Network integration follows a specific orchestration pattern in internetIncome.sh. The script stores container state in a bind-mounted volume located at $PWD/$titan_data_folder/data$i, ensuring persistence across restarts.
Key implementation characteristics include:
- Image:
nezha123/titan-edge(pulled only ifcontainer_pulledis false). - Volume mount:
--mount type=bind,source=$PWD/$titan_data_folder/data$i,target=/root/.titanedge. - API endpoint:
https://api-test1.container1.titannet.io/api/v2/device/binding. - Container naming:
titan$UNIQUE_ID$iwith restart-always policy.
The binding API call uses a temporary container (--rm) that exits immediately after registering the device hash with Titan's servers.
Single-Device Limitations and Constraints
The current implementation enforces strict single-device support per script instance.
If you attempt to run multiple Titan nodes, the script prints a reminder at line 1044: "The current script is designed to support only a single device for the Titan Network." To operate multiple devices, you must:
- Duplicate the entire InternetIncome script folder.
- Configure a different
TITAN_HASHin each copy'sproperties.conf. - Run each instance separately.
Additionally, do not delete the $PWD/$titan_data_folder/data$i directory unless you intend to reset the device binding and lose accumulated state.
Summary
- Obtain your identity hash from the Titan Network registration portal.
- Configure the
TITAN_HASHvariable inproperties.conf(lines 62–64) using single quotes. - Execute
sudo bash internetIncome.sh --startto automatically pull the Docker image and bind your device via the API endpoint. - Limit deployments to one device per script instance; duplicate the folder for additional nodes.
- Preserve the data folder at
$PWD/$titan_data_folder/data$ito maintain device state and avoid re-binding.
Frequently Asked Questions
What happens if I don't set TITAN_HASH?
If the TITAN_HASH variable is empty or undefined in properties.conf, the script skips Titan Network initialization entirely. According to lines 1046–1049 in internetIncome.sh, the script outputs "Titan Network Hash is not configured. Ignoring Titan Network.." and continues with other enabled services.
Can I run multiple Titan Network nodes with one InternetIncome installation?
No. As explicitly coded in internetIncome.sh at line 1044, the script supports only a single Titan device per instance. To run multiple nodes, create separate copies of the InternetIncome folder, configure unique hashes in each properties.conf, and execute them independently.
Where is my Titan node data stored?
The script creates a bind-mounted volume at $PWD/$titan_data_folder/data$i (where $i represents the instance index). This directory maps to /root/.titanedge inside the container and stores your node's identity and state. Deleting this folder requires re-binding the device with Titan Network.
How do I update my Titan identity hash after initial configuration?
Edit properties.conf to replace the existing TITAN_HASH value, then restart the script. However, if the node has already been bound, you may need to stop and remove the existing container (docker stop titan$UNIQUE_ID$i && docker rm titan$UNIQUE_ID$i) and delete the data folder to force a fresh registration with the new hash.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →