This section covers how to connect your 4-node service chain to the Baobab network. You will set up a Baobab EN and connect the EN with one of your SCNs. Then you will enable the Anchoring feature to write service chain block information on Baobab network.
1 Linux or MacOS server for EN
Minimum hardware requirements for testing
CPU: 4-core (Intel Xeon or equivalent), RAM: 16GB, HDD: 50GB
Please refer to the System Requirements for more explanation.
Service Chain is installed and running.
Assumptions and Limitations
EN connects to Baobab testnet.
Only one SCN can connect to the EN.
Not every SCN has to connect to the EN.
The installation is the uncompression of the downloaded package. Extract the archive on the EN server.
$ tar xvf ken-baobab-vX.X.X-XXXXX-amd64.tar.gz
From the EN server, download the
$ curl -X GET http://packages.klaytn.net/baobab/genesis.json -o ~/genesis.json
Now, we will initialize the EN node using the genesis file. Execute the following command. It will create the data folder storing the chain data and logs on your home directory. You can change the data folder using the
$ ken --datadir ~/data init ~/genesis.json
Go to the ken installation folder and edit
conf/kend.conf as follows.
$ kend startStarting kscnd: OK
You can check block sync status by watching
klay.blockNumber. If this number is not 0, the node is working fine. To download all blocks of the Baobab network, it will take about two hours though it can vary due to network condition and hardware performance.
$ ken attach --datadir ~/data> klay.blockNumber21073
If you want to stop a node, you can use the command
Take note of EN's KNI which is the information used to connect from an SCN node. This value will be used in the next step when generating
$ ken attach --datadir ~/data> mainbridge.nodeInfo.kni"kni://0f7aa6499553cdfeb8f21df10c656252ca6039047242eb86278689a87d57a41f9[email protected][::]:50505?discport=0"
Log on to an SCN (note: not the EN node) and create
[::] located after
@ letter with EN node's IP address.
$ echo '["kni://0f7aa6499553cdfeb8f21df10c656252ca6039047242eb86278689a87d57a41f9f004720180d1921e9f7632a4c6476f1775a2c381568d8e8c3c9c4a8cf[email protected]:50505?discport=0"]' > ~/data/main-bridges.json
From the SCN node's shell, edit
SC_TX_PERIOD is the parameter that decides the period to send an anchoring tx to the main chain. By setting the value to 10, you configure the node to perform anchoring every 10 blocks. The default value is 1.
Reboot the SCN node
$ kscnd stopShutting down kscnd: Killed$ kscnd startStarting kscnd: OK
Check if the SCN is connected to the EN by checking
$ kscn attach --datadir ~/data> subbridge.peers.length1
After finishing the EN and SCN connection, you can log Service Chain block information on the parent chain via Anchoring. In this section, you will top up a parent operator account, enable Anchoring, and check the anchored block number.
To do an anchoring, SCN has to make an anchoring transaction to Baobab. So
subbridge.parentOperator account should have KLAY to pay the transaction fee. Get some KLAY from Baobab Wallet Faucet and transfer 1 KLAY to the
$ kscn attach --datadir ~/data> subbridge.parentOperator"0x3ce216beeafc62d20547376396e89528e1d778ca"
$ kscn attach --datadir ~/data> subbridge.anchoring(true)true
After anchoring starts, you can check the latest block anchored to Baobab by using
subbridge.latestAnchoredBlockNumber. Please note that this only works after the EN already followed up on the latest block of Baobab. By default, SCN tries anchoring on every block from the block on which anchoring is turned on. The anchoring period can be set by changing SC_TX_PERIOD. If the value is set to 10, the node tries anchoring when the block number is a multiple of 10.
$ kscn attach --datadir ~/data> subbridge.latestAnchoredBlockNumber100