Multiple nodes install windows 7

I created 2 folders for 2 nodes.
D:\StorjNode01
E:\StorjNode02

Then generated identity and authorized nodes.

Now I need help how to install multiple nodes from cmd.
Creating and authorizing node does not create config file.
GUI install ignores configuration and creates config and revocation files inside of directory with binaries.
I’m in stupefaction now.
I need help creating multiple nodes with all config files put in each’s node dedicated folder.
And I need information how to understand launching storj binary the way which supports multiple nodes. Actually I need to understand how storj binary handles data. Do I need many instances of it to run, or one instance listens to all ports and processes all the data for all the nodes?

I tried to read documentation - it say, follow the rest of the process as if you doing ordinary install. But it if I run GUI install - it offers only to uninstall Storj binary, and doesn’t offer to add another node!

Please give me exact cmd commands for creating consistent node metadata structure in dedicated folder for each node, which creates separate config, log, and other files.
And the cmd commands or other startup setup for running multiple nodes from dedicated folder with picking up config file and all other metadata.

Because documentation I saw is very abrupt one.

I try to modify storagenode service with
sc config storagenode binPath= "D:\Storj\Bin\Storagenode.exe --config-dir \"D:\StorjNode01\Identity\""

How to add another node?

Please help!

From what I remember running multiple nodes on Windows is not supported (at least easily) with the original installer. Some people use Storj Toolbox for this: Releases · TonyTosol/Storj-Node-Toolbox · GitHub

Don’t have hands-on experience with that - I think @Vadim is the author.

1 Like

I don’t need toolbox. I want to make work in a sane way.
Please do not offer me side solutions.

Please note that running multiple nodes is currently not officially supported for Windows GUI installations, though you may find some community made solutions are available on our forum. Please use the Docker CLI setup in order to run multiple nodes.
(From: How can I set up to run multiple storage nodes?)

Docker on Windows is also not a good idea. There have been problems.
If you are currently running a storage node on Windows using the Docker desktop, it will require good monitoring. If you are still running a node with Docker, your node may go offline randomly and require restarting your node, so it is recommended you switch to the Windows GUI.
(From: System Requirements)

If you want to make it work in “a sane way” you have two options:
-use the Storj Toolbox
-use Linux + Docker

1 Like

Oh man, I never asked for GUI installation, I use cmd/CLI installation.

I don’t want to hammer my PC with VM.
It was very slow last time I used it, no need to overcomplicate.

I appreciate your will to help
But, PLEASE, do not flood topic with inconsistent answers. Thank you.
I asked for what exactly I want to get answers.

@konsou was trying to be really helpful and gave good answers. Please be nicer to members of the community who are trying to help you. Friendliness can go a long way and people are more willing to help, if you are friendly to them.
It might just be a language barrier but to me your answers sound a bit rude and ungrateful. If that was completely unintentional, then I’m sorry.

2 Likes

There is no language barrier.

The question was:

Please give me exact cmd commands for creating consistent node metadata structure in dedicated folder for each node, which creates separate config, log, and other files.
And the cmd commands or other startup setup for running multiple nodes from dedicated folder with picking up config file and all other metadata.

And before this I stated:

Actually I need to understand how storj binary handles data. Do I need many instances of it to run, or one instance listens to all ports and processes all the data for all the nodes?

For the reason:

Because documentation I saw is very abrupt one.

I already did progress by looking into gui toolbox screenshots - it creates services with the same binary.
So I figured out that single service is not supposed to handle multiple nodes.
And I found the way to modify service with sc.
Now I need actual help with service creation and config parameters.
Basically I do same thing as toolbox does.
But I want to understand how to manage it without side solutions.
I’d rather rely on my own scripts than be blaming someone else for bugs…

1 Like

Not sure how many people have experience with that. Maybe @Vadim can help since he created the toolbox.

Hello.

Toolbox is app that with sc command create nodes, just all hard work is behind the scene.
you dont need tolbox to run nodes anfter install, it is just app with usfull tools

also you will need take to account that updater will not update aditional nodes, as it hardcoded to updater update only main node.

You need to have two unique signed identities.

To setup data folders and create a config.yaml you will be forced to use storagenode.exe setup, you can see what options you should specify with storagenode.exe setup --help.
When all data structure is created, and config.yaml too, you can run it with storagenode.exe run --config-dir D:\StorjNode01
Then you can create a service with PowerShell command New-Service, I would not give you exact parameters, but something like:

New-Service -Name Node01 -BinaryPathName '"C:\Program Files\Storj\Storage Node\storagenode.exe" run --config-dir "D:\StorjNode01\\"'

Then you need to setup an storagenode-updater like:

