Skip to content

Sedimark/hornet-extra

Repository files navigation

hornet-extra and wasp-extra

A private tangle instance is deployed on LINKS servers. The following instructions explain how to deploy and connect other nodes to the private tangle.

Requirements

  • Software: docker, docker compose.
  • For hardware specifications refer to Iota wiki

Getting started

Create hornet identity

Hornet nodes provide different tools, to make a list:

docker compose run hornet-extra tool -h

Each 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-gen

Then update the docker compose.yml replacing the just generated private key in this field:

- "--p2p.identityPrivateKey=<privateKey>"

Deploy

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 -d

wasp-extra (optional)

Follow 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

1. wasp-cli configuration

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.gz

Configure 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.

2. wasp node configuration to become a member

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 this PublicKeys and peeringURL.

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-trusted

3. Share wasp node information

Then 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:4000

Share 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.

4. Add a Iota Smart Contract (ISC) Chain

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.

Every time a new member wants to join to 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=<...>
  • peers are all the node names previously given by the manager to the wasp nodes in the trust process.
  • Every peer need to trust each other

Other information


Iota is currently working on a new dev environment: iota-sandbox, iotaledger/devx#286

About

Instructions for deploying an additional Hornet node and connecting it to the LINKS private Tangle.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages