I decided to run the multinode dashboard to get a clearer picture of my storagenodes.
So here is the howto
Make a multinode dashboard
First, this is linux I don’t understand windows, so make a folder for multinode.
mkdir -p /multinode/identity
and make config folder too.
Create an identity the usual way (but for an easier size if you want to and no need to sign)
Put the identity files in /multinode/identity/
Now run the docker multinode
docker run -d --restart unless-stopped -p 15002:15002 --mount type=bind,source="/multinode/identity",destination=/app/identity --mount type=bind,source="/multinode/config",destination=/app/config --name multinode storjlabs/multinode:latest
You will end up with something like this :
root@hp8300:/multinode# find /multinode/
/multinode/
/multinode/identity
/multinode/identity/identity.cert
/multinode/identity/ca.cert
/multinode/identity/ca.key
/multinode/identity/identity.key
/multinode/config
/multinode/config/master.db
/multinode/config/master.db-shm
/multinode/config/config.yaml
/multinode/config/master.db-wal
/multinode/multinode <- optional
It will not work yet and if you check the logs it will be complaining about ./identity.cert
Edit the /multinode/config/config.yaml file
# path to the certificate chain for this identity
identity.cert-path: identity/identity.cert
# path to the private key for this identity
identity.key-path: identity/identity.key
so that it can find the cert. (Or move the certs to where it is looking for them)
docker restart multinode
Add your storagenodes
To get an api key you need to run this command for your node
docker exec -it storagenode6 /app/storagenode issue-apikey --config-dir config --identity-dir identity
In this case storagenode6 is the name of the docker container got from “docker ps”. The other parameters do not need modifying (unless you do). If you have badger cache enabled then briefly edit the node’s config.yaml to disable badger cache. You do not need to restart the storagenode. We are disabling badger cache in the issue-apikey run.
If it works it will print something like 6q5ZN_FAcuPbd53zTUvPGX_XryGLZoOxBkUOj4uT54=
Then add the node in the multinode dashboard, which will be on port 15002. The three things it asks for are
- The node ID which you can get from the storagenode dashboard
- The ip:port where the node can be contacted. Note, this is the port where the satellite would contact you node and probably the local network ip of your storagenode, not the dashboard port 14002. So for me it is 192.168.1.130:10006
- The api key you got above
If you extract the multinode executable from the docker image and place it in /multinode you can add nodes on the command line
root@hp8300:/multinode# ./multinode --config-dir config --node-id oierylsebglsuhnFFHFFFFFGFHHHJHJ --api-secret liSoRl8Nk-Xuqf9mPpiBRZfSYTaixJ6JSjo= --public-address 192.168.1.130:10003 add
2024-08-20T08:51:30+01:00 INFO process/exec_conf.go:318 Configuration loaded {"Location": "/multinode/config/config.ya
2024-08-20T08:51:30+01:00 INFO process/tracing.go:73 Anonymized tracing enabled
2024-08-20T08:51:30+01:00 DEBUG tracing collector monkit-jaeger@v0.0.0-20240221095020-52b0792fa6cd/thrift.go:149 started
2024-08-20T08:51:30+01:00 DEBUG db multinodedb/database.go:72 Connected to: {"db source": "file:config/master.db?_jou&_busy_timeout=10000"}
2024-08-20T08:51:30+01:00 DEBUG tracing collector monkit-jaeger@v0.0.0-20240221095020-52b0792fa6cd/thrift.go:206 stopped
And finally see the overall picture of the “uncollected garbage” and undeleted trash