Symbol Launch - SuperNodes Programme for Testnet

Docker and npm should run without sudo.
The command " npm install -g symbol-bootstrap " is necessary.
Create a " customer.yml " file under ~/symbol/target/.
Content:


nodes:

  • voting: true
    rewardProgram: SuperNode
    host: “IP Address”

Execute the commands for Supernode / Voting when the node is running.

  1. symbol-bootstrap stop
  2. npm install -g symbol-bootstrap
  3. symbol-bootstrap start -p testnet -a dual --upgrade -c “customer.yml”

To check that the node is running: " docker ps -a "

2 Likes

@garm beat me to the solution, everything he said is correct :slight_smile: (Although I think all the information is already in the docs).

You can also check if your node is running correctly with symbol-bootstrap healthCheck

I’ll add some note to the documentation regarding stopping nodes if they were already running. Thanks for the feedback!

Hi Xavi,
The link in "Create a custom preset file named, for example, supernode.yml" is broken.

I guess it should be symbol-bootstrap/presetGuides.md at main · nemtech/symbol-bootstrap · GitHub

Thanks! Fixed!

Hello. Thanks for your help. I tried what you have written here.
I had few problems error messages.
I had to upgrade the nodejs version to make it work because i was getting the following error

npm WARN notsup Unsupported engine for object-treeify@1.1.32: wanted: {"node":">= 12"} (current: {"node":"10.19.0","npm":"6.14.4"})
npm WARN notsup Not compatible with your version of node/npm: object-treeify@1.1.32

I was unable to run the npm install -g symbol-bootstrap without sudo in front otherwise i got this errors:

npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules/glob-parent
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules/object-treeify
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules/ws
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules/symbol-sdk
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules/symbol-bootstrap/node_modules
npm WARN checkPermissions Missing write access to /usr/local/lib/node_modules
npm WARN notsup Unsupported engine for object-treeify@1.1.32: wanted: {"node":">= 12"} (current: {"node":"10.19.0","npm":"6.14.4"})
npm WARN notsup Not compatible with your version of node/npm: object-treeify@1.1.32

