A private tangle instance is deployed on LINKS servers. The following instructions explain how to deploy and connect other nodes to the private tangle.
- Software:
docker,docker compose. - For hardware specifications refer to Iota wiki
Hornet nodes provide different tools, to make a list:
docker compose run hornet-extra tool -hEach node can be uniquely identified by a peer identity. A new identity MUST be created for the node, which is necessary for recognition by other nodes. Essentially, a key pair is generated by the tool. The private key needs to be copied into docker-compose.yml, thereby altering the internal configuration of the node.
Run this command to generate a new identity:
docker compose run hornet-extra tool p2pidentity-genThen update the docker compose.yml replacing the just generated private key in this field:
- "--p2p.identityPrivateKey=<privateKey>"Start the hornet node (and optionally the wasp node) that will connect to the private tangle:
sudo ./bootstrap.sh # to be done only the first time
# Deploy only the hornet node
docker compose --profile only-hornet up -d
# Deploy the hornet node and the wasp node
docker compose --profile hornet-and-wasp up -dFollow these instructions only if you are deploying also a wasp node
A wasp network is deployed on LINKS servers on top of the L1 Tangle as an L2 layer of IOTA. The following instructions explain how to configure and connect other wasp nodes to the network.
After the configuration and deployment, you can access the wasp dashboard to http://127.0.0.1:90/wasp/dashboard
Install the wasp-cli
wget https://github.com/iotaledger/wasp/releases/download/v1.0.3/wasp-cli_1.0.3_Linux_x86_64.tar.gz
tar -xzf wasp-cli_1.0.3_Linux_x86_64.tar.gzConfigure the wasp-cli. For more information, see: https://wiki.iota.org/wasp/how-tos/wasp-cli/
./wasp-cli init
./wasp-cli set l1.apiaddress <your-hornet-api-url>:<your-hornet-api-port> #192.168.n.n:15600
./wasp-cli set l1.faucetaddress https://stardust.linksfoundation.com/faucet/l1
# ensure to have the wasp node running
./wasp-cli wasp add <node-name> http://<your-public-ip>:9090<node-name>is a name of your choice for your wasp node
If the version of the wasp-cli does not match the version of the wasp node, an error will appear, but add the --skip-version-check at the end of each command to suppress it. In this case, you can also download the wasp-cli version that matches your wasp version.
To become a member of the wasp network, you need to configure the wasp node.
Add to your wasp's trusted peers the nodes that are in the committee of the chain you want to join as a committee member.
To do this, you need to know the PublicKeys and the peeringURL of the wasp nodes in the committee.
The wasp node in the LINKS network has these values:
| Wasp | PublicKey | PeeringURL |
|---|---|---|
| wasp-links-1 | 0x5b05b5f05fecaeb9a94a1570fbb570f23dca5132219c90cc7dc647a68a628e1c | stardust.linksfoundation.com:4000 |
| wasp-links-2 | 0x86edad1149438bd830c0929a5b6a228afb6e53af4f332d27b238bb3338655205 | stardust.linksfoundation.com:4001 |
| wasp-links-3 | 0xce338553d1ce18a10a91742bda8fbb33b07c471d1c9a3d51a48a7c23e9f13088 | stardust.linksfoundation.com:4002 |
| wasp-unican | 0x583d6b910b42e41e4d01c785a72e173d64f7148692fd23d52a6bff5585846545 | gossip.tangle.unican.sedimark.eu:5001 |
To add it, run the command:
wasp-cli peering trust <node-name> <PubKey> <PeeringURL><node-name>is the name that you want to give inside your wasp-cli to the node with thisPublicKeysandpeeringURL.
To make sure that the above command went well, you can run the following to list all the wasp nodes you trust. (the me row represents your node).
wasp-cli peering list-trustedThen you need to communicate your wasp PublicKeys and peeringURL to all the members of the Committee because all the nodes in a committee must trust each other to run a chain.
To know your public key run:
$ wasp-cli peering info
PubKey: 0xd1467f40d1d93e77c70...
PeeringURL: 0.0.0.0:4000Share the port and the public IP or domain with other partners (also members of the committee). The port must be accessible from the internet (standard ports like 80 or 443 will not work). If you use a different port, you will need to update the docker-compose file.
| Chain Name | Chain ID |
|---|---|
| sedimark-chain | lnk1pruksfqtfnqfwk4zhqqsa8ywmmmkcm7s6l9g3nvwz5yupa26pwp6sfnrhxd |
To activate a chain on a wasp node, run these commands:
# adds the chain to the wasp-cli config
wasp-cli chain add <name> <chainID>
# activate the chain on the wasp node
wasp-cli chain activate --chain=<name>NOTE that with the last command the wasp node does not become a member of the committee.
If you are already running a wasp node as part of the committee, you can trust new nodes (deployed by other partners) with the next command.
# trust a new wasp-node, you can choose <node-name>
wasp-cli peering trust <node-name> <PubKey> <PeeringURL>To add a node to the committee, only one member (let's call him manager from now on) needs to run the following command.
# done by the manager only
wasp-cli chain rotate-with-dkg --chain=<chain-name> --peers=<...>peersare all the node names previously given by the manager to the wasp nodes in the trust process.- Every peer need to trust each other
- Additional information regarding the Hornet node
- Informations about the auto-peering: https://wiki.iota.org/hornet/references/peering/
- To modify the dashboard admin password: https://wiki.iota.org/hornet/inx-plugins/dashboard/welcome/
Iota is currently working on a new dev environment: iota-sandbox, iotaledger/devx#286