Dynex: How to Setup a Node and Local DNX Wallet

Dynex [DNX]
8 min readMay 12, 2023

--

In this article we give a bit of background about Dynex and also the steps required to setup a Dynex node and a local wallet. We will describe the full process, from downloading the latest sources, over building from source to running and configuring the tools on an Ubuntu 22.04 machine.

It covers the following topics:
— Downloading the Dynex node and wallet
— Preparing prerequisites
— Building everything from source
— Running the Dynex node
— Generating a new CLI wallet
— Opening an existing wallet file with CLI wallet
— Operating the CLI Wallet — useful commands
— Restoring a wallet from 25-word mnemonic seed

But before we jump right in, let’s first talk about the background and rationale of the Dynex platform: With the end of Moore’s law approaching and Dennard scaling ending, the computing community is increasingly looking at new technologies to enable continued performance improvements. A neuromorphic computer is a nonvon Neumann computer whose structure and function are inspired by biology and physics. Today, such systems can be built and operated using existing technology, even at scale, and are capable of outperforming current quantum computers.

Dynex is a next-generation platform for neuromorphic computing based on a groundbreaking flexible blockchain protocol. It consists of participating PoUW miners that constitute a decentralised neuromorphic supercomputing network which is capable of performing computations at unprecedented speed and efficiency — even exceeding quantum computing. By transforming traditional inefficient computers into neuromorphic chips, we will finally be able to create new discoveries. Dynex’ proprietary Proof-of-Useful-Work (PoUW) algorithm DynexSolve enables each miner to perform Dynex Chip computations.

To become part of the network, either as a miner, contributor or holder of DNX, a local Dynex node can be setup, which then can also be used for a local wallet to hold and store DNX.

Downloading the Dynex Node and Wallet

All Dynex source codes are available on GitHub. To setup a node and a wallet, we will use the main repository:

https://github.com/dynexcoin/Dynex

Even though there are compiled releases available on Git, we will describe the full process — from downloading the latest sources, over building from source to running and configuring the tools. This also has the advantage that we will always be using the latest versions and checkpoints. We will be using an Ubuntu 22.04 machine as an example and assume that the reader is familiar with opening a Terminal window to enter commands.

Download the latest sources to your machine:

git clone https://github.com/dynexoin/Dynex.git 

After all files have been downloaded, navigate into the directory:

cd Dynex

Preparing the Prerequisites

To be able to build Dynex from source, two libraries have to be installed on your machine: Boost and libcurl, which is already existing on most of the machines. You can run the following commands to install the requirements:

sudo apt-get -y install libboost-all-dev 
sudo apt-get -y install libcurl4-openssl-dev

Building Everything from Source

The Dynex developers have prepared makefiles supporting most of the operating systems, so that the build from source process will be pretty straight forward. Start with creating the build directory and navigate into it:

mkdir build && cd build

Now lets apply cmake so your build will be fitting to your environment:

cmake ..

One this is done, you can build you binaries:

make -j 8

Note that we used the option “-j 8” in the make command. This sets the number of threads being used for the build process. If you have less CPU cores available, you can also omit that or set another value. During the build process you will see progress information. Once it reaches 100%, you binaries have been built. They are located in the sub directory “src” of your build directory. Let’s navigate into it:

cd src

Running the Dynex Node

Before you run the Dynex node, you need to make sure that you have ports 17333 (in & out), 17336 (in & out) and SSL (443, out) open on your firewall.

Now start the Dynex node with the following command:

./dynexd

The node will automatically connect with other Dynex nodes and will syncronise with the network. This takes a while and depends also on your Internet connection. You can always check the progress of your sync process by typing status while the node is running. Once finished, it should look similar to this:

Dynex BlockChain Synced  - Block: 176398/176398 (100%) on mainnet, 

Important note: Only a fully synced node (100%) with the mainnet can serve as your gateway for your local wallet, it is important that your node is in sync at times before doing any transactions.

Congratulations, you are running your full Dynex node now!

As a next step we continue to generate a wallet. We will be using the “Command Line Interface” (CLI) wallet for this exercise. Dynex also offers a GUI based wallet with a graphical interface as another example.

Generating a new CLI Wallet

Assuming that you are running a fully synced node, navigate again into the directory with your binaries through the Terminal (/build/src). Start the CLI wallet with:

./simplewallet

As you have not specified an existing wallet, it will show you a number of options to choose from:

2023-May-12 09:51:33.277016 INFO    DYNEX wallet v2.2.2-20221218 (#mandatory)
2023-May-12 09:51:33.277225 INFO DYNEX NEUROMORPHIC COMPUTING PLATFORM
2023-May-12 09:51:33.277335 INFO -------------------------------------
Neither 'generate-new-wallet' nor 'wallet-file' argument was specified.
What do you want to do?
O - open wallet
G - generate new wallet
I - import wallet from keys
R - restore backup/paperwallet
T - import tracking wallet
E - exit

We want to generate a new wallet, therefore type “G” and press enter. You will be asked to specify a wallet file name:

Specify wallet file name (e.g., wallet.bin).
Wallet file name:

Type in a filename of your choice. We will use “testwallet.bin” in our example:

Wallet file name: testwallet.bin

After pressing enter, you will have to enter a password. This password will be later required to access your wallet, we recommend to choose a strong password to protect your wallet.

After entering the password twice, your wallet address has been generated and you can start using it:

2023-May-12 09:55:38.085364 INFO    Consumer added, consumer 0x563391c2f2a0, count 1
2023-May-12 09:55:38.085634 INFO Starting...
2023-May-12 09:55:38.085822 INFO Removing outdated pool transactions...
2023-May-12 09:55:38.085894 INFO Stopping...
2023-May-12 09:55:38.086783 INFO Outdated pool transactions processed
2023-May-12 09:55:38.086927 INFO Stopped
2023-May-12 09:55:38.087016 INFO Saving...
2023-May-12 09:55:38.087091 INFO Saved
2023-May-12 09:55:38.090001 INFO Starting...
2023-May-12 09:55:38.090152 INFO Removing outdated pool transactions...
2023-May-12 09:55:38.090406 INFO Outdated pool transactions processed
2023-May-12 09:55:38.091111 INFO Generated new wallet: Xwo4F4Mhhqz5qa46zWoot2KaFmpPWm8STF5JeM84usFUDknKzWHmoXsPcmRNFUoX23FNd8L5SCHeeRVrjkQouWza1cV1Fv82U
2023-May-12 09:55:38.091111 INFO view key: *******
2023-May-12 09:55:38.092556 INFO **********************************************************************
Your wallet has been generated.
Use "help" command to see the list of available commands.
Always use "exit" command when closing simplewallet to save
current session's state. Otherwise, you will possibly need to synchronize
your wallet again. Your wallet key is NOT under risk anyway.
**********************************************************************

PLEASE NOTE: the following 25 words can be used to recover access to your wallet. Please write them down and store them somewhere safe and secure. Please do not store them in your email or on file storage services outside of your immediate control.


******* 25 words ********

2023-May-12 09:55:38.092952 INFO **********************************************************************
Height 176404 of 176404
[wallet Xwo4F4]:

Important: There is always the risk that you forget your wallet password or that your computer stops working or that your wallet file gets corrupted. For such cases it is always possible to restore your wallet on another machine. What you need are the 25 words (“passphrase” or “mnemonic seed”). These 25 words are being displayed here, it is highly recommended to write them down somewhere and keep them at a safe place. Also make sure not to share them with anyone, because knowing them means being able to access your funds. The screen also shows you the generated wallet address, in our example it is:

Xwo4F4Mhhqz5qa46zWoot2KaFmpPWm8STF5JeM84usFUDknKzWHmoXsPcmRNFUoX23FNd8L5SCHeeRVrjkQouWza1cV1Fv82U

You can use this address to receive payments in DNX. The wallet also displays the synchronization status:

Height 176404 of 176404

It is important that the wallet is 100% in sync with the main net to obtain an accurate information about available funds. It is suggested to pay attention to that from time to time. To securely quit the wallet, type:

exit

And wait until it has finished saving data and closing your wallet.

Opening an Existing Wallet File with CLI Wallet

With our wallet file and address being generated, let’s walk through the process of opening such wallet again. Make sure you have navigated to the directory of your binaries (/build/src). This time we open the wallet by specifying the before generated wallet file (we called it testwallet.bin above):

./simplewallet --wallet-file testwallet.bin

After entering your password, the wallet opens and is waiting for your commands.

Operating the CLI Wallet — Useful Commands

Simplewallet offers a number of useful commands when logged in. An overview of all commands can be retrieved by typing help in the console.

Checking the balance of the wallet:
balance

Showing your address:
address

Sending DNX to another address:
transfer 0 <TARGETADDRESS> <AMOUNT> (-p <PAYMENTID>)

Checking the wallet’s transaction history:
list_transfers

Display the wallet’s mnemonic seed:
show_seed

Display the wallet’s secret keys:
export_keys

Restoring a Wallet from 25-Word Passphrase (“Mnemonic Seed”)

The unimaginable has happened: You forgot your password, or your hard disk died. If you have made a backup of your wallet file somewhere else (which we highly recommend), then you can simply open that backup file in the usual manner. But what if there is also no backup file? Rest assured, you can recover your wallet with the 25 words you have been provided with in the beginning. Make sure you have navigated to the directory of your binaries (/build/src).

Start the wallet with the recover option and specify the filename of the recovered wallet to be created. In our example, we want to wallet file to be called recoverwallet.bin

./simplewallet --restore --wallet-file recoverwallet.bin

When prompted, enter a password of your choice to be set for that wallet. After that, you will be asked to enter your 25-word passphrase (“mnemonic seed”):

2023-May-12 10:39:15.356978 INFO    DYNEX wallet v2.2.2-20221218 (#mandatory)
2023-May-12 10:39:15.357120 INFO DYNEX NEUROMORPHIC COMPUTING PLATFORM
2023-May-12 10:39:15.357200 INFO -------------------------------------
password: ***
Specify mnemonic seed:

Enter your 25 words, separated by spaces and press enter.

Specify mnemonic seed: word1 word2 word3 word4 ... word25

Your wallet then needs to scan the entire block chain for previous transactions, you can follow the process as usual by watching the following information in your terminal:

Height 176426 of 176426

As soon as it finished scanning, your wallet has been restored. You can now access it by opening the wallet filename you have specified and entering your password.

Are Dynex Nodes and Wallets Safe?

Dynex’ wallet and nodes have undergone external security audits which certify that Dynex code is safe.

We hope you enjoyed the introduction to running Dynex nodes and the CLI wallet. More information about Dynex can be found on the official channels:

https://dynexcoin.org/linktree

--

--

Dynex [DNX]

Dynex is a next-generation platform for neuromorphic computing based on a groundbreaking flexible blockchain protocol.