npm ERR! code EACCES
npm ERR! syscall access
npm ERR! path /usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string
npm ERR! errno -13
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string'
npm ERR!  { [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string']
npm ERR!   stack:
npm ERR!    'Error: EACCES: permission denied, access \'/usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string\'',
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path:
npm ERR!    '/usr/local/lib/node_modules/symbol-bootstrap/node_modules/color-string' }
npm ERR! 
npm ERR! The operation was rejected by your operating system.
npm ERR! It is likely you do not have the permissions to access this file as the current user
npm ERR! 
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator.

I can run the symbol bootstrap commands without sudo.
I have run symbol-bootstrap start -p testnet -a dual --upgrade -c custom.yml --detached
command as my file is called custom.yml
I have got prompt to enter password to encrypt config files

Node started and is running but it does not seem to be upgraded to latest version, is still on 0.10.0.7.
When i check in the node explorer it does not show that is a bootstrap and voting node. This latest issue could maybe be due to not having funds on the account.

Another thing, calling
symbol-bootstrap healthCheck

gives the following output:

2021-03-08T21:05:47.202Z info     Docker compose target/docker/docker-compose.yml does not exist. Cannot check the status of the service.

is it normal?

using this command docker ps -a gives the following:

CONTAINER ID        IMAGE                                            COMMAND                  CREATED             STATUS                  PORTS                              NAMES
c06a78da6c7b        symbolplatform/symbol-server:gcc-0.10.1.8        "/bin/bash /symbol-c…"   21 seconds ago      Up 19 seconds           0.0.0.0:7900->7900/tcp             api-node
85ac8f55c01a        symbolplatform/symbol-rest:2.3.4                 "docker-entrypoint.s…"   24 seconds ago      Up 19 seconds           0.0.0.0:3000->3000/tcp             rest-gateway
6c2135b79983        symbolplatform/symbol-server:gcc-0.10.1.8        "/bin/bash /symbol-c…"   24 seconds ago      Up 21 seconds           0.0.0.0:7902->7902/tcp             api-broker
c5431fdbd1a0        symbolplatform/symbol-node-rewards-agent:0.1.0   "/app/agent-linux.bi…"   27 seconds ago      Up 24 seconds           0.0.0.0:7880->7880/tcp, 7990/tcp   api-node-agent
a1ab6b4125f8        mongo:4.4.3-bionic                               "docker-entrypoint.s…"   27 seconds ago      Up 24 seconds           27017/tcp                          db
bf28af13f916        hello-world                                      "/hello"                 6 days ago          Exited (0) 6 days ago                                      elated_darwin

All seamed to easy just to run one command in the console to make it work :wink:
I knew there were some tricks hidden there :blush:

Any advice on how to procceed further?!

I think there are different ways. Look here:
guides/npm-global-without-sudo.md at main · sindresorhus/guides · GitHub

After several days running, I found my super node is “not authorized”. In the log of the agent, it turns into “not authorized” suddenly and back to “authorized”.
What does “not authorized” mean? It is the same meaning as “round failed”?

2021-03-09T02:10:01.520Z info: [Route]     Client is authorized!
2021-03-09T02:28:49.357Z info: [Route]     Client is not authorized.
2021-03-09T02:28:49.440Z info: [Route]     Client is not authorized.
2021-03-09T03:00:41.315Z info: [Route]     Client is not authorized.
2021-03-09T03:00:41.360Z info: [Route]     Client is not authorized.
2021-03-09T03:01:54.066Z info: [Ping]     ping -> pong
2021-03-09T03:01:54.178Z info: [Ping]     ping -> pong
2021-03-09T03:01:54.284Z info: [Ping]     ping -> pong
2021-03-09T03:01:54.368Z info: [Ping]     ping -> pong
2021-03-09T03:01:54.448Z info: [Ping]     ping -> pong
2021-03-09T03:09:13.793Z info: [Route]     Client is authorized!

And I have one more question,
In the explorer we can see the result of the checking rounds for only the recent four. But the program requires us to keep passing for 24 hours, right? Are there any ways to see the result of past 24 hours checking rounds?

You need to run that command from the folder where the target folder is. You have a file there named target/docker/docker-compose.yml, right?

npm and symbol-bootstrap are meant to be run without sudo. Take a look at that link from @garm and see if it helps.

I’ll call in reinforcements for the other issues.

Hello. Yes it works when i change the directory where the target folder is
and then call the command.

I have followed the instructions from the link that @garm posted
and now i can use the command npm install -g symbol-bootstrap
without sudo.

I will now try to call this command

symbol-bootstrap start -p testnet -a dual --upgrade -c custom.yml --detached

to see if my node will upgrade from version 0.10.0.7 to 0.10.0.8.

It seems version is now 0.10.1.8
and the node is registered also as voting node which was not the case the first time. :+1:

Regarding voting and supernode are we really forced to use telegram?
Isn’t there any other option to request amount of xym test tokens required
to run voting and supernode?

Thank you guys for your halp!

Do I need to use the node’s main account (contained in target/addresses.yml) to join the supernode program?

I’m doing remote harvesting using an account created using symbol-cli.
http://explorer.testnet.symboldev.network/accounts/TCPYYCVXTJ2UG56JLIV33XMYZMDCLBPUR7SDK7Y

The message for joining has been sent.
http://explorer.testnet.symboldev.network/transactions/632A03F4D0586A397FB0BB2375D5A44DF8211461889B04E4DDA30B9B5584CE5C

I cannot confirm that I have joined the supernode program with explolerer.
http://explorer.testnet.symboldev.network/nodes/8A666D85C74BC04D3FF41153217C4EDDC7076958A49F82A67E86443D4ECEAB1F

I want to join the supernode program without handling the customer’s private key to do node operation on behalf of the customer.

1 Like

If you’re using Symbol Bootstrap, why not let it take care of everything using the enrolRewardProgram command? (Enrolling to the Supernode program — Symbol Documentation).

And you provided this account to Symbol Bootstrap through a custom preset, right?

Is the key in that message your node’s transport public key? That’s in addresses.yml too.

There’s an upcoming guide about setting up nodes securely, meanwhile, Does this page help? symbol-bootstrap/presetGuides.md at main · nemtech/symbol-bootstrap · GitHub

It was posted by Shohei_Kamon on behalf of the author, since it was not reflected after a day.

One was able to join the supernode program using the symbol-bootstrap link command and the enrolRewardProgram command.

The other node is trying to see if it can participate in the supernode program with the configuration shown in the image below.

my custom preset

nodes:
    -
        friendlyName: asdfghjkl
        host: asdfghjkl.enoki-do.com
        voting: true
        rewardProgram: SuperNode
        beneficiaryAddress: TBB7TK7ZIFLFGPTXZKJW5MEEYJ7KB7AZLQGTQJY

node work procedure

symbol-bootstrap config -p testnet -a dual -c my-custom-preset.yml
symbol-bootstrap compose
symbol-bootstrap run -d

my pc work procedure

REMOTE_PUB_KEY="BF78EDF21C5469B90A5D746309D344B1BB52B47B9E27D6030EF75541BEA508E8"
symbol-cli transaction accountkeylink --mode normal --sync \
    --linked-public-key "${REMOTE_PUB_KEY}" \
    --action Link \
    --max-fee 50000

VRF_PUB_KEY="5AB593905A236885F4A2498C8CA7A255D9FBD96521A8A7863CA431C171427C10"
symbol-cli transaction vrfkeylink --mode normal --sync \
    --linked-public-key "${VRF_PUB_KEY}" \
    --action Link \
    --max-fee 50000

VOTING_PUB_KEY="A1CD5836A96F9336529A55F38582E10F6DFB6AF8782385CB959557DE14E13756"
END_POINT="1460"
symbol-cli transaction votingkeylink --mode normal --sync \
  --linked-public-key "${VOTING_PUB_KEY}" \
  --start-point 1 \
  --end-point "${END_POINT}" \
  --action Link \
  --max-fee 50000

NODE_PUB_KEY="7BE84F367D433F00394720F3CFAE1A1C08C15439F686CEF97B9E042A3A11A356"
AGENT_URL="https://asdfghjkl.enoki-do.com:7880"
symbol-cli transaction transfer --mode normal --sync \
           --recipient-address TDL73SDUMPDK7EOF7H3O4F5WB5WHG2SX7XUSFZQ \
           --message "enrol ${NODE_PUB_KEY} ${AGENT_URL}" \
           --mosaics @symbol.xym::0 \
           --max-fee 50000

By mistake, node’s transport private key was included in the message and sent.
The message was sent again with node’s transport public key included in the message.

agent log

2021-03-11T15:02:29.276Z info: [Route]     Client is authorized!
2021-03-11T15:11:28.535Z info: [Route]     Client is authorized!
2021-03-11T15:11:34.572Z info: [Route]     Client is authorized!
2021-03-11T15:11:38.523Z info: [Route]     Client is authorized!
2021-03-11T15:12:45.716Z info: [Route]     Client is authorized!
2021-03-11T15:28:47.125Z info: [Route]     Client is not authorized.
2021-03-11T16:00:41.126Z info: [Route]     Client is not authorized.
2021-03-11T16:28:49.648Z info: [Route]     Client is not authorized.
2021-03-11T17:00:42.526Z info: [Route]     Client is not authorized.

I believe we need to have enough tokens in the node’s main account to implement this guide.

@Xavi @DaveH

I want to know this, too.

The “authorized client” is NEM’s controller contacting the agent and requesting tests to be performed.
The “unauthorized client” is reported for any other access to the agent, for example, pointing your browser to the 7880 port of the node.

So you can safely disregard these messages unless you are being flooded by them (then you better report).

2 Likes

Aha I understood. That means a client (access) is valid or not from the agent view point. Thanks!!

Do you have any information about the beginning of the supernodes programme for mainnet?
Seems currently there are no checking rounds running, aren’t there?

You can enroll and run the node in preparation. When the program starts the node will be picked up and start being monitored.
I am told an announcement in this regard will be made later today.

2 Likes

Thank you for your quick response! I understood :+1:

Hi Xavi,
In the guide Enrolling the Supernode program it says:

Finally, the recipient address of this transaction is TDL73SDUMPDK7EOF7H3O4F5WB5WHG2SX7XUSFZQ.

Isn’t that address for the testnet? What should we use for the main net?

You’re right, that’s a testnet address. I’ve updated it, but keep in mind that the SuperNode program is delayed:

1 Like