Complete guide to run a dual node on centos 8 using symbol-bootstrap

Somebody is describing similar issue (in Mac desktop wallet) here ::

Hey @spizzerb, thanks a ton for this guide!

Truth is, at NEM we don’t have the headcount required to update the official docs with every Linux distro, so we need to rely on community efforts like yours.

Is it OK if we link to this forum post from the official guides?

4 Likes

you are welcome :slight_smile:

yes, you can link to it. i will try to keep it up to date

1 Like

Hey KloNEM,

Happy to hear that your node is up and running :+1:

Currently the wallet doesnt let you input custom nodes for harvesting, i think this is some kind of a bug in current version. I guess we will see an updated version soon.

i currently dont have much time but there is a workaround. will post it later or tomorrow.

I have a little text box for you at the top of the page :slight_smile:

https://docs.symbolplatform.com/guides/network/running-a-symbol-node.html

1 Like

just added following part to my guide:

Selecting your node for harvesting in the desktop wallet

At the time of writing, the symbol desktop wallet doesnt let you enter custom node’s for harvesting. I guess this will be corrected in a newer release, until then, there is a workaround.

The wallet generates the harvesting node list based on peer’s of the node to which the wallet is connected to. To be able to see your own node in the list, you have to connect the wallet to a peer of your node.

  1. Open http://YourNodesIP:3000/node/peers in a webbrowser.
  2. Write down any of the peers.
  3. Open the symbol desktop wallet, login to the profile with your harvesting account.
  4. Go to wallet settings in the top right corner.
  5. Go to network settings and add the peer node from step 2 in “Node Url” field and press the “add node” button.
  6. After adding, close the settings, click on “Node” in the left bottom and choose the peer node we have just added in step 5.
  7. Close the wallet, open it again and login to your profile with the harvesting account again.
  8. Go to harvesting, your node should now appear in the “Node Url” list.
  9. Press “Link all keys” on the bottom, once done, activate it.
  10. Done
4 Likes

Based on experiences to start harvesting with new accounts, it seems to be best to verify first that your importance is (re)calculated so it has a value above 0, before submitting the ‘Link keys’ and/or the ‘Activate’ transaction(s).
That last one to activate does not seem to have an effect with importance 0, leaving the Harvesting screen in the desktop wallet in a yellow “ACTIVATION IN PROGRESS” state.
If that happens wait for a positive importance, stop harvesting, link the node of your choice again and re-activate harvesting. That seems to solve it.

2 Likes

Thanks spizzerb for your hint! Unfortunately, I’m stuck at point 5), as I’m still not able to add peer node into the Node Url (even if I have non-zero balance account) or more precisely: I’m able to input node into Node Url row, but it’s impossible to push “Add node” button then. Probably something is broken in 1.0.0 version and hopefully it will be fixed soon.

Anyway, I tried to make another workaround; use `symbol-bootstrap link’ under the docker-node environment. It gave me ::

2021-03-24T16:34:45.320Z info Password has been provided
2021-03-24T16:34:45.986Z info Linking nodes
2021-03-24T16:34:46.019Z info Connecting to node http://localhost:3000
2021-03-24T16:34:46.221Z info Node’s minFeeMultiplier is 100
2021-03-24T16:34:46.239Z error Node signing account NB5… is not valid.

Does your node signing address have any network coin? Send some tokens to NB5… .

I suppose I should send some XYMs into this “my docker-node account” and linking process will be successful then. But, question is - how should I say to my node, that it’d harvest with my main account (with some Importance score, amount of coins, etc.) in my Symbol wallet ? Is it enough to put this account into “beneficiaryAddress” row in the `custom.yml’ file ?

Thanks for your co-operation again! I really appreciate it (and not just me, I hope :slight_smile: ) …

Did you check your main NB5… account in the desktop wallet?
It could be one of those mnemonic derived Opt-In Seed account’s calculated with an old method… It depends on when you did the Opt-In.
I had one of those accounts (see screenshot) and experienced problems setting up a node and linking keys with it.

I don’t know if that is your problem as well, but you could check to eliminate that possibility.

