Hi!
By default Daedalus wallet tries to connect to IOG relay servers - relays-new.cardano-mainnet.iohk.io
Sometimes this connections attempt could take for a while and once it is established the synchronization of the blockchain could be slow as well.
So a workaround can be to change the relay server address to any other public relay address available on the decentralized network. Daedalus wallet actually a passive node on the network which can connect to several relay nodes.
More info about Cardano relay nodes can be found here:
https://docs.cardano.org/getting-started/operating-a-stake-pool/node-connectivity
The list of the relay nodes where Daedalus wallet tries to connect is stored in the topology file. The default content is the following:
{
"Producers": [
{
"addr": "relays-new.cardano-mainnet.iohk.io",
"port": 3001,
"valency": 1
}
]
}
more info about topology file: cardano-node/understanding-config-files.md at master · input-output-hk/cardano-node · GitHub
So this file can be modified by extending the list with more relay node addresses. The list of the available relay nodes can be found here:
https://explorer.cardano-mainnet.iohk.io/relays/topology.json
An example of the list:
{
"Producers": [
{
"addr": "127.0.0.1",
"port": 3002,
"continent": "Europe",
"state": "IE"
},
{
"addr": "relay1.myrelay.com",
"port": 3001,
"continent": "Asia",
"state": "JP"
},
...
So first just find a node adddress with the closest location to you. Then make sure that the node is available with a simple port check. Here is a good online site to check the port status - Open Port Check Tool - Test Port Forwarding on Your Router
Example of an open port - means available:
Example of a closed port - means currently not available:
Once you have an available node just put the address of it into the topology file.
The default topology file location on Windows is:
c:\Program Files\Daedalus Mainnet
The default topology file location on Linux is:
~/.daedalus/nix/store/XXX-node-cfg-files/topology.yaml
where XXX is series of characters but to find out what is that you can search for the file with find ~/ -name "topology.yaml"
The default topology file location on Mac is:
/Applications/Daedalus Mainnet.app/Contents/Resources/topology.yaml
(use Finder and go /Applications/Daedalus Mainnet.app then right click and show content)
So open the file with your favorite editor (Notepad, nano) and extend the list (or replace the default address) Note that “continent” and “state” keys should be replaced with “valency”:
{
"Producers": [
{
"addr": "relays-new.cardano-mainnet.iohk.io",
"port": 3001,
"valency": 1
},
{
"addr": "127.0.0.1",
"port": 3002,
"valency": 1
},
{
"addr": "relay1.myrelay.com",
"port": 3001,
"valency": 1
}
]
}
more about nested array json format can be found here: JSON Structures | JSON tutorial | w3resource
So once the file is updated just restart the wallet and hope it will connect and sync quicker with the newly defined relay node.
Troubleshooting
-
if the node crashing at startup, probably you made a mistake editing the topology file. The default topology file can be download and replaced with the corrupted file:
https://hydra.iohk.io/job/Cardano/cardano-node/cardano-deployment/latest-finished/download/1/mainnet-topology.json
more info about default Cardano node configuration files:
cardano-node/getConfigFiles_AND_Connect.md at master · input-output-hk/cardano-node · GitHub -
if the node got stuck in the verifying blockchain state (means no syncing) then it is better delete the blockchain, more info: https://iohk.zendesk.com/hc/en-us/articles/360009484874-Delete-and-re-sync-blockchain-data
-
if the syncing got stuck even with additional relays… then might need more RAM. 8GB is the recommended size. More details about the hardware requirements can be found here: Daedalus - Downloads