Skip to main content
  • Deployments
  • Testnet
On this page

Hardware

We recommend selecting an all-purpose server with:
  • 4 or more physical (or 8 virtual) CPU cores
  • At least 500GB of SSD disk storage
  • At least 16GB of memory
  • At least 100mbps network bandwidth
The usage of the blockchain grows, plus it may be needed to bootstrap external chain nodes, so the server requirements may increase as well, so you should have a plan for updating your server as well.

Prerequisites

Golang

This project requires Go version 1.22 or later. Install Go by following the instructions on the official Go installation guide.

Linux installation

Install the latest version of Golang
Remove any previous Go installation and install the new version
Add /usr/local/go/bin to the PATH environment variable. You can do this by adding the following line to your $HOME/.profile or /etc/profile (for a system-wide installation):
Verify that you’ve installed Go by opening a command prompt and typing the following command

Build essential

Install essential tools and packages needed to compile and build the binaries.

Int3face node

Build and install the binary

Int3face node provides CLI commands for submitting inbound and outbound transfers and other queries. To install Int3face node, clone the repository to your local machine from Github. Please contact the Int3face team for accessing the Int3facechain/bridge repository.
Then, check out the last released version. Currently, it’s v0.2.7.
At the top-level directory of the project execute the following command, which will build and install the int3faced binary to $GOPATH/bin.

Verify the installation

Initialize node

Use int3faced to initialize your node (replace the <your_moniker> with a name of your choosing):

Download genesis

Download the genesis.json file and place it into the Int3face configuration directory (~/.int3faced/config by default).

Download app config

Download the config.toml file and place it into the Int3face configuration directory (~/.int3faced/config by default).
The next step is to set your moniker in config.toml instead of the default one. You can do it by modifying the moniker field at the top of the config.toml file. Besides that, you can modify the config if it’s needed, but make sure to keep all the default ports and persistent peer addresses.

Import validator key

You can either create a new key for your validator or import an existing key.

Create new key

Don’t forget to save the mnemonic!

Import existing

Sync the node

We use a state snapshot to sync the state of the node. For state syncing, the config.toml file must be properly set, which is already done if you use the config from this repo. If you want to know more about this process, feel free to refer to the documentation
  1. https://docs.cometbft.com/v0.37/core/state-sync
  2. https://docs.cosmos.network/main/user/run-node/run-node#state-sync

Download and Run update_trust.sh script

Start the node

The following command starts the node. Note that after starting, the node should sync first, which may take some time until you can start using it.

Top up the account

Contact the Int3face team and provide your validator’s account address to top it up.

Get your Tendermint validator public key

Firstly, you need to get your Tendermint validator public key. You must get is as it will be necessary to include in the transaction to create your validator. If you are using Tendermint’s native priv_validator.json as your consensus key, you display your validator public key using the following command.
The output looks like this

Submit validator creation

Now that you have you key imported, you are able to use it to create the validator. To create the validator, you will have to choose the following parameters for your validator:
  • moniker
  • commission-rate
  • commission-max-rate
  • commission-max-change-rate
  • min-self-delegation (must be >1)
  • website (optional)
  • details (optional)
  • pubkey (gotten in previous step)
If you would like to override the memo field, use the --ip and --node-id flags. An example create-validator command looks like this:

Start a background service

You will need some way to keep the int3faced start process always running. If you’re on linux, you can do this by creating a service.
Service’s logs are stored into the $HOME/.int3faced/logs/ directory. Then update and start the node:
You can check the status with:
And disable, stop, or restart the service:
Logs are available using the following command:

Observer node

Build and install the binary

