Node Operator Bootstrapping Introduction & Guide 🤠

Hey @Jared, on my vnode it’s asking me “What node do you want to bootstrap? Counting starts at 0” but when I type 0 and enter, I get “No such container: inc_mainnet_0”. I don’t have multiple vnodes running on one server, this was just a simple setup from the beginning. Any ideas?

@JG20,

You can run docker ps to check what your container number is.

What method did you use to setup your vNode?

I setup my vnodes with Rocky’s script. No issues there, they all run normal.

I’m not sure I’m following what to do…I ran docker ps, got the container ID, but now what? If I enter inc_mainnet_containerID that doesn’t work.

After running docker ps you should see the container name at the end of container information. Normally should be inc_mainnet_0 then inc_mainnet_1 and so on.

I’m not seeing it…

On the far right your container name is just inc_mainnet. Are you sure you are using Rocky’s script? Compare your script with the one he has provided. If you need further assistance or want a remote session please open a support ticket with @Support.

1 Like

You are right, I didn’t have his latest script. All is well now. I appreciate your help.

2 Likes

@Jared How close to the current shard block height should bootstrapping get my virtual node after it restarts (after the successful bootstrap)? I ask because I bootstrapped a new vnode assigned to shard 7 and after bootstrap which appeared to be successful (no error messages) and restarting the docker container, when checking the node monitor the current block heights of most shards was on the order of 1,71x,xxx but the bootstap only got the new node up to around block height 1,41x,xxx approximately 30,000 blocks behind current block height. Is that how close to current height bootstrapping is supposed to get a new node?

@Socrates,

The bootstrapping script pulls data comes from a running validator node and this is done once a week on Mondays. That is why you are showing 30K blocks behind.

We have it on the list of things to change and will most likely have the data refreshed every 2 days compared to the current weekly.

6/10/2022 Update - Files are now updated daily.

4 Likes

Jared, docker is not starting after bootstrap data is downloaded. What could be wrong?
it seems loop of restarting. Help!

@Sky_Fall, I’ve sent you a PM as there are many things to check.

Thanks

I would recommend creating hard links instead of copying the files, that way you could save some space and time.

# Stop containers.
docker container stop inc_mainnet_0
docker container stop inc_mainnet_1

# Set the variables accordingly.
fromNode=/home/incognito/node_data_0
toNode=/home/incognito/node_data_1
shardName=shard5

# Create the hard links.
rm -rf $toNode/mainnet/block/$shardName
cp -al $fromNode/mainnet/block/$shardName $toNode/mainnet/block/$shardName

# There are some files that must be copied, not linked.
cd $toNode/mainnet/block/$shardName
rm C* L* M*
cp $fromNode/mainnet/block/$shardName/C* .
cp $fromNode/mainnet/block/$shardName/L* .
cp $fromNode/mainnet/block/$shardName/M* .

# Make sure all files are editable to the incognito user.
chown incognito:incognito /home/incognito -R

# Start containers again.
docker container start inc_mainnet_0
docker container start inc_mainnet_1
1 Like

Here is a node script I made to automate the creation of hard links. You could run it periodically without any problem to save a lot of space.

2 Likes

@Jared Question about permissions. I have noticed when I use the ./bootstrap.sh without sudo, all those blocks that I get come in owned by user:group incognito:incognito, but then after I restart inc_mainnet_0 container and it eventually gets the remaining blocks to get me up to latest, then those blocks are owned by root:root . I assume because we usually start in the installer script with sudo ./inc_node_installer.sh . My question is: some of my block *.ldb files are owned by incognito:incognito and some are owned by root:root, is this going to cause a problem at some point? Who (what user and group) should the proper owner of all *.ldb files be?

It should not have an impact on performance since the docker container is ran with root privileges so it can access from any user. I will update the post to put sudo before ./bootstrap.sh so all files are owned by the same.

Is the data source updated automatically? When I use the script and download the shard data I noticed some shards are very far behind and requires hours and hours of syncing. Shard 7 is 500k blocks behind for example.

The bootstrap files offered by Incognito are updated every week on Monday. In the future we may increase the interval that these files are updated.

Weird. If I go through all downloads 00,0-7 and then start the node I get the following heights:

beacon 1936451  (19.2G download)
shard0 1556202  (36.5G download)
shard1 1566596  (13.2G download)
shard2 1930751  (10.4G download)
shard3 1629497  (15.0G download)
shard4 1929529  (14.6G download)
shard5 1511193   (9.2G download)
shard6 1659406  (12.1G download)
shard7 1427293  (11.2G download)

Only 3 of those are up to date, the rest are way behind. (started on fresh node with empty folder, on a new machine, so it’s not my old data).

Is this for a fullnode?

http://51.222.82.132/bootstrap/

There are the amounts you should have after running bootstrap. Keep in mind those files are compressed.