Ah, that’s interesting, I supposed that during the create process of the (symbol-bootstrap) node, there is automatically created account representing this node. And after node is successfully started and it’s up & running, is necessary to link my “main” account (in the Symbol wallet, with some vested balance/importance score) with this “node account” - which is the reason of `symbol-bootstrap link’ command. Did I understood something wrong ?

It’s your node’s main account that could contain the XYM balance you want to use to harvest and boot the node, or not. There are a few different possibilities:

  1. You use your account with the balance and put it in a custom config for symbol-bootstrap to use as Main account for the node
  2. You transfer the balance to the account symbol-bootstrap already used to set up your node. Make sure you have the private key of that account and you have a desktop wallet profile with the account to confirm you can access it BEFORE you transfer the balance! In this second case, I believe it is best to wait to link the keys until the account has a positive importance <> 0.
  3. Edit, added after suggestion by @spizzerb: “You can run the node with an empty main account and connect your “real” account with remote harvesting (in Symbol desktop wallet) to the node. The node itself will not harvest but the remote account will. Dont forget to change the beneficiaryAddress to your “real” account.”

Well, is one of these options similar to “delegate account” as it is used by NEM NIS1 nodes ? If I use (by possibility #1) my account as a “main account for the node”, (I suppose that) I have to expose the private key of this account somewhere in the node config - which couldn’t be the best option due to security manner. If this is not necessary (and thus is similar to “delegate account” schema in NIS1), where should I insert in my config this account? I suppose that `beneficiaryAddress’ in the custom.yml isn’t the right one row, correct?

Many thanks for your co-operation in any case!

thanks for mentioning. i added a note to the guide

Your account needs an importance score of > 0 to activate harvesting. You can check the importance score in the wallet or blockexplorer. When you send XYM to a new acount it needs about 12h to get importance.

There is another option to run it which i would prefer because of security.

You can run the node with an empty main account and connect your “real” account with remote harvesting (in Symbol desktop wallet) to the node. The node itself will not harvest but the remote account will. Dont forget to change the beneficiaryAddress to your “real” account.

Yes, absolutely true. I will add it as a third possibility for completeness! Thanks for the suggestion.

In option 1, you can provide the main account public key in a symbol-bootstrap custom config file. When symbol-bootstrap needs the private key, it will ask you to provide it on the command line, but will not store it anywhere.

In option 2, you can do exactly the same with that account: provide the main account public key in a symbol-bootstrap custom config file.

Option 3, as suggested by @spizzerb, might be a very good choice in your case.

1 Like

Thanks gents, this third option looks fine, as it is (IMHO) closest to “delegated harvesting” principle in NEM/NIS1. So, if I’m not fallen ::

  1. I should send some “very small amount of XYM” from my “wallet account” to the (empty) “main node” one ;
  2. Then I should be able to do `symbol-bootstrap link’ operation on the node ;
  3. “Wallet account” should be inserted as beneficiaryAddress' in the custom.yml’ file - and that’s all?

I suppose that similar process for “linking between harvesting wallet account and node” is to do appropriate steps inside Symbol wallet (the same way I use in NEM/NIS1 network), but it’s probably impossible until Symbol Wallet is broken in this manner (impossible to insert HarvestingNode or Custom node URL). Hopefully it will be fixed soon in the next version …

correct. i’m not 100% sure if linking on node account is really needed but i did it too, its just 1-2 XYM tx fees.

as for selceting your node in wallet: if the workaround i described at end of tutorial doesnt work you may have to wait for a wallet update

just added:

Updateing symbol-bootstrap

To update the version of symbol-bootstrap, use following commands:

symbol-bootstrap stop
cp -r target target_backup
sudo npm install -g symbol-bootstrap
symbol-bootstrap start -p mainnet -a dual -c custom.yml --upgrade -d

Check the version by running:

symbol-bootstrap --help

If update was successfull, remove backup of target folder:

rm target_backup

If you go for Option 3 with delegated harvesting on your own node:

  • You don’t need to use the symbol-bootstrap link command, since that will link the main account symbol-bootstrap created and that will have 0 importance.
  • You should “Link all keys” from the harvesting page in your desktop wallet of the account with the balance and once the transaction is confirmed you can activate delegated harvesting. If you specify a beneficiaryAddress in the custom config of your node, you should use your own node’s Url to harvest in the wallet to make sure you get the 25% block reward of your own harvested blocks.

I hope that all makes sense…

1 Like