Int3face observer provides block scanners and chain clients for Int3face and external chains. To install Int3face observer, clone the repository to your local machine from Github. Please contact the Int3face team for accessing the Int3facechain/observer repository.
Then, check out the last released version. Currently, it’s v0.2.3.
At the top-level directory of the project execute the following command, which will build and install the int3obsd binary to $GOPATH/bin.
This command builds and installs the int3obsd binary to $GOPATH/bin. NOTE: if you have problem with access to the bridge go module, try to use GOPRIVATE environment variable: export GOPRIVATE=github.com/Int3facechain/*

Init the observer

After that, int3obsd can be used to initialize the configuration.
This creates the observer configuration in the Int3face home directory (~/.int3faced by default) with the following folders:
The default folder stores the current observer profile; refer to Profiles for details. The profile folder contents:
  1. tss is a folder with all TSS-related information
  2. logs is a folder for logs
  3. node_key is the node’s private key
  4. node_key.pub is the node’s public key
  5. observer.toml is the observer config file
  6. pool_key.pub is the current public key of the committee
  7. pre_params.json is the hexed pre-parameters used for the key generation
All the files and folders contain randomly generated data, which is sufficient for launching the node. Please do not modify these files unless you know what you are doing!

Download observer config

Download the observer.toml file and place it into the observer configuration directory (~/.int3faced/observer/default by default).
Modify the config if it’s needed. The most important thing is to ensure that the keyring-folder parameter is properly configured and points to your keyring. Note that in some Linux distributions, the observer binary fails to parse a tilde sign in the home-relative path. Therefore, if you receive an error saying that the keyring is not found, try changing the keyring path in observer.toml from, for example, ~/.intrfaced to /root/.intrfaced (meaning avoid using ~).

Start the observer

Start the observer using your validator’s account.
You will need some way to keep the int3obsd start process always running. If you’re on linux, you can do this by creating a service. To make the service work, you need a way to pass your keyring passphrase to the service. One option to do that is to create an environment variable with your passphrase and make it persistent for the current linux user.
And to load changes type
This command will add a new variable called PASSPHRASE and persist it in your bash config. Later, the observer service will use it to start automatically.
Service’s logs are stored into the $HOME/.int3faced/observer/default/logs/ directory. Then update and start the node:
You can check the status with:
And disable, stop, or restart the service:
Logs are available using the following command:

Join the committee

At the beginning, your node is not part of the TSS committee. While you can observe blocks, your vote will not be counted during bridging. To become a participant, please wait for the next round of pool public key generation. If you want to expedite this process or require additional information, feel free to contact our team!

DOGE Node

Download binaries

Download the DOGE binaries and extract them to the bin folder.
bin folder is a folder added to the PATH environment variable. However, you can use an arbitrary folder to store the binaries. If you also want to use the bin folder, one can be added to the PATH using the following command:
And to load changes type

Create home dir

Download DOGE configuration

And set your own rpcuser and rpcpassword in the downloaded file. Also, modify these fields in the observer.toml file, so the observer can connect to the Dogecoin node.

Start the node

Verify the node is started

You should see a response like this:

Mine blocks

Mine blocks to collect new coins. You may need to execute this operation several times until you get the coins.
110 is the number of the mined blocks, this may be an arbitrary number. Keep in mind, that Dogecoin has a maturity period of 100 blocks, this means that any mined tokens will be reflected in your balance only after 100 blocks. Response:

Verify the blocks are mined

Check the balance of our node

BTC Node

Download binaries

bin folder is a folder added to the PATH environment variable. However, you can use an arbitrary folder to store the binaries. If you also want to use the bin folder, one can be added to the PATH using the following command:
And to load changes type

Create home dir

Download BTC configuration

Start the node

Verify node is started

You should see a response like this:

Create new wallet or load your own wallet

Create

Args after the wallet name:
  1. Enables use of the private keys
  2. Init keys and HD seed
  3. Password
  4. Keep track of coin reuse
  5. Create native descriptors
  6. Load this wallet on startup

Load

Args after the wallet name:
  1. Load this wallet on startup

Create new address for your wallet

Mine blocks

110 is the number of the mined blocks, this may be an arbitrary number. Keep in mind, that Bitcoin has a maturity period of 100 blocks, this means that any mined tokens will be reflected in your balance only after 100 blocks.

Verify the blocks are mined

Check the balance of our node

BCH Node

Download binaries

BCH binaries names intersect with the BTC names. So, we are going to rename the binaries.

Create home dir

Download BCH configuration

wget https://raw.githubusercontent.com/Int3facechain/networks/main/int3-test-2/bitcoin-cash.conf —output-document $HOME/.bitcoin-cash/bitcoin-cash.conf

Create aliases

Since the BCH names and paths conflict with the BTC, let’s create aliases for the main BCH binaries.
And to load changes type

Start the node

Verify node is started

You should see a response like this:

Create new address for your wallet

Mine blocks

110 is the number of the mined blocks, this may be an arbitrary number. Keep in mind, that Bitcoin has a maturity period of 100 blocks, this means that any mined tokens will be reflected in your balance only after 100 blocks.

Verify the blocks are mined

Check the balance of your node

LTC Node

Download binaries

bin folder is a folder added to the PATH environment variable. However, you can use an arbitrary folder to store the binaries. If you also want to use the bin folder, one can be added to the PATH using the following command:
And to load changes type

Create home dir

Download LTC configuration

Start the node

Verify node is started

You should see a response like this:

Create new wallet

Args after the wallet name:
  1. Enables use of the private keys
  2. Init keys and HD seed
  3. Password
  4. Keep track of coin reuse
  5. Create native descriptors
  6. Load this wallet on startup
Use the name “observer” for the wallet, as it’s required by the observer node

Create new address for your wallet

Mine blocks

110 is the number of the mined blocks, this may be an arbitrary number. Keep in mind, that Litecoin has a maturity period of 100 blocks, this means that any mined tokens will be reflected in your balance only after 100 blocks.

Verify the blocks are mined

Check the balance of your node