New-Service -Name Node01-updater -BinaryPathName '"C:\Program Files\Storj\Storage Node\storagenode-updater.exe" run --config-dir "D:\StorjNode01\\" --binary-location "C:\Program Files\Storj\Storage Node\storagenode.exe" --log.output "winfile:///D:\StorjNode01\storagenode-updater.log" --service-name "Node01"'

Unfortunately I cannot give you a way, how to make updater update itself, if its service name is not storagenode-updater. But it at least could update specified storagenode.

The same way for the second node. But executables should be in a different folder for the second node, otherwise updater will not update any of them, but can successfully stop them.

I do not guarantee that described above would work, because it’s not tested. You can do it on own risk.

Note. The storagenode.exe setup step is mandatory with path to the identity and its data.

3 Likes

Why is that so?
If storagenode.exe runs as service in separate address spaces, why can’t be just created scripts to launch it from detachable storage with nodes?
I actually had run storagenode.exe from bat script as ordinary process, and it worked.
But setup was quite a messy, because I had to move config and certificate files.
If it does not install any special dlls into system folder - it may be ran from detachable storage.

Because it creates needed folders structure and file storage-dir-verification containing your NodeID in binary form in the data location.
It’s unique for identity.
You must use unique signed identity for each node, otherwise it will be disqualified almost instantly.
It also creates config.yaml with all specified parameters in storagenode.exe setup command.
The setup should be performed once per identity’s life.

I don’t understand what exactly word storagenode means in context of identity.exe authorize storagenode.
I give --identity-dir=“D:\StorjNode01\Identity” but I got error as result:
“D:\StorjNode01\Identity\storagenode\ca.cert” The system cannot file path specified.

Identity.exe create storagenode --identity-dir="D:\StorjNode01\Identity"
created certificates inside of D:\StorjNode01\Identity\identity

If I will give it identity.exe --identity-dir="D:\StorjNode01\Identity" authorize identity ...
does it mean that storagenode and identity are somehow act as identifiers of nodes?

Is it name of the folder where node’s metadata is created and name of the node itself at the same time?

This is name of the identity folder.
For your example it should be

identity.exe --identity-dir="D:\StorjNode01" authorize Identity your@email:remainedPartOfTheAuthorizationToken

No it didn’t work that way.
It creates subfolder with default name “identity”.

It worked only with
identity.exe --identity-dir="D:\StorjNode01\Identity" authorize identity
Since it has created subfolder D:\StorjNode01\Identity\ identity

When given params like
--config-dir="D:\StorjNode01\Identity" --identity-dir="D:\StorjNode01\Identity" it seems to be ignoring second param storagenode which given in tutorial:
./identity.exe create storagenode

If I want all metadata files to be in single directory I give command:
identity.exe --config-dir="D:\StorjNode01\Identity" --identity-dir="D:\StorjNode01\Identity" --signer.tls.revocation-dburl="bolt://D:\StorjNode01\Identity\revocations.db" create storagenode

Here I already set config dir and identity dir. So what sense second param “storagenode” means here? There is no folder “storagenode” ever created by this.

And why did it create subfolder with name ‘identity’? I already told it where to create identity files.

There is also an inconsistency in error messages:
"error creating revocation database: revocation database error: boltdb error: open"
But it is atually the revocations database and its file name is
revocations.db

it is izie, if you need identitie in new folder then identity.exe create storagenode1 it will create folder storagenode1

1 Like

I want to put identities for StorjNode01 inside of D:\StorjNode01\Identity
folder.
I tried all variants, but never could get what I want.
identity.exe --identity-dir="D:\StorjNode01\Identity" create StorjNode01
Puts files into D:\StorjNode01\Identity\StorjNode01

But I need them inside of D:\StorjNode01\Identity
What args should I give to identity.exe in order to achieve desired result?

Solved by xcopy, del, rmdir.

It DOESNT WORK!
identity.exe --identity-dir="D:\StorjNode01\Identity" authorize StorjNode01
Error: file or directory not found error: open D:\StorjNode01\Identity\StorjNode01\ca.cert: The system cannot find the path specified.

why you just not copy it manualy there?

1 Like

Why it duplicates directory name?
It is just stupid: D:\StorjNode01\Identity\StorjNode01\ - isn’t it?

Why would I copy it manually?

  • I need automation…

Why it puts number into quotes?
–console.address=15010
# server address of the api gateway and frontend app
console.address: “15010”

Why? Why? Why?

–server.address string public address to listen on (default “:7777”)
but actual port is 28967

storagenode.exe setup
seems to be ignoring
–storage2.trust.cache-path=trust-cache.json
–storage2.orders.path