tau is the mainstream implementation of a Taubyte Node. When interconnected, these nodes form a network that's cloud computing-ready, offering features such as:
- Serverless WebAssembly Functions
- Website/Frontend Hosting
- Object Storage
- K/V Database
- Pub-Sub Messaging
For detailed documentation, visit https://tau.how.
The requirements for tau vary depending on the shape, but at a minimum, assuming an empty shape, it requires:
- 512MB of RAM
- 2GB of storage space
While tau can be cross-compiled to various operating systems, for a quick and seamless deployment we recommend using a Linux distribution that employs SystemD.
Depending on the enabled protocols, tau will require certain network ports to be available and open:
- Three configurable TCP ports for peer-to-peer (P2P) communication
- Ports 80 and 443 for HTTP and HTTPS respectively
- Ports 53 and 953 for DNS, supporting both TCP and UDP
DNS needs to be freed up for seer protocol to start properly. Follow these steps to adjust DNS settings:
- Open
/etc/systemd/resolved.confwith a text editor (nano, vim) - Set
DNS=1.1.1.1andDNSStubListener=no - Run
systemctl restart systemd-resolved.service - Run
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
$ go install github.com/taubyte/tauTo download the latest release run:
$ curl https://get.tau.link/tau | sh
To install
$ curl https://get.tau.link/tau | sh -s -- -i
Other options:
-O <path/to/download/folder>if not specefied a temporrary folder is used-r <path/to/root>by default/tb
We at Taubyte prioritize convention over configuration. Hence, we've pre-defined the filesystem structure and its location as follows:
/tb
├── bin
│ └── tau
├── cache
├── config
│ ├── <shape-1>.yaml
│ ├── <shape-2>.yaml
│ └── keys
│ ├── private.key
│ ├── public.pem
│ └── swarm.key
├── logs
├── plugins
└── storage
Note: If you prefer a different location, use the --root option.
Configuration files for tau are located at /tb/config/shape-name.yaml. Here's an example:
privatekey: CAESQJxQzCe/N/C8A5TIgrL9F0p5iG...KzYW9pygBCTJSuezIc6w/TT/unZKJ5mo=
swarmkey: keys/test_swarm.key
protocols: [patrick,substrate,tns,monkey,seer,auth]
p2p-listen: [/ip4/0.0.0.0/tcp/8100]
p2p-announce: [/ip4/127.0.0.1/tcp/8100]
ports:
main: 8100
lite: 8102
ipfs: 8104
location:
lat: 120
long: 21
network-url: example.com
domains:
key:
private: keys/test.key
services: ^[^.]+\.tau\.example\.com$
generated: g\.example\.com$Execute a tau node with:
tau start --shape shape-nameFor an alternative root to /tb:
$ tau start --shape shape-name --root path-to-rootTo ensure that tau runs as a service and starts automatically upon system boot, you can set it up as a systemd service.
- Create a new service file:
$ sudo nano /etc/systemd/system/tau.service- Add the following content to the file:
[Unit]
Description=Taubyte Node Service
After=network.target
[Service]
ExecStart=/path/to/tau/bin tau start --shape shape-name --root path-to-root
User=username
Restart=on-failure
[Install]
WantedBy=multi-user.target
Replace /path/to/tau/bin with the actual path to your tau binary and username with the name of the user running tau.
- Enable and start the service:
$ sudo systemctl enable tau
$ sudo systemctl start tauTo check the status:
$ sudo systemctl status tauThis ensures tau runs consistently, even after system reboots.
Next, set up DNS records for your seer, generated domain, and service URLs, all with a 1-minute TTL.
For each host running seer, add an A Record.
Host: seer -> Value: 127.0.0.1
Point your generated domain to your seers by adding a NS Record.
If g.example.com is your generated domain URL, the record would be:
Host: g -> Value: seer.example.com
Add a NS Record which by default should be your URL prefixed with tau.
This record will also point to your seers.
For example.com the record will be: tau -> seer.example.com
It may take a few minutes for the DNS to recognize your changes. The best way to check is to perform a dig on your network's seer fqdn Like so:
$ dig a seer.tau.example.comreplace
example.comwith your respective domain.
Then, on a client machine:
- Get the
taucli if you don't have it already. Check github.com/taubyte/tau-cli. - Run
tau login - Then
tau select network - Choose
Remotethen type your network's domain
- Go to Taubyte Web Console
- Fill in your email and select 'Custom' in the network selector
- Enter the network's domain and hit the checkmark
- Login