Running BitDust seed node
Here is a step-by-step guide about how to start a full BitDust node that supports other nodes in the network and act as a "seed" node.
You need to own a domain name which is already pointing the DNS to your server.
For example, you just started with a new Ubuntu server and logged in as root
user, first create another user account to be able to run BitDust as a normal user without root priviledges:
adduser bitdust
usermod -aG sudo bitdust
logout
Now log in to your server as bitdust
user (not as root
) and do not forget to setup proper SSH access with your Public/Private key. Remember, BitDust software do not require root permissions to run, and no one else can provide you with more privacy than you can arrange by yourself:
ssh bitdust@my-domain-name.com
Read more about BitDust installation or just follow those few steps bellow.
First clone BitDust sources locally:
git clone https://github.com/bitdust-io/public.git bitdust
Create BitDust virtual Python environment:
cd bitdust
python3 bitdust.py install
Make sure you already have bitdust
command existing so you can access BitDust from your command line console shell.
You only need to do this one time and create an "alias" in your global system commands list. Then you can just type: bitdust <some command>
to be able to talk to BitDust quickly. To create system-wide shell command you can manually copy already existing script /home/bitdust/.bitdust/bitdust
to your PATH and it will work right away. Another very simple way is to just create a symlink:
sudo ln -s -f /home/bitdust/.bitdust/bitdust /usr/local/bin/bitdust
Few services needs to be enabled, by default they are turned off because normal users will most probably act as a customer/consumer at the beginning.
Switch ON identity server on your node so you will help other people to identify in the network - other users will store their identities on your host:
bitdust set services/identity-server/enabled true
bitdust set services/identity-server/host my-domain-name.com
bitdust set services/identity-server/tcp-port 6661
bitdust set services/identity-server/web-port 8084
BitDust software suppose to run without root priviledges, so it can not open and listen on port 80. This will need a bit more configuration in order to redirect external requests to the server on port 80 to BitDust software listening on port 8084: read more about Identity server configuration to know how to arrange it in a few steps.
Set UDP port number for you DHT seed:
bitdust set services/entangled-dht/udp-port 14441
Disable proxy transport and customer service because you do not need those if starting a provider node:
bitdust set services/proxy-transport/enabled false
bitdust set services/customer/enabled false
To make it more clear for other users using your seed node, we advice you to use a certain identifier format which is based on DNS name of that machine: seed_my_domain_name_com@my-domain-name.com
.
In order to do that you need to set domain name of your seed node in the settings, before you create a new identity:
bitdust set services/identity-propagate/known-servers my-domain-name.com:80:6661
Start BitDust in background:
bitdust daemon
Now you can interact with BitDust software running on your local machine via HTTP Rest API. Lets create a new identity for your seed node:
curl -X POST -d '{"username": "seed_my_domain_name_com"}' localhost:8180/identity/create/v1
Make sure you also did a backup of your private key and copied that in a safe place.
curl -X POST -d '{"destination_path": "/tmp/bitdust_identity_backup.txt"}' localhost:8180/identity/backup/v1
mv /tmp/bitdust_identity_backup.txt /media/USB_drive/
Restart BitDust and enjoy, your identity should be accessable on http://my-domain-name.com/seed_my_domain_name_com.xml
if all steps were correct.
bitdust restart
To make life easier you can also configure BitDust to start automatically when your machine reboots. For example on Debian system you can use crontab
tool for that:
crontab -e
@reboot /usr/local/bin/bitdust daemon
If you plan to maintain your new BitDust node for a while and support the network it makes sense to include your node into a list of "well known" nodes, which are hard-coded in default_network.json file.
You can Fork Public Git Repository, modify default_network.json
file in your forked repository and start a Pull Request with your changes - this way we can collaborate all together and maintain a list of the most reliable BitDust seed nodes.
Contact the BitDust contributors to notify about this new Seed node was started by you and one of the developers will approve your Pull Request.